APP下载

基于嵌入式微处理器的GPS跟踪报警系统设计

2010-09-27

电讯技术 2010年4期
关键词:短信报警定位

(1.长江师范学院 物理学与电子工程学院,重庆 408100;2.西南交通大学 电气工程学院,成都 610031)

1 引 言

目前,越来越多的家庭拥有了私家车,汽车失窃案的数量日渐增多。与此同时,人们对个人的人身安全也提出了更高的要求,尤其是未成年人、老人和野外工作人员。因此,对地面移动目标跟踪报警这一课题的研究正逐渐成为热点。目前,汽车上的GPS定位系统大多只具有定位信息接收功能,基于此,本文将GPS卫星定位技术与GSM移动通信技术相结合,完成了地面移动目标跟踪报警系统的设计。该系统具有异地获取地面移动目标(如汽车、行人)定位信息的功能,可实现对地面移动目标的远程跟踪,解决汽车防盗和寻找迷路行人的问题。此外,系统还具有一键报警功能,即在遭遇危险的紧急情况下(如汽车或个人在野外遭遇突发事故),可通过系统的一键报警功能,将本地定位信息连同求救信息一并发送给异地用户,异地用户在收到报警短信后可及时采取适当的措施施救。

2 系统结构及工作原理

2.1 系统硬件结构

GPS跟踪报警系统结构设计采用中心控制方案,由GPS模块、LM3S1138主控模块、GSM模块、电源模块、键盘和LCD显示模块组成,系统硬件结构如图1所示。GPS模块采用Leadtek公司生产的GPS9808 OEM模块,具有结构小巧、性能优良等特点,热启动时间小于8 s,重捕时间小于0.1 s,定位精度在差分模式(DGPS)下小于5 m,数据格式支持标准NMEA-0183,SiRF二进制协议,功耗仅215 mW,非常适合在汽车电子等对功耗、体积要求较高的系统中应用[1]。LM3S1138是Luminary Micro公司新推出的32位Cortex-M3 ARM处理器,是针对工业应用方案而设计的一款低功耗微控制器,其优势在于能够方便地运用多种ARM的开发工具和片上系统(SoC)的底层IP应用方案,拥有庞大的用户群体。此外,LM3S1138使用了兼容ARM Thumb指令集的Thumb2指令集来减少存储容量的需求,降低了成本[2]。GSM通信模块由C8051F020单片机结合TC35i设计而成,TC35i是西门子公司专为GSM通信设计的专用模块,具有语音、数据、传真和点对点短信功能,工作于EGSM900和GSM1800频段[3]。键盘采用ZLG7289键盘扫描管理芯片完成按键的扫描和管理,可同时扫描管理64个按键。显示模块采用基于ST7920控制器的中文图形128×64 LCD来实现。电源模块主要为系统各模块提供安全可靠的电源保障。

图1 系统结构框图Fig.1 System structure diagram

2.2 工作原理

GPS模块上电完成初始自检后,自动接收来自天线的GPS射频信号,经变频、放大、相关、混频等一系列处理后,完成并行通道对其视界内几何位置最佳的数颗卫星的连续跟踪,并测出信号从卫星到接收天线的传播时间,解译出GPS卫星所发送的导航电文,最后经由I/O口串行输出纬度、经度、速度、时间等定位信息[4]。一般情况下,LM3S1138主控模块从导航电文中进一步解析出纬度、经度、速度、时间等定位信息并存储、显示。远程用户在需要获取移动目标的定位信息时,可通过手机向系统发送获取移动目标定位信息的短信,GSM模块在收到这样的短信后,先将需要发送的定位信息进行格式封装,然后将定位信息发送给远程用户,从而实现对移动目标的跟踪报警,这种情况适用于汽车被盗、对未成年人监护、防止老人走失等。在紧急情况下(如被劫持或遭遇危险处境),本地用户可通过系统按键实现移动目标定位信息和求救信息的一键发送,远程用户在接收到带有定位信息的报警短信后可采取相应的措施进行施救。

