基于串口通信的GPS数据提取与应用

时间:2022-10-05 02:56:55

基于串口通信的GPS数据提取与应用

摘要:该文首先介绍了常用的GPS数据格式,利用了VC++6.0的MSComm控件实现串口通信方式下的GPS数据中重要信息的提取。最后,探讨了GPS数据重要信息的具体应用。

关键词:GPS数据;串口通信;VC++ 6.0;MSComm控件

中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2013)33-7416-02

GPS(Global Positioning System)全球定位系统,它是在地球上空布置了24颗专用GPS卫星,卫星轨道每时每刻的精确位置通过无线电波发送到地面上,地面上的GPS信号接收机可以接收到至少4颗以上的卫星信号,依据卫星的位置计算出地面的位置。它能够为用户提供全球性的、全天候的、高精度的、连续实时的三维坐标、三向速度等信息。这些信息包含在GPS数据格式里,可以通过遵循NMEA0183协议的GPS接口供给外部设备提取与应用。

1 GPS常用数据格式

GPS常用数据格式包括"$GPGGA"、"$GPGLL"、"$GPGSA"、"$GPGSV"、"$GPRMC"和"$GPVTG"。它们主要由帧头、帧尾和帧内数据组成,数据帧结构不同,帧头也不相同,各帧均以回车符和换行符作为帧尾标识。通常情况,我们所关心的定位数据如经纬度、速度、时间等均可以从"$GPRMC"帧中获取得到。如果和卫星通信正常,可以接收到的数据格式"$GPRMC"帧结构如下:$GPRMC,,,,,,,,,,,,*hh,其具体信息如表1所示。

2 GPS数据提取方法

GPS数据提取方法分为两个步骤:第一步,GPS数据的捕获;第二步,GPS数据的解析。前者采用串口通信的方式把GPS接口与主机相连接,利用VC++的MSComm控件实现对串口编程,捕获GPS接收机所发送的数据;后者根据捕获的GPS数据帧格式中的帧头确定要给哪个数据帧进行数据的解析,然后根据数据帧结构中的内容提取所需要的信息。

VC++6.0提供的MSComm控件可以通过串行端口捕获GPS信号接受机所发送过来的数据,为应用程序提供串行通信的功能。MSComm控件串口通信编程的基本流程如图1所示:

现以"$GPRMC"数据帧解析为例,首先针对串口通信下捕获的GPS数据,判定帧头是"$GPRMC",其次根据所需要的信息(例如经纬度、时间、速度等)确定需要提取该帧头后的数据帧中哪些字段的内容,最后对所提取出来的内容进行恰当的变换,服务于后续的具体应用。

3 GPS数据具体应用

本文是把提取出来的GPS数据应用于对航海中的船舶进行定位与导航,将定位信息实时地传送到陆地上的监控服务中心,并且在电子航海图上标注与显示。这样,管理人员能够及时地掌握船舶行进的具置和了解航行的具体路线,方便其对船舶的监控与管理。简单的客户端应用程序界面如图2所示:

4 结论

文章重点研究GPS数据中的"$GPRMC"数据帧格式,可以利用VC++6.0的MSComm控件对串口通信中发送的GPS数据进行读取与解析,能够实现对物体的准确定位与安全导航等功能。

参考文献:

[1] 李天文.GPS原理及应用[M].北京:科学出版社,2010.

[2] 刘大杰,等.全球定位系统(GPS)的原理与数据处理[M].上海:同济大学出版社,1996.

[3] 顾必良,王黎明,韩焱. 基于VC++的GPS数据采集与处理[J]. 微计算机信息, 2008(13).

[4] 李现勇.Visual C++串口通信技术与工程实践[M].北京:人民邮电出版社,2004.

[5] 孙鑫,余安萍.VC++深入详解[M].北京:电子工业出版社,2007.

上一篇:安全防范系统在智能建筑中的运用 下一篇:无线传感网络的研究综述与发展前景