GPS协议标准目前常用到的是NMEA-0183,很显然,这是由NMEA发布的一个标准。

NMEA是National Marine Electronics Association ,即美国国家海洋电子协会的缩写,NMEA是GPS的管理者,为方便GPS的推广应用,发布了一系列GPS协议的标准格式。

NMEA-0183就是GPS协议标准的一个,它的早期版本为NMEA-0180和NMEA-0182。虽然它现在仍然用得很多,但时光的车轮在前进,它将会逐渐被最新的NMEA 2000所替代。

NMEA-183是一个基于ASCII的串行通信协议,它由一个个的语句组成,理解起来很简单。
下面对它的一些常用的语句进行举例说明,这些,是协议分析中会碰到的。
这些常用的NMEA-0183语句如下:

注:发送次序
$ PZDA、$ GPGGA、$ GPGLL、$ GPVTG、
$ GPGSA、$ GPGSV3、$ GPRMC
协议帧总说明:   
该协议采用ASCII码,其串行通信默认参数为:波特率=4800bps,数据位=8bit,开始位=1bit,停止位=1bit,无奇偶校验。   
帧格式形如:$aaccc,ddd,ddd,…,ddd
hh

1、“ $ ”——帧命令起始位   
2、aaccc——地址域,前两位为识别符,后三位为语句名   
3、ddd…ddd——数据  
4、“ * ”——校验和前缀   
5、hh——校验和(check sum),$与*之间所有字符ASCII码的校验和(各字节做异或运算,得到校验和后,再转换16进制格式的ASCII字符。)   
6、——CR(Carriage Return) + LF(Line Feed)帧结束,回车和换行

1.$GPGGA   
GPS固定数据输出语句,这是一帧GPS定位的主要数据,也是使用最广的数据。

$GPGGA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>,<13>,<14>*<15>

<1> UTC时间,格式为hhmmss.sss。  
<2> 纬度,格式为ddmm.mmmm(前导位数不足则补0)。   
<3> 纬度半球,N或S(北纬或南纬)。   
<4> 经度,格式为dddmm.mmmm(前导位数不足则补0)。 
<5> 经度半球,E或W(东经或西经)。   
<6> 定位质量指示,0=定位无效,1=定位有效。   
<7> 使用卫星数量,从00到12(前导位数不足则补0)。   <8> 水平精确度,0.5到99.9。   
<9> 天线离海平面的高度,-9999.9到9999.9米   
<10> 高度单位,M表示单位米。   
<11> 大地椭球面相对海平面的高度(-999.9到999.9)。   <12> 高度单位,M表示单位米。   
<13> 差分GPS数据期限(RTCM SC-104),最后设立RTCM传送的秒数量。   
<14> 差分参考基站标号,从0000到1023(前导位数不足则补0)。   
<15> 校验和。

2 $GPGSA   
GPS DOP and Active Satellites(GSA)当前卫星信息

$GPGSA,<1>,<2>,<3>,<3>,<3>,<3>,<3>,<4>,<5>,<6>,<7>

<1>模式 :M = 手动, A = 自动。 
<2>定位型式 1 = 未定位, 2 = 二维定位, 3 = 三维定位。 
<3>PRN 数字:01 至 32 表天空使用中的卫星编号,最多可接收12颗卫星信息。   
<4> PDOP位置精度因子(0.5~99.9)   
<5> HDOP水平精度因子(0.5~99.9)   
<6> VDOP垂直精度因子(0.5~99.9)   
<7> Checksum.(检查位).

3 GPGSV∗∗可视卫星状态输出语句∗∗GPGSV**  可视卫星状态输出语句     **GPGSV∗∗ 可视卫星状态输出语句   ∗∗GPGSV, <1>,<2>,<3>,<4>,<5>,<6>,<7>,…,<4>,<5>,<6>,<7>*<8>

<1> 总的GSV语句电文数。   
<2> 当前GSV语句号。   
<3> 可视卫星总数,00至12。   
<4> 卫星编号,01至32。   
<5> 卫星仰角,00至90度。   
<6> 卫星方位角,000至359度。实际值。   
<7> 信噪比(C/No),00至99dB;无表未接收到讯号。   <8> 校验和。

注:每条语句最多包括四颗卫星的信息,每颗卫星的信息有四个数据项,即:卫星编号、卫星仰角、卫星方位角、信噪比。
   
4 $GPRMC   
推荐最小数据量的GPS信息(Recommended Minimum Specific GPS/TRANSIT Data)

