卫星定位协议简述-NMEA-0183协议

  • Embed
  • 1,399 clicked
  • NMEA协议由GPS模块发送输出数据给单片机系统/电脑串口/uCenter配置查看等,主要为输出数据;
  • 若需设置GPS配置参数,可以考虑采用UBX协议,主要为输入数据;

1. NMEA-0183 协议简介

NMEA - 0183 是美国国家海洋电子协会(National Marine Electronics Association)为海用电子设备制定的标准格式。目前业已成了 GPS/北斗导航设备统一的 RTCM(Radio Technical Commission for Maritime services)标准协议。

NMEA-0183 协议采用 ASCII 码来传递 GPS 定位信息,我们称之为帧。

帧格式形如:$aaccc,ddd,ddd,…,ddd*hh(CR)(LF)

  1. "$":帧命令起始位
  2. aaccc:地址域,前两位为识别符(aa),后三位为语句名(ccc)
  3. ddd…ddd:数据
  4. "*":校验和前缀(也可以作为语句数据结束的标志)
  5. hh:校验和(check sum),$与*之间所有字符 ASCII 码的校验和(各字节做异或运算,得到校验和后,再转换 16 进制格式的 ASCII 字符)
  6. (CR)(LF):帧结束,回车和换行符
  • NMEA-0183 常用命令 如表所示:
序号 命令 说明 最大帧长
1 $GNGGA GPS/北斗定位信息 72
2 $GNGSA 当前卫星信息 65
3 $GPGSV 可见 GPS 卫星信息 210
4 $BDGSV 可见北斗卫星信息 210
5 $GNRMC 推荐定位信息 70
6 $GNVTG 地面速度信息 34
7 $GNGLL 大地坐标信息
8 $GNGLL 当前时间(UTC1)信息

上表为 NMEA-0183 常用命令表

注 1: 即协调世界时,相当于本初子午线(0 度经线)上的时间,北京时间比 UTC 早 8 个小时。

2. NMEA 0183协议解析(NMEA4.1)

NMEA-0183协议是目前GNSS接收机上使用最广泛的协议,大多数常见的GNSS接收机、GNSS数据处理软件、导航软件都遵守或者至少兼容这个协议。

原文地址:https://www.cnblogs.com/wind-under-the-wing/p/13997178.html

下面对其常用字段进行概述

序号 命令 说明 最大帧长
1 $XXGGA GPS定位信息 72
2 $XXGSA 当前卫星信息 65
3 $XXGSV 可见卫星信息 210
4 $XXRMC 推荐定位信息 70
5 $XXVTG 地面速度信息 34
6 $XXGLL 大地坐标信息  
7 $XXZDA 当前时间(UTC1)信息  

2.1. XXGGA (GPS 定位信息,Global Positioning System Fix Data)

此字段主要表示时间、经纬度位置、解算状态、卫星颗数、高程、差分延迟、基站号等相关信息,XX因模式的不同而不同

  1. 单GPS
  2. 单BD
  3. 单GLONASS
  4. 多星联合定位

$GNGGA 语句的基本格式如下(其中 M 指单位 M,hh 指校验和,CR 和 LF 代表回车换行,下同)

  1. UTC 时间,格式为 hhmmss.ss;
  2. 纬度,格式为 ddmm.mmmmm(度分格式);
  3. 纬度半球,N 或 S(北纬或南纬);
  4. 经度,格式为 dddmm.mmmmm(度分格式);
  5. 经度半球,E 或 W(东经或西经);
  6. GPS 状态,0=未定位,1=非差分定位,2=差分定位;
  7. 正在使用的用于定位的卫星数量(00~12)
  8. HDOP 水平精确度因子(0.5~99.9)
  9. 海拔高度(-9999.9 到 9999.9 米)
  10. 大地水准面高度(-9999.9 到 9999.9 米)
  11. 差分时间(从最近一次接收到差分信号开始的秒数,非差分定位,此项为空)
  12. 差分参考基站标号(0000 到 1023,首位 0 也将传送,非差分定位,此项为空)

举例如下:

2.2. XXGSA(当前卫星信息)

GSA信息:模式、定位状态、用于解算卫星信息。

  1. 单GPS
  2. 单BD
  3. 单GLONASS
  4. 多星联合定位

