欢迎访问ic37.com |
会员登录 免费注册
发布采购

基于虚拟串口的GPS/GSM远程定位技术 (2)

日期:2010-7-1标签: (来源:互联网)
2 系统软件设计2.1 单片机部分软件设计 单片机部分的程序流程图如图2所示。该部分程序采用C语言编程实现,主要包括定位信息的提取、虚拟串口通信以及短消息的发送三个部分。

2.1.1 定位信息的提取 单片机采用4 800 b/s波特率与GPS模块进行异步串行通讯,从GPS模块输出的是NMEA-0183语句格式的数据。该语句格式的数据以“$”开头,包括$GPRMC,$GPGGA,$GPGSV,$GPVTG,$G-PGSA,$GPGLL等语句。系统设计中只从中提取出$GPRMC语句,再进一步提取出里面包含的经纬度、速度、时间等信息,已经可以满足系统的需求。该部分的软件流程图如图3所示。2.1.2 虚拟串口 单片机与GSM模块之间通过虚拟串口进行通信,以解决AT89S52.html" target="_blank" title="AT89S52">AT89S52单片机固有串口不足的问题,通信波特率取为9 600 b/s。虚拟串口就是利用单片机I/O编程实现一个串口的功能,这样就以较少的资源实现了系统的功能,克服了传统的采用具有双串口的控制器或者利用硬件进行串口扩展的方法其成本高、体积大的缺点。程序中采用定时器工作于方式2进行一个数据位传输时间的定时,用于严格控制一个数据位的传输时间。单片机采用11.059 2 MHz晶振,这样定时器的初值为256-(1 000 000/9 600)/(12/11.059 2)=160,即十六进制的0xA0。实验结果证明,采用该方法进行串口通讯,数据传输稳定、可靠。采用虚拟串口发送、接收一个字符的程序流程图分别如图4,图5所示。

2.1.3 发送短消息 主要是由单片机根据发送短消息的特定步骤,采用AT命令控制GSM模块发送短消息,是系统设计中最重要的内容之一。该部分程序设计中,由于会涉及到单片机与GSM模块的多次交互过程,而GSM模块响应较单片机来的慢,特别是涉及到FLASH或SIM卡的操作及网络的交互时,必须要考虑到GSM模块的响应时间问题。系统中采用TEXT模式发送短消息,步骤如下:1.设置短信中心号码:AT+CSCA=+8613500591500//代表福州移动,代表回车,下同 2.设置短信发送模式:AT+CMGF=1//设置短信发送模式为TEXT模式 3.设置TEXT模式参数:AT+CSMP=17,167,0,0//最后一个参数是数据编码类型,0表示默认字符集(GSM);(167代表有效期24 h) 4.设置使用的字符集:AT+CSCS=GSM//设置为GSM字符集 5.输入目标号码:AT+CMGS=13599071***//1359907l***为目标号码 6.输入短信内容再输人,即ASCII码0x1A。

2.2 监控中心软件设计 至此,英文短信发送成功,此过程中若模块回复出现ERROR则短信发送不成功。以上步骤1,3,4经设置后无需再设置,步骤2在模块断电时需重设,步骤5,6在每次发送短消息时都要重复进行。在监控中心的PC机上采用VB结合ACCESS数据库设计一个监控软件,该软件通过串口与GSM模块进行通信,获取远程目标的定位信息,经过进一步处理后显示出来。由于电子地图制作复杂、价格较贵,所以本系统示意性的利用由Google Earth软件上截图出来的图片作为电子地图,用于直观地显示出远程目标的具体位置。ACCESS数据库用于保存收发短消息的内容,该软件还具有拨打电话等功能。

3 实验结果及分析 利用该软件进行实验得到的结果如图6所示。图中左半部分是软件的实现界面,右半部分是以GoogleEarth软件截图出来的图片作为虚拟的电子地图来示意性的说明问题。实验中,GPS天线置于福州大学旗山校区电气学院楼顶,监控中心位于电气学院南303实验室。由图中左半部分可以看到目标最近一次的定位信息:定位时间:10:28:28;纬度:26°04'3.03"N;经度:119°11'42.57"E;速度:0.048 m/s。右半部分图中的红、绿、蓝小圈圈代表近三次实验获得的定位位置结果(在地图上几乎重合,为说明位置在图中进行引出标注),红色小圆点代表天线的真实位置(在图中也进行引出标注说明),Google Earth软件中的地标,用GoogleEarth软件的测距工具测得实验结果与天线真实位置的误差约为12 m,这主要由GPS模块的定位精度所决定。

由实验结果可以看出,定位位置结果基本一致,但经纬度、速度存在很小的零漂移,这是正常的,零漂移的大小取决于GPS模块的性能。经过长期实验证实,系统稳定、可靠,定位误差较小,基本上可满足一般的应用要求。若要应用于对定位精度要求较高的场合,可以考虑采用定位精度更高的GPS模块等措施。

4 结 语 实验结果表明,系统运行稳定、可靠,可以实现无距离限制的远程定位。由于采用了虚拟串口技术,所以以较少的资源实现了GPS/GSM远程定位技术,该定位技术可以应用于进行远程定位的多种领域。但是,由于作为定位数据传输网络的GSM网络的固有问题,对系统的实时性有一定的影响。比如,有时会出现收发短消息延时的问题,特别是在网络拥挤的时候,有时还存在较小区域的通信盲区,可以考虑与运营商建立一条专用短消息传输通道来保证远程定位信息的可靠传输。相信随着定位技术、通信技术以及GIS技术的不断发展,本文所讨论的远程定位技术将会得到广泛的应用。