【AAOS】【源码分析】Car Location服务(二)- NMEA 数据
NMEA概述
NMEA(National Marine Electronics Association) 是一种国际标准,用于描述来自定位设备(如 GPS 接收器)的输出数据格式。
在 GNSS(包括 GPS、GLONASS、Galileo、BeiDou)系统中,接收机通常通过串口(UART)、USB、I2C 或 Socket 发送 NMEA 语句(NMEA sentences) 给上层系统。
 AAOS/Android 的 GNSS HAL 接口底层就可以接收或解析这些数据。

主要GNSS导航系统
- GPS: Global Positioning System(全球定位系统),美国的卫星导航系统。
 - GLONASS:Global'naya Navigatsionnaya Sputnikovaya Sistema,俄罗斯的卫星导航系统。
 - Galileo:欧洲伽利略卫星导航系统。
 - 北斗:Beidou Navigation Satellite System,简称:BDS,中国自行研制的全球卫星导航系统。
 
NMEA协议
NMEA协议是为了在不同的GPS导航设备中建立统一的RTCM(海事无线电技术委员会)标准,它最初是由美国国家海洋电子协会(NMEA—The NationalMarine Electronics Association)制定的。NMEA协议有0180、0182和0183这3种,0183可以认为是前两种的升级,也是目前使用最为广泛的一种。
| 标准号 | 发布时间 | 用途时代 | 状态 | 
|---|---|---|---|
| NMEA 0180 | 1980 年代早期 (~1980) | 最初的导航设备通信协议 | 已过时 | 
| NMEA 0182 | 1980 年代中期 (~1982) | 改进版,支持更多传感器,增强型航向、风速通信 | 已过时 | 
| NMEA 0183 | 1983 起(后多次修订,如 v4.11) | 标准化的现代海事通信协议,ASCII 串行通信($GPGGA、$GPRMC…) | 现行主流标准 | 
| NMEA 2000 (N2K) | 2000年左右 | 面向 CAN 总线通信 的数字化协议。支持多设备双向通信、网络拓扑自动识别和高速传输。用于现代船舶、车载、航空等多系统集成。 | 新兴标准 | 
| OneNet | 2010年代 | 基于 以太网/IP 协议 的 NMEA 下一代标准,支持高清视频、网络诊断、云同步等功能。 | 
演进关系
1980: NMEA 0180  —— 最初的航向/速度通信协议(单向、简单)
    ↓
 1982: NMEA 0182  —— 增加风速、风向等支持
    ↓
 1983+: NMEA 0183 —— 全面扩展,多语句、多设备通信,标准化
    ↓
 2000年左右:NMEA 2000(CAN 总线版)—— 面向现代海事/汽车系统
↓
2010年代:OneNet(以太网/IP 协议)
特点和用途
-  
数据格式: 使用ASCII格式,数据以逗号分隔的语句形式发送,例如常见的
$GPGGA语句包含了时间、纬度、经度、高度等信息。 -  
数据通信: NMEA协议主要用于GPS接收器向其他设备或计算机输出定位数据,以便进行位置追踪、导航和地图显示。
 -  
协议解析: GPS接收器接收到NMEA数据后,会进行协议解析,提取出位置、速度、时间等信息,用于计算距离、记录轨迹等应用。
 -  
通用性:
 
