摘 要:本文利用Visual Basic6.0语言,结合GPS通信技术,设计开发了一个接收和处理GPS通信信号的计算机应用程序。
关键词:GPS;VB6.0;接收板;控件
1 GPS
GPS是全球卫星定位系统,在飞机、轮船、汽车等导航和定位等方面都有广泛的应用。在与地理信息系统结合之后,更能显现其神威。
GPS接收器五花八门,但归根结底是一个工作原理:GPS接收板通过天线接收卫星发来的信号,然后由计算机对信号进行处理。我们这里讨论计算机与GPS板是分体的,通过串口两者相连。
市面上有许多种GPS板,例如:Jupiter、Motorola、古野等等。这些板子都使用NMEA-0183格式作为输出。虽然都是NMEA-0183格式,但不同板子间可能略有差异。我们这里以Jupiter板为例。下面列出Jupiter板最常用的$GPGGA数据的格式:
$GPGGA,162411,3826.1238,N,11726.3869,E,1,06,0.87,5.1,M,-3.2,M,,*63
$:开始符;GP:鉴定码;GGA:格式码;162411:国际时间,16-时,24-分,11-秒;3826.1238:38是纬度,26.1238是纬分;N:北纬;11726.3869:117是经度,26.3869是经分;E:东经;1:质量因子,1=GPS,2=DGPS;06:使用的卫星数;0.87:HDOP,水平减弱值;5.1:天线高程;M:天线高程单位是米;-3.2:大地水准起伏面;M:大地水准起伏面单位是米;,:省略基站编号;*63:总和校验数。
除了$GPGGA数据之外,还有$GPGSA、$GPGSV等类型的数据,这里就不一一介绍了。
在本程序中,GPS板用RS-232连线通过Com2口与计算机相连。
2 VB6.0中通信控件MSComm介绍
实现计算机通信涉及到很多方面的问题,例如设置输入输出缓冲区、不断地查询通信状态等等。MSComm控件封装了上述这些串行通信的底层过程。
MSComm控件的主要属性
* CommPort属性:设置或返回通信控件对象所对应的串行接口代号。
* Settings属性:设置或返回含有波特率(传输速率,单位是bps,即位/秒)、校验位、数据位和停止位的字符串。
* PortOpen属性:设置或返回串行端口的状态。
* Input属性:从输入缓冲区读出字符并清除缓冲区被读的字符。
* InputLen属性:指定由串行端口读入的字符串长度。
MSComm控件只有一个事件OnComm。当MSComm控件产生动作,如接收到数据或出现错误时引发。
3 应用程序界面
* 利用水平滚动条选取取样的时间间隔,1~10秒。在Text2显示确定值。
* Text3和Text4分别显示纬度和经度。
* Text5显示国际时间。
* Text6为使用的卫星数。
* Text7显示水平减弱值。
* 在最下面的Text1给出接收到的原始数据。
* 放置计时器Timer1和通信控件MSComm1。
* 命令按钮Command1、Command2。
窗体界面如下图所示:
4 程序代码
由于篇幅所限,这里给出部分主要代码:<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
Private Sub Form_Load()
On Error Resume Next
d = False
al = 1000
= "1"
With MSComm1
.InputLen = 0
.CommPort = 2
'参数设置
'9600:波特率
'n:无奇偶校验位
'8:一次传输8位
'1:一个停止位
.Settings = "9600,n,8,1"
.PortOpen = True
End With
End Sub
Private Sub Timer1_Timer()
Dim strGPS_data As String
Dim strT3 As String
Dim strT4 As String
Dim klat As Integer, klon As Integer, kgga As Integer
strGPS_data = '取得输入缓冲区的数据
kgga = InStr(strGPS_data, "GGA")
If kgga < 3 Then Exit Sub '若不是$GPGGA数据则跳过
= strGPS_data '显示原始的$GPGGA数据
klat = InStr(strGPS_data, "N")
klon = InStr(strGPS_data, "E")
If klat > 10 Then
strT3 = Mid(strGPS_data, klat - 10, 2) + "度" + _
Mid(strGPS_data, klat - 8, 7) + "分"
= strT3 '纬度
End If
If klon > 11 Then
strT4 = Mid(strGPS_data, klon - 11, 3) + "度" + _
Mid(strGPS_data, klon - 8, 7) + "分"
= strT4 '经度
End If
= Mid(strGPS_data, kgga + 4, 2) + "时" + _
Mid(strGPS_data, kgga + 6, 2) + "分" + _
Mid(strGPS_data, kgga + 8, 2) + "秒" '时间
= Mid(strGPS_data, kgga + 38, 2) '使用卫星数
= Mid(strGPS_data, kgga + 41, 4) '水平减弱值
End Sub
5 结论
本文与硬件的关系密切,对从事自动控制、数据传输等领域研究的开发人员有参考价值。本程序完全依照实际GPS情况进行开发,对GPS信号的接收和处理得到了很好的实现,具有一定的实用价值。
参考文献:
.Computers Industry Engeering,2000.
中国论文网(www.lunwen.net.cn)免费学术期刊论文发表,目录,论文查重入口,本科毕业论文怎么写,职称论文范文,论文摘要,论文文献资料,毕业论文格式,论文检测降重服务。 返回通信学论文列表