新聞中心

EEPW首頁 > 汽車電子 > 設(shè)計應(yīng)用 > 基于單片機(jī)的GPS信息處理系統(tǒng)

基于單片機(jī)的GPS信息處理系統(tǒng)

——
作者: 時間:2007-12-26 來源: 收藏

  (Global Positioning System,)是美國從20世紀(jì)70年代開始研制,于1994年全面建成,以接收導(dǎo)航衛(wèi)星信號為基礎(chǔ)的非自主式導(dǎo)航與定位系統(tǒng)。他以全球覆蓋、全天候、連續(xù)實時提供高精度的三維位置、三維速度和時間信息的能力,很好地解決了人類導(dǎo)航和定位問題。隨著的不斷改進(jìn),軟硬件的不斷完善,應(yīng)用領(lǐng)域正在不斷的開拓,無論在軍事還是民用領(lǐng)域都得到廣泛地應(yīng)用和發(fā)展。實際應(yīng)用中,接收機(jī)收到軌道衛(wèi)星的信號后,經(jīng)過解調(diào)輸出的,是標(biāo)準(zhǔn)格式的定位數(shù)據(jù),該數(shù)據(jù)必須經(jīng)過進(jìn)一步處理,才能在用戶數(shù)據(jù)終端上顯示?;?a class="contentlabel" href="http://2s4d.com/news/listbylabel/label/單片機(jī)">單片機(jī)的GPS信息處理硬件結(jié)構(gòu)框圖如圖1所示。

  

  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ù)項的意義如下:

  

 ?、僬Z句類型:$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信息由AT89C2051的UART完成。GPGLL為55個字符,GPZDA為38個字符??紤]到內(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提供的位置、時聞信息與用戶的可視信息同步。主程序流程圖如圖2所示。

  

  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è)計過程中閏年、大月小月需要分別處理。

{{分頁}}

  帶時差修正的GPS信息處理流程圖如圖3所示。圖中,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)用。

單片機(jī)相關(guān)文章:單片機(jī)教程


單片機(jī)相關(guān)文章:單片機(jī)視頻教程


單片機(jī)相關(guān)文章:單片機(jī)工作原理


負(fù)離子發(fā)生器相關(guān)文章:負(fù)離子發(fā)生器原理
離子色譜儀相關(guān)文章:離子色譜儀原理


評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