《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于單片機(jī)的GPS信息處理系統(tǒng)
基于單片機(jī)的GPS信息處理系統(tǒng)
摘要: 全球定位系統(tǒng)(GlobalPositiONingSystem,GPS)是美國從20世紀(jì)70年代開始研制,于1994年全面建成,以接收導(dǎo)航衛(wèi)星信號為基礎(chǔ)的非自主式導(dǎo)航與定位系統(tǒng)。他以全球覆蓋、全天候、連續(xù)實(shí)時(shí)提供高精度的三維位置、三維速
關(guān)鍵詞: 51單片機(jī) GPS 單片機(jī)
Abstract:
Key words :

全球定位系統(tǒng)(Global PositiONing System,GPS)是美國從20世紀(jì)70年代開始研制,于1994年全面建成,以接收導(dǎo)航衛(wèi)星信號為基礎(chǔ)的非自主式導(dǎo)航與定位系統(tǒng)。他以全球覆蓋、全天候、連續(xù)實(shí)時(shí)提供高精度的三維位置、三維速度和時(shí)間信息的能力,很好地解決了人類導(dǎo)航和定位問題。隨著全球定位系統(tǒng)的不斷改進(jìn),軟硬件的不斷完善,應(yīng)用領(lǐng)域正在不斷的開拓,無論在軍事還是民用領(lǐng)域都得到廣泛地應(yīng)用和發(fā)展。實(shí)際應(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è)備需要實(shí)時(shí)從GPS輸出的NMEA0183數(shù)據(jù)流中得到位置信息、時(shí)間信息。GPS接收機(jī)提供了多種語句格式,有GPGGA,GPGSA,GPGSV,GPRMC,GPZDA和GPGLL等。用戶可以根據(jù)需要選擇一種或多種語句輸出。本系統(tǒng)選擇接收并解析GPGLL和GPZDA,分別獲取地理位置信息和UTC時(shí)間信息(含日期),UTC時(shí)間通過時(shí)差修正得到本地時(shí)間信息。

  NMEA0183語句包含多個(gè)數(shù)據(jù)項(xiàng),數(shù)據(jù)項(xiàng)之間以逗號分隔,語句以回車(CR)和換行(LF)符結(jié)尾。

GPZDA語句格式如下:

 

上述語句中,各數(shù)據(jù)項(xiàng)的意義如下:

 

 ?、僬Z句類型:$GPZDA;②UTC時(shí)間:14523.62;③UTC日:01~31;④UTC月:01~12;⑤UTC:年2001;⑥本地時(shí)差:10時(shí);⑦本地時(shí)差:34分;⑧校驗(yàn)和:6E。其中校驗(yàn)和包括$符。

GPGLL語句格式如下:

上述語句中,各數(shù)據(jù)項(xiàng)的意義如下:

 ?、僬Z句類型:$GPGLL;②緯度值;③北緯;④經(jīng)度值;⑤西經(jīng);⑥UTC時(shí)間,時(shí)時(shí)分分秒秒.秒秒秒格式;⑦狀態(tài),A=定位,V=未定位;⑧校驗(yàn)和:2C。其中校驗(yàn)和包括$符。

  接收上述GPS信息由AT89C20單片機(jī)" title="51單片機(jī)" target="_blank">51單片機(jī)的UART完成。GPGLL為55個(gè)字符,GPZDA為38個(gè)字符??紤]到單片機(jī)內(nèi)部RAM單元有限,為適應(yīng)GPS同時(shí)輸出的數(shù)據(jù)句型比較多,數(shù)據(jù)量比較大的情況,因此,需要對句型進(jìn)行選擇性接收。
2 主程序設(shè)計(jì)

  主程序主要包括以下幾個(gè)部分:初始化、接收GPS數(shù)據(jù)、GPS信息處理、超時(shí)處理判斷等。GPS數(shù)據(jù)采用中斷方式接收,數(shù)據(jù)處理由獨(dú)立子程序完成,主要包括時(shí)間、位置信息的提取。數(shù)據(jù)接收處理完畢后,傳送到LCD顯示。超時(shí)判斷時(shí)間間隔設(shè)定與GPS數(shù)據(jù)更新速度匹配即可,其目的是保證GPS提供的位置、時(shí)聞信息與用戶的可視信息同步。

  GPS接收機(jī)通常采用RS 232C/RS 485/422標(biāo)準(zhǔn):傳輸速率可以設(shè)定,有4 800 b/s等,數(shù)據(jù)位:8 b,停止位:1 b。

  對于AT89C2051單片機(jī),選擇定時(shí)器1作為波特率發(fā)生器,波特率取決于溢出速率。波特率計(jì)算公式如下:

 

  系統(tǒng)時(shí)鐘取11.059 2 MHz,則對于波特率4 800 b/s,定時(shí)器1重載值為FAH。

3 數(shù)據(jù)處理子程序設(shè)計(jì)

  接收緩沖區(qū)存儲的內(nèi)容是ASCII碼(字符),因此在處理成數(shù)據(jù)的時(shí)候要進(jìn)行轉(zhuǎn)換。

  對于時(shí)間數(shù)據(jù),處理成壓縮BCD格式,如對于以下的GPZDA信息:

  $GPZDA,114523,18,11,2006,10,34*6E

  經(jīng)處理后,得到如下信息:11 H(時(shí)),45 H(分),23 H(秒),18 H(日),11 H(月),20 H(世紀(jì))-06 H(年代),10 H(時(shí)差)。

  GPS數(shù)據(jù)處理子程序首先將接收的時(shí)間數(shù)據(jù)轉(zhuǎn)換為上述BCD數(shù)據(jù)。根據(jù)GPZDA得到UTC時(shí)間和本地時(shí)差后,可以修正為本地時(shí)間輸出。時(shí)間修正要考慮到進(jìn)位和借位問題。在程序設(shè)計(jì)過程中閏年、大月小月需要分別處理。

  Hour表示UTC時(shí),Min表示UTC分,Sec表示UTC秒,Day表示UTC日,Mon表示UTC月,YearH表示UTC世紀(jì),YearL表示UTC年代;D_Hour和D_Min表示時(shí)差的時(shí)和分。

  常用GPS接收機(jī)輸出NMEA0183數(shù)據(jù)有V2.1,V2.0和V1.5三種版本,其中V2.1版本時(shí)差修正到分鐘,而V2.0和V1.5只到小時(shí)。為滿足程序通用,在實(shí)際信息解析時(shí)以V2.1為準(zhǔn),當(dāng)接收的信息為V2.0和V1.5時(shí),只需將上述程序中D_min置為0即可。

4 結(jié)語

  GPS信息處理系統(tǒng)解決了GPS標(biāo)準(zhǔn)數(shù)據(jù)式的解讀、信息的提取、轉(zhuǎn)換和顯示問題。另外,他具有時(shí)差修正功能,便于全球各地用戶使用。以AT89C2051單片機(jī)為控制核心,LCD和鍵盤作為人機(jī)界面,以較低的成本滿足了用戶的一般需求。目前,該系統(tǒng)已在船用導(dǎo)航系統(tǒng)中得到了成功應(yīng)用。

 

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。