基于ARM7网络型汽车防盗系统的研制
摘要:对流行的各类常规防盗装置的不足进行了分析,研究并成功试制了一种新型嵌入式汽车防盗系统。系统基于ARM的S3C44B0X微处理器进行开发,提高了系统的稳定性和可扩展性,利用GPRS的网络优势达到远程控制的目的,且具备汽车报警系统现有的其他功能,可靠地实现防盗控制功能。
关键词:汽车防盗;嵌入式系统;S3C44B0X;GPRS;FLASH
引言
随着人们生活水平的提高,汽车已逐步进入家庭, 但日益猖獗的汽车盗窃案件也呈上升趋势,如何有效防止汽车被盗是车主们最关心的问题。近年来,科学技术飞速发展,结合各种新技术的新型汽车防盗装备相继出现。随着通信技术的发展, 无线远程通信技术也被应用于汽车领域中。基于S3C44B0X网络型汽车防盗控制系统是采用ARM 7微处理器构造的嵌入式系统,结合了传统防盗技术和新型的GPRS无线通信技术,实现已有防盗器现有各种功能的基础上,开发了远程控制功能,提高了防盗系统的安全性、灵活性和可靠性。
1 系统设计
1.1 系统特点和功能
在对各类汽车防盗系统的特点进行分析后,设计了基于S3C44B0X网络型汽车防盗控制系统,它充分利用基于GSM网络的GPRS无线通信技术的优势:无处不在、接入迅速、永远在线、流量计费等特点。同时也利用了ARM7微处理器的优点:32位核、高性能、低成本、功耗低的RISC微处理器,有众多的合作开发伙伴。由于防盗系统的功能越来越复杂,为了便于系统程序的有效开发和系统功能的扩展,在此采用嵌入式系统进行开发,提高了系统的灵活性、安全性和可靠性。系统主要实现的功能有如下几个方面:
(1)基于GSM全球联网功能 利用GPRS通讯网络实现全国范围内防盗报警功能。
(2)智能遥控或采用手机实现上锁、解锁功能,方便、快捷的进入防盗状态和解除防盗状态。
(3)一旦警情发生均可在很短时间内发送信息到您的手机,实现无声自动报警,达到“我知贼不知”的独特效果。
(4)车辆被抢或被盗时,用手机向汽车防盗器发送控制短信息,实现断电或断油,强制汽车停车。
(5)防盗设定后,不经车主允许,强行打开车门、后备厢、引擎盖,或车辆被振动,均在可报警和发送短信息到车主的手机上。
(6)微电脑断电断油功能,进入防盗状态,通过微电脑控制自动断电断油,车辆无法启动。
(7)进入防盗状态后,即使盗贼切断电源,可照常报警,并且每间隔1分钟报警一次,即发送信息到手机上。
1.2 系统硬件设计
系统硬件主要由两个部分组成:一是采用S3C44B0X微处理器构建一个嵌入式系统平台,外带GPRS模块,用作汽车防盗的主控板;另一部分是汽车电路信号接口板,主要用于获取汽车的状态信号和向汽车发送控制信号。图1是系统的硬件框图。
CPU采用SAMSUNG公司的ARM7系列芯片S3C44B0X。S3C44B0X有出色的内核性能,丰富的外部接口和低功耗。系统时钟66MHz,支持LCD,具有8个内存BANK,最大内存能扩展到256M,并方便连接各种类型的内存;能运行不带MMU管理的操作系统,能高效、方便的实现比较复杂的控制;在系统中我们用到2种内存,一种SDRAM,一种FLASH;
图1 系统硬件原理框图
SDRAM动态存储器,运行速度快,但掉电后不能保存数据,在系统主要是用来运行操作系统、应用程序和各类数据的缓存,SDAM类型很多,有各种厂家的产品,性能差别不是太大,主要考虑内存的容量,我们选用一种较通用芯片,hynix公司的HY57V641620HC,它是1Ml6bit4bank的同步DRAM。
FLASH内存较SDRAM运行速度慢,但掉电后能保存数据。FLASH有NAND和NOR两种类型,NOR的特点是芯片内执行,这样应用程序可以直接在flash闪存内运行,不必再把代码读到系统RAM中。NOR的传输效率很高,在1~4MB的小容量时具有很高的成本效益,但是较慢的写入和擦除速度大大影响了它的性能。NAND结构能提供极高的单元密度,可以达到高存储密度,并且写入和擦除的速度也很快。应用NAND的困难在于flash的管理和需要特殊的系统接口。在系统中也选用一种通用的FALSH(SST39LV160),容量为2MB, 主要用于固化启动代码和控制应用程序,并保存一些系统数据和车主手机号码。
与手机的通信,使用SIMCOM 有限公司提供的SIM100 GSM/GPRS 模块,该模块具有标准AT 命令接口,可以提供GSM 语音、短信和GPRS 上网等业务。在系统中采用短信的方式实现远程无线防盗控制。
在系统中还增加了LCD和键盘,LCD采用1602,可以显示2行字符,每行16个字母,主要用于显示一些提示和状态信息,键盘用于设置车主手机号码。
主控板上增加了与汽车控制检测板的接口,通过检测接口,主控板能获取汽车的当前状态,如车门的开、关状态,脚刹和手刹状态,汽车是否启动等,根据这些状态,便于控制器对汽车实施相应的控制。主控板通过控制接口对汽车实施相应的控制,主要是汽车双蹦灯、报警喇叭和断火的控制。
1.3 系统软件设计
汽车防盗的软件系统可分为两个部分:一部分是设防状态的处理;另一部分是没有设防状态的处理。
在设防状态下,汽车被偷或被破坏时,报警器会声光报警,并向车主手机发送报警短信,车主根据信息进行真假判断:若是真警,可报警,并可同时控制汽车断火;若是假警,则可通过手机撤消报警,并使汽车再次处于防盗监控状态。设防状态又分为有声防盗和无声防盗,在有声防盗下,若被盗,则声光同时报警;在无声防盗下,若被盗,则只有灯光报警,没有声音报警,在两种情况下,均会向车主手机发送被盗短信息。
在不设防状态下,不会报警,仅仅在一些违规操作时,通过声光对车主进行危险提示,如汽车启动时,车门没关好等。系统软件的整体流程如图2。
图2 系统软件的整体流程
3 系统关键技术
系统采用的关键的技术主要有两个,一个是GPRS远程无线数据传输,另一个是FLASH存储器的读写。
3.1 GPRS数据传输流程
GPRS远程无线数据传输主要是通过串口完成对SIM100 GSM/GPRS进行短信的收发操作。当有短信到来时,SIM100 GSM/GPRS将发送“+CMTI: "SM", N”给ARM的串口,其中N为短信编号。如第五条,则N为5,串口收到短信后,处理函数先根据“+CMTI: "SM", 5”的内容解析出收到的短信的ID为5,打包成“AT+CMGR=5”的命令发给GPRS模块,约1~2秒之后该模块会返回一个确认数据“AT+CMGR=5”,再过一段时间,该模块才返回ID号为5的短信,其内容为:“+CMGR:"RECREAD","+8613978319414","04/07/22,10:54:23+00" #13#10dX# 13#10#13#10 OK”。为了确保控制的合法性,程序先对发送过来的短信号码进行合法性检查,只有与设定的手机号码相符合的短信的内容才作为控制命令处理,而对于其他的短信,都给予屏蔽掉,阻止错误操作。
若通过GPRS模块发送短信,ARM系统先向GPRS模块发送控制命令“AT+CMGS=XXXX” ,GPRS模块收到命令后返回“AT+CMGS=XXXX#13#10>”信息,等待输入要发送的短信内容。如若发送内容为“Your Car Has Stolen!”,系统程序先将此内容通过串口发给GPRS模块,之后再发确认命令“ctl+z”,表示数据发送完毕。GPRS模块收到短信数据和确认命令后,马上向ARM系统返回“AT+CMGS=XXXX#13#10>#13#10 Your Car Has Stolen!#13#10”信息,表示系统发送的数据和命令已经被GPRS模块接收到。然后GPRS模块将短信数据发送给车主手机,大约5秒之后 GPRS模块给系统返回是否发送成功的回馈信息,如果返回“#13#10+CMGS:19#13#10#13#10 OK#13#10”表示成功发送,结束。如果返回“ERROR”表示发送失败,则在下次轮循中系统会继续发送同样内容的短信,直到发送成功为止。
3.2 FLASH的读写技术
由于不同厂商的FLASH存储器在结构和读写操作是有区别的,所以FLASH存储器的烧写、擦除程序一般不具有通用性。系统所用的FLASH是SST39LV160,可以对任一扇区进行读、写或擦除操作,而不影响其他部分的数据。对FLASH的编程指令只能使二进制位由‘1’变为‘0’,而擦除命令可使‘0’变为‘1’,因此正确的操作顺序必须是先擦除,后编程,否则就会导致FLASH存储器复位,致使操作命令无法完成。当FLASH存储器被擦除后,读出的内容全是0XFF。
对SST39LV160进行烧写操作需要遵循几个固定的步骤。每个步骤是首先向FLASH 存储器的特定寄存器写入地址和数据命令,然后由其内部的编程或擦除算法自动完成编程或擦除操作。如擦除操作,第一步程序向地址1(0X5555)写数据1(0XAAAA),第二步向地址2(0X2AAA)写数据2(0X5555),第三步再向地址1(0X5555)写数据3(0X8080),这样完成了擦除扇区的第一阶段,接着的第二阶段与第一阶段几乎一样,只不过最后一次是向地址0X10000写数据0X3030,然后程序再用一个循环,来检测该扇区的内容是否变成了0XFF。如果该扇区的内容变成了0XFF,那么说明擦除扇区的操作已经完成,可以进行下一步的操作,写数据到FLASH的指定地址了。写操作和擦除类似,也是遵循几个固定的步骤,其具体步骤应参考对应FLASH芯片的技术资料。写操作执行后应对数据进行检查,如果成功写入则进行下一字节的写入,否则继续等待,如果超时,则退出。由于无论是编程或擦除都需要一定的时间,程序应根据其内部的操作检测机制,判断操作是否完成或操作是否正确,以确定是否执行下一步操作。
在我们的系统中,系统程序利用FLASH第17号扇区来存放车主的手机号码,从首地址开始存放。通常对该扇区的操作程序是:先把该扇区的所有内容读到SDRAM中(共4K),之后将要写的电话号码写入到17扇区的首地址后的11个单元中,因为第17号扇区我们并没有全部用到,所以可以省去将4K内容读到SDRAM的步骤,只需要直接向17号扇区的首地址0x10000开始,写入车主手机号码就可以了。
4结论
系统采用嵌入式开发技术,利用S3C44B0X和GPRS通讯模块开发了基于手机的汽车防盗系统,该系统能通过车主手机实现对汽车的远程无线监控功能。它充分利用了GPRS网络优势,可全天24小时监控,成本低,实现完全自我服务。不论身在何地,通过手机查询,可具体了解车辆的具体状况;更能对车辆进行远程控制,从开关门锁、远程启动到命令停车。经实验证明,这是一种性能稳定, 安全性和性价比较高的产品。系统进一步将实现与全球卫星定位系统(GPS)和交通地理信息系统(GIS)相结合,实现一个功能更强的汽车防盗监控网络。
本文作者的创新点:采用嵌入式开发技术,利用S3C44B0X和GPRS通讯模块开发了基于手机的汽车防盗系统,该系统能通过车主手机实现对汽车的远程无线监控。
参考文献
[1] SIEMENS Mobile.MC35 AT Command Set[EB/OL].2002-07
[2] S3C44B0X RISC MICROCONTROLLER SAMSUN Corporation[EB/OL].2002
[3] 傅中君.嵌入式GPRS无线通信模块的设计与实现[J].计算机工程与应用.2004,14:162-165
[4] 闫志宽,刘胜利编著.汽车遥控防盗报警系统的技术特点检修[M].北京:机械工业出版社,2004-03
[5] 杜春雷编著.ARM体系结构与编程[M].北京:清华大学出版社,2003
[6] 宋丽,李令奇. ETC中具有车型识别功能的车辆检测器设计[J]. 微计算机信息. 2005,8
评论