新聞中心

EEPW首頁 > 手機(jī)與無線通信 > 設(shè)計應(yīng)用 > PDA環(huán)境下GPS信號的接收和處理方法

PDA環(huán)境下GPS信號的接收和處理方法

作者: 時間:2006-07-28 來源:網(wǎng)絡(luò) 收藏
摘要 闡述在WiTadows CE嵌入式系統(tǒng)中,利用串口實現(xiàn)通信的。首先,介紹的數(shù)據(jù)格式,并對系統(tǒng)的軟硬件及串行通信進(jìn)行描述。最后,設(shè)計模塊,詳細(xì)說明如何使用嵌入式程序語言開發(fā)串口通信程序,并給出具體步驟和部分實現(xiàn)代碼。
關(guān)鍵詞 GPS 串口通信 Windows CE

引言
3PS即全球定位系統(tǒng),主要有三大組成部分――空間星座部分、地面監(jiān)控部分和用戶設(shè)備部分。其中(GPS空間星座部分、地面監(jiān)控部分均為美國所控制;(GPS的用戶設(shè)備主要由機(jī)硬件和軟件組成。用戶通過用戶設(shè)備GPS衛(wèi)星,經(jīng)信號而獲得用戶位置、速度等信息,最終實現(xiàn)利用GPS進(jìn)行導(dǎo)航和定位的目的。目前,許多GPS廠商遵循NMEAO183協(xié)議針對掌上電腦開發(fā)許多導(dǎo)航型GPS。

GPS通過串口與PDA實現(xiàn)數(shù)據(jù)通信,利用(3PS傳來的數(shù)據(jù),可以在PDA上得到物體的實時位置、速度等參數(shù)。通過與GIS系統(tǒng)的集成,可以在PDA上實現(xiàn)數(shù)字導(dǎo)航,很直觀地在地圖上了解所處的位置等信息。下面具體說明如何實現(xiàn)GPS與PDA的串口通信。

1 串行通信
每個Pocket PC都配有一個串行端口,以便PocketPC與外部串行設(shè)備之間進(jìn)行通信。串行端口的本質(zhì)功能是作為芯片和串行設(shè)備之間的編碼轉(zhuǎn)換器。當(dāng)數(shù)據(jù)從芯片經(jīng)過串行端口發(fā)送出去時,字節(jié)數(shù)據(jù)被轉(zhuǎn)換為串行的位。在數(shù)據(jù)時,串行的位將被轉(zhuǎn)換為字節(jié)數(shù)據(jù)。Windows CE使用了通信驅(qū)動程序Comm.drv,以便使用標(biāo)準(zhǔn)的Windows API函數(shù)發(fā)送和接收數(shù)據(jù)。驅(qū)動程序通常由串口設(shè)備制造商提供,以便將硬件與Windows CE連接。在程序設(shè)計中,模擬了一個COM6串口。先使用Comm6.PoxtOpen打開串口,設(shè)置Comm控件的屬性,Timer觸發(fā)OnComm接收GPS信號的事件,實現(xiàn)GPS信號的實時接收。GPS提供串行通信接口,串行通信參數(shù)為:波特率=57 600 bps,數(shù)據(jù)位=8位,開始位=1位,停止位=1位,無奇偶校驗。

2 GPS數(shù)據(jù)格式
NMEA0183協(xié)議是美國國家海洋電子協(xié)會(NationaIMarine Electronlcs Association)制定的GPS接口協(xié)議標(biāo)準(zhǔn)。NMEA0183定義了若干代表不同含義的語句,每個語句實際上是一個ASCII碼串。這種碼直觀,易于識別和應(yīng)用。在試驗中,不需要了解NMEA0183通信協(xié)議的全部信息,僅需要從中挑選出需要的那部分定位數(shù)據(jù),其余的信息忽略掉。

GPS與掌上電腦通信時,通過串口每秒鐘發(fā)送10條數(shù)據(jù)。實際導(dǎo)航應(yīng)用讀取GPS的空間定位數(shù)據(jù)時,可以根據(jù)需要每隔幾秒鐘更新一次經(jīng)緯度和時問數(shù)據(jù),不必頻繁地更新數(shù)據(jù),否則,會浪費掌上設(shè)備有限的電能。如果和衛(wèi)星通信正常,可以接收到的數(shù)據(jù)格式如下:$GPGGA,l>,2>,3>,4>,5>,6>,7>,8>,9>,10>,u>,12>*hhcR>LF>。其具體信息如表l所列。

一個完整的NEMA0183語句是從起始符“$GPGGA”到終止符“CR>LF>”為止的一段字符串。需要掌握的信息是經(jīng)緯度、經(jīng)緯度方向、GPS定位狀態(tài)和接收信號的時間。所以當(dāng)接收到這樣一個完整的NEMA0183語句時,提取有用信息的是:先判定起始符$GPGGA的位置,從起始符開始讀人數(shù)據(jù),再通過異或校驗后的語句中尋找字符“,”,然后截取前后兩個“,”之間的字符(串)獲得所關(guān)心的數(shù)據(jù),并以回車符為一個CPS語句的終止符,得到一個完整的GPS信號。在提取出的GPS語句中,找尋經(jīng)緯度所在的逗號位置,讀出經(jīng)緯度坐標(biāo),再將經(jīng)緯度坐標(biāo)進(jìn)行度數(shù)的轉(zhuǎn)換。因為地圖的坐標(biāo)是以度數(shù)為標(biāo)準(zhǔn)的。

3 GPS信號處理
根據(jù)串行通信的原理,結(jié)合GPS數(shù)據(jù)的格式,可以設(shè)計GPS信號處理模塊以提取與(3PS位置相關(guān)的信息。由于一般用戶坐標(biāo)系均為制圖坐標(biāo)系,所以還要把從GPS信號中提取的坐標(biāo)由WGS84坐標(biāo)變換為相應(yīng)的54、80坐標(biāo)或地方坐標(biāo)。

3.1 GPS信號處理模塊設(shè)計

GPS數(shù)據(jù)處理模塊的設(shè)計方案如圖l所示。GPS接收機(jī)通過串口6將定位數(shù)據(jù)(NMEA 0183 Ver2.O)傳給Pocket PC,并將GPS數(shù)據(jù)在電子地圖上定位。在EVB中,借助Comm控件將定位數(shù)據(jù)讀進(jìn)來,接著進(jìn)行定位數(shù)據(jù)的分類,并提取出所需要的信息,同時將這些有用的信息傳給主應(yīng)用程序。主應(yīng)用程序再將GPS接收機(jī)的控制信息整理成NEMA0183 VER2.O語句,通過Comm控件的傳遞并發(fā)送到GPS接收機(jī)。這樣,P0cket。PC與GPS接收機(jī)的串口通信和GPS定位數(shù)據(jù)處理功能通過進(jìn)程外的ActiveX服務(wù)器封裝,將系統(tǒng)的實時性能通過操作系統(tǒng)的進(jìn)程管理器來實現(xiàn).從而繞過了EVB單線程的不足。

3.2 GPS信號接收和處理過程
GPS接收到位置信號后,系統(tǒng)將對GPS的定位信息進(jìn)行分解并提取出有用數(shù)據(jù)。GPS信號接收和處理的過程:通過串口6將GPS輸出的數(shù)據(jù)傳遞給PDA,PDA主程序獲得目標(biāo)當(dāng)前的位置(經(jīng)緯度坐標(biāo)、海拔),將接收機(jī)獲得的GPS數(shù)據(jù)進(jìn)行分解,從中得到目標(biāo)當(dāng)前的位置和格林威治時間(該時間加上8小時即為我國標(biāo)準(zhǔn)時),經(jīng)過相應(yīng)的坐標(biāo)轉(zhuǎn)換,再將當(dāng)前位置顯示在電子地圖上。GPS信號接收和處理如圖2所示。

3.3 GPS信號的接收程序?qū)崿F(xiàn)
系統(tǒng)采用Embedded Visual Basic中的Comm通信控件和Timer定時器。定時器設(shè)置為每隔2 s更新1次經(jīng)緯度和時間數(shù)據(jù)。每個Comm控件提供一個通信端口,實現(xiàn)數(shù)據(jù)傳輸。

開始實時接收。
Prlvate Sub mnustart()
Timerl.lrlteIval=2000
Timerl.Enabled=True
Comml.CommPort=6
Comml.Settings=″57600,N,8.1″
Comml.PortOpen=True
strsmsdata=Comml.Input ′去除串口Buffer中的暫存信息
Timerl_Timer
End Sub
Private Sub TimerLTimer()
Dim IngNextvbCrLf As Long′記錄下一個回車換行符位置
Dim IngFirstGPGGA As Long
Dim Message As String
Dim sDate As String
Dim cn
strsmsdata=Comml.Input
IngFirstGPGGA=Instr(1,strsmsclata,″$GPGGA″)
If lngFirstGPGGA Then
IngNextVbCrLf=lnstr(IngFirstGPGGA+1,
strsmsdata,vbCrLf)
Message=Mid(Strsmsdata,ingFirstGPGGA,lngNextvb
CrLf-ingFirstGPGGA)
ParseNMEAMessage Message,dblXCoord,dblYCoord,sDate
ProcessInput dblXCoord,dblYCoord
End Tf

4 GPS坐標(biāo)變換
GPS定位所得出的結(jié)果屬于WGS84坐標(biāo),而在工程上實用的大多是國家坐標(biāo)系,或者是獨立坐標(biāo)系。獨立坐標(biāo)系一般是在國家坐標(biāo)系基礎(chǔ)上形成的,因此,GPS定位結(jié)果的使用中就有與國家坐標(biāo)系間的坐標(biāo)轉(zhuǎn)換問題。一般要通過兩步轉(zhuǎn)換:首先將WGS84的大地坐標(biāo)(L,B)轉(zhuǎn)換為對應(yīng)于WGS84橢球的高斯平面坐標(biāo)(X84、Y84),然后再經(jīng)過平面坐標(biāo)轉(zhuǎn)換,將高斯平面坐標(biāo)(X84、Y84)強(qiáng)制附合到本地高斯平面坐標(biāo)系統(tǒng)。

4.1高斯換算

將GPS定位所得出的大地坐標(biāo)(L,B)轉(zhuǎn)換為高斯平面坐標(biāo)(X84、Y84)。有關(guān)的推導(dǎo)過程較復(fù)雜,本文只給出結(jié)果:



式中,ι=(L―L。)/p,ιo為投影帶中央子午線經(jīng)度,ρ=206 265s/rad;酉圈曲率半徑橢球第一偏心率e=2α-α2;輔助變量t=tgB;輔助變量η=e′cosB;橢圓第二偏心率分別為參考橢球的長短半徑);扁率α=(a-b)/a;X為赤道至緯度為B的平行圈的子午線弧長,其計算公式為



4.2平面坐標(biāo)轉(zhuǎn)換

平面坐標(biāo)轉(zhuǎn)換的目的就是將高斯平面坐標(biāo)(X84、Y84)轉(zhuǎn)換為當(dāng)?shù)貒易鴺?biāo)系或獨立坐標(biāo)系下的高斯平面坐標(biāo)。本文設(shè)計了一種平均轉(zhuǎn)軸相似轉(zhuǎn)換法。以轉(zhuǎn)換為北京54坐標(biāo)系中的(X54、Y54)為例,說明該的實現(xiàn)過程。

