GPS报文格式说明-NMEA

简介

NMEA是现在GNSS(Global Navigation Satellite System)导航设备用作输出的统一标准,它有几种不同的格式,每种都是独立相关的ACSII字节流,使用,隔开。常用的格式有 GGAGLLGSAGSVRMCVTGZDAGST
– 下面内容大多来源于L76产品手册,可能与标准NMEA有些许出入。
– 移远L76-GNSS定位模组产品页
Python解析GPS数据流主要依赖这几个开源库:
pynmea2
micropyGPS – 用于 微型嵌入式microPython


$GNGGA,093100.000,3151.10397,N,11707.63497,E,1,11,2.6,214.7,M,-5.0,M,,*50
$GNGLL,3151.10397,N,11707.63497,E,093100.000,A,A*49
$GNGSA,A,3,02,05,12,20,25,,,,,,,,3.9,2.6,2.9,1*35
$GNGSA,A,3,10,13,28,33,38,41,,,,,,,3.9,2.6,2.9,4*36
$GPGSV,3,1,10,02,60,349,39,05,38,247,41,06,49,057,27,12,30,263,31,0*65
$GPGSV,3,2,10,13,,,24,17,17,143,,19,39,141,29,20,21,248,39,0*5F
$GPGSV,3,3,10,25,15,299,44,195,,,26,0*6C
$BDGSV,3,1,09,05,,,35,10,37,218,28,13,52,318,41,27,,,36,0*72
$BDGSV,3,2,09,28,48,323,46,33,73,210,33,38,61,342,42,40,,,37,0*42
$BDGSV,3,3,09,41,20,218,40,0*45
$GNRMC,093100.000,A,3151.10397,N,11707.63497,E,0.00,0.00,280521,,,A,V*08
$GNVTG,0.00,T,,M,0.00,N,0.00,K,A*23
$GNZDA,093100.000,28,05,2021,00,00*4D
$GPTXT,01,01,01,ANTENNA OK*35

GGA(用于输出GNSS 定位数据)

$GNGGA,093100.000,3151.10397,N,11707.63497,E,1,11,2.6,214.7,M,-5.0,M,,*50

$xxGGA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>,<13>,<14>,*<15>

  1. xx :GP – GPS 系统单独定位;BD – BD2 系统单独定位;GN – GPS 与BD2 系统混合定位。
  2. <1> UTC 时间,格式为hhmmss.ss。hh – 小时;mm – 分钟;ss.ss – 秒。
  3. <2> 纬度,格式为ddmm.mmmm。dd – 度;mm.mmmm – 分。
  4. <3> 北纬或南纬指示:N – 北纬;S – 南纬。
  5. <4> 经度,格式为dddmm.mmmm。ddd – 度;mm.mmmm – 分。
  6. <5> 东经或西经指示:E – 东经;W – 西经。
  7. <6> 定位状态标识:0 – 无效;1 – 单点定位;2 – 差分定位。
  8. <7> 参与定位的卫星数量。
  9. <8> 水平精度因子,0.00 ~ 99.99,不定位时值为99.99。
  10. <9> 椭球高,固定输出1 位小数。(天线离海平面的高度)
  11. <10> 椭球高单位,固定填M。指单位米。
  12. <11> 海平面分离度,固定输出1 位小数。(大地水准面高度)
  13. <12> 海平面分离度单位,固定填M。指单位米。
  14. <13> 差分校正时延,单位为秒;非差分定位时为空。
  15. <14> 差分参考基站ID;非差分定位时为空。
  16. <15> 校验和;本条语句从’$‘到’*’之间的所有字符进行异或得到的16 进制数。

GLL(用于输出地理位置的经度/纬度数据)

$GNGLL,3151.10397,N,11707.63497,E,093100.000,A,A*49

