77范文网 - 专业文章范例文档资料分享平台

3.GPS信息-GPVTG数据解析(2)

来源:网络收集 时间:2019-03-28 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

电子与信息工程专业课程设计

第2章 NMEA-0183协议的简介

NMEA-0183协议是为了在不同的GPS导航设备中建立统一的RTCM(海事无线电技术委员会)标准,它是由美国国家海洋电子协会制定的。NMEA协议有0180、0182和0183这3种,0183可以认为是前两种的升级,也是目前使用最为广泛的一种。

NMEA输入报文提供了允许通过NMEA协议控制GPS的方法。

表1 传输格式

1.起始符包含3个字节,从MID100开始。 2.具体数据,特定的数据序列?

3.NMEA定义的校验是2个HEX的字符,适用于所有输入报文。

4.所有输入报文都以回车符和换行符结束,即\\r\\n,十六进制码为0D0A。因为\\r\\n是不可打印的ASCII字符,是示例字符串,但必须发送强制其作为输入报文的终止符。

起始符 $PSRF1 数据 DATA2 校验码 *CKSUM3 终止符 4 2.1 NMEA-0183协议的格式定义

它所规定的通讯语句都是以ASCII码为基础的,NMEA-0183协议语句的数据格式如下:“$”为语句起始标志;“,”为域分隔符;“*”为校验和识别符,其后面的两位数为校验和,代表了“$”和“*”之间所有字符的按位异或值(不包括这两个字符);“/”为终止符,所有的语句必须以它来结束,也就是ASCII字符的“回车”(十六进制的0D)和“换行”(十六进制的0A)。本文仅对 GPVTG这个信息语句进行详细分析以及对其所含信息的解析。 下面主要介绍GPVTG语句。

例:$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:校验值

电子与信息工程专业课程设计

2.2 NMEA-0183的应用领域

1.水上GPS导航

在与水上导航有关的作业中,NMEA-0183标准被广泛地使用,如水下地形测量、海洋地球物理勘 探等。水上导航作业的配置主要有导航监控系统、GPS、测深仪、电罗经等。

目前,工程中比较常用的水上导航软件,除了国际知名的HYDRO、HYPACK、FUGRO等外,还有我国一些公司自行研制的软件。如中海达水上测量软件等,均可在其软件配置中设置数据NMEA-1083的输入。用于水上导航的GPS,它们的硬件设备都有专门的串口支持NMEA-0183数据输出。目前市场上大多数的接收机都支持NMEA-0183标准。 2.车载GPS导航定位

定位类似于水上作业,其导航设备配里主要有导航定位软件系统和及车速传感器、陀螺传感器等。目前,被广泛地应用于国防、交通、银行、消防、医疗、旅游等领域。其基本功能主要包括最佳路径选择、自动导航、多媒体辅助导航,其扩展功能包括数据查询等。

2.3 NMEA-0183数据处理中的注意事项

在开发基于GPS的应用系统中,要将GPS作为信息源,正确接收和解析GPS发送的NMEA-0183数据。此时,在编程实现时需要注意以下几个问题: 1、所需信息的正确提取

NMEA—O183是以语句形式发送数据的,接收机可能发送很多类型的语句,由于小数点位数不同等原因,语句的长度是可变的,在对接收到的数据进行解析时,不能按照该信息在语句中所处的字符位置来查找,只能依据逗号分隔符,这一点在数据提取的过程中非常重要。 2、通讯端口的设置

需要注意设置计算机的接口参数与GPS设备一致。NMEA规范推荐的串行通讯参数为“波特率:4800;奇偶校验:无;数据位:8;停止位:1”。

为解决信息的正确提取问题,并提高程序的复用性,可以编写适当的函数,如一个函数通过$字符判断语句头,一直到换行回车结束一条语句;一个函数通过“,”分隔符来提取语句字段,还有一个函数用来返回语句中指定字段的内容。有了这三个函数,就可以方便的提取所需的信息,此时的工作就相对比较简单了。

电子与信息工程专业课程设计

第3章 设计方案

3.1 主要方案思路及步骤

编程的主要思想:

因为GPVTG语句包含速度和航向信息。消息格式为: $GPVTG,89.68,T,,M,0.00,N,0.0,K*5F,所以我们根据GPTVG消息格式的特点确定了编程的主线:通过对逗号的扫描来确定每一段的解析数据,需要进一步解析的就再次解析,从而最终解析出所有我们需要的数据。具体的程序流程图如下: 3.1.1主流程图

图2主程序流程图

主流程序图的解释:

开始对数据的初始化。通过选择语句对输入内容进行判断,键入0,选择解析GPVTG信息程序(调用子函数进行数据解析);键入1,则结束程序;如果键入其他键则进行报错,重新返回初始状态进行重新的选择。

电子与信息工程专业课程设计

3.1.2调用函数流程图:

图3 调用函数流程图

调用函数的流程图解释:

数据初始化,用fopen函数打开文本1,开始进行检测。检测是否读到了“\\0”符号,如果有,说明已经将一条完整的GPVTG信息存入到vtg[i]之中,然后就开始解析GPVTG信息,将结果显示并输出到指定的文本当中;如果还没有检测到“\\0”符号,说明此条GPVTG信息还没有完整的存入到vtg[i]中,还需要继续检测存入。利用feof函数来检测文件位置指针是否到达了文件尾,若到达文件尾则返回一个非0值(真)——结束检测,否则返回0(假)——继续下一条GPVTG信息的检测。

3.1.3解析程序的编写及流程图

解析程序编写的主要思路:

从指定文件中读取GPVTG信息并存入数组,通过对逗号和*号的检测和定位来解析所需要的信息。通过循环嵌套的方式来编写程序。具体流程图如下:

电子与信息工程专业课程设计

图4 GPVTG信息解析流程图

解析过程程序流程图的解释:

开始进行数据初始化,然后利用if语句进行检测,检测是否是“,”号,如果是则标志位置加1,即temp++。如果不是则检测是不是“*”号,如果也不是“*”号,根据temp值,来决定数据存储与否。当temp=1, 3, 5,7 时,将进行对数据的存储;如果是“*”号,则存储校验和。

3.2程序的编写及调试结果

3.2.1 最终程序及其注解

#include \

char analysis(); /*调用函数声明 */ int main() /*主函数*/

{

int j; /*输出显示本小组成员信息和相关信息的解释说明,以及操作步骤的要求*/ printf(\**\\n\

printf(\

printf(\

printf(\ printf(\ printf(\ \\n\ printf(\ printf(\ printf(\

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库3.GPS信息-GPVTG数据解析(2)在线全文阅读。

3.GPS信息-GPVTG数据解析(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/549027.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: