📄 基于mscomm控件的gps接收机数据终端接口设计 - 硬件设计 - 开发者社区.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<!-- saved from url=(0044)http://bbs.ee365.cn/viewthread.php?tid=25887 -->
<HTML xmlns="http://www.w3.org/1999/xhtml"><HEAD><TITLE>基于MSComm控件的GPS接收机数据终端接口设计 - 硬件设计 - 开发者社区</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gbk">
<META
content=ARM,驱动开发,Linux,WinCE,驱动,硬件,嵌入式系统,单片机,MCU,DSP,FPGA,EDA,无线,RF,Labview,电源
name=keywords>
<META
content=" 开发者社区 1 引 言 全球定位系统(GPS)是20世纪70年代由美国陆海空三军联合研制的空间卫星导航定位系统,其 ... "
name=description>
<META content=True name=MSSmartTagsPreventParsing>
<META http-equiv=MSThemeCompatible content=Yes><LINK title=开发者社区
href="http://bbs.ee365.cn/archiver/" rel=archives><LINK
href="基于MSComm控件的GPS接收机数据终端接口设计 - 硬件设计 - 开发者社区.files/style_1.css" type=text/css
rel=stylesheet><LINK href="forumdata/cache/style_1_append.css" type=text/css
rel=stylesheet>
<SCRIPT type=text/javascript>var IMGDIR = 'images/default';var attackevasive = '0';var gid = 0;gid = parseInt('3');var fid = parseInt('23');var tid = parseInt('25887');</SCRIPT>
<SCRIPT src="基于MSComm控件的GPS接收机数据终端接口设计 - 硬件设计 - 开发者社区.files/common.js"
type=text/javascript></SCRIPT>
<SCRIPT src="基于MSComm控件的GPS接收机数据终端接口设计 - 硬件设计 - 开发者社区.files/menu.js"
type=text/javascript></SCRIPT>
<SCRIPT src="基于MSComm控件的GPS接收机数据终端接口设计 - 硬件设计 - 开发者社区.files/ajax.js"
type=text/javascript></SCRIPT>
<META content="MSHTML 6.00.2900.3268" name=GENERATOR></HEAD>
<BODY onkeydown="if(event.keyCode==27) return false;">
<DIV id=append_parent></DIV>
<DIV id=ajaxwaitid></DIV>
<DIV class=wrap>
<DIV id=header>
<H2><A title=开发者社区 href="http://bbs.ee365.cn/index.php"><IMG alt=开发者社区
src="基于MSComm控件的GPS接收机数据终端接口设计 - 硬件设计 - 开发者社区.files/logo.gif" border=0></A></H2>
<DIV id=ad_headerbanner></DIV></DIV>
<DIV id=menu>
<UL>
<LI><A class=notabs href="http://bbs.ee365.cn/register.php">注册</A> </LI>
<LI><A href="http://bbs.ee365.cn/logging.php?action=login">登录</A> </LI>
<LI><A href="http://bbs.ee365.cn/member.php?action=list">会员</A> </LI>
<LI><A href="http://bbs.ee365.cn/tag.php">标签</A> </LI>
<LI class=dropmenu id=stats onmouseover=showMenu(this.id)><A
href="http://bbs.ee365.cn/stats.php">统计</A> </LI>
<LI><A href="http://bbs.ee365.cn/faq.php">帮助</A> </LI></UL></DIV>
<SCRIPT src="基于MSComm控件的GPS接收机数据终端接口设计 - 硬件设计 - 开发者社区.files/viewthread.js"
type=text/javascript></SCRIPT>
<SCRIPT type=text/javascript>zoomstatus = parseInt(1);</SCRIPT>
<DIV id=foruminfo>
<DIV id=nav><A href="http://bbs.ee365.cn/index.php">开发者社区</A> » <A
href="http://bbs.ee365.cn/forumdisplay.php?fid=23">硬件设计</A> »
基于MSComm控件的GPS接收机数据终端接口设计 </DIV>
<DIV id=headsearch></DIV></DIV>
<DIV id=ad_text></DIV>
<DIV class=pages_btns>
<DIV class=threadflow><A
href="http://bbs.ee365.cn/redirect.php?fid=23&tid=25887&goto=nextoldset">‹‹
上一主题</A> | <A
href="http://bbs.ee365.cn/redirect.php?fid=23&tid=25887&goto=nextnewset">下一主题
››</A></DIV><SPAN class=postbtn id=newspecial
onmouseover="$('newspecial').id = 'newspecialtmp';this.id = 'newspecial';showMenu(this.id)"><A
href="http://bbs.ee365.cn/post.php?action=newthread&fid=23&extra="><IMG
title=发新话题 alt=发新话题
src="基于MSComm控件的GPS接收机数据终端接口设计 - 硬件设计 - 开发者社区.files/newtopic.gif"
border=0></A></SPAN> <SPAN class=replybtn><A
href="http://bbs.ee365.cn/post.php?action=reply&fid=23&tid=25887&extra="><IMG
alt="" src="基于MSComm控件的GPS接收机数据终端接口设计 - 硬件设计 - 开发者社区.files/reply.gif"
border=0></A></SPAN></DIV>
<UL class="popupmenu_popup newspecialmenu" id=newspecial_menu
style="DISPLAY: none">
<LI><A
href="http://bbs.ee365.cn/post.php?action=newthread&fid=23&extra=">发新话题</A>
</LI>
<LI class=poll><A
href="http://bbs.ee365.cn/post.php?action=newthread&fid=23&extra=&special=1">发布投票</A>
</LI>
<LI class=trade><A
href="http://bbs.ee365.cn/post.php?action=newthread&fid=23&extra=&special=2">发布商品</A>
</LI>
<LI class=reward><A
href="http://bbs.ee365.cn/post.php?action=newthread&fid=23&extra=&special=3">发布悬赏</A>
</LI>
<LI class=activity><A
href="http://bbs.ee365.cn/post.php?action=newthread&fid=23&extra=&special=4">发布活动</A>
</LI>
<LI class=debate><A
href="http://bbs.ee365.cn/post.php?action=newthread&fid=23&extra=&special=5">发布辩论</A>
</LI>
<LI class=video><A
href="http://bbs.ee365.cn/post.php?action=newthread&fid=23&extra=&special=6">发布视频</A>
</LI></UL>
<FORM name=modactions method=post><INPUT type=hidden value=b420715e
name=formhash>
<DIV class="mainbox viewthread"><SPAN class=headactions><A class=notabs
href="http://bbs.ee365.cn/viewthread.php?action=printable&tid=25887"
target=_blank>打印</A> </SPAN>
<H1>基于MSComm控件的GPS接收机数据终端接口设计 </H1>
<TABLE id=pid26933 cellSpacing=0 cellPadding=0 summary=pid26933>
<TBODY>
<TR>
<TD class=postauthor><A name=lastpost></A><CITE><A class=dropmenu
id=userinfo26933 onmouseover=showMenu(this.id)
href="http://bbs.ee365.cn/space.php?uid=2" target=_blank>ankee</A></CITE>
<DIV class=avatar><IMG class=avatar alt=""
src="基于MSComm控件的GPS接收机数据终端接口设计 - 硬件设计 - 开发者社区.files/noavatar.gif"></DIV>
<P><EM>超级版主</EM></P>
<P><IMG alt="Rank: 8"
src="基于MSComm控件的GPS接收机数据终端接口设计 - 硬件设计 - 开发者社区.files/star_level2.gif"><IMG
alt="Rank: 8"
src="基于MSComm控件的GPS接收机数据终端接口设计 - 硬件设计 - 开发者社区.files/star_level2.gif"><IMG
alt="Rank: 8"
src="基于MSComm控件的GPS接收机数据终端接口设计 - 硬件设计 - 开发者社区.files/star_level1.gif"><IMG
alt="Rank: 8"
src="基于MSComm控件的GPS接收机数据终端接口设计 - 硬件设计 - 开发者社区.files/star_level1.gif"></P>
<UL>
<LI class=space><A title=ankee的个人空间
href="http://bbs.ee365.cn/space.php?uid=2" target=_blank>个人空间</A> </LI>
<LI class=pm><A id=ajax_uid_26933
onclick="ajaxmenu(event, this.id, 9000000, null, 0)"
href="http://bbs.ee365.cn/pm.php?action=send&uid=2"
target=_blank>发短消息</A> </LI>
<LI class=buddy><A id=ajax_buddy_0
onclick="ajaxmenu(event, this.id, null, 0)"
href="http://bbs.ee365.cn/my.php?item=buddylist&newbuddyid=2&buddysubmit=yes"
target=_blank>加为好友</A> </LI>
<LI class=offline>当前离线 </LI></UL></TD>
<TD class=postcontent>
<DIV class=postinfo><STRONG id=postnum_26933 title=复制帖子链接到剪贴板
onclick="setcopy('http://bbs.ee365.cn/viewthread.php?tid=25887&page=1#pid26933', '帖子链接已经复制到剪贴板')">1<SUP>#</SUP></STRONG>
<EM onclick="$('postmessage_26933').className='t_bigfont'">大</EM> <EM
onclick="$('postmessage_26933').className='t_msgfont'">中</EM> <EM
onclick="$('postmessage_26933').className='t_smallfont'">小</EM> 发表于
2007-3-8 10:49 <A
href="http://bbs.ee365.cn/viewthread.php?tid=25887&page=1&authorid=2">只看该作者</A>
</DIV>
<DIV id=ad_thread2_0></DIV>
<DIV class="postmessage defaultpost">
<DIV id=ad_thread3_0></DIV>
<DIV id=ad_thread4_0></DIV>
<H2>基于MSComm控件的GPS接收机数据终端接口设计</H2>
<DIV class=t_msgfont id=postmessage_26933>
<P><BR>1 引
言<BR><BR>全球定位系统(GPS)是20世纪70年代由美国陆海空三军联合研制的空间卫星导航定位系统,其目的是为美国军方提供实时精确的定位、导航和授时等服务。通常GPS系统由3个部份组成:空间部分:包括24颗GPS卫星;地面控制部分:对GPS卫星实施监控;用户部分:接收来自GPS卫星的定位等信息,通常包括天线和接收机等设备。GPS系统在进行定位时,必须要确定用户所在的位置(包括x,y,z三个坐标),同时还要考虑到卫星时钟与接收机时钟之间的误差t,要解算4个未知量必须建立4个方程,通常可以通过测量卫星与-用户之间的伪距,来建立相应的方程,因此需要同时观测4颗卫星,才能实现精确定位。随着时代发展,GPS系统不再局限于美国军方,已被广泛应用于社会生活的各个方面,从大地测绘到车辆导航都能找到其身影。鉴于卫星导航技术在民用和军事领域的重要意义,我国也建立了相应的“北斗导航系统”,但目前我国应用最为广泛的还是GPS系统。本文针对GPS系统,介绍了定位信息在GPS接收机与PC机之间的传输和提取方法。</P>
<P>2
定位信息的格式<BR><BR>要实现定位信息的提取和显示,首先要实现定位信息的传输,即通过相应的接口实现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。
</P>
<P>在此列中各数据段通过逗号分开,其中:<BR><BR>$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;
</P>
<P>在这些数据中,本文主要关心的是地理坐标和时间,即纬度、经度和UTC日期、时间。</P>
<P>3
定位信息的传输和提取<BR><BR>定位信息的传输,即GPS接收机与PC机之间的通信,通常采用串口来实现。本文中采用VB提供的MSComm控件来编写串口程序达到通信的目的。MSComm控件被广泛用来实现串口通信,对于他的介绍这里不再赘述。在本文中实现具体的串口通信时,必须对MSComm控件的相关属性进行设置。在默认设置基础上需要进行更改的设置包括下面3个部分:<BR><BR>(1)考虑到GPS串口通信采用固定的参数,因此要将MSComm控件中的Settings属性设置为“4800,N,8,1”,即波特率为4
800
b/s,无奇偶校验位,数据位为8,停止位为1。<BR><BR>(2)根据所采用的接收机的不同,还需对MSComm控件中的inputMode属性进行设置,本文中采用“comInputMode
Text”方式。<BR><BR>(3)根据所选择的串口将MSComm控件中的Commport属性设置为相应的串口号,本文中为“1”。<BR><BR>定位信息的提取,包括2个部分:<BR><BR>(1)从“$GPRMC”数据列中提取经纬度等信息;<BR><BR>(2)将这些信息在文本框内显示。这一工作可以在MSComm控件中的OnComm事件中通过编程具体实现。流程图如图1所示。</P><IMG
height=380
src="基于MSComm控件的GPS接收机数据终端接口设计 - 硬件设计 - 开发者社区.files/1173322468.jpg"
width=200>
<DIV align=left>部分代码如下:</DIV><IMG height=207
src="基于MSComm控件的GPS接收机数据终端接口设计 - 硬件设计 - 开发者社区.files/1173322469.jpg"
width=260> <IMG height=333
src="基于MSComm控件的GPS接收机数据终端接口设计 - 硬件设计 - 开发者社区.files/1173322470.jpg"
width=350>
<P>首先,将缓存中的“$GPRMC”格式的定位信息赋给字符串变量“GPRMC”,根据前面介绍过的“$GPRMC”的格式,通过相应的语句从变量“GPRMC”中提取出所需的纬度、经度、速度和时间日期等信息,并赋给相应的变量。需要注意的是,在提取时间信息时需要将UTC时间转换为北京时间,并对24进行模运算,以确保时间的准确。然后,将提取出来的定位信息在预先设计的文本框中显示出来。通过这些步骤即完成定位信息的提取工作,具体的效果如图2所示。</P><IMG
height=219
src="基于MSComm控件的GPS接收机数据终端接口设计 - 硬件设计 - 开发者社区.files/1173322472.jpg"
width=300>
<P>4 结语<BR
class=style1><BR>本文介绍了一种使用VB实现GPS定位信息提取的方法,具有简单、实用的特点。通过这一方法可以实现GPS接收机和PC机之间的数据通信,并能将所需的定位信息直观地在相应窗口显示出来。</P>
<DIV align=center>本文摘自《现代电子技术》</DIV></DIV></DIV>
<DIV></DIV></TD></TR>
<TR>
<TD class=postauthor>
<DIV class="popupmenu_popup userinfopanel" id=userinfo26933_menu
style="DISPLAY: none">
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -