c语言gga字符串校验和代码,NMEA-0183协议解析(示例代码)

NMEA-0183是GPS导航设备的标准协议,用于数据传输。本文介绍了协议的基本格式、常用命令及其数据字段,并提供了C语言实现的字符串校验和代码示例。
摘要由CSDN通过智能技术生成

NMEA-0183

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

序号

命令

说明

最大帧长

1

$GPGGA

全球定位数据

72

2

$GPGSA

卫星PRN数据

65

3

$GPGSV

卫星状态信息

210

4

$GPRMC

运输定位数据

70

5

$GPVTG

地面速度信息

34

6

$GPGLL

大地坐标信息

7

$GPZDA

UTC时间和日期

注:发送次序$GPZDA、$GPGGA、$GPGLL、$GPVTG、$GPGSA、$GPGSV*3、$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)帧结束,回车和换行

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> 天线离海平面的

NMEA 0183是一种广泛应用于航海和GPS设备的数据通信协议。在NMEA 0183协议中,数据以文本形式传输,使用ASCII字符集编码。 针对NMEA 0183协议C语言编程可以实现与NMEA设备的通信和数据处理。首先,需要建立串口通信连接,通过串口读取和发送数据。可以使用C语言中的串口编程接口,如使用标准库函数或第三方库实现串口的打开、读写和关闭操作。 在读取NMEA数据之后,需要进行解析和处理。NMEA 0183协议定义了不同类型的数据消息,如GPS位置、速度、航向等。这些数据消息通常以$开始并以回车换行符(\r\n)结束。可以使用C语言字符串处理函数来分割字符串,并将不同的数据字段提取出来,以便进一步使用或显示。 为了方便数据的解析和处理,可以设计和实现一些自定义的C函数来解析特定类型的NMEA消息。例如,在处理GPS数据时,可以编写函数来解析GGA(地理定位信息)消息或RMC(最小定位信息)消息。 除了解析数据消息外,还可以编写C函数来处理NMEA错误。由于NMEA协议的数据校验位(Checksum)可以检测到数据传输错误,因此可以实现校验和验证函数来确保接收到的数据的完整性和正确性。 在实际应用中,可以根据需求和具体设备的特点,结合C语言的其他功能,如结构体、数组和文件操作等,设计和实现更复杂的功能。这可能涉及到数据的保存、处理和显示,或者与其他系统的接口和通信等。 总的来说,使用C语言编程实现NMEA 0183协议的通信和数据处理主要涉及到串口通信的编程和数据解析的编写。通过合理设计和实现相关函数,可以有效地处理NMEA数据,从而实现各种功能和应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值