GPS 作为成熟实用的全球精密测时、测距、导航、定位系统在诸多领域均有广泛的应用。目前市面多数GPS 设备只有单向通信能力,只能接收GPS信息,而不能将GPS 信息转发。一旦持有GPS 设备的人员发生意外,他人不能及时了解当事人状况。而本文设计实现的系统不仅能够定时接收全球卫星定位信号,并且能通过GSM网络向未持有GPS设备的用户按需发送信息;同时在意外发生时能够及时将包含地理信息的报警短信发送到特定手机号码进行报警操作。
1 硬件系统设计
基于GSM 短信模块的定位跟踪系统硬件系统主要有GPS 信息接收机、单片机控制控制模块(主机、从机)、信息发送模块、手机接收测试部分及其他外围电路组成(见图1)。GPS 信息接收机接收到的GPS 信息经过串口发送到单片机控制模块中的主机部分;主机将选择出来的信息通过同步串行接口(SPI 接口)传送给MCU 控制模块的从机部分;从机对信息进行编码;编码后的消息经过短信发送模块发送到指定的手机。
图1 系统硬件逻辑框图
1.1 定位跟踪模块
GPS 全球定位系统包括GPS 网络和专业的地面接收设备。接收设备可以显示出当前地理信息、时间信息等;如果将当前的信息发送给信息管理中心,便可以接受管理中心的统一调度。基于GSM短信模块的定位追踪系统便是基于后一种理论进行设计实现的。GPS 模块接收来自GPS 卫星系统的C/A 码,单片机控制模块根据信息码计算得到当前的地理信息位置和时间信息等。GPS 接收模块的硬件主要包含接收天线、接收机、电平转换电路以及进行GPS 信息数据处理的单片机控制模块中的主机部分(见图2)。
图2 GPS 接收模块原理框图
GPS 接收模块是系统的信息源。硬件实现过程中采用了型号为GR-87 的GPS 接收模块。该GPS接收端的主要参数为:默认的发送地理信息的频率是1HZ,其时间误差为±0.1s,距离误差为10 米之内。该型号GPS 接收端的信号输出电平为TTL 电平,需要外加电平转换电路。最后使用MAX232芯片及其相关电路来辅助完成串口通信。
1.2 单片机控制模块
单片机控制模块采用Atmega16L 芯片作为处理器,对GPS 信息数据进行存储和处理。本芯片是8 位的AVR 单片机,具有16KB系统内可编程Flash,具有高可靠性、高速度、高性能、低功耗等特点,同时该芯片拥有丰富的外围引脚以及接口电路,方便系统的设计开发。
该系统用到两个单片机控制模块,分别作为系统的主机和从机。单片机控制模块中的主机部分用于接收GPS 模块接收到的GPS 信息并对信息进行简单的处理,筛选出用户需要的信息,将信息以串行通信方式传送给从机模块(见图3);从机部分对数据进行编码,将编码后信息传送给GSM 模块,根据需要GSM 将信息发送到指定号码。
图3 SPI 同步串行通信模块
1.3 GSM 接口
TC35i 模块是西门子公司推出的一种无线通信模块,它是集射频电路、基带于一体,向用户提供标准的AT 命令接口,为数据、语音、短信息和传真提供快速、可靠、安全的传输,方便用户的开发设计及应用。在该系统中TC35i 直接受从机控制,在收到控制信号后,将从机传送来的信息内容发送给特定的手机号码。
图4 GSM 短信息模块框图
2 软件系统设计
软件设计采用了模块化的设计方式,系统软件由一个主程序和若干个子程序构成。主程序负责完成对各个功能模块(子程序)的调用。系统软件的其他部分还涉及到单片机与GSM 模块之间的串行通信、单片机控制模块中主机和从机间的SPI 模式通信、单片机对GPS 信息的解码、对GSM-At 指令的编码等。
主程序功能是:系统开机后对GPS 模块、GSM模块初始化,控制主机部分接收来自GPS 接收模块的GPS 信息,筛选出其中的特定部分存储,将数据以SPI 通信方式传给从机;控制从机部分对信息进行编码并传送给GSM 模块。主程序功能框图如图5所示。
图5 软件系统的流程框图。
2.1 系统初始化子程序
系统初始化子程序完成设置系统串口波特率、启动串口、初始化数据存储单元任务,实现单片机控制模块、外围器件以及GSM 模块的初始化工作。
单片机控制模块从机部分和GSM 短信模块进行异步串行通信,需对串口进行设置:
(1)工作方式。
GSM 通信模块的数据接口配置为8 位数据位、1 位停止位、无校验位,因此设置单片机的串行口工作方式为异步通信模式。
(2)波特率设定。
Atmega16L 单片机控制系统的晶振为3.6864M,波特率需为9600b/s,所以根据记数初值的计算公式:X=256-fose × (1/384) × 波特率,UBRRL=0x16 (USART 通信)。
2.2 软件定时程序
系统通过设置16 位定时器1 的寄存器初始值实现定时功能。系统采用频率为3.6864MHz 的晶振, 机器周期近似为0.3 us , 初始化时预置TCNT1H=0xD4,TCNT1L=0xFF,(FFFFH-D4FFH)×0.3us=3.3ms,因此每3.3ms 中断一次。流程图如图6 所示。
图6 定时器中断子程序
2.3 SPI 同步串行通信
使用SPI 主从模式进行通信关键是时钟同步,一般为主机输出同步时钟,从机输入同步时钟。系统设定主机定时在第5 个时间段时开始发送数据,从机每收到一个字节数据就产生一次SPI 中断,在中断程序中将数据取走放到相应的存储单元。
2.4 单片机给GSM 模块发送AT 指令程序设计
单片机通过GSM-AT 指令控制GSM 模块发送短消息。指令执行过程需要单片机与GSM 模块完成交互应答,每次发送或接收的字节数都有严格规定,二者必须依据规定实现数据交换。本段子程序主要实现的功能是系统上电、完成初始化后,将数据形成短信发送到GSM 网。程序的流程图如图8所示。
图7 SPI 串行通信流程图
在单片机向GSM 模块发送指令时,需要注意以下问题:
1、AT 指令的指令符号、数据、PDU 数据包等都是以ASCII 编码形式传送的;2、需将把手机的短信息工作模式设置为PDU格式,通过指令AT+CMGF=0 完成;3、单片机向手机发送指令需以回车符结束,表示该条指令的结束。如单片机向手机发送"AT+CMGF=0"这条指令,序列为"41H,54H,2BH,42H,4DH,47H,46H,3DH,30H,30H,0DH",最后一个字节0DH(回车符)表示该条指令结束。
图8 AT 指令程序流程图
2.5 发送短消息子程序
发送短消息子程序是整个系统程序的核心部分。初始短信息已经经过编码存放在了存储器中,当需要发送时,从存储器中直接提取出来,以ASCII码的形式进行发送。
发送短消息子程序流程图如图9 所示:
图9 短信息发送程序流程图
3 总结
GPS 定位信息准确,GSM 网络覆盖范围广,使用GSM 网络传输GPS 定位信号,汲取了GPS 定位系统的精确性、GSM 网络费用低廉,短信消息能够被重发确保被叫方能够收到的优点,拓展了GPS信号的应用范围,特别是解决了GPS 设备持有者因发生意外无法及时报警,不能得到及时救治的问题。经过测试,基于GSM 短信模块的定位跟踪系统能够及时准确的将GPS 信息准确的发送到指定的手机号码;同时可以设置安全距离等信息,当持有GPS 接收设备的人员出了安全范围,系统会向指定手机时时发送GPS 接收设备的地理位置。