GPS是全球衛星定位系統的簡稱,對于開發人員,最想知道的是GPS的數據輸出,這里舉例如下:
GPS 數據格式
GPRMC(建議使用最小GPS數據格式)
$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11><CR><LF>
1) 標準定位時間(UTC time)格式:時時分分秒秒.秒秒秒(hhmmss.sss)。
2) 定位狀態,A = 數據可用,V = 數據不可用。
3) 緯度,格式:度度分分.分分分分(ddmm.mmmm)。
4) 緯度區分,北半球(N)或南半球(S)。
5) 經度,格式:度度分分.分分分分。
6) 經度區分,東(E)半球或西(W)半球。
7) 相對位移速度, 0.0 至 1851.8 knots
8) 相對位移方向,000.0 至 359.9度。實際值。
9) 日期,格式:日日月月年年(ddmmyy)。
10) 磁極變量,000.0 至180.0。
11) 度數。
12) Checksum.(檢查位)
GPGSV(所示衛星格式)
$GPGSV, <1>,<2>,<3>,<4>,<5>,<6>,<7>,?<4>,<5>,<6>,<7>,<8><CR><LF>
1) 天空中收到訊號的衛星總數。
2) 定位的衛星總數。
3) 天空中的衛星總數,00 至 12。
4) 衛星編號, 01 至 32。
5) 衛星仰角, OO 至 90 度。
6) 衛星方位角, OOO 至 359 度。實際值。
7) 訊號噪聲比(C/No), 00 至 99 dB;無表未接收到訊號。
8) Checksum.(檢查位).
第<4>,<5>,<6>,<7>項個別衛星會重復出現,每行最多有四顆衛星。其余衛星信息會于次一行出現,若未使用,這些字段會空白。
GPGSA(GPS精度指針及使用衛星格式)
$GPGSA,<1>,<2>,<3>,<3>,,,,,<3>,<3>,<3>,<4>,<5>,<6>,<7><CR><LF>
1)模式 2:M = 手動, A = 自動。
2)模式 1:定位型式 1 = 未定位, 2 = 二維定位, 3 = 三維定位。
3) PRN 數字:01 至 32 表天空使用中的衛星編號,最多可接收12顆衛星信息。
4) PDOP-位置精度稀釋 0.5 至 99.9.
5) HDOP-水平精度稀釋 0.5 to 99.9.
6) VDOP-垂直精度稀釋 0.5 to 99.9.
7) Checksum.(檢查位).
GPS固定數據輸出語句($GPGGA)
這是一幀GPS定位的主要數據,也是使用最廣的數據。為了便于理解,下面舉例說明$GPGGA語句各部分的含義。例1是用GN-77N和筆者開發的軟硬件接口,在筆者所在地接收到的$GPGGA語句的內容。
例1:$GPGGA,050901,3931.4449,N,11643.5123,E,1,07,1.4,76.2,M,-7.0,M,,*65
其標準格式為:$GPGGA,(1),(2),(3),(4),(5),(6),(7),(8),(9),M,(10),M,(11),(12)*hh(CR)(LF)
各部分所對應的含義為:
(1)定位UTC時間:05時09分01秒
(2)緯度(格式ddmm.mmmm:即dd度,mm.mmmm分);
(3)N/S(北緯或南緯):北緯39度31.4449分;
(4)經度(格式dddmm.mmmm:即ddd度,mm.mmmm分);
(5)E/W(東經或西經):東經116度43.5123分;
(6)質量因子(0=沒有定位,1=實時GPS,2=差分GPS):1=實時GPS;
(7)可使用的衛星數(0~8):可使用的衛星數=07;
(8)水平精度因子(1.0~99.9);水平精度因子=1.4;
(9)天線高程(海平面,-9999.9~99999.9,單位:m);天線高程=76.2m);
(10)大地橢球面相對海平面的高度(-999.9~9999.9,單位:m):-7.0m;
(11)差分GPS數據年齡,實時GPS時無:無;
(12)差分基準站號(0000~1023),實時GPS時無:無;
*總和校驗域;
hh 總和校驗數:65
(CR)(LF)回車,換行。
b.可視衛星狀態輸出語句($GPGSV)
例2:$GPGSV,2,1,08,06,33,240,45,10,36,074,47,16,21,078,44,17,36,313,42*78
標準格式: $GPGSV,(1),(2),(3),(4),(5),(6),(7),…(4),(5),(6),(7)*hh(CR)(LF)
各部分含義為:
(1)總的GSV語句電文數;2;
(2)當前GSV語句號:1;
(3)可視衛星總數:08;
(4)衛星號:06;
(5)仰角(00~90度):33度;
(6)方位角(000~359度):240度;
(7)信噪比(00~99dB):45dB(后面依次為第10,16,17號衛星的信息);
*總和校驗域;
hh 總和校驗數:78;
(CR)(LF)回車,換行。
注:每條語句最多包括四顆衛星的信息,每顆衛星的信息有四個數據項,即:
(4)-衛星號,(5)-仰角,(6)-方位角,(7)-信噪比。
GPGSV(所示衛星格式)
$GPGSV, <1>,<2>,<3>,<4>,<5>,<6>,<7>,?<4>,<5>,<6>,<7>,<8><CR><LF>
1) 天空中收到訊號的衛星總數。
2) 定位的衛星總數。
3) 天空中的衛星總數,00 至 12。
4) 衛星編號, 01 至 32。
5) 衛星仰角, OO 至 90 度。
6) 衛星方位角, OOO 至 359 度。實際值。
7) 訊號噪聲比(C/No), 00 至 99 dB;無表未接收到訊號。
8) Checksum.(檢查位).
第<4>,<5>,<6>,<7>項個別衛星會重復出現,每行最多有四顆衛星。其余衛星信息會于次一行出現,若未使用,這些字段會空白。
“ 1 串行通信
每
個Pocket PC都配有一個串行端口,以便PocketPC與外部串行設備之間進行通信。串行端口的本質功能是作為芯片和串行設備之間的編碼轉換器。
當數據從芯片經過串行端口發送出去時,字節數據被轉換為串行的位。在接收數據時,串行的位將被轉換為字節數據。Windows CE使用了通信驅動程序
Comm.drv,以便使用標準的Windows API函數發送和接收數據。驅動程序通常由串口設備制造商提供,以便將硬件與Windows CE連
接。在程序設計中,模擬了一個COM6串口。先使用Comm6.PoxtOpen打開串口,設置Comm控件的屬性,Timer觸發OnComm接收
GPS信號的事件,實現GPS信號的實時接收。GPS提供串行通信接口,串行通信參數為:波特率=57 600 bps,數據位=8位,開始位=1位,停
止位=1位,無奇偶校驗。
2 GPS數據格式
NMEA0183協議是美國國家海洋電子協
會(NationaIMarine Electronlcs Association)制定的GPS接口協議標準。NMEA0183定義了若干代表不同含
義的語句,每個語句實際上是一個ASCII碼串。這種碼直觀,易于識別和應用。在試驗中,不需要了解NMEA0183通信協議的全部信息,僅需要從中挑選
出需要的那部分定位數據,其余的信息忽略掉。
GPS與掌上電腦通信時,通過串口每秒鐘發送10條數據。實際導航應用讀取GPS
的空間定位數據時,可以根據需要每隔幾秒鐘更新一次經緯度和時問數據,不必頻繁地更新數據,否則,會浪費掌上設備有限的電能。如果和衛星通信正常,可以接
收到的數據格式如
下:$GPGGA,<l>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<u>,<12>*hh<cR><LF>。
其具體信息如表l所列。
一
個完整的NEMA0183語句是從起始符“$GPGGA”到終止符“<CR><LF>”為止的一段字符串。需要掌握的信息是經緯
度、經緯度方向、GPS定位狀態和接收信號的時間。所以當接收到這樣一個完整的NEMA0183語句時,提取有用信息的方法是:先判定起始符$GPGGA
的位置,從起始符開始讀人數據,再通過異或校驗后的語句中尋找字符“,”,然后截取前后兩個“,”之間的字符(串)獲得所關心的數據,并以回車符為一個
CPS語句的終止符,得到一個完整的GPS信號。在提取出的GPS語句中,找尋經緯度所在的逗號位置,讀出經緯度坐標,再將經緯度坐標進行度數的轉換。因
為地圖的坐標是以度數為標準的。”
GPGSA(GPS精度指針及使用衛星格式)
$GPGSA,<1>,<2>,<3>,<3>,,,,,<3>,<3>,<3>,<4>,<5>,<6>,<7><CR><LF>
1)模式 2:M = 手動, A = 自動。
2)模式 1:定位型式 1 = 未定位, 2 = 二維定位, 3 = 三維定位。
3) PRN 數字:01 至 32 表天空使用中的衛星編號,最多可接收12顆衛星信息。
4) PDOP-位置精度稀釋 0.5 至 99.9.
5) HDOP-水平精度稀釋 0.5 to 99.9.
6) VDOP-垂直精度稀釋 0.5 to 99.9.
7) Checksum.(檢查位).
$GPGGA,160000.000,3202.6258,N,12135.8964,E,0,00,0.0,73.2,M,,,,0000*32
$GPGSA,A,1,,,,,,,,,,,,,0.0,0.0,0.0*30
$GPGSV,3,1,12,22,71,209,00,30,64,109,00,14,54,337,00,05,50,053,00*79
$GPGSV,3,2,12,18,36,161,00,25,25,259,00,01,21,306,00,09,12,054,00*73
$GPGSV,3,3,12,22,71,209,00,22,71,209,00,22,71,209,00,22,71,209,00*7A
$GPRMC,160000.000,V,3202.6258,N,12135.8964,E,0.00,0.00,110206,,*1A
$GPGGA,160001.000,3202.6258,N,12135.8964,E,0,00,0.0,73.2,M,,,,0000*33
$GPGSA,A,1,,,,,,,,,,,,,0.0,0.0,0.0*30
$GPGSV,3,1,12,22,71,209,00,30,64,109,00,14,54,337,00,05,50,053,00*79
$GPGSV,3,2,12,18,36,161,00,25,25,259,00,01,21,306,00,09,12,054,00*73
$GPGSV,3,3,12,22,71,209,00,22,71,209,00,22,71,209,00,22,71,209,00*7A
$GPRMC,160001.000,V,3202.6258,N,12135.8964,E,0.00,0.00,110206,,*1B
$GPGGA,160002.000,3202.6258,N,12135.8964,E,0,00,0.0,73.2,M,,,,0000*30
$GPRMC,062500.000,A,3853.4663,N,11527.4923,E,0.00,,161206,,,A*75
$GPGGA,062501.000,3853.4663,N,11527.4923,E,1,06,1.4,74.5,M,-10.3,M,,0000*40
$GPGSA,A,3,08,17,20,28,11,04,,,,,,,2.3,1.4,1.9*3C
$GPRMC,062501.000,A,3853.4663,N,11527.4923,E,0.00,,161206,,,A*74
$GPGGA,062502.000,3853.4663,N,11527.4923,E,1,06,1.4,74.5,M,-10.3,M,,0000*43
$GPGSA,A,3,08,17,20,28,11,04,,,,,,,2.3,1.4,1.9*3C
$GPRMC,062502.000,A,3853.4663,N,11527.4923,E,0.00,,161206,,,A*77
$GPGGA,062503.000,3853.4663,N,11527.4923,E,1,06,1.4,74.5,M,-10.3,M,,0000*42
$GPGSA,A,3,08,17,20,28,11,04,,,,,,,2.3,1.4,1.9*3C
$GPRMC,062503.000,A,3853.4663,N,11527.4923,E,0.00,,161206,,,A*76
$GPGGA,062504.000,3853.4663,N,11527.4923,E,1,06,1.4,74.5,M,-10.3,M,,0000*45
$GPGSA,A,3,08,17,20,28,11,04,,,,,,,2.3,1.4,1.9*3C
$GPRMC,062504.000,A,3853.4663,N,11527.4923,E,0.00,,161206,,,A*71
$GPGGA,062505.000,3853.4663,N,11527.4923,E,1,06,1.4,74.5,M,-10.3,M,,0000*44
$GPGSA,A,3,08,17,20,28,11,04,,,,,,,2.3,1.4,1.9*3C
$GPGSV,2,1,07,28,72,179,33,17,55,313,29,20,46,101,37,11,32,055,33*74
$GPGSV,2,2,07,04,31,234,39,09,09