$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>*<13>

<1> UTC(Coordinated Universal Time)时间,hhmmss(时分秒)格式   
<2> 定位状态,A=有效定位,V=无效定位   
<3> Latitude,纬度ddmm.mmmm(度分)格式(前导位数不足则补0)   
<4> 纬度半球N(北半球)或S(南半球)   
<5> Longitude,经度dddmm.mmmm(度分)格式(前导位数不足则补0)   
<6> 经度半球E(东经)或W(西经)   
<7> 地面速率(000.0~999.9节,Knot,前导位数不足则补0)   
<8> 地面航向(000.0~359.9度,以真北为参考基准,前导位数不足则补0)   
<9> UTC日期,ddmmyy(日月年)格式   
<10> Magnetic Variation,磁偏角(000.0~180.0度,前导位数不足则补0)   
<11> Declination,磁偏角方向,E(东)或W(西)   
<12> Mode Indicator,模式指示(仅NMEA0183 3.00版本输出,A=自主定位,D=差分,E=估算,N=数据无效)   
<13> 校验和。

5. $GPVTG 地面速度信息

GPVTG,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>∗<10>例:GPVTG,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>*<10>    例:GPVTG,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>∗<10>   例:GPVTG,89.68,T,M,0.00,N,0.0,K*5F

 字段0:$GPVTG,语句ID,表明该语句为Track Made Good and Ground Speed(VTG)地面速度信息 
 字段1:运动角度,000 - 359,(前导位数不足则补0) 
 字段2:T=真北参照系 
 字段3:运动角度,000 - 359,(前导位数不足则补0) 
 字段4:M=磁北参照系 
 字段5:水平运动速度(0.00)(前导位数不足则补0) 
 字段6:N=节,Knots 
 字段7:水平运动速度(0.00)(前导位数不足则补0) 
 字段8:K=公里/时,km/h 
 字段9:校验值

6. $ GPGLL 大地坐标信息
地理定位信息$ GPGLL的标准格式如下:
*$GPGLL,<1>,<2>,<3>,<4>,<5>,<6>hh

例:$GPGLL,4250.5589,S,14718.5084,E,092204.999,A*2D

字段0:$GPGLL,语句ID,表明该语句为Geographic Position(GLL)地理定位信息 
字段1:纬度ddmm.mmmm,度分格式(前导位数不足则补0) 
字段2:纬度N(北纬)或S(南纬) 
字段3:经度dddmm.mmmm,度分格式(前导位数不足则补0) 
字段4:经度E(东经)或W(西经) 
字段5:UTC时间,hhmmss.sss格式 
字段6:状态,A=定位,V=未定位 
字段7:校验值
7 $ GPZDA 当前时间信息
*$GPZDA,<1>,<2>,<3>,<4>,<5>,<6>hh

例如: $GPZDA,105001,25,02,2008,-08,00*67
字段1: UTC时间 ,hhmmss(时分秒)
字段2: 日
字段3:月
字段4:年
字段5:本地区域小时(NEO-6M未用到,为00-正负13)
字段6:本地区域分钟(NEO-6M未用到,为00-59)
字段7: 校验和
每一帧最后都有一个hh的校验和,该校验和是通过计算 $与 * 之间所有字符ASCII码的异或运算得到, 将得到的结果以ASCII字符表示就是该校验了。

附带解析链接
NMEA数据解析方法

