全球定位系統(tǒng)(Global PositiONing System,,GPS)是美國從20世紀(jì)70年代開始研制,,于1994年全面建成,以接收導(dǎo)航衛(wèi)星信號為基礎(chǔ)的非自主式導(dǎo)航與定位系統(tǒng),。他以全球覆蓋,、全天候、連續(xù)實時提供高精度的三維位置、三維速度和時間信息的能力,,很好地解決了人類導(dǎo)航和定位問題,。隨著全球定位系統(tǒng)的不斷改進(jìn),,軟硬件的不斷完善,,應(yīng)用領(lǐng)域正在不斷的開拓,無論在軍事還是民用領(lǐng)域都得到廣泛地應(yīng)用和發(fā)展,。實際應(yīng)用中,,GPS接收機(jī)收到軌道衛(wèi)星的信號后,經(jīng)過解調(diào)輸出的,,是標(biāo)準(zhǔn)格式的GPS定位數(shù)據(jù),,該數(shù)據(jù)必須經(jīng)過進(jìn)一步處理,才能在用戶數(shù)據(jù)終端上顯示,。
1 GPS接收機(jī)輸出數(shù)據(jù)格式
NMEA-0183是美國國家海洋電子協(xié)會制定的用于航海儀器數(shù)據(jù)異步通信的通用接口標(biāo)準(zhǔn),,他是由ASCII字符組成的字符串。GPS接收機(jī)以NMEA-0183標(biāo)準(zhǔn)格式輸出GPS定位數(shù)據(jù),,數(shù)據(jù)終端設(shè)備需要實時從GPS輸出的NMEA0183數(shù)據(jù)流中得到位置信息,、時間信息。GPS接收機(jī)提供了多種語句格式,,有GPGGA,,GPGSA,GPGSV,,GPRMC,,GPZDA和GPGLL等。用戶可以根據(jù)需要選擇一種或多種語句輸出,。本系統(tǒng)選擇接收并解析GPGLL和GPZDA,,分別獲取地理位置信息和UTC時間信息(含日期),UTC時間通過時差修正得到本地時間信息,。
NMEA0183語句包含多個數(shù)據(jù)項,,數(shù)據(jù)項之間以逗號分隔,語句以回車(CR)和換行(LF)符結(jié)尾,。
GPZDA語句格式如下:
上述語句中,,各數(shù)據(jù)項的意義如下:
①語句類型:$GPZDA,;②UTC時間:14523.62,;③UTC日:01~31;④UTC月:01~12,;⑤UTC:年2001,;⑥本地時差:10時;⑦本地時差:34分;⑧校驗和:6E,。其中校驗和包括$符,。
GPGLL語句格式如下:
上述語句中,各數(shù)據(jù)項的意義如下:
?、僬Z句類型:$GPGLL,;②緯度值;③北緯,;④經(jīng)度值,;⑤西經(jīng);⑥UTC時間,,時時分分秒秒.秒秒秒格式,;⑦狀態(tài),A=定位,,V=未定位,;⑧校驗和:2C。其中校驗和包括$符,。
接收上述GPS信息由AT89C20單片機(jī)" title="51單片機(jī)" target="_blank">51單片機(jī)的UART完成,。GPGLL為55個字符,GPZDA為38個字符,??紤]到單片機(jī)內(nèi)部RAM單元有限,為適應(yīng)GPS同時輸出的數(shù)據(jù)句型比較多,,數(shù)據(jù)量比較大的情況,,因此,需要對句型進(jìn)行選擇性接收,。
2 主程序設(shè)計
主程序主要包括以下幾個部分:初始化,、接收GPS數(shù)據(jù)、GPS信息處理,、超時處理判斷等,。GPS數(shù)據(jù)采用中斷方式接收,數(shù)據(jù)處理由獨立子程序完成,,主要包括時間,、位置信息的提取。數(shù)據(jù)接收處理完畢后,,傳送到LCD顯示,。超時判斷時間間隔設(shè)定與GPS數(shù)據(jù)更新速度匹配即可,其目的是保證GPS提供的位置,、時聞信息與用戶的可視信息同步,。
GPS接收機(jī)通常采用RS 232C/RS 485/422標(biāo)準(zhǔn):傳輸速率可以設(shè)定,,有4 800 b/s等,數(shù)據(jù)位:8 b,,停止位:1 b,。
對于AT89C2051單片機(jī),選擇定時器1作為波特率發(fā)生器,,波特率取決于溢出速率,。波特率計算公式如下:
系統(tǒng)時鐘取11.059 2 MHz,則對于波特率4 800 b/s,,定時器1重載值為FAH,。
3 數(shù)據(jù)處理子程序設(shè)計
接收緩沖區(qū)存儲的內(nèi)容是ASCII碼(字符),,因此在處理成數(shù)據(jù)的時候要進(jìn)行轉(zhuǎn)換,。
對于時間數(shù)據(jù),處理成壓縮BCD格式,,如對于以下的GPZDA信息:
$GPZDA,,114523,18,,11,,2006,10,,34*6E
經(jīng)處理后,,得到如下信息:11 H(時),45 H(分),,23 H(秒),,18 H(日),11 H(月),,20 H(世紀(jì))-06 H(年代),,10 H(時差)。
GPS數(shù)據(jù)處理子程序首先將接收的時間數(shù)據(jù)轉(zhuǎn)換為上述BCD數(shù)據(jù),。根據(jù)GPZDA得到UTC時間和本地時差后,,可以修正為本地時間輸出。時間修正要考慮到進(jìn)位和借位問題,。在程序設(shè)計過程中閏年,、大月小月需要分別處理。
Hour表示UTC時,,Min表示UTC分,,Sec表示UTC秒,Day表示UTC日,,Mon表示UTC月,,YearH表示UTC世紀(jì),YearL表示UTC年代;D_Hour和D_Min表示時差的時和分,。
常用GPS接收機(jī)輸出NMEA0183數(shù)據(jù)有V2.1,,V2.0和V1.5三種版本,其中V2.1版本時差修正到分鐘,,而V2.0和V1.5只到小時,。為滿足程序通用,在實際信息解析時以V2.1為準(zhǔn),,當(dāng)接收的信息為V2.0和V1.5時,,只需將上述程序中D_min置為0即可。
4 結(jié)語
GPS信息處理系統(tǒng)解決了GPS標(biāo)準(zhǔn)數(shù)據(jù)式的解讀,、信息的提取,、轉(zhuǎn)換和顯示問題。另外,,他具有時差修正功能,,便于全球各地用戶使用。以AT89C2051單片機(jī)為控制核心,,LCD和鍵盤作為人機(jī)界面,,以較低的成本滿足了用戶的一般需求。目前,,該系統(tǒng)已在船用導(dǎo)航系統(tǒng)中得到了成功應(yīng)用,。