GPS数据格式及说明
我用的是UBLOX的GPS模块,GPS输出的是NMEA-0183数据格式,UBLOX的数据输出格式可以再UBX和NEMA格式中任选
GPS有效时发的一组数据是:
$GPGSV,3,1,12,18,72,335,38,21,41,211,27,24,19,179,23,09,76,068,28*77
$GPGSV,3,2,12,22,35,313,31,29,11,070,27,26,19,065,32,12,,,21*49
$GPGSV,3,3,12,14,16,271,,05,16,159,,30,05,171,,32,03,308,*7B
$GPGGA,010101.130,3606.6834,N,12021.7778,E,1,07,1.2,32.00,M,,,,*0C
$GPGSA,A,3,09,18,21,22,24,26,29,,,,,,2.0,1.2,1.6*3E
$GPRMC,010101.130,A,3606.6834,N,12021.7778,E,0.0,238.3,010807,,,A*6C
GPS无效时发的一组数据是:
$GPGSV,3,1,12,01,64,334,22,31,56,301,29,14,70,092,,32,50,218,*71
$GPGSV,3,2,12,30,48,050,,05,30,046,,07,27,120,,22,26,184,*7D
$GPGSV,3,3,12,06,26,114,,16,19,211,,12,12,041,,20,08,321,*7E
$GPGGA,011035.002,3606.6971,N,12021.8015,E,0,00,50.0,83.72,M,,,,*37
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPRMC,011035.002,V,3606.6971,N,12021.8015,E,,,240907,,,N*7C
GPS复位时发的一组数据(只取到了$GPRMC这组):
$GPRMC,011035.002,V,3606.6971,N,12021.8015,E,,,,,,N*7C
我取得是$GPRMC这组数据,个人认为这组数据提供信息是比较详细的,而且在程序代码里好提取。
格式为:
$GPRMC,010101.130, A, 3606.6834, N, 12021.7778, E, 0.0, 238.3, 010807,,,A*6C
$GPRMC, <1>, <2>, <3>, <4>, <5>, <6>, <7>, <8>, <9>,
<1> 当前位置的格林尼治时间,即世界时间,与北京时间差8个小时,格式为hhmmss.ms
<2> 状态, A 为有效位置, V为非有效接收警告,即当前天线视野上方的卫星个数少于3颗。
<3> 纬度, 格式为ddmm.mmmm
<4> 标明南北半球, N 为北半球、S为南半球
<5> 径度,格式为dddmm.mmmm
<6> 标明东西半球,E为东半球、W为西半球
<7> 地面上的速度,范围为0.0到999.9
<8> 方位角,范围为000.0到 359.9 度
<9> 日期, 格式为ddmmyy
注意几点:
1、当GPS数据有效时第17位(一般情况下,程序里最好是找第二个逗号在取下一位判断)为“A”,无效时为“V”;
2、GPS有效时,当速度为0时显示0.0(两位数),当速度不为0时小数点前面数据根据情况变化,最大为三位,此处速度单位为节(海里),需要做处理才能得到我们习惯的单位(公里/小时);
3、GPS无效时,除了第17位显示V以外,不输入速度,角度数据;
4、当给GPS复位时第17位为V,不输出速度,角度,时间数据。
5、在NMEA标准格式中,空字段表示此字段的数据不可用,通常用两个ASCII码的逗号表示,如“,,”(十六进制的2C2C),如果是一条消息的最后一个字段,则为一个逗号紧跟一个校验和符号“*”(十六进制2A)或者是结束符号“<CR><LF>”(十六进制为0D0A)。【注意:ASCII码的空字符(十六进制为00)不可用于空字段。】 |