$GNGSA 语句的基本格式如下:

  1. 模式,M = 手动,A = 自动。
  2. 定位类型,1=未定位,2=2D 定位,3=3D 定位。
  3. 正在用于定位的卫星号(01~32)
  4. PDOP 综合位置精度因子(0.5-99.9)
  5. HDOP 水平精度因子 1(0.5-99.9)
  6. VDOP 垂直精度因子(0.5-99.9)

举例如下:

注 1: 精度因子值越小,则准确度越高。

2.3. XXGSV(可见卫星数,GPS Satellites in View)

GSA信息:卫星数量、编号、信噪比(信号强度)、可见卫星信息

每条GSV语句最多可以显示4个可见卫星的信息,其他的卫星都会在下一条语句中输出显示。每种卫星系统都会单独显示,如下:GPS有3条GSV报文,北斗有2条GSV报文,GLONASS有3条GSV报文。

$GPGSV 语句的基本格式如下:

  1. GSV 语句总数。
  2. 本句 GSV 的编号。
  3. 可见卫星的总数(00~12,前面的 0 也将被传输)。
  4. 卫星编号(01~32,前面的 0 也将被传输)。
  5. 卫星仰角(00~90 度,前面的 0 也将被传输)。
  6. 卫星方位角(000~359 度,前面的 0 也将被传输)
  7. 信噪比(00~99dB,没有跟踪到卫星时为空)。

注:每条 GSV 语句最多包括四颗卫星的信息,其他卫星的信息将在下一条$GPGSV 语句中输出。

举例如下:

2.4. XXRMC(推荐定位信息,Recommended Minimum Specific GPS/Transit Data)

RMC信息:解状态、经纬度、地面速度、地面航向角、UTC时间、位置、速度、时间等信息。

  1. 单GPS
  2. 单BDS
  3. 单GLONASS
  4. 双星或多星联合定位

$GNRMC 语句的基本格式如下:

  1. UTC 时间,hhmmss(时分秒)
  2. 定位状态,A=有效定位,V=无效定位
  3. 纬度 ddmm.mmmmm(度分)
  4. 纬度半球 N(北半球)或 S(南半球)
  5. 经度 dddmm.mmmmm(度分)
  6. 经度半球 E(东经)或 W(西经)
  7. 地面速率(000.0~999.9 节)
  8. 地面航向(000.0~359.9 度,以真北方为参考基准)
  9. UTC 日期,ddmmyy(日月年)
  10. 磁偏角(000.0~180.0 度,前导位数不足则补 0)
  11. 磁偏角方向,E(东)或 W(西)
  12. 模式指示(A=自主定位,D=差分,E=估算,N=数据无效)

举例如下:

3. NMEA 示例数据包

3.1. XXGGA 示例数据

设备命令:microcom -s 115200 /dev/ttymxc1 | grep GGA

主要数据:UTC时分秒、经纬度、GPS状态

3.2. XXRMC 示例数据

设备命令:microcom -s 115200 /dev/ttymxc1 | grep RMC

主要数据:UTC时分秒日月年、经纬度、定位状态、速度、航向角

3.3. XXGSA 示例数据

设备命令:microcom -s 115200 /dev/ttymxc1 | grep GSA

3.4. XXGSV 示例数据

GBGSV是哪种?https://www.pianshen.com/article/9570653904/

4. NMEA 查看卫星数量、信号强度、时间、坐标、GPS状态

4.1. NMEA 查看卫星数量

  • XXGSV:卫星数量、信号强度(信噪比、越大越好)
  • XXGGA:

4.2. NMEA 查看信号强度

  • XXGSV:卫星数量、信号强度(信噪比、越大越好)

4.3. NMEA 查看时间

  • XXGGA:UTC时分秒
  • XXRMC:UTC时分秒、UTC日月年

4.4. NMEA GPS状态

  • XXGGA:GPS状态(0=未定位,1=单点定位,2=伪距/SBAS,3=无效PPS,4=RTK固定,5=RTK浮动,6=正在估算,7=手动启动基准站,8=RTK宽巷解,9=伪距)
  • XXGSA:定位模式,A=自动手动2D/3D,M=手动2D/3D
  • XXGSA:定位类型,1=未定位,2=2D定位,3=3D定位
  • XXRMC:定位状态,A=有效定位,V=无效定位
赞赏

微信赞赏支付宝赞赏

发表评论

邮箱地址不会被公开。 必填项已用*标注