新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > GPS衛(wèi)星定位模塊使用及感受

GPS衛(wèi)星定位模塊使用及感受

作者: 時(shí)間:2016-11-29 來(lái)源:網(wǎng)絡(luò) 收藏
一直以來(lái)都以為GPS模塊使用比較麻煩,覺(jué)得那是高科技的東東,接收衛(wèi)星信號(hào)啊~~神秘。直到最近有朋友在項(xiàng)目中詢(xún)問(wèn)這方面的事,正好手頭上沒(méi)有其它事項(xiàng)要忙,就決心要把GPS模塊搞搞,以前Cpeark論壇上有做過(guò)一款GPS接收板的,當(dāng)時(shí)沒(méi)有參加這個(gè)活動(dòng),后來(lái)東東把他手上的送給我(謝謝東東),于是找出板板,又在論壇上下載了一些軟件,折騰了一外晚上未果,一點(diǎn)數(shù)據(jù)都沒(méi)有,開(kāi)始以為GPS模塊需要初始化之類(lèi)的,查找了資料發(fā)現(xiàn),只要加電就可以工作,連續(xù)輸出數(shù)據(jù),無(wú)論是否有信號(hào)。果斷判斷模塊已壞,郁悶~~
在淘寶上下手買(mǎi)了新的回來(lái),嚴(yán)格來(lái)說(shuō)應(yīng)該是全新的舊貨,三十多元,05年產(chǎn)的模塊,采用的是臺(tái)灣旺玖PROLIFIC公司的PL-6313芯片,這間公司比較陌生,但它的一款PL2303的芯片,相信多數(shù)搞電子的都知道吧。賣(mài)家說(shuō)測(cè)試信號(hào)接收速度和靈敏度比SIRF3芯片稍弱,但是遠(yuǎn)強(qiáng)于使用SIRF2或是2E芯片,自帶陶瓷天線和外接天線接口,自帶鋰電池存儲(chǔ)數(shù)據(jù),可惜我實(shí)測(cè)電池已經(jīng)沒(méi)電了,估計(jì)是存放太久的緣故。選擇這款主要是看中它本身自帶了天線,使用起來(lái)不用這么麻煩。下面看看我怎么折騰這塊模塊吧。
一、硬件結(jié)構(gòu)
Cepark第一代的實(shí)驗(yàn)板,這塊板用了好多年,比較簡(jiǎn)單好用,用得也順手,LCD12864液晶屏做顯示,因?yàn)榭紤]到要顯示比較多的信息,比如經(jīng)緯度、時(shí)間等等。模塊串行輸出直接接到MCU的RXD上,因?yàn)槟K的工作電壓是3.3V的,懶得搭板做穩(wěn)壓電路了,直接在實(shí)驗(yàn)板的5V上串三只二極管得到約 3.2V的電壓。在用單片機(jī)解碼前,先是接入到PC上用軟件測(cè)試了模塊是否能工作,通電后是每隔1秒輸出一組數(shù)據(jù),通信速率9600bps,以ASCII 格式傳送,不需要任何初始指令,驗(yàn)證了之前的板板模塊是壞的。
二、編程思路
一般GPS模塊都支持NMEA0183協(xié)議,j這款也是,看廠家資料說(shuō)是V3.01版本,不知道具體有什么不同,在網(wǎng)上找了一堆協(xié)議研究,NMEA0183協(xié)議的指令比較多,經(jīng)過(guò)測(cè)試我手上這款是輸出四種指令:$GPRMC、$GPGGA、$GPGSA、$GPGSV。通過(guò)單片機(jī)來(lái)讀取指令數(shù)據(jù),然后取出其中有用的數(shù)據(jù),考慮到一些參數(shù)沒(méi)什么用途,這次主要獲取日期、時(shí)間、經(jīng)度、緯度、可見(jiàn)衛(wèi)星數(shù)、當(dāng)前使用衛(wèi)星數(shù)等較常用數(shù)據(jù)。這些信息分別包含在不同的指令中,$GPRMC是推薦使用定位信息語(yǔ)句,包了日期、時(shí)間、經(jīng)緯度、定位成功標(biāo)志,而可見(jiàn)衛(wèi)星數(shù)則包含在$GPGSV中,當(dāng)前定位使用衛(wèi)星數(shù)包含在$GPGGA中,$GPGSA則包含有當(dāng)前可見(jiàn)衛(wèi)星的每一顆衛(wèi)星的信息。、
語(yǔ)句的格式一般如下:
$GPRMC,060815.00,A,3956.64797,N,11618.02077,E,000.0,000.0,251006,05.9,W,A*1E
$GPGSV,2,1,06,19,75,039,38,03,43,052,37,27,60,290,38,08,35,313,38*77
$GPGGA,060815.00,3956.64797,N,11618.02077,E,1,06,1.26,00113,M,-006,M,,*42
$GPGSA,A,3,19,03,27,08,11,16,,,,,,,2.50,1.26,2.16*04
每一語(yǔ)句以“$”符號(hào)開(kāi)頭,然后跟著指令類(lèi)型,如“GPRMC”,后面的數(shù)據(jù)以“,”號(hào)進(jìn)行區(qū)分,每一數(shù)據(jù)長(zhǎng)度固定,不足數(shù)在前面加0補(bǔ)足,沒(méi)有數(shù)據(jù)時(shí)是連續(xù)的逗號(hào)分隔,每一語(yǔ)句數(shù)據(jù)總長(zhǎng)度不固定,最長(zhǎng)可達(dá)二百多字節(jié),最短也有幾十字節(jié),由于51單片機(jī)的RAM一般只有一百多字節(jié),去除系統(tǒng)使用留給用戶(hù)僅有一百不到,而采用外部存儲(chǔ)的話(huà),程序通用性又大打折扣,而且也會(huì)增加硬件成本,所以在進(jìn)行接收數(shù)據(jù)處理時(shí),不能采用一次性全部接收再進(jìn)行處理,而要邊收邊處理數(shù)據(jù)。主要編程思路如下:
1、程序以$判斷數(shù)據(jù)列開(kāi)始。
2、設(shè)定全局變量數(shù)組,記錄開(kāi)始的5個(gè)數(shù)據(jù)類(lèi)型數(shù)據(jù):GPRMC、GPGSV、GPGGA等。
3、設(shè)定全局變量數(shù)組,記錄兩個(gè),號(hào)間的數(shù)據(jù),以數(shù)據(jù)類(lèi)型和,號(hào)個(gè)數(shù)來(lái)判斷當(dāng)前接收到的數(shù)據(jù),然后進(jìn)行處理。
用這個(gè)方法處理,接收數(shù)據(jù)只占用不到20個(gè)字節(jié)的RAM空間,算是較為節(jié)約的方法。剩下的就是程序上處理數(shù)據(jù)和顯示了。需要注意的是GPS接收到的時(shí)間是 UTC時(shí)間(協(xié)調(diào)世界時(shí),又稱(chēng)世界統(tǒng)一時(shí)間、世界標(biāo)準(zhǔn)時(shí)間、國(guó)際協(xié)調(diào)時(shí)間),北京是在+8時(shí)區(qū),所以接收到的時(shí)間是要比北京時(shí)間慢8小時(shí),如果在程序中需要用到GPS的時(shí)間,需要做數(shù)據(jù)處理。

 
三、總結(jié)和感受。
這個(gè)模塊的信號(hào)還可以,在窗邊一般能見(jiàn)到10顆星,有時(shí)能定位成功,伸出窗外能見(jiàn)12顆星,定位4-5顆左右,靈敏度基本上和手上幾年前的手機(jī)相當(dāng),估計(jì)是和SIRF Ⅱ級(jí)別相當(dāng),不知道使用外接天線效果會(huì)如何,因?yàn)槭稚蠜](méi)有接口符合的天線,也就沒(méi)有測(cè)試。靈敏度比現(xiàn)在手上的MOTO里程碑2手機(jī)要差多,里2在室內(nèi)可以隨時(shí)定位并且有四五顆星。模塊使用相當(dāng)方便,標(biāo)準(zhǔn)速率串行數(shù)據(jù)的輸出也很方便與電腦或單片機(jī)連接,由于不需要任何控制指令,大大方便了程序編寫(xiě),而且價(jià)格便宜,淘寶上單獨(dú)的模塊(SIRF Ⅲ級(jí)別)基本是在三十多元的價(jià)格但不帶天線,配上轉(zhuǎn)USB的線或轉(zhuǎn)藍(lán)牙模塊的線,可以很方便的應(yīng)用到各種設(shè)備。

 

 



這是模塊的元件一面,大的IC是PL-6313芯片,采用簡(jiǎn)化型32位CPU,內(nèi)建韌體版本為L(zhǎng)QFP64,面積僅7x7mm。小的一塊是SiGE公司的 SE4100L芯片,面積4x4mm,這個(gè)芯片內(nèi)集成了IF濾波器、帶儲(chǔ)備電路的電壓控制振蕩器 (VCO),以及高性能低噪聲放大器 (LNA)。



這是連接實(shí)驗(yàn)板解碼成功的圖片,圖片是放在靠窗的電腦桌上拍的,顯示的時(shí)間是UTC時(shí)間、經(jīng)緯度數(shù)據(jù)都是直接顯示,位置數(shù)據(jù)上圖片處理了,不然要泄漏自己的位置了,呵呵,要知道這個(gè)可是只有幾米的誤差。右上角的A表示定位成功,V則表示未定位,下面的03/09表示當(dāng)前可見(jiàn)衛(wèi)星數(shù)9顆,當(dāng)前使用定位衛(wèi)星數(shù) 3顆。


關(guān)鍵詞: GPS衛(wèi)星定位模

評(píng)論


技術(shù)專(zhuān)區(qū)

關(guān)閉