APP下载

基于VB.NET的GPS接收机串口通信的实现

2012-11-27汪剑云吴北平聂小波

地理空间信息 2012年2期
关键词:控件接收机串口

刘 岩,汪剑云,吴北平,李 兵,聂小波,肖 昶

(1.中国地质大学信息工程学院,湖北 武汉430074;2.湖北省基础地理信息中心,湖北 武汉430071)

基于VB.NET的GPS接收机串口通信的实现

刘 岩1,汪剑云1,吴北平1,李 兵2,聂小波2,肖 昶2

(1.中国地质大学信息工程学院,湖北 武汉430074;2.湖北省基础地理信息中心,湖北 武汉430071)

首先介绍了串口通信和GPS数据格式,然后通过实例详细讨论了在VB.NET环境下应用MSComm控件实现计算机与GPS接收机之间利用串口传输并提取定位信息的方法。所设计的算法可以应用于基于PC机的车载GPS道路信息更新中。实验表明,系统运行稳定、实时性高、准确、简便。

GPS;VB.NET;串口通信;MSComm控件

GPS是20世纪70年代由美国陆海空三军联合研制的新一代空间卫星导航定位系统,因其具有高精度、全天候、高效率等显著特点,近年来被广泛应用于车载GPS道路信息更新中。为了实现GPS数据接收与处理,首先就要解决计算机和GPS接收机的串口通信问题,计算机的串行端口提供了计算机和GPS接收机之间的数据传输通道。由于VB.NET简单易学、编程效率高,它提供的串口通信编程方法已经成为GPS接收机串口通信程序设计的重要方法之一,因此本文采用VB.NET提供的MSComm通信控件来实现GPS接收机的串口通信[1-3]。

1 串口通信

串口通信(SerialCommunication)是一种重要的数据交换方式,是指外部设备与计算机之间通过数据线、地线、控制线等,按位(bit)进行数据传输的一种通信方式,其本质是作为CPU和串行设备之间的编码转换器。每台计算机至少配备一个标准的串行端口RS-232,它是计算机与GPS接收机之间的数据传输通道。在GPS接收机和计算机的数据传输过程中,只要GPS接收机一直处于正常工作的状态,就会不断地将接收并解算出的导航定位信息通过RS-232串口传输到计算机中。

利用VB.NET串口通信实现方式主要有2种:①利用VB.NET提供的串口通信控件MSComm,通过编写的程序实现GPS接收机与计算机间的实时通信;②利用Windows提供的全部API动态链接函数进行串口通信。本文利用第一种方法实现GPS接收机和计算机间的通信[4-6]。

2 GPS数据格式

目前市场上大多使用的GPS接收机都遵守由美国国家海洋电子协会(NMEA-TheNationalMarineElectronics Association)制定的一套通信协议。该协议采用ASCII码格式,规定了海用和陆用GPS接收机输出的经纬度、时间、卫星状态、接收机状态等信息,大多数常见的GPS接收机、GPS数据处理软件、导航软件都遵守或者至少兼容这个协议,现在已经作为一种广泛使用的行业标准。

NMEA-0183协议定义了很多语句,常见的类型有:$GPGGA、$GPGSA、$GPRMC、$GPGSV以及$GPGLL等。这些数据主要由帧头、帧尾、帧内数据组成,通过帧头来识别帧内数据的结构,处理数据时可通过“$”来判断是否为帧头,判定后则通过读取逗号个数进行判断当前处理的是哪一部分的导航参数,并做出相应的提取处理。每帧数据均以回车符 ()和换行符()作为帧尾结束[7-9]。一般情况下,接收机通过串口每秒输出除$GPGLL之外的4种语句,图1给出的是常用的NMEA-0183语句截图。

图1 GPS数据接收截图

通常使用的经纬度、速度、时间等信息均可以从$ GPRMC中提取,该帧的结构如下:

<1>当前格林尼治时间(UTC),格式为mmss;<2>状态字,A:定位成功,V:目前没有;<3>纬度,格式为ddmm.mmmm;<4>纬度的属性,南半球为S,北半球为N;<5>经度格式为dddmm.mmmm;<6>经度的属性,东半球为E,西半球为W;<7>天线移动速度,从 000.0到 999.9节;<8>相对地面方向,000.0到359.90;<9>当前日期(UTC时间),格式为:ddm;<10>磁偏角000.0到180.00;<11>磁偏方向E or W;<*>校验和标志;表示校验和;是回车换行符,语句结束的标志。

如图1中的$GPRMC数据$GPRMC,211940,A,3044.4756,N,11453.0234,W,47.442,89.9,021000,12.4,E*54,其中,21190为格林尼治时间,A表示定位成功,3044.4756、11453.0234分别为经纬度,47.442为天线移动的速度,89.9是方位角,021000为UTC日期,12.4为磁偏角,E为磁偏方向,*54为检校值。

以提取经度、纬度为例,具体的导航信息提取代码如下:

3 基于MSComm控件的GPS串口通信的实现

VB.NET中的MSComm控件(M icrosoftCommunicationsControl)是Windows下串行通信编程的ActiveX控件,它提供了一系列的标准通信命令,可以通过串行端口传输和接收数据,为应用程序提供了串行通信功能。利用 MSComm控件可以大大提高编程效率,MSComm控件可以采用轮询或事件驱动的方法从端口获取数据,本文选择事件驱动方法。

一般情况下,应用MSComm控件实现串口通信的步骤主要包括:①添加MSComm控件;②串口初始化并打开串口;③用事件驱动的方式从串口中接收 GPS数据。

3.1 MSComm控件的初始化

由于GPS接收机的串口通信参数是固定的,因此用MSComm控件编程时应先设置好串行端口的参数:波特率=9600,无奇偶检校,数据位=8,停止位=1,其主要的程序如下:

3.2 GPS定位信息的接收与提取

在了解了GPS接收的数据格式后,利用VB.NET编程时可以通过 MSComm控件的 Timer事件来接收GPS定位信息。在处理GPS数据时接收机每秒钟触发一次Timer事件,接收时间间隔设置为Timer1.Interval =1 000,同时将接收的数据保存在文件gpsout.txt中,具体代码如下:

//提取 GPS语句中的经纬度、时间、方位角和速度等信息

//在文本框里逐行显示GPS语句

综上所述,利用MSComm控件提取GPS数据的流程图如图2所示[5,6]。

图2 GPS数据提取流程图

4 结 语

本文利用VB.NET中的MSComm控件实现了GPS接收机的串口通信,在实际应用中串口的属性均被封装在控件中,避免了程序的重复性,增强了程序的可读性。MSComm控件大大简化了串口通信的编程,使计算机和GPS接收机之间数据传输速度更快,效果较好。将编写的算法应用到基于PC机的车载GPS道路信息更新系统中,通过把GPS接收机和便携式电脑的串口相连,可以快速获取GPS定位导航信息,实验结果证明系统运行稳定、准确、简便、实时性强。

[1] 李淑慧.VC++6.0环境下GPS接收机串口通信的实现[J].测绘信息与工程,2002,27(5):23-24

[2] 张令勇,高松,钟磊.基于VB的实时获取GPS数据信息研究与开发[J].计算机与现代化,2010(5):92-95

[3] 李永丰,於新国.利用GPS快速采集道路信息系统的研究[J].地理空间信息,2007,5(5):28-29

[4] 王华,岳丽全,岳志高.MSComm控件在VC++6.0串口通信中的应用[J].长春工程学院学报:自然科学版,2009,10(1):72-73,91

[5] 郭念.基于VB实现GPS数据采集与处理[J].电脑知识与技术,2009,5(1):11-12

[6] 李立早.基于MSComm控件的GPS接收机数据终端接口设计[J].现代电子技术,2006(20):97-98

[7] 张显云,张勤,翟伟.基于VB6的GPS数据实时通信[J].全球定位系统,2007(4):14-16

[8] 张庆峰.车载GPS导航系统的设计与实现[D].苏州:苏州大学,2006

[9] 刘颖.基于定位和电子地图的道路信息获取关键技术的研究[D].长春:吉林大学,2010

Achievement of Serial Communication of GPS Receiver Based on VB.NET

by LIU Yan

This paper firstly introduced the serial communication and GPS data format.Then,the method using MSComm component to achieve serial communication and extraction of location information between computer and GPS receiverinVB.NET environment was discussed in detail by example.The designed algorithm can be applied to PC-based in-car GPS road information updating.Experimental results show that the system is stable,high real-time,accurate and convenient.

GPS,VB.NET,serial communication,MSComm component

2011-12-20

项目来源:国家重大科技基础设施建设资助项目(发改高技 [2007]1911)。

P228.4

B

1672-4623(2012)02-0047-03

刘岩,硕士,研究方向为3S技术集成。

猜你喜欢

控件接收机串口
浅谈AB PLC串口跟RFID传感器的通讯应用
一种用于调幅接收机AGC的设计与实现
一种面向ADS-B的RNSS/RDSS双模接收机设计
关于.net控件数组的探讨
数字接收机故障维修与维护
基于多接收机的圆周SAR欺骗干扰方法
数字电源内部数据传输的串口通信方法实现
USB接口的多串口数据并行接收方法探索
基于蓝牙串口适配器的GPS接收机与AutoCAD的实时无线通信
ASP.NET服务器端验证控件的使用