NMEA0183协议入门:格式、原理与应用全解析
目录一、 初学者基础认知1. 协议定位与核心作用2. 协议特点适合初学者理解3. 标准通信参数二、 协议核心帧格式详解1. 起始符$2. 地址域aaXXX3. 数据域data1,data2,...,dataN4. 校验和分隔符*5. 校验和HH6. 结束符三、 典型核心语句解析初学者必掌握1. GGA 语句GPS 定位数据Global Positioning System Fix Data2. RMC 语句推荐最小定位信息Recommended Minimum Specific GPS/TRANSIT Data四、 技术要点初学者避坑指南1. 数据接收与解析流程嵌入式系统常用2. 常见问题与解决方法3. 协议扩展与兼容五、 典型应用场景1. 嵌入式定位终端初学者最常用2. 车载导航系统3. 无人机飞控系统4. 航海设备互联六、 初学者实战建议NMEA 0183 是由美国国家海洋电子协会National Marine Electronics Association制定的串行通信协议标准最初用于航海电子设备如 GPS、雷达、测深仪之间的互联互通目前已成为卫星定位、导航领域的通用协议广泛应用于车载导航、无人机飞控、物联网定位终端等嵌入式系统中。本详解面向初学者从协议基础、帧结构、核心语句、技术要点到典型应用进行全方位拆解帮助快速掌握协议本质及应用方法。一、 初学者基础认知1. 协议定位与核心作用NMEA 0183 是一种ASCII 文本协议采用串行异步通信方式定义了导航设备之间数据传输的格式规范。其核心作用是统一不同设备的输出数据格式如 GPS 模块输出的位置、速度、时间信息实现跨设备数据交互如 GPS 模块向单片机、上位机传输定位数据。2. 协议特点适合初学者理解特点说明ASCII 文本格式数据以可读字符串形式传输无需复杂解码便于调试串行异步通信依赖 UART/USART 物理层通信参数可配置标准参数为 4800bps帧式传输数据以 “帧” 为单位发送每帧独立完整支持错误校验多语句类型定义了数十种语句如 GGA、RMC分别对应不同的导航数据主从结构一个主设备如 GPS 模块可向多个从设备如单片机发送数据3. 标准通信参数NMEA 0183 的默认串行通信参数是初学者必须牢记的配置也是设备通信成功的前提波特率4800 bps部分模块支持 9600/115200 bps需手动配置数据位8 bit停止位1 bit校验位无流控无二、 协议核心帧格式详解NMEA 0183 的数据帧结构是协议的灵魂所有数据均以固定帧格式传输。单帧完整结构如下$aaXXX,data1,data2,...,dataN*HHCRLF我们将其拆解为6 个核心部分逐一解析1. 起始符$作用标记一帧数据的开始告诉接收端 “后续为有效 NMEA 数据”。格式必须是 ASCII 字符$不可省略或替换。2. 地址域aaXXX长度5 个 ASCII 字符分为2 位设备类型码3 位语句类型码。设备类型码aa表示发送数据的设备类型常见值GPGPS 系统BD北斗系统GLGLONASS 系统GN多系统融合GPS 北斗 GLONASS语句类型码XXX表示数据帧的类型如GGA定位数据、RMC推荐最小定位信息。示例$GPGGA→ GPS 设备发送的 GGA 类型定位数据。3. 数据域data1,data2,...,dataN作用帧的核心内容包含具体的导航数据如经纬度、海拔、卫星数。格式多个数据字段用英文逗号,分隔字段为空时逗号不可省略表示该字段无数据。字段含义随语句类型XXX变化不同语句的字段数量和含义完全不同。示例$GPGGA,123519,4807.038,N,01131.000,E,1,08,0.9,545.4,M,46.9,M,,*47中123519是 UTC 时间4807.038,N是纬度。4. 校验和分隔符*作用分隔数据域与校验和标记后续为校验信息。格式必须是 ASCII 字符*位于数据域末尾、校验和之前。5. 校验和HH长度2 位十六进制 ASCII 字符00~FF。作用验证数据帧在传输过程中是否被篡改或出错是保证数据可靠性的关键。计算方法取帧中从$的下一个字符开始到*之前的所有字符不含$和*将这些字符按字节进行异或运算XOR初始值为 0将异或结果转换为两位大写十六进制字符串即为校验和。验证方法接收端按相同规则计算校验和与帧中的HH对比一致则数据有效否则丢弃。示例计算帧片段GPGGA,123519,4807.038,N,01131.000,E,1,08,0.9,545.4,M,46.9,M,,计算过程G XOR P XOR G XOR G XOR A XOR , XOR ... XOR ,→ 结果为 0x47 → 校验和为47。6. 结束符CRLF组成ASCII 回车符\r0x0D 换行符\n0x0A。作用标记一帧数据的结束接收端检测到该组合后判定当前帧接收完成。三、 典型核心语句解析初学者必掌握NMEA 0183 定义了数十种语句但初学者只需掌握2 种核心语句即可满足 80% 的定位应用需求GGA 语句完整定位数据和RMC 语句推荐最小定位信息。1. GGA 语句GPS 定位数据Global Positioning System Fix Data核心作用输出完整的 GPS 定位信息包含时间、经纬度、定位质量、卫星数、海拔等。帧格式$GPGGA,UTC时间,纬度,纬度半球,经度,经度半球,定位质量,卫星数,HDOP,海拔高度,海拔单位,大地水准面高度,高度单位,差分时间,差分站ID*校验和CRLF字段详细说明字段序号字段含义示例值补充说明1UTC 时间123519格式为hhmmss时 - 分 - 秒时区为 UTC2纬度4807.038格式为ddmm.mmmm度 - 分。分的小数部分3纬度半球NN 北纬S 南纬4经度01131.000格式为dddmm.mmmm度 - 分。分的小数部分5经度半球EE 东经W 西经6定位质量10 无效定位1GPS 定位2 差分 GPS 定位7卫星数08参与定位的卫星数量范围 0~328HDOP0.9水平精度因子值越小精度越高9海拔高度545.4相对于大地水准面的高度10海拔单位M固定为米M11大地水准面高度46.9大地水准面与椭球面的高度差12高度单位M固定为米M13差分时间空差分 GPS 数据的更新时间单位秒14差分站 ID空差分参考站的 ID 号范围 0~1023初学者关键转换经纬度格式转换NMEA 输出的经纬度是度分格式而实际应用中常需转换为十进制度格式公式如下十进制纬度 度 分 / 60 → 示例4807.038N 48° 7.038′/60 48.1173°N十进制经度 度 分 / 60 → 示例01131.000E 11° 31.000′/60 11.5167°E2. RMC 语句推荐最小定位信息Recommended Minimum Specific GPS/TRANSIT Data核心作用输出最精简的有效定位信息包含时间、状态、经纬度、速度、航向、日期适合对数据量要求低的场景。帧格式$GPRMC,UTC时间,状态,纬度,纬度半球,经度,经度半球,地面速度,地面航向,UTC日期,磁偏角,磁偏角方向,模式指示*校验和CRLF关键字段说明字段序号字段含义示例值补充说明1UTC 时间123519格式hhmmss2状态AA 有效定位V 无效定位3-6经纬度及半球同 GGA 语句-7地面速度000.0单位为节knot1 节 1.852 km/h8地面航向360.0以正北为 0°顺时针方向的角度9UTC 日期230394格式ddmmyy日 - 月 - 年12模式指示AA 自主定位D 差分定位四、 技术要点初学者避坑指南1. 数据接收与解析流程嵌入式系统常用对于 STM32、HC32 等嵌入式单片机接收解析 NMEA 0183 数据的标准流程如下配置串口按协议参数如 4800 8N1初始化 UART/USART开启接收中断或轮询接收。帧头检测实时检测串口数据流中的$字符检测到后开始缓存后续数据。帧尾检测缓存过程中检测CRLF检测到后判定当前帧缓存完成。校验和验证按协议规则计算缓存数据的校验和与帧中校验和对比验证通过则进入解析。字段拆分按逗号分隔缓存的字符串提取各字段内容。数据转换将字符串格式的数值如经纬度、速度转换为浮点数或整数供应用层使用。2. 常见问题与解决方法常见问题原因解决方法接收不到数据串口参数不匹配模块未输出 NMEA 数据核对波特率 / 数据位 / 停止位配置模块启用 NMEA 输出数据校验失败传输过程中数据被干扰校验和计算错误增加抗干扰措施如屏蔽线检查异或运算逻辑经纬度计算错误混淆度分格式与十进制格式严格按照转换公式计算注意度和分的划分定位状态为 V无效模块未搜星遮挡严重将模块放置在开阔无遮挡处等待搜星完成3. 协议扩展与兼容多系统兼容北斗模块输出的语句前缀为$BDGGA多系统融合模块前缀为$GNGGA解析逻辑与 GPS 一致。波特率配置部分模块支持修改 NMEA 输出波特率如 9600 bps需通过 AT 指令配置。五、 典型应用场景NMEA 0183 协议的应用已从航海扩展到多个领域典型场景包括1. 嵌入式定位终端初学者最常用场景基于 STM32F103 的 GPS 定位终端采集经纬度数据并上传到云端。实现GPS 模块通过串口输出 NMEA 0183 数据 → STM32 串口接收并解析 GGA/RMC 语句 → 提取十进制经纬度 → 通过 GPRS 模块上传到服务器。2. 车载导航系统场景汽车导航主机获取 GPS 模块的定位数据实现路径规划与地图匹配。实现GPS 模块输出 NMEA 数据 → 导航主机解析后将定位信息与电子地图融合显示车辆实时位置。3. 无人机飞控系统场景无人机获取自身位置、速度、航向信息实现自主飞行与定点悬停。实现飞控板如 STM32H7解析 GPS 模块的 NMEA 数据 → 结合 IMU惯性测量单元数据进行融合定位 → 输出控制指令到电机。4. 航海设备互联场景船舶的 GPS、雷达、测深仪通过 NMEA 0183 协议互联实现数据共享。实现GPS 模块输出定位数据 → 雷达设备接收后将定位信息叠加到雷达图像上辅助导航。六、 初学者实战建议硬件选型选择一款性价比高的 GPS 模块如 Ublox NEO-6M模块自带串口输出 NMEA 数据无需复杂配置。调试工具使用 USB 转串口模块将 GPS 模块的输出数据接入电脑通过串口助手如 SSCOM查看原始 NMEA 帧直观理解协议格式。代码实战先实现基于单片机的 NMEA 帧接收与校验再逐步实现字段拆分与经纬度转换最后结合应用场景如显示、上传完成功能。

