基于MSComm控件的GPS接收机数据终端接口设计
扫描二维码
随时随地手机看文章
1 引 言
全世界定位系统(GPS)是20世纪70年代由美国陆海空三军联合研制的空间卫星导航定位系统,其目的是为美国军方提供实时精确的定位、导航和授时等服务通常GPS系统由3个部份组成:空间部分:包括24颗GPS卫星;地面控制部分:对GPS卫星实施监控;用户部分:接收来自GPS卫星的定位等信息,通常包括天线和接收机等设备GPS系统在进行定位时,必须要确定用户所在的位置(包括x,y,z三个坐标),同时还要考虑到卫星时钟与接收机时钟之间的误差t,要解算4个未知量必须建立4个方程,通常可以通过测量卫星与-用户之间的伪距,来建立相应的方程,因此需要同时观测4颗卫星,才能实现精确定位随着时代发展,GPS系统不再局限于美国军方,已被广泛应用于社会生活的各个方面,从大地测绘到车辆导航都能找到其身影鉴于卫星导航技术在民用和军事领域的重要意义,我国也建立了相应的“北斗导航系统”,但目前我国应用最为广泛的还是GPS系统本文针对GPS系统,介绍了定位信息在GPS接收机与PC机之间的传输和提取方法
2 定位信息的格式
要实现定位信息的提取和显示,首先要实现定位信息的传输,即通过相应的接口实现GPS接收机与PC机之间的通信本文介绍的接收机采用SiRF Technology公司的GPS接收芯片,通过天线接收GPS卫星信号,并进行相应处理产生定位信息,再通过串口(RS 232)输出GPS通讯协议较多,本文采用应用最为广泛的NMEA—0183协议在此协议中包括了“$GPGGA”、“$GPGSA”、“$GPGSV”和“$GPRMC”等格式,本文以最简格式“$GPRMC”语句为例介绍协议中各数据段的含义例如:$GPRMC,161022.A,3212.875,N,11893.578,E,O.O,11O.4,140406,2.3,W,A*302
在此列中各数据段通过逗号分开,其中:
$GPRMC为帧头,标识后续帧内数据组成结构;161022为UTC标准时间,格式为“hh/mm/ss”;A表示数据有效,如为V则表示可跟踪卫星小于3颗;3212.875为纬度值,格式为“ddmm.mmmm”;N表示北纬,如为S则表示南纬;11893.578为经度值,格式为“dddmm.mmmm”;E表示东经,如为W则表示西经;0.0表示速度;110.4表示方位角,从000.0°~359.9°;140406为UTC标准日期,格式为“mm/dd/yy”;2.3表示地磁变化,从000.O°~180.0°;W表示地磁变化方向,包括w或E;
在这些数据中,本文主要关心的是地理坐标和时间,即纬度、经度和UTC日期、时间
3 定位信息的传输和提取
定位信息的传输,即GPS接收机与PC机之间的通信,通常采用串口来实现本文中采用VB提供的MSComm控件来编写串口程序达到通信的目的MSComm控件被广泛用来实现串口通信,对于他的介绍这里不再赘述在本文中实现具体的串口通信时,必须对MSComm控件的相关属性进行设置在默认设置基础上需要进行更改的设置包括下面3个部分:
(1)考虑到GPS串口通信采用固定的参数,因此要将MSComm控件中的Settings属性设置为“4800,N,8,1”,即波特率为4 800 b/s,无奇偶校验位,数据位为8,停止位为1
(2)根据所采用的接收机的不同,还需对MSComm控件中的inputMode属性进行设置,本文中采用“comInputMode Text”方式
(3)根据所选择的串口将MSComm控件中的Commport属性设置为相应的串口号,本文中为“1”
定位信息的提取,包括2个部分:
(1)从“$GPRMC”数据列中提取经纬度等信息;
(2)将这些信息在文本框内显示这一工作可以在MSComm控件中的OnComm事件中通过编程具体实现流程图如图1所示
部分代码如下:
首先,将缓存中的“$GPRMC”格式的定位信息赋给字符串变量“GPRMC”,根据前面介绍过的“$GPRMC”的格式,通过相应的语句从变量“GPRMC”中提取出所需的纬度、经度、速度和时间日期等信息,并赋给相应的变量需要注意的是,在提取时间信息时需要将UTC时间转换为北京时间,并对24进行模运算,以确保时间的准确然后,将提取出来的定位信息在预先设计的文本框中显示出来通过这些步骤即完成定位信息的提取工作,具体的效果如图2所示
4 结语
本文介绍了一种使用VB实现GPS定位信息提取的方法,具有简单、实用的特点通过这一方法可以实现GPS接收机和PC机之间的数据通信,并能将所需的定位信息直观地在相应窗口显示出来