GPS理论知识NMEA 0813协议

18/100发布文章 博文管理我的博客退出 Trash Temp GPS理论知识NMEA 0813协议 添加摘要 18/100发布文章 博文管理我的博客退出 Trash Temp GPS理论知识NMEA 0813协议 添加摘要 GPS理论知识
(1)** 了解NMEA 0813协议**

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

二、协议格式
NMEA-0183协议采用ASCII码来传递GPS定位信息,我们称之为帧。
. 帧格式如下:$aaccc,ddd,ddd,…,ddd * hh

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

2.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> 大地椭球面相对海平面的高度(-9999.9到9999.9)。
<12> 高度单位,M表示单位米。
<13> 差分GPS数据期限(RTCM SC-104),最后设立RTCM传送的秒数量。 <14> 差分参考基站标号,从0000到1023(前导位数不足则补0)。
<15> 校验和。

nmea数据如下:

G P G G A , 121252.000 , 3937.3032 , N , 11611.6046 , E , 1 , 05 , 2.0 , 45.9 , M , − 5.7 , M , , 0000 ∗ 77 GPGGA,121252.000,3937.3032,N,11611.6046,E,1,05,2.0,45.9,M,-5.7,M,,0000*77 GPGGA,121252.000,3937.3032,N,11611.6046,E,1,05,2.0,45.9,M,5.7,M,,000077GPRMC,121252.000,A,3958.3032,N,11629.6046,E,15.15,359.95,070306,A54 G P V T G , 359.95 , T , , M , 15.15 , N , 28.0 , K , A ∗ 04 GPVTG,359.95,T,,M,15.15,N,28.0,K,A*04 GPVTG,359.95,T,,M,15.15,N,28.0,K,A04GPGGA,121253.000,3937.3090,N,11611.6057,E,1,06,1.2,44.6,M,-5.7,M,000072 G P G S A , A , 3 , 14 , 15 , 05 , 22 , 18 , 26 , , , , , , , 2.1 , 1.2 , 1.7 ∗ 3 D GPGSA,A,3,14,15,05,22,18,26,,,,,,,2.1,1.2,1.7*3D GPGSA,A,3,14,15,05,22,18,26,,,,,,,2.1,1.2,1.73DGPGSV,3,1,10,18,84,067,23,09,67,067,27,22,49,312,28,15,47,231,3070 G P G S V , 3 , 2 , 10 , 21 , 32 , 199 , 23 , 14 , 25 , 272 , 24 , 05 , 21 , 140 , 32 , 26 , 14 , 070 , 20 ∗ 7 E GPGSV,3,2,10,21,32,199,23,14,25,272,24,05,21,140,32,26,14,070,20*7E GPGSV,3,2,10,21,32,199,23,14,25,272,24,05,21,140,32,26,14,070,207EGPGSV,3,3,10,29,07,074,30,07,163,287D

3.GPGSA

GPS精度指针及使用卫星格式

$GPGSA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>,<13>,<14>,<15>,<16>,<17>*<18> <1> 模式2:M = 手动, A = 自动。
<2> 模式1:定位型式1 = 未定位,2 = 二维定位,3 = 三维定位。
<3> 第1信道正在使用的卫星PRN码编号(Pseudo Random Noise,伪随机噪声码),01至32(前导位数不足则补0,最多可接收12颗卫星信息)。
<4> 第2信道正在使用的卫星PRN码编号
<5> 第3信道正在使用的卫星PRN码编号
<6> 第4信道正在使用的卫星PRN码编号
<7> 第5信道正在使用的卫星PRN码编号
<8> 第6信道正在使用的卫星PRN码编号
<9> 第7信道正在使用的卫星PRN码编号
<10> 第8信道正在使用的卫星PRN码编号
<11> 第9信道正在使用的卫星PRN码编号
<12> 第10信道正在使用的卫星PRN码编号
<13> 第11信道正在使用的卫星PRN码编号
<14> 第12信道正在使用的卫星PRN码编号
<15> PDOP综合位置精度因子(0.5 - 99.9)
<16> HDOP水平精度因子(0.5 - 99.9)
<17> VDOP垂直精度因子(0.5 - 99.9)
<18> 校验和 .

4.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> 校验和。

5.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> 校验和。

6.GPVTG

地面速度信息(GPVTG)

