0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

NMEA 定位数据看不懂?从入门到实战解析教程

青山老竹农 来源:jf_82863998 作者:jf_82863998 2026-04-22 16:00 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

之前我们分享了GNSS定位原理,和大家一起解决了Air8000系列无法定位的难题。

很快有新朋友在评论里问:

“我按照教程打开了debug,日志里确实有数据在往外冒,可满屏全是$开头的字符串,完全像天书一样看不懂啊……”

别急,这些看似混乱的字符,其实是GNSS模块的“专用语言”——NMEA报文

NMEA不仅告诉你位置,还隐藏着卫星数量、信号质量、精度因子等关键信息。读懂NMEA,你才能真正掌握GNSS的应用,甚至能一眼看出定位是否真的可靠。

一、NMEA-0183协议简介

1983年,美国国家海洋电子协会NMEA(National Marine Electronics Association)制定了一套通信协议,旨在解决不同航海电子设备(如GPS、雷达、声呐)之间的数据互通问题。

——这套协议就是NMEA-0183。如今,它已成为GNSS接收机最广泛使用的数据输出格式,几乎所有民用定位模块都遵守这个标准。

有了NMEA-0183,无论你用的是Air8000A,还是其他品牌的模块,输出的数据格式都是统一的。开发者只需要学会这一种“语言”,就能读懂所有GNSS模块的“心里话”。

二、NMEA语句的通用结构

NMEA语句是以ASCII字符串形式输出的,每条语句以$开头,以回车换行结束,结构清晰,便于解析。

先看一条典型的NMEA语句:

$GNRMC,085822.000,A,3308.0992839,N,10659.0587432,E,0.004,0.000,311025,A,S*06

它的结构非常规范:

组成部分 示例 说明
起始符 $ 每条语句以 $ 开头
地址域 GNRMC 前两位 GN 为系统标识,后三位 RMC 为语句名
数据域 085822.000,A,... 多个字段,用逗号分隔
校验和前缀 * 标识校验和开始
校验和 06 两位十六进制数,用于验证数据完整性
结束符 rn 回车换行

其中“地址域”的前两位表示卫星系统来源:

**GP:**仅GPS

**GL:**仅GLONASS

**BD:**仅北斗(部分接收机用GB)

**GA:**仅伽利略

**GN:**多系统融合(GPS+北斗+GLONASS+伽利略)

现代多模接收机通常输出GN开头的语句,代表联合解算的结果。

三、六大核心NMEA语句详解

掌握以下六种语句,就能满足99%的应用场景——理解这些语句,就掌握了与GNSS设备沟通的密码。在实际编程解析时,应先根据语句头判断类型,再按字段顺序拆分处理,尤其要注意数值单位(度分、节、米等)的转换。

wKgZO2nnJg6AJsAtAAFygnv3cLg840.png

第一种:GGA——全球定位系统固定数据(最核心)

GGA(Global Positioning System Fix Data)包含了时间、位置、定位质量、卫星数、精度因子、海拔高度等最关键的定位信息,是开发者最常解析的语句之一。

语句示例:

$GPGGA,085823.000,3308.0992788,N,10659.0587414,E,1,30,0.600,521.809,M,-31.322,M,*65

字段详解:

字段 示例 含义
0 GPGGA 语句头(GPS 系统)
1 085823.000 UTC 时间:08 时 58 分 23.000 秒
2 3308.0992788 纬度:33 度 08.0992788 分
3 N 北纬(S 为南纬)
4 10659.0587414 经度:106 度 59.0587414 分
5 E 东经(W 为西经)
6 1 定位状态:0 = 无效,1 = 单点定位,2 = 差分定位,6 = 估测
7 30 参与定位的卫星数量
8 0.600 HDOP(水平精度因子),值越小精度越高
9 521.809 海拔高度(椭球高)
10 M 高度单位:米
11 -31.322 大地水准面起伏(高程异常)
12 M 单位:米
13 (空) 差分龄期(未使用差分时为空)
14 (空) 差分基站 ID
校验和 65 校验值

解析要点:

1)定位状态字段(第6字段)为1或2时,才表示有效定位。

2)HDOP值小于1为极佳,1-2为优秀,2-5为尚可,大于5为差。

第二种:RMC——推荐最小定位信息(最常用)

RMC(Recommended Minimum Specific GNSS Data)包含了时间、位置、速度、航向、日期等最精简的导航数据,是许多系统的首选数据源。

语句示例:

$GNRMC,085822.000,A,3308.0992839,N,10659.0587432,E,0.004,0.000,311025,A,S*06

字段详解:

字段 示例 含义
0 GNRMC 语句头(多系统融合)
1 085822.000 UTC 时间:08:58:22.000
2 A 状态:A = 有效,V = 无效
3 3308.0992839,N 纬度 / 半球
4 10659.0587432,E 经度 / 半球
5 0.004 对地速度(节,1 节 = 1.852 公里 / 小时)
6 0.000 航向(度,以真北为参考)
7 311025 UTC 日期:25 年 10 月 31 日
8 (空) 磁偏角(通常不用)
9 (空) 磁偏角方向
10 A 模式指示:A = 自主,D = 差分,E = 估测,N = 无效
11 S 可选模式指示(S = 模拟器模式)
校验和 06 校验值

解析要点:

1)状态字段(第2字段)为A时,数据才可用。

2)速度单位是节,如需公里/小时需乘以1.852。

3)日期字段需要转换为实际日期:311025表示2025年10月31日(注意年份只有两位,需自行处理世纪)。

第三种:GSA——卫星精度衰减因子与参与解算卫星

GSA(GNSS DOP and Active Satellites)这条语句解释了定位“质量”和“精度”的由来——哪些卫星参与了定位,以及几何精度因子。

语句示例:

$GNGSA,A,3,06,19,195,17,14,14.32,4.01,13.75,1*31

字段详解:

字段 示例 含义
0 GNGSA 语句头
1 A 模式:M= 手动,A= 自动
2 3 定位类型:1= 无,2=2D 定位,3=3D 定位
3-14 06,19,195,17,14,... 参与定位的卫星 PRN 号(最多 12 颗,不足时空字段)
15 14.32 PDOP(三维位置精度因子),值越小定位精度越高
16 4.01 HDOP(水平精度因子),值越小水平定位精度越高
17 13.75 VDOP(垂直精度因子),值越小垂直定位精度越高
18 1 系统标识:1=GPS,2=GLONASS,3=Galileo,4= 北斗等
校验和 31 校验值

解析要点:

1)现代多模接收机会为每个卫星系统输出一条独立的$GNGSA语句(系统标识字段不同),最后可能还有一条融合所有系统的“最佳”GSA。

2)PRN号列表可以帮助你了解当前使用的是哪些卫星。

第四种:GSV——可见卫星信息

GSV(GNSS Satellites in View)描绘了当前的“天空视图”,告诉你所有能看到的卫星及其信号质量。

语句示例:

$GPGSV,3,1,10,9,43,299,45,8,48,187,41,27,68,128,45,7,13,304,30,1*55

字段详解:

字段 示例 含义
0 GPGSV 语句头(GPS 系统)
1 3 总 GSV 语句数(需要 3 条才能传完所有可见卫星)
2 1 当前语句序号(第 1 条 / 共 3 条)
3 10 当前可见卫星总数
4 9 第 1 颗卫星的 PRN 号
5 43 仰角(度)
6 299 方位角(度)
7 45 信噪比(dB-Hz),值越大信号越强
8-11 8,48,187,41 第 2 颗卫星信息(PRN、仰角、方位角、信噪比)
每 4 个字段描述一颗卫星,一条 GSV 最多描述 4 颗
末尾 1*55 系统标识和校验和

解析要点:

1)GSV语句通常会被拆分成多条发送,需要拼接所有语句才能获得完整的可见卫星列表。

2)信噪比(SNR)大于40dB-Hz为强信号,30-40为中等,低于30为弱信号,可能无法用于定位。

3)每个卫星系统都会输出自己的GSV语句,如GPGSV(GPS)、GPGSV(GPS)、BDGSV(北斗)、GLGSV(GLONASS)、GLGSV(GLONASS)、GAGSV(伽利略)。

第五种:ZDA——时间和日期

ZDA(Time and Date)提供最完整的时间信息,包括年、月、日、时、分、秒以及本地时区偏移,常用于系统精确授时。

语句示例:

$GNZDA,124108.000,24,12,2025,00,00*46

字段详解:

字段 示例 含义
0 GNZDA 语句头
1 124108.000 UTC 时间:12:41:08.000
2 24 UTC 日
3 12 UTC 月
4 2025 UTC 年
5 00 本地时区小时偏移(可选)
6 00 本地时区分钟偏移(可选)

解析要点:

1)ZDA语句提供了完整的4位年份,避免了RMC中两位年份的世纪歧义问题,适用于需要精确时间戳的应用。

2)时区偏移字段可选,很多接收机输出为空或00。如果需要本地时间,需自行根据时区计算。

3)该语句通常每秒输出一次,与RMC的时间信息一致,但提供更完整的日期格式。

第六种:VTG——地面速度信息

VTG(Track Made Good and Ground Speed)专门提供速度和航向信息,由对地速度和航向角计算得出,不包含位置信息。

语句示例:

$GNVTG,0.000,T,M,0.004,N,0.008,K,A*2B

字段详解:

字段 示例 含义
0 GNRMC 语句头
1 0.000 真北航向角(度)
2 T 真北指示符
3 (空) 磁北航向角(度)
4 M 磁北指示符
5 0.004 对地速度(节)
6 N 节单位
7 0.008 对地速度(公里 / 小时)
8 K 公里 / 小时单位
9 A 模式指示(同 RMC)
校验和 2B 校验值

解析要点:

1)真北航向角(第1字段)是最常用的航向数据,以度为单位,0°表示正北,90°表示正东。

2)速度提供了两种单位:节(N)和公里/小时(K),可根据需要选用。注意节和公里/小时的换算关系:1节=1.852公里/小时。

3)如果模块未定位或速度为零,航向角可能输出0.000或空值。

四、Air8000A实战:NMEA日志解析

以Air8000A系列多功能工业引擎为例,要获取并分析NMEA日志,首先需要完成软硬件环境的准备,

烧录成功后,从日志中获取的原始NMEA数据是分析定位性能的第一手资料。

以下是一组来自多系统融合定位日志的分析:

字段 示例 含义
0 GNRMC 语句头
1 0.000 真北航向角(度)
2 T 真北指示符
3 (空) 磁北航向角(度)
4 M 磁北指示符
5 0.004 对地速度(节)
6 N 节单位
7 0.008 对地速度(公里 / 小时)
8 K 公里 / 小时单位
9 A 模式指示(同 RMC)
校验和 2B 校验值

▼ NMEA日志分析 ▼

01. 核心定位结果

数据来自GNRMC和GNRMC和GNGGA语句:

定位状态:有效且精度很高(GNGGA中的1表示单点定位,GNGGA中的1表示单点定位,GNRMC中的A表示数据有效)。

时间:UTC 时间 08:58:23(2025年10月31日,由 $GNRMC中的311025可推算)。

位置:纬度33°08.0992788‘ N;经度 106°59.0587414’ E。不同语句间位置高度一致(如 $GNRMC 与 $GNGGA 的经纬度仅在小数点后第6位有微小差异),说明数据稳定。

海拔高度:521.809 米(大地高)。

对地速度:0.004节(约0.0074公里/小时),表明设备几乎完全静止。

02. 卫星视图与定位质量(关键优势)

为何能实现如此高的精度?答案在GNGSA和GNGSA和xxGSV语句中。

1)多系统联合解算

参与解算的卫星系统与数量如下:

GPS:使用了6颗卫星(PRN: 09, 04, 16, 08, 27, 26)。

北斗:使用了7颗卫星(PRN: 16, 40, 06, 39, 34, 24, 07, 10, 25, 33, 41, 09)。

注意,北斗的$GNGSA语句中列出了12颗卫星,表明可用卫星极多。

伽利略:使用了4颗卫星(PRN: 29, 23, 19, 04)。

格洛纳斯:使用了3颗卫星(PRN: 03, 42, 60, 02)。

QZSS(日本准天顶):可能辅助了2颗卫星(PRN: 03, 07, 02)。QZSS 常作为GPS的增强系统。

设备同时使用了GPS、北斗、伽利略、格洛纳斯 四大系统,并可能辅以QZSS(日本准天顶系统)增强信号——总计参与解算的卫星超过20颗,为精确定位提供了极佳的冗余度。

2)精度因子(DOP)—— 表现极佳:

PDOP(位置精度因子):1.075($GNGSA语句中给出)。

HDOP(水平精度因子):0.600($GNGGA和 $GNGSA 中一致)。

VDOP(垂直精度因子):0.892。

所有DOP值均远小于1.5,属于“极佳”范围。这表明卫星在天空中的几何分布非常理想,定位的潜在几何误差被降到最低。通常,HDOP<1.0意味着水平定位精度可能达到亚米级甚至更高。

03. 质量与误差统计

1)定位模式:$GNGSA中的模式为A(自动)和3(3D 定位),表明接收机自动选择了最佳的3维定位模式。

2)误差估计:$GNGST语句给出了接收机内部的误差估算:水平定位误差的RMS(均方根)约为0.820米,半长轴误差(保守估计)约为2.916米。这印证了亚米级到米级的定位精度。

综上所述,这是一组典型的高质量多系统GNSS定位数据。

