GPS NMEA协议解析之MTK专用语句

GPS NMEA协议解析之MTK专用语句


前言

NMEA是GPS的标准协议,它是National Marine Electronics Association 的缩写,是美国国家海洋电子协会的简称。


一、NMEA协议简介

NMEA是一套标准的GPS协议,其中主要包括数据和指令,分别有对应的格式。

二、NMEA数据格式

GPS指令是MTK专用语句,包括一系列语句。专用语句是参考移远L26-LB模组和移柯N10B模组,以下仅仅是其中一部分指令。

1.PMTK_CMD_STANDBY_MODE(161)

此语句用于使模块进入待机(Standby)模式以降低功耗

格式:
$PMTK161,<1><2><3>
示例:
$PMTK161,0
28 //输入
$PMTK001,161,3*36 //输出(应答语句)

MTK 定义的 NMEA 专用语句。
<1>“0”=待机(Standby)模式
<2>校验和,格式:十六进制
<3>每条 NMEA 语句以回车换行符“”结束

2.PMTK_SET_POS_FIX(220)

此语句用于设置定位时间间隔,也可用于设置 NMEA 通用语句的输出频率。

格式:
$PMTK220,<1><2><3>
示例:
$PMTK220,1000
1F //输入
$PMTK001,220,3*30 //输出(应答语句)

PMTK220:MTK 定义的 NMEA 专用语句。
<1>定位时间间隔(100~10000),单位:毫秒。
<2>校验和,格式:十六进制
<3>每条 NMEA 语句以回车换行符“”结束

3.PMTK_API_SET_MIN_SNR(306)

此语句用于设置在用卫星的最低信噪比。如果设置了最低信噪比的阈值,模块将不使用信噪比低于此
阈值的卫星。

格式:
$PMTK306,<1><2><3>
示例:
$PMTK306,15
1F //输入
$PMTK001,306,3,15*1D //输出(应答语句)

PMTK306:MTK 定义的 NMEA 专用语句。
<1>在用卫星最小信噪比阈值:范围:9~37
<2>校验和,格式:十六进制
<3>每条 NMEA 语句以回车换行符“”结束

4. PMTK_API_SET_NMEA_OUTPUT(314)

此语句用于设置单个或多个 NMEA 通用语句的输出频率。共有 22 个数据字段可用于配置所支持 NMEA
通用语句的输出频率。

格式:
$PMTK314,<1>,<2>,<3>,<4>,<5>,<6>,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0*<7><8>
示例:
模块每一次定位时仅输出一次 RMC 语句。
$PMTK314,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,035 //输入
$PMTK001,314,3
36 //输出(应答语句)

PMTK314:MTK 定义的 NMEA 专用语句。
<1> GLL数据频次: “0”:禁用的或不支持的语句“n”:每“n”次定位,输出一次;“n”的范围:1~5
<2> RMC数据频次: “0”:禁用的或不支持的语句“n”:每“n”次定位,输出一次;“n”的范围:1~5
<3> VTG数据频次: “0”:禁用的或不支持的语句“n”:每“n”次定位,输出一次;“n”的范围:1~5
<4> GGA数据频次: “0”:禁用的或不支持的语句“n”:每“n”次定位,输出一次;“n”的范围:1~5
<5> GSA数据频次: “0”:禁用的或不支持的语句“n”:每“n”次定位,输出一次;“n”的范围:1~5
<6> GSV数据频次: “0”:禁用的或不支持的语句“n”:每“n”次定位,输出一次;“n”的范围:1~5
<7>校验和,格式:十六进制
<8>每条 NMEA 语句以回车换行符“”结束

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值