GPS數據讀取與處理
GPS模塊簡介
SiRF芯片在2004年發布的最新的第三代芯片SiRFstar III(GSW 3.0/3.1),使得民用GPS芯片在性能方面登上了一個頂峰,靈敏度比以前的大為提升。這一芯片通過采用20萬次/頻率的相關器提高了靈敏度,冷開機/暖開機/熱開機的時間分別達到42s/38s/8s,可以同時追蹤20個道。是目前市場上應用最為廣泛,同時性價比也非常高的一款芯片,因此在本設計中同樣采用以此芯片為核心的GPS模塊。
GPS模塊的數據格式
對GPS模塊的數據處理本質上還是串口通信程序設計,只是GPS模塊的輸出遵循固定的格式,通過字符串檢索查找即可從模塊發送的數據中要的數據,常用的GPS模塊大多采用NMEA-0183 協議。NMEA-0183 是美國國家海洋電子協會(National Marine Electronics Association)定的標準規格,這一標準制訂所有航海電子儀器間的通訊標準,其中包含傳輸資料的格式以及傳輸資料的通訊協議。
以下是一組正常的GPS 數據
$GPGGA,082006.000,3852.9276,N,11527.4283,E,1,08,1.0,20.6,M,,,,0000*35
$GPRMC,082006.000,A,3852.9276,N,11527.4283,E,0.00,0.0,261009,,*38
$GPVTG,0.0,T,,M,0.00,N,0.0,K*50
下面分別對每組數據的含義進行分析。
GPS 固定數據輸出語句($GPGGA),這是一幀GPS 定位的主要數據,也是使用最廣的數據。為了便于理解,下面舉例說明$GPGGA語句各部含義。
例:$GPGGA,082006.000,3852.9276,N,11527.4283,E,1,08,1.0,20.6,M,,,,0000*35
其標準格式為:
$GPGGA,(1),(2),(3),(4),(5),(6),(7),(8),(9),M,(10),M,(11),(12)*hh(CR)(LF)
各部分所對應的含義為:
(1) 定位UTC 時間:08 時20 分06 秒
(2) 緯度(格式ddmm.mmmm:即dd 度,mm.mmmm 分);
(3) N/S(北緯或南緯):北緯38 度52.9276 分;
(4) 經度(格式dddmm.mmmm:即ddd 度,mm.mmmm 分);
(5) E/W(東經或西經):東經115 度27.4283 分;
(6) 質量因子(0=沒有定位,1=實時GPS,2=差分GPS):1=實時GPS;
(7) 可使用的衛星數(0~8):可使用的衛星數=08;
(8) 水平精度因子(1.0~99.9);水平精度因子=1.0;
(9) 天線高程(海平面,-9999.9~99999.9,單位:m);天線高程=20.6m);
(10) 大地橢球面相對海平面的高度(-999.9~9999.9,單位:m):無;
(11) 差分GPS 數據年齡,實時GPS 時無:無;
(12) 差分基準站號(0000~1023),實時GPS 時無:無;
*總和校驗域;hh 總和校驗數:35(CR)(LF)回車,換行。
GPRMC(建議使用最小GPS 數據格式)
$GPRMC,082006.000,A,3852.9276,N,11527.4283,E,0.00,0.0,261009,,*38
$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11><CR><LF>
|