GPS NMEA-0183协议常用数据格式及解析攻略相关推荐

  1. minmea——GPS NMEA 0183 协议解析库

    今天给大家推荐一个纯C语言编写,轻量级的GPS NMEA 0183协议解析库:minmea github地址:https://github.com/kosma/minmea 一.特点 1.C99标准编 ...

  2. GPS NEMA 0183协议

    GPS NEMA 0183协议 一. NMEA0183标准语句(GPS常用语句) $GPGGA 例:$GPGGA,092204.999,4250.5589,S,14718.5084,E,1,04,24 ...

  3. Algorithm:数学建模大赛(国赛和美赛)的简介/内容、数学建模做题流程、历年题目类型及思想、常用算法、常用工具之详细攻略

    Algorithm:数学建模大赛(国赛和美赛)的简介/内容.数学建模做题流程.历年题目类型及思想.常用算法.常用工具之详细攻略 目录 国内数学建模大赛简介 1.本科生数学建模大赛 2.研究生数学建模大 ...

  4. Python语言学习之pandas:DataFrame二维表的简介、常用函数、常用案例之详细攻略

    Python语言学习之pandas:DataFrame二维表的简介.常用函数.常用案例之详细攻略 目录 DataFrame的简介 DataFrame的常用案例 1.写入和读取excel表格文件

  5. 设计师:室内设计师的简介、工作内容、工作要求、设计常识(硬装/软装/榻榻米/马卡龙/地台/公共空间/玄关/闭水实验、家具知识(欧式雕花家具-欧式雕花家具)、室内设计常用尺寸之详细攻略

    设计师:室内设计师的简介.工作内容.工作要求.设计常识(硬装/软装/榻榻米/马卡龙/地台/公共空间/玄关/闭水实验.家具知识(欧式雕花家具-欧式雕花家具).室内设计常用尺寸之详细攻略 目录 室内设计师 ...

  6. 尼尔机械纪元房顶机器人_尼尔机械纪元辅助机器人是什么 辅助机器人解析攻略...

    原标题:尼尔机械纪元辅助机器人是什么 辅助机器人解析攻略 <尼尔:机械纪元>是款角色扮演游戏,这款游戏的画面十分的精致,在这里很多玩家们都在问尼尔机械纪元辅助机器人是什么?那么下面小编就为 ...

  7. 假艾斯机器人_奥特曼格斗进化3艾斯机器人技能解析攻略 艾斯机器人玩法

    今天小编要为大家带来的是奥特曼格斗进化3艾斯机器人技能解析攻略,奥特曼格斗进化3是一款动作格斗类游戏,游戏中的可选角色越来越丰富,画面.技能效果.音效等方面与前作相比较也有了长足的进步. 艾斯机器人: ...

  8. GPS NMEA 0183 4.10协议/GPS Linux串口驱动

      NMEA 0183是美国国家海洋电子协会(National Marine Electronics Association)为海用电子设备制定的标准格式.现在已经成为GPS导航设备统一的RTCM(R ...

  9. 工程测量gps静态的实训报告_GPS-RTK实战攻略——静态、动态测量的区别和步骤...

    工程中使用GPS-RTK进行常规测量时,只需要建一次站就可以完成测量啦.而且利用GPS-RTK仪器进行测量很方便,易上手.在常规测量时,GPS-RTK进行静态测量和动态测量的次数比较多.而因静.动态测 ...

最新文章

  1. 位置传感器:电位器,电容位置传感器
  2. OpenERP Web开发
  3. 分析决策树算法和逻辑回归算法的不同之处
  4. java整形怎么转字符串型_java整型与字符串互转
  5. 辰星计划2022 | 旷视研究院春季实习生招募开始啦!
  6. sql语句的一些细节东西学起来还是很费劲的,希望以后注意下。算是经验吧
  7. dotnet new 命令安装模板
  8. http协议与web本质
  9. 计算机专业实践试题,计算机专业实践综合试题答案..doc
  10. 图论 —— DAG 图的最长路
  11. matlab p q的确定,基于MATLAB软件的P-Q分解法潮流计算 (1)
  12. java代码餐馆管理系统_Java 餐厅收银管理系统
  13. python是什么语言简称为_python为何称为胶水语言
  14. WEP 加密的工作原理和安全缺陷
  15. java如何设置控制台打印的字体颜色、背景、字体样式(idea设置打印字体样式)工具类 - 附插件方式
  16. Java开发中OnlyOffice、OpenOffice和LibreOffice怎么选?
  17. huggingface.transformers任务简介
  18. 【视频】极值理论EVT与R语言应用:GPD模型火灾损失分布分析
  19. 学习笔记:全局变量定义“无须”初始化,局部变量必须初始化
  20. 学生交作业,现在都流行用二维码了

热门文章

  1. 高手追小萝莉的故事(洛谷P1184题题解,Java语言描述)
  2. 【面向对象】面向对象程序设计测试题14-Java文件测试题
  3. Redis命令详解:Hashs
  4. 机器人中的轨迹规划(Trajectory Planning )
  5. Typescript学习笔记(五) 模块机制
  6. [Winodows图形编程]初识双缓冲技术
  7. 打开网页出现“安全沙箱冲突”的提示
  8. 在互联网大环境下,IT编程以及网络营销,到底学哪个比较好就业?
  9. 全栈工程师已经过时?
  10. 电商行业最复杂的人货场分析,我用一个案例给你讲清楚