3 系统软件实现

系统的软件开发采用“C语言+驱动库”的新概念开发模式,开发软件采用IAR Embedded Workbench for ARM 5.11(下面简称IAR EWARM)。IAR EWARM是一个针对ARM处理器的集成开发环境,它包含项目管理器、编辑器、C/C++编译器和ARM汇编器、连接器XLINK和支持RTOS的调试工具C-SPY。在IAR EWARM环境下可以使用C/C++和汇编语言方便地开发嵌入式应用程序。比较其它的ARM开发环境,IAR EWARM具有使用方便、代码紧凑等特点。由于Luminary Micro免费提供基于C语言(符合ANSI C标准)的驱动库软件包,并且源代码公开,因此用户完全可以摒弃晦涩难懂的汇编语言,也不需要掌握底层寄存器的操作细节,只要懂C语言就能进行软件的设计开发。

3.1 主控程序设计

主控程序主要功能是完成GPS-OEM板数据帧的读取、数据帧处理、GSM模块的控制、GSM信息的处理等。软处理器在接收到GPS信息后先判别是不是需要的GPS数据信息,若是则进行信息处理,提取需要的定位信息并保存,然后对按键信息进行扫描,有一键报警情况时,将定位信息和报警文字按要求编码后通过GSM模块发出;没有一键报警时,则对GSM模块的输出信号进行判别;有远程调用短信时,则将定位信息按要求编码后发出,其流程如图2所示。

系统上电后开始执行主程序,首先进行系统初始化。系统初始化主要包括对GPS模块、GSM模块的初始化,GPS模块初始化主要是对串行口UART0进行初始化,即设置UART0的传输帧格式和波特率。根据GPS模块硬件特性,设置UART0波特率为4 800 bit/s,8个数据位,无奇偶校验位,1个停止位。GSM模块初始化主要是对串行口UART1的初始化,设置UART1的传输帧格式和波特率。根据GSM模块硬件特性,设置UART1波特率为9 600 bit/s,8个数据位,无奇偶校验位,1个停止位。初始化完成后则进入主控程序的数据处理部分。

图2 主控程序流程图Fig.2 Master program flow chart

3.2 GPS模块程序设计

GPS模块接收GPS卫星定位信号,判断其为GPRMC格式,经解析留下经纬度、UTC时间等主要信息以待下一步处理,否则继续接收GPS卫星定位信号,其流程图如图3所示。

图3 GPS数据解析流程图Fig.3 GPS data analysis flow chart

GPS模块程序设计的关键是实现定位信息解析。GPS的OEM板输出的定位信息符合NMEA-0183通信标准格式,其输出数据采用的是ASCII码,包含了纬度、经度、速度、日期、时间、航向以及卫星状况等信息[5]。语句有GGA、GLL、GSA、GSV、RMC和VGT 6种,系统采用的是RMC记录语句,它包含了系统需要的所有信息。由于只关注与移动目标位置相关的定位信息,因此,只读取“$GPRMC”语句即可[5]。一条“$GPRMC”语句帧包括15个记录,“$GPRMC”语句是GPS推荐的最短数据帧,共占用73个字节(包括用于分隔记录所使用的12个逗号)。GPS模块的程序设计首先判断是否为RMC记录,如果是则对GPRMC字段进行解析并保存数据。下面给出的是提取经度和纬度的部分核心源代码。

void Parse-gprmc(void)

……

if(′,′ != temp) // 提取纬度

{ Latitude[0] = temp;

for(i=0; i<3; i++)

{ Latitude[i+1] = Read-byte();

}

Read-byte();

for(i=0; i<5; i++)

{ Latitude[4+i] = Read-byte();

}

Read-byte();

}

temp = Read-byte();

……

if(′,′ != temp) // 提取经度

{ Longitude[0] = temp;

for(i=0; i<4; i++)

{ Longitude[i+1] = Read-byte();

}

Read-byte();

for(i=0; i<5; i++)

{ Longitude[5+i] = Read-byte();

}

Read-byte();

}

