当前位置: 首页 > news >正文

NMEA-0183 协议 GPS 介绍

今天来学习一下GPS相关的知识点,使用的是u-blox 的NEO-6M/7MGPS模块。

NMEA-0183 协议简介

NMEA-0183 是美国国家海洋电子协会(National Marine Electronics Association)为海用电子设备制定的标准格式。目前业已成了GPS导航设备统一的RTCM(Radio Technical Commission for Maritime services)标准协议。

通信方式:串口通信

数据格式:采用ASCII码来传递GPS定位信息,每条数据称为“帧”或“句子”。

帧格式形如:$aaccc,ddd,ddd,…,ddd*hh(CR)(LF)

1、“$”:帧命令起始位 2、aaccc:地址域,前两位为识别符(aa),后三位为语句名(ccc) 3、ddd…ddd:数据 4、“*”:校验和前缀(也可以作为语句数据结束的标志) 5、hh:校验和(check sum),$ 与 * 之间所有字符ASCII码的校验和(各字节做异或运算[相同为0,不同为1],得到校验和后,再转换为16进制格式的ASCII字符) 6、(CR)(LF):帧结束,回车和换行符

[UTC]  UTC 时间即协调世界时,相当于本初子午线(0 度经线)上的时间,北京时间比 UTC 早 8 个小时。

指令说明

GPS模块串口发送的句子:

$GPVTG,,T,,M,0.380,N,0.704,K,A*2B
$GPGGA,061447.00,4003.520926,N,11620.220960,E,1,04,7.55,61.0,M,-8.7,M,,*7D
$GPGSA,A,3,17,19,05,20.9.51,7.55,5.79*0A
$GPGSV,3,1,12,02,,,27,03,,,27,04,,24,05,31,235,47*4B
$GPGLL,4003.520926,N,11620.220960,E,061447.00,A,A*6E
$GPRMC,061448.00,A,4003.520920,N,11620.220964,E,0.301,,310524,,,A*71

$GPVTG 速度和航向信息

$GPVTG语句的基本格式如下:$GPVTG,(1),T,(2),M,(3),N,(4),K,(5)*hh(CR)(LF)

(1) 以真北为参考基准的地面航向(000~359度,前面的0也将被传输) (2) 以磁北为参考基准的地面航向(000~359度,前面的0也将被传输) (3) 地面速率(000.0~999.9节,前面的0也将被传输) (4) 地面速率(0000.0~1851.8公里/小时,前面的0也将被传输) (5) 模式指示(A=自主定位,D=差分,E=估算,N=数据无效)

$GPVTG,,T,,M,0.380,N,0.704,K,A*2B 句子解析:

,,T:真北航向(空缺,表示无数据)

,,M:磁北航向(空缺,表示无数据)

0.380,N:表示地面速度,0.380节,单位为海里/小时(N)

0.704,N:表示地面速度,0.704公里/小时(K)

A:模式指示,A表示自主定位

2B:表示校验和($ 和 * 之间的数据进行异或运算)

GPRMC 推荐定位信息(常用)

$GPRMC语句的基本格式如下:$GPRMC,(1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11),(12)*hh(CR)(LF)

(1) UTC时间,hhmmss(时分秒)

(2) 定位状态,A=有效定位,V=无效定位

(3) 纬度ddmm.mmmmmm(度分),若前导位数不足,则用0填充

(4) 纬度半球N(北半球)或S(南半球),若前导位数不足,则用0填充

(5) 经度dddmm.mmmmmm(度分)

(6) 经度半球E(东经)或W(西经)

(7) 地面速率(000.0~999.9节)

(8) 地面航向(000.0~359.9度,以真北方为参考基准)

(9) UTC日期,ddmmyy(日月年)

(10)磁偏角(000.0~180.0度,前导位数不足则补0)

(11) 磁偏角方向,E(东)或W(西)

(12) 模式指示(A=自主定位,D=差分,E=估算,N=数据无效)

$GPRMC,061448.00,A,4003.520920,N,11620.220964,E,0.301,,310524,,,A*71 句子解析

061448.00:UTC时间,06时14分48秒

A:定位状态,有效定位

4003.520920,N:纬度,40度03.520920分,北纬,N表示北半球。范围:000.0~359.9度。

11620.220964,E:经度,116度20.220964分,东经,E表示东经。

0.301:地面速度,0.301节(海里/小时)。范围:000.0~999.9节。

,,:地面航向(空缺,表示无数据)

310524:日期,31日05月24年

,,,:磁偏角度数和方向都空缺

A:模式指示,A表示自主定位

71:表示校验和($ 和 * 之间的数据进行异或运算)


本篇完。

本人博客仅代表个人见解方便记录成长笔记。

若有不足,请指出,感谢您的阅读!

http://www.dtcms.com/a/273223.html

相关文章:

  • Redis-集群Cluster
  • Python练习(1)Python基础类型操作语法实战:20道实战题解与案例分析(上)
  • 《一起出发,“春”不“晚”》特别行动踏梦武当,探寻新春奇境
  • 教育领域AI教师培训计划及相关行业动态的综合简报
  • CVPR2022——RepLKNet模型有效感受野的热图可视化
  • Java Stream流:高效数据处理全解析
  • RV1126平台(Buildroot Linux)+ SunplusIT SPCA2688 USB摄像头 RTSP推流全流程复盘与问题解决记录
  • LabelImg标注工具详解与使用教程
  • SQL进阶:自连接的用法
  • 数字电子时钟——数字电路课设
  • 存在两个cuda环境,在conda中切换到另一个
  • vue3中ref和reactive的使用、优化
  • ABP vNext + OpenIddict:多租户授权中心
  • 二分查找篇——搜索旋转排序数组【LeetCode】两次二分查找
  • PPT 倒计时工具:把控节奏,掌握时间,超简单超实用让演示游刃有余
  • linux的DNS域名解析服务
  • Python操作redis数据库:终端下载安装命令、redis关键特性说明、redis的数据类型、redis的连接两种方式
  • 模块三:现代C++工程实践(4篇)第三篇《C++与系统编程:Linux内核模块开发入门》
  • 一个编辑功能所引发的一场知识探索学习之旅(JavaScript、HTML)
  • 笔记:CMakeLists基础语法
  • 在Zabbix 7 中配置对Nginx的监控
  • 外呼如何提高接通率
  • Rail开发日志_2
  • burpsuite记录
  • 深入理解oracle ADG和RAC
  • kotlin中集合的用法
  • kotlin中withContext,async,launch几种异步的区别
  • 【Python练习】035. 编写一个函数,实现简单的文本搜索功能
  • CPU调度调度算法
  • 低功耗小尺寸的空间入侵监测报警设备的市场需求方向