首先,根據(jù)公共點分別在WGS84坐標(biāo)系和北京54坐標(biāo)系中的高斯平面坐標(biāo),求出公共點在兩個坐標(biāo)系中同一邊的方位角之差△a和長度比例系數(shù)k。然后,按下式計算任一點在北京54坐標(biāo)系中的坐標(biāo)。


式中:xo,yo分別為公共點在北京54中重心坐標(biāo);x′,y′o,分別為公共點在WGS84中重心坐標(biāo);k為同一邊在北京54與WGS84中的邊長之比,當(dāng)有兩條以上公共邊時,分別求出,取平均值;△Aa為同一邊在北京54與WGS84中的方位角之差,△a=a54一a84,當(dāng)有兩個以上公共點時,分別求出,取平均值。

4.3生成空間交換格式矢量數(shù)據(jù)

野外用GPS-PDA采集調(diào)查對象的幾何數(shù)據(jù)和屬性數(shù)據(jù)。該數(shù)據(jù)是一個自定義的格式,經(jīng)處理后,將定位數(shù)據(jù)和屬性數(shù)據(jù)融合生成符合要求的空間矢量數(shù)據(jù)標(biāo)準(zhǔn)交換格式。這種標(biāo)準(zhǔn)格式的矢量數(shù)據(jù)文件由6部分組成:文件頭、要素類型參數(shù)、屬性數(shù)據(jù)結(jié)構(gòu)、幾何圖形數(shù)據(jù)注記和屬性數(shù)據(jù)。

