文章目录
NMEA协议
介绍
GNSS的全称是全球导航卫星系统(Global Navigation Satellite System),它是泛指所有的卫星导航系统,包括全球的、区域的和增强的,如美国的GPS、俄罗斯的Glonass、欧洲的Galileo、中国的北斗卫星导航系统,以及相关的增强系统,如美国的WAAS(广域增强系统)、欧洲的EGNOS(欧洲静地导航重叠系统)和日本的MSAS(多功能运输卫星增强系统)等,还涵盖在建和以后要建设的其他卫星导航系统。国际GNSS系统是个多系统、多层面、多模式的复杂组合系统,如下图所示。
NMEA是National Marine Electronics Association 的缩写,是美国国家海洋电子协会的简称,现在是GPS导航设备统一的RTCM(Radio Technical Commission for Maritime services)标准协议。
NMEA-0183协议定义了一组消息格式,这些消息可以传输有关GPS设备和传感器的信息,如位置、速度、时间和方位角。NMEA协议中定义了多个消息类型,但是常用的或者说兼容性最广的语句主要如下表:
类型 | 英文全称 | 所含数据信息 |
---|---|---|
GGA | Global Positioning System Fix Data | 全球定位系统定位数据,如时间、定位等 |
GLL | Geographic Position - Latitude/Longitude | 地理定位信息 经纬度 |
GSA | GNSS DOP and Active Satellites | 参与定位的 GNSS 卫星 ID 号、精度因子等 |
GSV | GNSS Satellites in View | 可见的 GNSS 卫星,例如可见的卫星数、卫星 ID 号等 |
RMC | Recommended Minimum Specific GNSS Data | 推荐的最小具体 GNSS 数据 |
VTG | Course Over Ground and Ground Speed | 矢量跟踪与对地速度 |
ZDA | Time and Date | 当前时间信息 |
NMEA 0183 通讯协议是以 ASCII 码为基础的,一般格式如下:
$aaaaa,df1,df2,…[CR][LF]
格式说明:
- $ 为起始标志;
- , 为域分隔符;
- * 为校验和识别符,其后两位数为校验和,代表了 $和 * 之间所有字符的按位异或值(不包括这两个字符);
- [CR][LF] 为终止符 \r\n(不可见),所有的语句必须以来结束,也就是 ASCII 字符的“回车”(十六进制的 0D)和“换行”(十六进制的 0A)。
分类
NMEA 0183常用的版本有V3.01和V4.10。他们差异点在于talkerID、新增功能。
NMEA协议中有通用语句和专用语句(暂不讨论)。
这些标识符和相关的消息内容可以用于解析和处理GPS接收器返回的数据。通用语句还需要加上所使用的定位系统前缀,GPS NMEA 语句的前缀为“GP”,BeiDou NMEA 语句的前缀为“PQ”,GLONASS NMEA 语句的前缀为“GL”,Galileo NMEA 语句的前缀为“GA”,混合定位 NMEA 语句的前缀为“GN”,如下表:
GNSS Constellation Configuration | TalkerID(NMEA V3.01) | TalkerID(NMEA V4.11) |
---|---|---|
Galileo | GA | GA |
BeiDou | BD | GB |
GPS | GP | GP |
QZSS | GP | GQ |
NAVIC(IRNSS) | IR | GI |
GLONASS | GL | GL |
Combination of Multiple Satellite Systems | GN | GN |
专用语句是各个接收机生产商自定义的语句,以$P开头,如$PSTM、$PMTK、$PQ等。
通用语句说明
GGA语句
NMEA183标准中,GGA语句可以反馈当前当前定位方式( 单点,浮点,固定),格式及具体描述如下:
$XXGGA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,,<12>,,<14>*<15>
字段 | 参数 | 参数取值范围 |
---|---|---|
字段0 | 帧头 |