$xxGLL,<1>,<2>,<3>,<4>,<5>,<6>,<7>*<8>

  1. xx :GP – GPS 系统单独定位;BD – BD2 系统单独定位;GN – GPS 与BD2 系统混合定位。
  2. <1> 纬度,格式为ddmm.mmmm。dd – 度;mm.mmmm – 分。
  3. <2> 北纬或南纬指示:N – 北纬;S – 南纬。
  4. <3> 经度,格式为dddmm.mmmm。ddd – 度;mm.mmmm – 分。
  5. <4> 东经或西经指示:E – 东经;W – 西经。
  6. <5> UTC 时间,格式为hhmmss.ss。hh – 小时;mm – 分钟;ss.ss – 秒。
  7. <6> 位置有效标识:V – 无效;A – 有效。
  8. <7> 定位系统模式标识:N – 未定位;A – 单点定位;D – 差分定位。
  9. <8> 校验和;本条语句从’$‘到’*’之间的所有字符进行异或得到的16 进制数。

GSA(用于输出GNSS 精度因子与有效卫星信息)

$GNGSA,A,3,02,05,12,20,25,,,,,,,,3.9,2.6,2.9,1*35

$xxGSA,<1>,<2>,<3>,<4>,<5>,<6>,<7>*<8>

  1. xx :GP – GPS 系统单独定位;BD – BD2 系统单独定位;GN – GPS 与BD2 系统混合定位。
  2. <1> 定位模式指定状态:M – 手动指定2D 或3D 定位;A – 自动切换2D 或3D 定位。
  3. <2> 定位模式:1 – 未定位;2 – 2D 定位;3 – 3D 定位。
  4. <3> sv1 ~ sv12。参与定位的卫星号:参与定位的卫星不足12 颗时不足的区域填空,多于12 颗只输出前12 颗卫星;GPS 卫星号为01 ~ 32;BD2 卫星号为01 ~ 37(BD2 PRN 号)。
  5. <4> 位置精度因子,0.00 ~ 99.99,不定位时值为99.99。
  6. <5> 水平精度因子,0.00 ~ 99.99,不定位时值为99.99。
  7. <6> 垂向精度因子,0.00 ~ 99.99,不定位时值为99.99。
  8. <7> NMEA 协议定义的GNSS 系统ID:1 – GPS 系统ID;4 – BD2 系统ID。
  9. <8> 校验和;本条语句从’$‘到’*’之间的所有字符进行异或得到的16 进制数。

GSV(用于输出可见GNSS 卫星的信息)

$GPGSV,3,1,10,02,60,349,39,05,38,247,41,06,49,057,27,12,30,263,31,0*65
$GPGSV,3,2,10,13,,,24,17,17,143,,19,39,141,29,20,21,248,39,0*5F
$GPGSV,3,3,10,25,15,299,44,195,,,26,0*6C
$BDGSV,3,1,09,05,,,35,10,37,218,28,13,52,318,41,27,,,36,0*72
$BDGSV,3,2,09,28,48,323,46,33,73,210,33,38,61,342,42,40,,,37,0*42
$BDGSV,3,3,09,41,20,218,40,0*45

$xxGSV,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>*<9>
1. xx :GP – GPS 系统单独定位;GB – BD2 系统单独定位;(系统标识每条GSV 消息只包含4 颗卫星的信息)
2. <1> GSV 消息总数,最小值为1。
3. <2> 当前卫星系统GSV 消息的编号,最小值为1。
4. <3> 当前系统可见卫星的总数。
5. <4> 第1 ~ 第4 颗卫星的卫星号:GPS 卫星号为01 ~ 32;BD2 卫星号为01 ~ 37(BD2 PRN 号)。
6. <5> 第1 ~ 第4 颗卫星的仰角(0 ~ 90 度),固定输出2 位,不足2 位前面补零。
7. <6> 第1 ~ 第4 颗卫星的方位角(0 ~ 359 度),固定输出3 位,不足3 位前面补零。
8. <7> 第1 ~ 第4 颗卫星的载噪比(0 ~ 99dBHz),固定输出2 位,不足两位前面补零。未跟踪的卫星填空。
9. <8> NMEA 协议定义的信号ID(固定输出0)。
10. <9> 校验和;本条语句从’$‘到’*’之间的所有字符进行异或得到的16 进制数。


RMC(用于输出推荐的最少数据)RMC(用于输出推荐的最少数据)

$GNRMC,093100.000,A,3151.10397,N,11707.63497,E,0.00,0.00,280521,,,A,V*08

$xxRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>,<13>*<14>

  1. xx :GP – GPS 系统单独定位;BD – BD2 系统单独定位;GN – GPS 与BD2 系统混合定位。
  2. <1> UTC 时间,格式为hhmmss.ss。hh – 小时;mm – 分钟;ss.ss – 秒。
  3. <2> 位置有效标识:V – 无效;A – 有效。
  4. <3> 纬度,格式为ddmm.mmmm。dd – 度;mm.mmmm – 分。
  5. <4> 北纬或南纬指示:N – 北纬;S – 南纬。
  6. <5> 经度,格式为dddmm.mmmm。ddd – 度;mm.mmmm – 分。
  7. <6> 东经或西经指示:E – 东经;W – 西经。
  8. <7> 地面速率,单位为节,固定输出3 位小数。
  9. <8> 地面航向,单位为度,从北向起顺时针计算。
  10. <9> UTC 日期,格式为ddmmyy:dd – 日;mm – 月;yy – 年。
  11. <10> 磁偏角,固定填空。
  12. <11> 磁偏角方向,固定填空。
  13. <12> 定位模式标识:N – 未定位;A – 单点定位;D – 差分定位。
  14. <13> 导航状态标志,固定输出’V’。V – 设备不提供导航状态信息。
  15. <14> 校验和;本条语句从’$‘到’*’之间的所有字符进行异或得到的16 进制数。

VTG(用于输出航迹向和地速)


$GNVTG,0.00,T,,M,0.00,N,0.00,K,A*23

$xxVTG,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>*<10>

  1. xx :GP – GPS 系统单独定位;BD – BD2 系统单独定位;GN – GPS 与BD2 系统混合定位。
  2. <1> 以真北为参考基准的地面航向(0.000 ~ 359.999 度)。
  3. <2> 航向标志,固定填T。
  4. <3> 以磁北为参考基准的地面航向(0.000 ~ 359.999 度)。
  5. <4> 航向标志,固定填M。
  6. <5> 地面速率,单位为节。
  7. <6> 速率单位,固定填N。
  8. <7> 地面速率,单位为km/h。
  9. <8> 速率单位,固定填K。
  10. <9> 定位模式标识:N – 未定位;A – 单点定位;D – 差分定位。
  11. <10> 校验和;本条语句从’$‘到’*’之间的所有字符进行异或得到的16 进制数。

ZDA(用于输出日期和时间)

$GNZDA,093100.000,28,05,2021,00,00*4D

$xxZDA,<1>,<2>,<3>,<4>,<5>,<6>*<7>

  1. xx :GP – GPS 系统单独定位;BD – BD2 系统单独定位;GN – GPS 与BD2 系统混合定位。
  2. <1> UTC 时间,格式为hhmmss.ss。hh – 小时;mm – 分钟;ss.ss – 秒。
  3. <2> UTC 日,两位数字,01 ~ 31。
  4. <3> UTC 月,两位数字,01 ~ 12。
  5. <4> UTC 年,四位数字。
  6. <5> 本地时区的小时(固定输出00)。
  7. <6> 本地时区的分钟(固定输出00)。
  8. <7> 校验和;本条语句从’$‘到’*’之间的所有字符进行异或得到的16 进制数。

GST(用于输出GNSS 伪距误差统计数据)

$xxGST,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>*<9>

  1. xx :GP – GPS 系统单独定位;BD – BD2 系统单独定位;GN – GPS 与BD2 系统混合定位。
  2. <1> UTC 时间,格式为hhmmss.ss。hh – 小时;mm – 分钟;ss.ss – 秒。
  3. <2> 伪距误差的均方差,单位为米,最大值为3750000。
  4. <3> 误差椭圆的半长轴,单位为米,固定填空。
  5. <4> 误差椭圆的半短轴,单位为米,固定填空。
  6. <5> 误差椭圆的半长轴指向,单位为度,从正北起顺时针,固定填空。
  7. <6> 纬度方向的误差均方差,单位为米。
  8. <7> 经度方向的误差均方差,单位为米。
  9. <8> 高度方向的误差均方差,单位为米。
  10. <9> 校验和;本条语句从’$‘到’*’之间的所有字符进行异或得到的16 进制数。
上一篇
下一篇