$GPVTG,<1>,T,<2>,M,<3>,N,<4>,K,<5>*hh

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

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: STM32F103版本可以通过串口接收GPS模块发送的NMEA协议数据,然后进行解析。NMEA协议是一种常用的GPS数据格式,包含了位置、速度、时间等信息。解析NMEA协议数据需要先将数据按照逗号分隔,然后根据协议规定的字段解析出相应的数据。例如,$GPRMC协议中包含了UTC时间、经度、纬度、速度等信息,可以通过解析该协议来获取这些数据。解析完成后,可以将数据存储到内存中或者通过其他方式进行处理和显示。 ### 回答2: 在使用STM32F103版本GPS解析NMEA协议数据时,需要先了解NMEA协议的结构。NMEA协议是用于GPS定位的标准协议,它的结构包含了数据类型标识符、数据字段和校验码。其中数据字段包括时间、日期、经度、纬度、海拔高度等信息,而校验码是用于校验数据的完整性和准确性。在解析NMEA协议数据时,首先需要对接收到的数据进行分析和提取,进而将数据转化为可表示的数据类型,如结构体或数组。 基于STM32F103版本进行GPS解析时,可以使用串口通信进行数据传输。可以通过串口中断程序获取数据,并在中断处理函数中对数据进行分析和处理。在程序的实现过程中,可以先设置一个缓存区用于存储串口中断处理函数接收到的数据,当接收到的数据中包含了完整的NMEA协议数据后,再进行解析和提取。 对于NMEA协议中的数据字段,需要对每个字段进行解析提取,例如通过解析语句$GPRMC中的时间和位置信息,可以得到当前时间和地理位置,而解析语句$GPGGA,可以得到卫星数量、海拔高度、信噪比等信息。另外,在获取到NMEA协议数据后,还需要对数据进行校验,以确保数据的正确性。校验可以通过校验码计算来实现,常用的校验方式是异或校验法,即将数据中所有字节进行异或运算得到一个校验码。 在实现GPS解析时,还需要考虑到系统对处理能力的要求。由于NMEA协议数据频繁更新,对系统的处理能力有一定的要求,因此可以通过优化代码逻辑结构,减小耗时的操作,提升系统性能。同时,还需要注意程序的健壮性,对异常情况进行防范和处理,以保证程序的稳定性和可靠性。 综上所述,STM32F103版本的GPS解析NMEA协议数据,需要先对协议结构进行了解,然后通过串口通信进行数据传输,并使用串口中断程序进行数据处理,在实现过程中,需要考虑到系统的处理能力和程序的健壮性。 ### 回答3: STM32F103系列是一款高性能、低功耗、32位Cortex-M3内核处理器的微控制器,广泛应用于各种嵌入式系统设计。随着GPS技术的广泛应用,STM32F103版本的GPS解析NMEA协议数据变得越来越重要,下面我将详细介绍STM32F103版本GPS解析NMEA协议数据的方法。 NMEA协议是一种用于GPS接收器和计算机之间的信息交换协议,它定义了一系列用于传输GPS数据的数据格式和协议NMEA协议的数据格式通常为ASCII码格式,不同的数据字段通过逗号分隔。 STM32F103版本的GPS解析NMEA协议数据需要完成以下几个步骤: 1.配置串口 GPS模块一般通过串口与MCU进行通信,因此需要首先配置STM32F103的串口,使其能够接收GPS模块发送的数据。 2.接收数据 在串口配置完成后,MCU需要不断接收GPS模块发送的数据,可以通过中断方式或轮询方式进行。 3.解析数据 MCU接收到GPS模块发送的NMEA协议数据后,需要解析出其中需要的数据字段。例如,获取GPS模块发送的经纬度信息,可以从数据中解析出GPRMC数据的经度和纬度字段。 4.处理数据 解析出需要的数据后,还需要进行一些数据处理,例如将经纬度数据转换为十进制表示,计算定位的海拔高度等。 5.输出数据 最后,MCU需要将处理后的数据输出到显示器、SD卡或其他设备中,以便用户实时查看或后续处理。 总之,STM32F103版本GPS解析NMEA协议数据需要进行串口配置、数据接收、数据解析、数据处理和数据输出等多个步骤,需要仔细调试和测试,才能确保正确解析和输出GPS数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值