相关新闻

Windows7装Docker方法,无需官方支持运行容器

Windows7装Docker方法,无需官方支持运行容器

在Windows 7环境下运行Docker是一个颇具挑战性的需求。由于官方Docker Desktop对操作系统版本有明确要求,直接安装通常行不通。但通过一些迂回的方法,仍有希望在老旧的Win7系统上体验容器技术。本文将探讨其可行性、具体操作路径以及备选方案。 Windows …

2026/7/6 16:30:12 阅读更多 →
为什么内积为零时,向量垂直

为什么内积为零时,向量垂直

这是一个非常经典的数学问题。这页教科书(看起来涉及线性代数或泛函分析)实际上是在做一个推广:定义 (Definition): 书中公式 (1) 定义了 nnn 维空间中两个向量的代数内积:(x⋅y)∑xiyi(x \cdot y) \sum x_i y_i(x⋅y)∑xi​yi​…

2026/7/5 6:31:27 阅读更多 →
宏智树 AI 破局期刊投稿:从 “屡投屡拒” 到 “核心命中” 的学术写作革命

宏智树 AI 破局期刊投稿:从 “屡投屡拒” 到 “核心命中” 的学术写作革命

“投稿 3 次均被拒,审稿人批‘创新点模糊’”“格式改了 8 遍仍不达标,编辑部直接退回”“实证数据缺乏支撑,核心结论站不住脚”—— 在期刊论文发表的赛道上,无数科研人陷入 “写作难、修改烦、录用率低” 的困境。普通 AI 工具要…