清晰地展示了设备在开阔环境下,通过GPS、北斗(BDS)、伽利略(GAL)和格洛纳斯(GLONASS)多模融合所实现的高精度、高可靠性定位状态。

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 定位数据
    +关注

    关注

    0

    文章

    4

    浏览量

    1084
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    深入解析 TPS62351EVM-122 评估模块:入门实战

    深入解析 TPS62351EVM-122 评估模块:入门实战 在电子工程师的日常工作中,评估模块是验证和开发新设计的重要工具。今天,我们
    的头像 发表于 04-25 14:05 38次阅读

    一文读懂 NMEA 报文:GNSS 定位日志解析实战

    本文介绍 GNSS 通用输出协议 NMEA-0183,讲解协议格式及 GGA、RMC、GSA、GSV、ZDA、VTG 六种常用语句含义。结合 Air8000A 实际日志,说明定位状态、卫星信号、精度
    的头像 发表于 04-21 15:46 119次阅读
    一文读懂 <b class='flag-5'>NMEA</b> 报文:GNSS <b class='flag-5'>定位</b>日志<b class='flag-5'>解析</b>与<b class='flag-5'>实战</b>

    探索MAX8989评估套件:入门实战

    探索MAX8989评估套件:入门实战 在当今的电子设备中,电源管理芯片起着至关重要的作用,它不仅影响着设备的性能和稳定性,还关系到设备的功耗和续航能力。Maxim Integrat
    的头像 发表于 04-04 09:05 233次阅读

    刚入行看不懂电路图怎么办?

    刚入行看不懂电路图怎么办?很多电子新手刚入行时,面对密密麻麻的电路图总会犯怵:“这么多元件和线路,到底哪看起?”别慌!今天就带大家拆解电路图的核心逻辑,只要掌握这5大模块,看懂电路图真的没那么难
    的头像 发表于 04-02 09:01 283次阅读
    刚入行<b class='flag-5'>看不懂</b>电路图怎么办?

    Renesas RSKRX231开发板:入门实战的全方位指南

    Renesas RSKRX231开发板:入门实战的全方位指南 在当今的电子设计领域,一款功能强大且易于上手的开发板对于工程师们来说至关重要。Renesas RSKRX231开发板就
    的头像 发表于 12-29 17:00 1500次阅读

    AIROC™ CYW20829评估套件:入门实战

    AIROC™ CYW20829评估套件:入门实战 在物联网应用的蓬勃发展中,低功耗、高性能的蓝牙低功耗(Bluetooth® Low Energy)模块显得尤为重要。英飞凌的AIR
    的头像 发表于 12-19 10:30 498次阅读

    【道生物联TKB-623评估板试用】GPS定位时钟透传

    【道生物联TKB-623评估板试用】GPS定位时钟透传 本文介绍了道生物联TKB-623开发板结合 GPS 模块实现卫星定位数据的板间远距离传输,并基于该原理实现桌面GPS 定位时钟的项目
    发表于 11-06 18:48

    LuatOS AGPS 辅助定位开发实战教程

    数据解析定位模块调优等实战环节,附带完整代码与调试技巧,助开发者快速上手。   一、AGPS 概述   AGPS(Assisted GPS,辅助全球卫星
    的头像 发表于 10-31 17:34 1350次阅读
    LuatOS AGPS 辅助<b class='flag-5'>定位</b>开发<b class='flag-5'>实战</b>教程

    LuatOS下GNSS定位开发实战:初识定位NMEA解码与位置追踪上报

    在LuatOS环境中进行GNSS定位开发,是许多物联网项目的基础需求。本指南旨在提供一份实战向导,带您经历GNSS定位的初始化设置,
    的头像 发表于 10-29 16:03 459次阅读
    LuatOS下GNSS<b class='flag-5'>定位</b>开发<b class='flag-5'>实战</b>:初识<b class='flag-5'>定位</b>、<b class='flag-5'>NMEA</b>解码与位置追踪上报

    京东商品详情接口实战解析调用优化商业价值挖掘(附避坑代码)

    本文深入解析京东商品详情接口jd.union.open.goods.detail.query,涵盖核心特性、权限限制、关键参数及调用避坑指南。通过实战代码演示数据采集、促销解析与商业分
    的头像 发表于 10-10 09:28 1060次阅读
    京东商品详情接口<b class='flag-5'>实战</b><b class='flag-5'>解析</b>:<b class='flag-5'>从</b>调用优化<b class='flag-5'>到</b>商业价值挖掘(附避坑代码)

    虹科方案 | 数据不缺位,监控不滞后:虹科车辆信息远程监控系统

    引言在智能网联与电动化推进中,车队管理、远程诊断和智能驾驶常被这些问题困扰:多车型数据采集要反复适配、网络波动时数据丢了难追溯、原始数据看不懂没法用...虹科车辆信息远程监控系统,用「
    的头像 发表于 09-18 17:33 1018次阅读
    虹科方案 | <b class='flag-5'>数据</b>不缺位,监控不滞后:虹科车辆信息远程监控系统

    嵌入式入门进阶,怎么学?

    嵌入式入门进阶,怎么学? 嵌入式学习的核心是 “软硬结合的技术壁垒”,科学分层才能高效突破。以下是入门
    发表于 09-02 09:44

    STM32 入门工具选型攻略:新手别再盲目入手,选对了才能少走弯路

    入门嵌入式的你是不是也经历过这样的崩溃时刻?对着STM32datasheet上密密麻麻的寄存器手册,半天看不懂“GPIO输出模式”到底是啥意思;学“中断”,书上说“这是紧急情况的处理机制”,可真
    的头像 发表于 08-11 17:29 1027次阅读
    STM32 <b class='flag-5'>入门</b>工具选型攻略:新手别再盲目入手,选对了才能少走弯路

    直流电机EMC整改:干扰源解决方案的实战指南

    南柯电子|直流电机EMC整改:干扰源解决方案的实战指南
    的头像 发表于 08-05 11:07 1345次阅读

    DeepSeek:入门精通

    电子发烧友网站提供《DeepSeek:入门精通.pdf》资料免费下载
    发表于 05-28 14:12 6次下载