1. GNSS与NMEA-0183协议概述
全球卫星导航系统(GNSS)已经成为现代定位技术的基石,从智能手机导航到船舶自动航行,其应用无处不在。而NMEA-0183协议则是GNSS设备与终端之间通信的"普通话",它定义了标准化的数据格式,让不同厂商的设备能够互相理解。
我第一次接触NMEA协议是在2015年做一个车载导航项目时,当时发现直接从GPS模块输出的原始数据就像一堆乱码,直到理解了NMEA格式才豁然开朗。这个协议由美国国家海洋电子协会(NMEA)制定,最新版本是4.11(2021年发布),但实际应用中3.0版本更为常见。
NMEA-0183采用ASCII码明文传输,默认波特率4800bps(新版支持115200bps),每条语句以"$"开头,以回车换行符结束。这种设计使得开发者可以直接用串口调试工具观察数据,大大降低了开发门槛。协议包含几十种语句类型,但实际应用中80%的场景只需要处理其中的5-6种核心语句。
注意:虽然NMEA-0183是事实标准,但不同厂商可能会有自定义扩展语句,这些语句通常以"P"开头,使用时需要查阅具体设备手册。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. NMEA-0183协议核心语句解析
2.1 GGA语句 - 核心定位数据
$GPGGA是使用频率最高的语句,包含时间、位置和定位质量等关键信息。一个典型示例如下:
code复制$GPGGA,092725.00,4717.11399,N,00833.91590,E,1,08,1.01,499.6,M,48.0,M,,*5B
各字段解析如下表:
| 字段位置 | 示例值 | 含义 | 单位/说明 |
|---|---|---|---|
| 1 | 092725.00 | UTC时间 | hhmmss.ss格式 |
| 2 | 4717.11399 | 纬度 | ddmm.mmmmm格式 |
| 3 |