temp = Read-byte();

……

3.3 GSM模块程序设计

GSM模块在系统中主要负责接收远程控制信息和传送定位信息。接收和发送手机短消息(SMS)常用的模式主要有两种: 文本(Text)模式和协议数据单元 (Protocol Data Unit,PDU)模式[6]。Text模式是纯文本方式,可使用不同的字符集。该模式下信息传送和接收的编码比较简单,但国内手机Text模式下不支持收发中文汉字字符的短消息。PDU模式被所有手机支持,可发送中英文短信。PDU模式下可采用7位、8位和UCS2 3种编码方式,分别用于发送普通的ASCII字符、数据消息和Unicode字符(按照GSM07.05协议规定,手机短信息中的汉字编码均采用Unicode码)。因此发送和接收中文或中英文混合的短信息只能采用PDU模式,并在将定位信息以短消息形式传送给远程用户之前,完成汉字编码到Unicode码的转换。GSM模块的程序设计流程图如图4所示。

图4 GSM模块程序流程图Fig.4 GSM module program flow chart

4 测试结果

将系统各部分正确连接后上电,系统液晶屏上将显示本地的GPS定位信息。本地显示正常后,通过手机发送控制短信给系统GSM模块,GSM模块收到短信后发出提示音,并将定位信息发送到手机上,实验室测试的手机截屏如图5所示。

图5 系统测试结果Fig.5 System test result

5 结 论

将GPS与GSM无线通信技术相结合开发完成的移动目标跟踪报警系统,采用LM3S1138 ARM处理器在实现小型化、集成化和高可靠性的同时增强了控制能力,降低了成本,提高了系统的智能化程度。GSM无线通信技术的引入实现了定位及报警信息的异地远程获取。GPS跟踪报警系统可完成对车辆、行人等地面移动目标的精确定位,在车辆被盗和个人遭遇危险(如车辆在野外遭遇事故或人员走失)的情况下,能够实现对移动目标的跟踪和报警,其应用前景十分广阔。

参考文献:

[1] Leadtek GPS Module Technical Specification GPS9808 Version 1.03[Z].[S.l.]:Leadtek Limited, 2004.

[2] Luminary Micro.LM3S1138微控制器数据手册[M]. 广州:广州周立功单片机发展有限公司,2008.

Luminary Micro. LM3S1138 Microcontroller Data Sheet[M]. Guangzhou :Guangzhou ZLG MCU Development Co., Ltd.,2008.(in Chinese)

[3] Siemens. TC35i Hardware Interface Description Version 03.01a[Z].[S.l.]:Siemens AG,2007.

[4] 林绿洲,陆起涌,田小芳,等.基于嵌入式平台的公交车辆监控系统[J].电讯技术,2006,46(3):78-80.

LIN LV-zhou, LU Qi-yong, TIAN Xiao-fang,et al. Bus Supervisory System Design Based on Embedded Platform[J]. Telecommunication Engineering,2006,46(3):78-80. (in Chinese)

[5] 杨梅.GPS-GPRS定位系统车载终端的应用设计与实现[J].电讯技术,2004, 44(3):103-106.

YANG Mei. Application Design and Implementation of GPS-GPRS Location System Vehicle Terminals[J]. Telecommunication Engineering,2004, 44(3):103-106. (in Chinese)

[6] 张晓培,李祥.从Unicode到GBK的内码转换[J].微计算机应用,2006,27(6):757-759.

ZHANG Xiao-pei, LI Xiang. From Unicode to GBK's Code Converter[J]. Micro-Computer Applications,2006,27(6):757-759.(in Chinese)

猜你喜欢

短信报警定位
《导航定位与授时》征稿简则
Smartrail4.0定位和控制
道歉短信
LKD2-HS型列控中心驱采不一致报警处理
找准定位 砥砺前行
代发短信
2015款奔驰E180车安全气囊报警
青年择业要有准确定位
死于密室的租住者
奔驰E260车安全气囊报警