,,,,
(大連交通大學(xué) 電氣信息學(xué)院,大連 116028)
自1978年第一顆GPS試驗衛(wèi)星升空以來,人類社會從此邁進(jìn)了以衛(wèi)星定位和導(dǎo)航的新時代[1]。與其他無線接收設(shè)備不同,GPS接收機(jī)定位精度高、可靠性強(qiáng),不受天氣、時間等環(huán)境因素的干擾,在軍事、運(yùn)輸、航空航天等眾多領(lǐng)域用途廣泛,影響深遠(yuǎn)。但目前GPS接收機(jī)也存在著成本較高、不便攜等缺點(diǎn),制約著其發(fā)展[2]。
本文針對上述情況,采用成本低廉的STC89C52芯片設(shè)計了一款低成本、手持式的GPS定位信息采集顯示系統(tǒng)。此系統(tǒng)采用U-BLOX公司的NEO-6M模塊接收GPS定位信息,并通過LCD12864液晶顯示模塊實(shí)現(xiàn)位置、速度等信息的顯示,同時輔以按鍵操作與LED指示燈信息提示,人機(jī)交互友好,在保證了定位精度的同時,降低了系統(tǒng)成本,具備很高的性價比等優(yōu)勢。
GPS全球定位系統(tǒng)主要由衛(wèi)星星座、地面監(jiān)測和用戶設(shè)備三部分構(gòu)成。其中衛(wèi)星星座部分由繞地球軌道面的24顆衛(wèi)星構(gòu)成,主要負(fù)責(zé)向地面用戶設(shè)備發(fā)送定位信息;地面監(jiān)測部分由監(jiān)測站、主控站和注入站構(gòu)成,主要負(fù)責(zé)向空間衛(wèi)星發(fā)送指令,監(jiān)控衛(wèi)星的正常運(yùn)轉(zhuǎn);用戶設(shè)備部分則通過接收處理衛(wèi)星的定位信息,并將其反饋給用戶[3]。其定位系統(tǒng)結(jié)構(gòu)示意圖如圖1所示。
圖1 GPS全球定位系統(tǒng)結(jié)構(gòu)示意圖
假設(shè)地面用戶設(shè)備在t時刻開始接收衛(wèi)星星座部分的導(dǎo)航電文信息,則△ti(i=1,2,3,4)即為衛(wèi)星1~衛(wèi)星4導(dǎo)航電文信息到達(dá)地面用戶設(shè)備的時間,根據(jù)式(1)的4個方程式可解得地面用戶設(shè)備位置的經(jīng)緯度信息[4]:
(1)
其中,地面用戶設(shè)備的位置坐標(biāo)x,y,z和鐘差Vt0為未知量;C為3×108m/s即光速;si(i=1,2,3,4)為衛(wèi)星1、衛(wèi)星2、衛(wèi)星3、衛(wèi)星4與地面用戶設(shè)備之間的距離,由si=CΔti(i=1,2,3,4)解得;xi、yi、zi(i=1,2,3,4)為衛(wèi)星的空間位置三維坐標(biāo);Vti(i=1,2,3,4)為衛(wèi)星所安裝原子鐘與衛(wèi)星標(biāo)準(zhǔn)時間差。
本文的定位信息采集顯示系統(tǒng)總體設(shè)計如圖2所示,其主要通過串口實(shí)現(xiàn)GPS接收模塊[5]與STC89C52控制器模塊間的相互通信,并將解碼后的信息通過按鍵操作傳輸至LCD12864液晶屏內(nèi)進(jìn)行顯示。其中復(fù)位電路和振蕩電路確??刂破髂K的正常工作,電源模塊分別給各個子系統(tǒng)供電。
圖2 系統(tǒng)總體設(shè)計框圖
圖3 系統(tǒng)硬件電路圖
系統(tǒng)的硬件部分主要分為控制器模塊、GPS接收模塊、液晶顯示模塊、鍵盤與LED指示燈模塊和電源模塊5部分。
系統(tǒng)控制器模塊以STC89C52為核心,外接復(fù)位電路和振蕩電路,確保單片機(jī)的正常工作,該芯片具有價格低廉、能耗低以及開發(fā)方便快捷等優(yōu)勢。GPS接收模塊采用瑞士U-BLOX公司生產(chǎn)的NEO-6M模塊,支持多種串口通信[6]波特率,其導(dǎo)航電文采用通用的NMEA-0183協(xié)議標(biāo)準(zhǔn),便于單片機(jī)進(jìn)行解碼;液晶顯示模塊采用LCD12864,顯示信息豐富,支持多行中英文和圖片的顯示,并且具備成本優(yōu)勢;鍵盤與LED指示燈模塊內(nèi)的按鍵用于配合液晶屏模塊顯示信息的切換,方便人機(jī)交互功能的實(shí)現(xiàn),LED指示燈則用于顯示GPS接收模塊和控制器模塊的工作狀態(tài);電源模塊采用紐扣電池,并經(jīng)過多重濾波后對系統(tǒng)進(jìn)行持續(xù)穩(wěn)定的供電,確保整個系統(tǒng)正常運(yùn)行。其系統(tǒng)硬件電路如圖3所示。
本系統(tǒng)GPS接收機(jī)NEO-6M模塊輸出采用美國的NMEA-0183協(xié)議標(biāo)準(zhǔn),其輸出格式為ASCII碼字符,便于采用C/C++、C#等多種高級語言進(jìn)行解碼計算。
NMEA-0183協(xié)議標(biāo)準(zhǔn)格式為:$aaaaa,df1,df2,....[CR][LF],所有的信息均由$開始,并以換行結(jié)束。$后的aaaaa這5個字符代表了信息的基本類型,其后的各個參數(shù)間以“,”隔開。常見的NMEA信息有6大類,分別為GPGGA衛(wèi)星定位信息、GPGSA當(dāng)前衛(wèi)星信息、GPGSV可見衛(wèi)星信息、GPRMC推薦定位信息、 GPVTG地面速度信息和GPGLL定位地理信息。本系統(tǒng)軟件部分主要采用了GPGGA、GPRMC和GPGSV這三種信息類型進(jìn)行解碼計算。
圖4 軟件設(shè)計流程圖
系統(tǒng)軟件設(shè)計如圖4所示。系統(tǒng)通電開啟后,首先進(jìn)行單片機(jī)串口通信與LCD12864液晶模塊的初始化工作,待單片機(jī)通過串口接收到GPS接收模塊傳送的導(dǎo)航電文信息后,判斷信息格式是否符合NMEA-0183協(xié)議標(biāo)準(zhǔn),以確定數(shù)據(jù)是否有效。若數(shù)據(jù)有效,則將數(shù)據(jù)存儲至單片機(jī)的內(nèi)存單元,并對導(dǎo)航電文信息進(jìn)行解碼,通過接收鍵盤的輸入信息,將解碼計算后的位置、時間、速度等信息分別經(jīng)液晶顯示屏反饋至用戶,若數(shù)據(jù)無效,則繼續(xù)接收導(dǎo)航電文數(shù)據(jù)至有效。
本文通過對采用NMEA-0183協(xié)議的GPS導(dǎo)航電文信息進(jìn)行解碼,設(shè)計并實(shí)現(xiàn)了GPS定位信息的采集與顯示。通過采用U-BLOX公司生產(chǎn)的NEO-6M模塊簡化了系統(tǒng)開發(fā)過程,并且提高了實(shí)驗的成功率;采用LCD12864液晶屏可以豐富地顯示GPS所接收到的數(shù)據(jù),