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>。
一个完整的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
不同纬度的间距差是相同的,
纬度
一度合110.94公里,
一分合1.849公里,
一秒合30.8米。
纬度数值加大时,位置北移,减小时则位置南移。
北纬36°时,经度1度合 90公里 ,一分合1500米,一秒合25米。
经度数值加大时,位置东移,减小时则位置西移。
纬度每一度差不多跨过110km。赤道上每一个经度的跨度最大,差不多就是111km。越往两极跨过的距离就越小,到南北两极所有经度相交于极点。
经度是不定的,每一纬度为2000米左右。