2026/7/7 1:12:26 阅读更多 →

最新新闻

终极指南:用microG实现无Google服务的Android应用兼容方案

终极指南:用microG实现无Google服务的Android应用兼容方案

终极指南:用microG实现无Google服务的Android应用兼容方案 【免费下载链接】GmsCore Free implementation of Play Services 项目地址: https://gitcode.com/GitHub_Trending/gm/GmsCore 在Android生态中摆脱Google服务依赖并运行YouTube等应用,m…

2026/7/7 8:14:10 阅读更多 →
2026新手第一套电子鼓怎么选?高性价比电子鼓横评推荐

2026新手第一套电子鼓怎么选?高性价比电子鼓横评推荐

很多新手来找我咨询买鼓,问的第一句往往是:“老师,罗兰和雅马哈哪个好?”——这个问题本身就问错了。买电子鼓和买手机不一样。手机看品牌看系统,但电子鼓的核心是手感、反馈和稳定性。品牌溢价再高,敲下去…

2026/7/7 8:12:09 阅读更多 →
匿名类·学习笔记

匿名类·学习笔记

嗨!在今天的课程中,我们将继续探讨嵌套类的主题。现在是最后一组:匿名的内在阶级。 让我们回到我们的示意图:就像上一课提到的局部类一样,匿名类是一种内在类......它们也存在若干相似之处和差异。 但首先,让我们深入探讨:为什么他们被称为“匿名”? 为了回答这个问题,…

