NMEA-0183协议常用语句介绍及4.10版本修改说明

概述

NMEA 协议是一种用于海上和航空领域的数据通信协议。它的全称是 National Marine Electronics Association (美国国家海洋电子协会),是一种标准化的数据格式,用于传输位置、速度、时间等信息。在船舶导航和 GPS 接收器中经常使用 NMEA 协议来实现设备之间的数据交换和通信。NMEA 协议最常见的是 0183 版本,除此还有其他版本:

1. NMEA 0183: 这是最常见和广泛使用的NMEA协议版本,定义了一系列标准数据格式,用于在不同海洋电子设备之间进行数据交换,如GPS接收器、雷达、自动驾驶系统等。

2. NMEA 2000: 这是 NMEA 协议的更新版本,也称为 NMEA 2000,采用基于控制器局域网(CAN)的通信协议,提供更高的数据传输速度和更好的可靠性,用于连接船舶上的各种电子设备。

3. NMEA 0183 HS: 这是NMEA 0183协议的高速版本,用于支持更快的数据传输速度,适用于需要更高精度和更快更新率的应用。

本文主讲 NMEA 0183 版本,0183协议有多个版本包括 V1.0、V1.5、V2.0、V3.0 和最新的 V4.11 (截至 2024.3.1)等等。由于只找到 4.11 版本片段,本文主要讲 4.10 版本,4.11 相关内容会在文中说明,协议结构来源参考标准原文《NMEA 0183-Standard for Interfacing Marine Electronic Devices(June 2012 VERSION 4.10)》。

本文主要介绍整体的协议结构组成和常见的 NMEA 报文,NMEA 还包含了其他大量的报文格式,但相对都少用,有兴趣的可以去看原版协议。

帧格式和分类

协议帧格式说明

NMEA 语句按照以下格式进行数据封装:

$aaccc ,ddd ,ddd ,...... ,ddd*hh<CR><LF>

1、“$”       —— 固定为'$'符号,表示帧命令起始位
2、aaccc     —— 地址域,前两位aa为识别符,表示由哪个类型的发送器发送的,比如GA就是GPS,后三位ccc为语句名,用来表示不同的语句类型比如GSA表示当前卫星信息
3、ddd...ddd —— 数据,以逗号为分隔符,根据不同的语句来定义内容
4、“*”       —— 固定为'*',表示校验和前缀,后面跟着的一位校验和
5、hh        —— 校验和(check sum),$与*之间所有字符ASCII码的校验和(各字节做异或运算,得到校验和后,在转换16进制格式的ASCII字符。)
6<CR><LF>  —— CR(Carriage  Return)+ LF (Line Feed)帧结束,回车换行。

NMEA 协议可以分为通用语句专用语句

分类-通用语句

通用语句包括:GGA、RMC、GSV、GSA、VTG、GLL、ZDA 、TXT 等,GPS 系统还含有其他很多未在此列出的其它信号,这里不多做列举。

通用语句还需要加上所使用的定位系统前缀,具体如下表:

GNSS 系统 GNSS系统发送器标识(NMEA3.01) GNSS系统发送器标识(V4.1)
Galileo GA GA
BeiDou BD GB
GPS GP GP
QZSS GP GQ
NAVIC IR GI
GLONASS GL GL
Combination of Multiple Satellite Systems GN GN

分类-专用语句

专用语句是各个接收机生产商自定义的语句,以$P开头,如$PSTM、$PMTK、$PQ等。

$PMTK104*37 	
$PQEPE,W,1,1*2A

本文只介绍通用的语句,下面对几个常见的语句进行解析介绍。

GGA-GPS定位信息

GGA(Global Positioning System Fix Data)GPS 定位信息,格式如下:

$XXGGA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,M,<10>,M,<11>,<12>*hh<CR><LF>
<1> UTC 时间,hhmmss(时分秒)格式,和北京时间差 8 个小时。
<2> 纬度 ddmm. mmmm(度分)格式(前面的 0 也将被传输)
<3> 纬度半球 N(北半球)或 S(南半球)
<4> 经度 dddmm. mmmm(度分)格式(前面的 0 也将被传输)
<5> 经度半球 E(东经)或 W(西经)
<6> GPS 状态:0=未定位,1=单点定位,2=SBAS 差分定位,4=RTK 固定解,5=RTK 浮点解,6=惯导定位,7=手动输入模式,8=模拟模式
<7> 正在使用解算位置的卫星数量(00~12)(前面的 0 也将被传输)
<8> HDOP 水平精度因子(0.5~99.9<9> 海拔高度(-9999.9~99999.9)
 M :单位,米
<10> 地球椭球面相对大地水准面的高度
 M :单位,米
<11> 差分时间(从最近一次接收到差分信号开始的秒数,如果不是差分定位将为空)
<12> 差分站 ID 号 0000~1023(前面的 0 也将被传输,如果不是差分定位将为空)

例子:

$GPGGA,1661229.478,3723.2475,N,12158.3416,W,1,07,1.0,9.0,M,7.3,M,,0000*18

RMC-推荐定位信息

RMC(Recommended Minimum Specific GNSS Data)推荐定位信息,4.10 相比 3.0增加<13>导航状态标识字段,具体格式如下:

// 3.0
$XXRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>*hh<CR><LF>
// 4.1
$XXRMC,<1>,<2>,<3
  • 17
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
北斗NMEA-0183协议是一种用于全球卫星导航系统北斗(BeiDou)接收器与其他设备进行通信的标准协议NMEA-0183是一种文本协议,其定义了一组特定的数据格式和语法规则,用于传输和解析北斗接收器返回的定位和导航数据。 北斗NMEA-0183协议的数据格式包括一条条的数据语句,每条语句都以"$"符号开头,以回车和换行符作为结束符。其中最常见的语句类型包括GGA(位置信息)、RMC(推荐最小数据集)和VTG(地面速度信息),它们可以提供位置、时间、速度和航向等关键信息。 使用北斗NMEA-0183协议,可以实现北斗接收器与其他设备(如导航仪、计算机等)之间的数据交换和通信。设备可以通过串口连接,并通过读取和解析接收器返回的NMEA语句,获取定位和导航等相关数据。 使用北斗NMEA-0183协议的好处是它的通用性和易于实现。该协议可以方便地被不同设备和软件应用所支持,使得各种设备之间的数据交换和集成成为可能。此外,由于NMEA-0183使用文本格式,因此人们可以轻松阅读和理解这些语句,便于调试和故障排除。 总之,北斗NMEA-0183协议是一种用于北斗接收器与其他设备进行通信的标准协议。它定义了一组特定的数据格式和语法规则,使得不同设备可以方便地进行数据交换和集成。这为北斗系统的应用和开发提供了便利和灵活性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值