5 應(yīng)用實例
選取聯(lián)想天璣XP208型PDA和NAVMAN GPS1010型CF卡式GPS接收設(shè)備,用自主開發(fā)的數(shù)據(jù)采集系統(tǒng)記錄GPS定位信息和屬性數(shù)據(jù)。

開機(jī)運行主程序,進(jìn)入主界面,代碼設(shè)置和參數(shù)設(shè)置完成后,進(jìn)入測量界面。首先,選擇測量模式,對于不規(guī)則地物一般采用“連續(xù)測量”模式,規(guī)則地物采用“間斷測量”模式。然后,點擊測量鍵,開始測量并記錄數(shù)據(jù)。默認(rèn)觀測時間10 s,系統(tǒng)響鈴提示,按暫停鍵結(jié)束該點觀測數(shù)據(jù)的記錄。此時,在PDA屏幕上顯示出測得的第1點。同時在遷站過程中,GPS接收機(jī)繼續(xù)保持跟蹤衛(wèi)星,在下一個待測點上,按測量鍵繼續(xù)記錄,按暫停鍵結(jié)束該點觀測數(shù)據(jù)的記錄。依次測得余下的點并顯示。如果此時輸入屬性,則點擊輸入屬性鍵后.用“筆”在該圖斑中點任意一點,彈出對話框。選擇地物要素后,自動彈出圖斑的屬性錄入界面。實地測量結(jié)果如圖3所示。


結(jié) 語
通過本設(shè)計方法,可以將GPS定位導(dǎo)航信息從GPS接收機(jī)完整接收,經(jīng)過坐標(biāo)變換后存儲為空間矢量交換格式;處理后的空間數(shù)據(jù)可以為其他應(yīng)用系統(tǒng),如各種GIS、RS、ITS(Intelligent Transportatl011 System)等使用,實現(xiàn)在車載導(dǎo)航、智能交通、野外勘探、旅游等方面的應(yīng)用。本文所講述的例子是在有線串口上實現(xiàn)的。在實際應(yīng)用過程中,可以采用其他接口方式來實現(xiàn)GPS與PDA的互連,比如紅外接口、藍(lán)牙技術(shù)等。通過適當(dāng)?shù)匦薷?,可以方便地?yīng)用到其中。



評論


相關(guān)推薦

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

關(guān)閉