2026/7/7 8:12:09 阅读更多 →
边缘计算盒子部署完整流程:基于算能SE5/超星未来/灵犀设备的AI视频分析实战

边缘计算盒子部署完整流程:基于算能SE5/超星未来/灵犀设备的AI视频分析实战

在智能视频分析交付的最后“一公里”,边缘计算盒子凭借低功耗、小体积以及本地化算力优势,成为了私有化交付、明火烟雾检测、安全帽识别等POC现场的首选。然而,边缘端异构芯片(如ARM64架构)的复杂性、底层硬件加速驱动…

2026/7/7 8:10:09 阅读更多 →
爬虫实战:如何优雅地抓取网页中隐藏在伪元素(__before)里的文本?

爬虫实战:如何优雅地抓取网页中隐藏在伪元素(__before)里的文本?

相信很多写过一段时间爬虫的同学大概率撞过这堵“隐形墙”:在浏览器里明明白白显示着"¥9.9"的价格,或者一段验证码文本,但当你切换到 DevTools 时,发现那个数字安安静静地挂在某个标签里。然而,当…

2026/7/7 8:06:08 阅读更多 →
5分钟掌握RoundedTB:让Windows任务栏焕然一新的魔法指南

5分钟掌握RoundedTB:让Windows任务栏焕然一新的魔法指南

5分钟掌握RoundedTB:让Windows任务栏焕然一新的魔法指南 【免费下载链接】RoundedTB Add margins, rounded corners and segments to your taskbars! 项目地址: https://gitcode.com/gh_mirrors/ro/RoundedTB 想让单调的Windows任务栏瞬间变得现代时尚吗&…

2026/7/7 8:04:08 阅读更多 →

日新闻

鸿蒙新特性:图片画廊与轮播导航——构建沉浸式图片浏览体验

鸿蒙新特性:图片画廊与轮播导航——构建沉浸式图片浏览体验

图片浏览是移动应用中最高频的场景之一。从社交应用的照片流到电商平台的商品图集,从旅游应用的景点相册到摄影作品展示——用户对图片浏览的体验要求不断提高:流畅的切换动画、直观的缩略图导航、便捷的收藏操作、自动播放模式。HarmonyOS NEXT ArkUI 虽…

2026/7/7 0:05:16 阅读更多 →
24V DC-DC降压芯片PW2312B/PW2815,SOT23-6到SOP8-EP方案对比

24V DC-DC降压芯片PW2312B/PW2815,SOT23-6到SOP8-EP方案对比

24V稳压芯片完整选型指南 PW8600 PW75XX PW2815 PW2312B LDODC/DC全方案 一、24V稳压方案概述 24V直流电源在工业自动化、门禁系统、电梯控制、汽车电子、LED驱动、监控设备等场景中应用极广,是最常见的中压直流母线电压。要将24V母线稳定降压至下游MCU、传感器…

2026/7/7 0:05:16 阅读更多 →
RAG+知识图谱混合检索与Graph RAG核心对比

RAG+知识图谱混合检索与Graph RAG核心对比

做企业RAG落地的团队,往往容易卡在一容易踩坑的选型难题: 当需求单纯靠向量RAG搞不定、单纯靠知识图谱也搞不定,必须同时依赖「文本语义理解 实体关系推理」时,到底是做「向量图谱混合检索」就够了,还是必须上「Grap…

2026/7/7 0:07:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/6 8:11:50 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/6 8:11:52 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/6 6:52:56 阅读更多 →

月新闻