单片机控制GPS/GSM原理(虚拟串口)
在远程目标定位中,需要将利用GPS技术获得的远程目标的定位信息发送到监控中心。这可利用无线电台进行发送,但是该方法容易受到干扰而且还受到电台通信距离的限制。随着移动通信的发展和GSM网络的广泛覆盖,GSM短消息业务也得到广泛应用,利用短消息服务来传输GPS定位数据是具有优势的。GSM网络容量大,通信盲区少,利用该方法不仅可以克服传输距离的限制,而且相当方便、可靠,费用也十分低廉。结合GSM网络作为数据传输方式的各种优点和GPS这一成熟的定位技术,本文研究并实现了一种利用较少的资源就可实现的基于虚拟串口的GPS/GSM远程定位技术。
1 系统架构
系统构成框图如图1所示。在远程目标端,单片机通过GPS模块获取有用的信息,如经纬度、时间、速度等信息,定时的以短消息的形式操控GSM短消息模块发送定位数据给监控中心。在监控中心部分,采用一个GSM模块与PC机通信,编写一个PC上的软件实现收发短消息、拨打电话、保存短消息等功能,并显示出远程目标定位信息。同时,通过拨打远程目标处TC35i模块的电话可实现系统的一些扩展功能。
1.1 GPS模块
GPS模块采用的是Navman公司的Jupiter 21OEM板,它具有12通道,体积小、重量轻、功耗低;定位迅速准确,抗干扰性能突出;操作简便、易于开发,可通过串口与PC机进行通讯。可以根据通信的波特率选择输出NMEA-0183语句格式或者SIRF二进制格式的定位信息,默认情况下输出为NMEA-0183语句格式。该模块还具有1 PPS秒脉冲输出,且精度优于1μs,在本系统设计中用对1 PPS秒脉冲计数的方法很好地实现了收发短信的定时。
1.2 GSM短消息模块
GSM短消息模块采用的是SIEMENS公司的TC35i模块,这是一个支持中文短消息的工业级GSM模块,工作在EGSM 900和GSM 1800双频段,电源范围为3.3~5.5 V,可传输语音和数据信息,可以利用AT命令通过接口电路对其进行控制。TC35i模块支持以TEXT模式和PDU模式发送短消息,使用TEXT模式发送短消息代码简单,容易实现,但不能收发中文短信,而PDU格式实现较复杂,但可以收发中文短信。系统设计中处于简单且能满足系统需要考虑,采用的TEXT模式收发短消息。
1.3主控单元
主控单元采用AT89S52单片机作为控制器,单片机通过串口与GPS模块以及GSM模块进行通信。在此需要两个串口,而AT89S52单片机本身只有一个串口,常规的解决方法是采用具有双串口的单片机或者ARM等控制器,或者通过硬件来扩展串口。前者会使系统的硬件成本大大提高,而后者不仅会增加系统的成本,还会增大系统硬件的体积。本文采取的解决办法是,AT89S52单片机本身的串口用于跟GPS模块进行通信,而利用I/O口P1.4和P3.2编程实现一个虚拟串口与TC35i模块进行通信。由于单片机内部定时/计数器只能实现较小时间的定时,所以巧妙利用了单片机的T2定时/计数器(P1.0)对Jupiter 21 OEM板的1 PPS秒脉冲输出进行计数方便地实现5 min定时,用于收发短信所需的定时。该部分还扩展了报警电路和控制开关通断等功能电路,这是由监控中心通过拨打远程目标端的电话来控制的。同时,还保留了单片机的剩余I/O口用于系统的进一步扩充。
2系统软件设计
2.1单片机部分软件设计
单片机部分的程序流程图如图2所示。该部分程序采用C语言编程实现,主要包括定位信息的提取、虚拟串口通信以及短消息的发送三个部分。
2.1.1 定位信息的提取
单片机采用4 800 b/s波特率与GPS模块进行异步串行通讯,从GPS模块输出的是NMEA-01183语句格式的数据。该语句格式的数据以“$”开头,包括$GPRMC,$GPGGA,$GPGSV,$GPVTG,$GPGSA,$GPGLL等语句。系统设计中只从中提取出$GPRMC语句,再进一步提取出里面包含的经纬度、速度、时间等信息,已经可以满足系统的需求。该部分的软件流程图如图3所示。
2.1.2 虚拟串口
单片机与GSM模块之间通过虚拟串口.进行通信,以解决AT89S52单片机固有串口不足的问题,通信波特率取为9 600 b/s。虚拟串口就是利用单片机I/O编程实现一个串口的功能,这样就以较少的资源实现了系统的功能,克服了传统的采用具有双串口的控制器或者利用硬件进行串
单片机控制GPSGSM虚拟串 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)