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机之间的数据通信,并能将所需的定位信息直观地在相应窗口显示出来。
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机之间的数据通信,并能将所需的定位信息直观地在相应窗口显示出来。
举报