基于STM32单片机的汽车防盗系统设计与实现
2015-02-22梁剑平
□梁剑平
(玉林师范学院 计算机科学与工程学院,广西 玉林 537000)
基于STM32单片机的汽车防盗系统设计与实现
□梁剑平
(玉林师范学院 计算机科学与工程学院,广西 玉林 537000)
本系统使用STM32单片机作为控制器.中央模块控制器产生随机码作为密码地址,通过无线方式发送到钥匙模块,钥匙模块根据地址发回加密信息,中央模块对加密信息进行解密并校验,返回校验结果,同时根据校验结果判断是否要进行声光报警;在解锁后中央模块可以更改加密方法和密码;随机密码用EEPROM储存,系统掉电时密码信息不丢失,密码信息也不能通过无线遥控方式进行更改或泄露,提高了汽车防盗系统的安全性.本系统经过多次试验,性能稳定,取得很好的效果,在汽车防盗方面有重要的研究意义.
汽车防盗;加密;无线通信;报警
1 引言
随着人们生活水平的不断提高,汽车越来越成为人们生活中不可缺少的一部分.汽车数量增多,车辆被盗的数量也逐年上升,这给社会带来极大的不安定因素,汽车的安全是汽车驾驶人员最关心的一个问题[1].目前的防盗系统只实现了单向的通信,并且加密方法简单,容易被截获破解.本设计利用双向通信和随机加密方法实现的汽车防盗系统,不但加密方法复杂,而且可以在需要时更改加密方法和密码,提高了汽车防盗系统的安全性,具有非常重要的意义.
2 汽车防盗系统总体设计方案
本系统总体框架由中央模块和钥匙模块组成(如图1所示),中央模块安装在车上,钥匙模块手持.两个模块间通过无线双向通信,中央模块实现解密、验证和修改功能,钥匙模块实现开锁和关锁功能.
图1 汽车防盗系统总体结构示意图
电路开始工作后,两个模块都处于等待接收信号状态,中央模块等待开锁关锁,钥匙模块等待中央模块随时发送回来车况信息.两个电路模块设置好一样的密码,每个密码都有不同的地址,主要钥匙模块向中央模块询问是否可以开始解锁,中央模块便开始发送8个密码的随机地址,钥匙模块根据接收的地址查到相应的密码,加密后再发回,中央模块进行密码的校验,再根据校验的结果进行相应的动作.
3 汽车防盗系统硬件设计
本系统硬件电路主要由STM32单片机[2]最小系统,电源模块,无线通信电路模块,储存芯片电路,液晶显示电路组成.STM32单片机作为一个主控制器,把不同电路模块组合起来形成一个完整的电路系统,电路整体性能稳定(硬件电路框图如图2所示).下面将对各个模块电路的硬件原理进行分析说明.
图2 汽车防盗系统硬件电路框图
3.1 STM32单片机最小系统电路
本系统用STM32F103VET6作为主控制器,STM32F103VET6是STM公司基于ARM Cortex-M3内核的32位单片机,工作频率可高达72M,比8/16位单片机处理速度更高效[3-4].STM32F103VET6有丰富的外设,512KB内部可编程Flash,64KB内部RAM,3个SPI接口,5个UART接口,多达80可编程GPIO,完全满足主控功能需求.
图3 无线通信模块电路原理图
3.2 稳压电源电路
STM32单片机的工作电压为5V,平时电池等电源没有5V.在本设计中设计了一个稳压电源电路,用的是常见的线性电源芯片L7805.
L7805的输入电压范围是6~21V,在L7805的输入输出端接两个电容,进行虑波,减少纹波的影响.由于无线通信芯片工作电压是3.3V,在L7805后面再进行3.3V稳压,使用的是ASM1117-3.3V稳压芯片,它的外围电路和L7805是一样的.L7805是线性电源,发热量比较大,要加散热片[5-6].
3.3 无线通信芯片电路
CC1101[7]是一款无线收发芯片,本设计设置它的工作频率为433M,它与STM32单片机通过SPI通信方式连接,只需要4根线,CC1101配置时要另接两根线,如图3中的GDO0和GDO2.
3.4 报警电路
电路系统中报警主要是声和光. LED用倒灌式,单片机输出高电平时,LED不亮,输出低电平时亮.声音的产生用脉冲驱动,通过一只NPN三极管控制开和关.只要通过单片机给三极管的基极一个高电平,它就导通,给低电平就关,一开一关喇叭振动就能出声音,通过控制脉冲的频率就能发出不同的声音,达到报警的目的.
3.5 储存芯片电路
Atmel公司的AT24C02是256字节的EEPROM,单片机通过I2C方式通信控制AT24C02,只要两根线SDA和SCK,分别是时钟线和数据线.I2C总线可以同时挂多个器件,器件间是线与关系,需要外加4.7K的上拉电阻.
3.6 液晶显示电路
LCD1602与单片机是并口通信,它共有16个端口,与STM32单片机的连接方式如图4所示.
图4 液晶显示电路原理图
4 汽车防盗系统软件设计
4.1 软件设计的总体结构框图
图5 系统软件总体结构框图
系统软件设计中中央模块用定时器产生随机码,通过无线方式发到钥匙模块,这个随机码是密码的地址,而钥匙模块接收到地址后根据地址从EEPROM查到密码,加密后发回中央模块.如果有不法分子在附近窃听到信号,其窃听到的是地址和加密后的密码,每次地址都不同,密码和加密方法不公开的话是无法通过校验的,因为在本系统中只有约定好的密码和加密方法才能通过密码的核验.
修改密码时为了保证两个模块密码一致,每次中央模块发出新的密码钥匙模块都返回一个校验码,保证中央模块和钥匙模块的密码是一致.
4.2 主程序的设计
STM32单片机作为主控制器,把各个功能模块连接起来,实现各种功能,两个模块的程序流程分别如图6和图7所示.
图6 中央模块电路的主程序流程图
图7 钥匙模块电路的主程序流程图
4.3 随机码产生程序设计
中央模块电路产生的随机码是EEPROM的地址,由于设计中的EEPROM是256字节的,地址范围是0~255,共256个储存单元,所以,把定时器0设置成方式2,计数初值设置为0,即计数范围也为0~255,正好与EEPROM的地址一致.在系统程序开始,就设置好定时器0,并开始计时,定时器就不断地在0~255这个范围内循环,收到钥匙模块发过来信号就随机取出当前值,取一个后延时一段时间再取一个,连续取8个.而这这个延时与取到的当前值有关.程序流程如图8所示.
图8 随机码产生流程图
4.4 双向无线通信程序设计
无线通信芯片CC1100E与STM32单片机通过SPI方式通信,正确配置好CC1100E后,在一个接收的子程序 INT8U halRfReceivePacket(INT8U *rxBuffer, INT8U *length)中,如果接收到信号,它会返回一个‘1’,如果没有接收到信号,它返回一个‘0’.通过返回值的不同就可以判断是否接收到信号,接收到信号就可以读取数据.
如果接收到信号后,调用halRfReceivePacket()后它返回一个‘1’,接着在RxBUF[]数组里就可以读到接收到的数据.
中央模块电路发出信号时钥匙模块一定要在等待接收信号,否则信号一发完就消失了.同样,钥匙模块发送信号时中央模块要等待接收.
4.5 密码修改和校验程序设计
在开锁后才可以修改密码,修改密码时要通过无线通信方式使两个模块密码一致,在程序设计中是这样实现的:开锁后,只能从中央模块修改密码,而不能通过遥控端修改,保证密码的安全.修改密码时需要从钥匙模块确认,主机收到钥匙模块的确认信号才开始修改密码.这样可以防止有不法分子在附近窃听新的密码.
钥匙模块确认后开始产生随机密码,产生的方法和前面的3.3小节一样,从定时器中不断地抽取计数值TL0.抽取512个,分别储存到两片AT24C02中.
中央模块写完后开始向钥匙模块同步密码,512个密码分64次发送,每次发8个,钥匙每接收8个密码就向中央模块原样发回接收数据,作为中央模块发送下一次的开始.程序流程如图9所示.
图9 中央模块与钥匙模块同步密码流程图
钥匙模块接收密码时要与中央模块在时间上配合好,中央模块发送时,钥匙模块等待接收,钥匙模块发送时,中央模块等待接收.程序流程图如图10所示.
图10 钥匙模块接收密码程序流程图
5 性能分析
经多次调试和修改,电路系统实现了无线模块的双向通信,中央模块电路实现了解密和校验,开启车辆,修改密码功能.钥匙模块实现了开锁和关锁功能.下面两个表是对系统进行开锁和关锁实验测试的结果.
表11 开锁测试统计
表12 关锁测试统计
从上面测试结果可以看出,本系统的关锁和解锁成功率较高,性能稳定,具有一定的实用性.但偶尔还是会有一两次失误,原因是无线模块通信时受到环境的电磁干扰,导致通信失败,不过在本系统中可以通过转换一下遥控的方向来改观通信质量.
6 结束语
本系统用STM32单片机通过无线通信的方式实现了汽车的钥匙模块和中央模块的双向通信.综上,本系统有以下这些特点:中央模块对钥匙模块发过来的加密信息进行校验,并返回校验结果,中央模块根据校验结果进行相应动作;中央模块在解锁后可以更改密码和改加密方法,中央模块修改密码和加密方法后可以通过无线通信方式使两个模块的密码和加密方法一致;随机密码用EEPROM储存,系统掉电时密码信息不丢失,密码信息也不能通过无线遥控更改或泄露出去,提高了汽车的安全性.本系统经过多次试验,性能良好.之后的进一步研究是如何改进系统的加密方法及如何减少系统的电磁干扰. ■
[1]唐辉胜,刘舒.关于当前汽车盗窃产业链实证研究报告[J].安防科技,2010,(10):60-64.
[2]STM32F103xC, STM32F103xD, STM32F103xE Data Sheet[Z]. STMicroelectronics.
[3]刘火良,杨森.STM32库开发实战指南[M].北京:机械工业出版社,2013.
[4]喻金钱,喻 斌.STM32F系列ARM Cortex M3核微控制器开发与应用[M].北京:清华大学出版社,2011.
[5]徐爱军.单片机原理实用教程基于Proteus虚拟仿真[M].北京:电子工业出版社,2012.
[6]刘德全.Proteus8 电子线路设计与仿真[M].北京:清华大学出版社,2014.
[7]CC1101Low-Cost Low-Power Sub-1GHz RF Transceiver (Enhanced CC1100) Data Sheet [Z]. Texas Instruments.
【责任编辑 谢明俊】
Design and Implementation of Automobile Alarm system Based on STM32 Microcontroller
LIANG Jian-ping
(Computer Science Department, Yulin Normal University, Yulin, Guangxi 537000)
This system use STM32 MCU as the controller. The random code generated by the central module controller is used as the password address, which is sent to the key module through wireless means, and the key module send the encrypted information according to the address. The central module decodes and verifies the encrypted information, send back the verification result and determine whether to conduct the acousto-optic alarm according to the calibration results. After the decoding, central module can change the decoding method and password; Random password can be stored in EEPROM so that the password information will lose when there is power failure. Password information cannot be changed or leaked through wireless remote control, greatly improve the auto security system. Through many experiments, the system shows stable performance and achieves good effect, so this system has important research meaning in auto security.
auto security; encryption; wireless communication; alarm
TP277
A
1004-4671(2015)05-0128-07
2015-06-02
广西高校科学技术研究项目(201204LX339);广西高校科学技术研究项目(YB2014321)。
梁剑平(1987~),女,广西玉林人,玉林师范学院计算机科学与工程学院教师。研究方向:自动控制、嵌入式。