基于STM32F的汽车远程防盗系统的设计与实现
2013-02-18 来源:dzsc
近几年,汽车偷盗案件越来越多,给人们带来巨大的经济损失。市场上随之出现了各种各样的汽车防盗器,本汽车防盗系统采用ST公司生产的STM32F103R6T6(以下简称STM32F103)单片机作为控制器,功能强大,实时性好。
1 系统结构与功能
汽车远程防盗系统是基于现代无线通信技术设计的,可以不受距离的约束,将汽车的状态信息直接发送到车主手机,进行一对一防盗报警,汽车远程防盗系统的结构如图1所示。
汽车防盗系统的信息采集模块包括人体感应传感器、振动传感器等,用来采集汽车警情信息。传感器将采集到警情信息,传送给微处理器处理,微处理器开始执行报警程序。首先,发送短信到车主手机;然后,报警器根据不同的警情进行语音警告,比如有人进入车内,报警器会发出“你已进入车内,请你离开”的语音警报。
车主可以随时发送指令查询车的状态。
防盗器设防时,系统控制后视镜折叠;撤防时,控制后视镜展开。
液晶显示部分用来显示车主设定的角度值。
无线遥控器用来进行设防和撤防。
2 系统硬件设计
2.1 单片机最小系统
STM32F103最小系统如图2所示,由STM32F103单片机、晶振电路、JTAG接口和复位电路组成。STM32F103增强型单片机基于高性能的ARM Cortex-M3(32位的RISC内核),内置32 KB Flash和10 KBSRAM、64个增强I/O端口、2个USART.STM32F103采用64引脚LQFP封装,供电电压为2.0~3.6 V,省电模式保证低功耗的要求,性价比高。单片机采用32.768kHz和8 MHz外部晶振,分别提供精准时钟源和工作时钟;复位电路设计成按键复位和上电自动复位相结合的方式。STM32F103芯片的应用,提高了整个系统的执行效率,增强了系统稳定性,降低了功耗和生产成本。
2.2 信息采集模块
信息采集模块主要包括人体感应传感器、振动传感器和后视镜角度采集电路。人体感应传感器主要检测是否有盗车者进入车内行窃,数据输出端接在单片机PC10引脚。当汽车被撞、被砸、被晃动或者被牵动时,振动传感器检测相关信息,并送入单片机PB0引脚处理。
在汽车防盗系统中,STM32F103的PC4、PC5引脚分别接收左右两个角度传感器的输入数据,通过PCA、PC5引脚的A/D转换功能,将模拟电压量转换为数字量在LCD1602上显示出来。
2.3 GSM模块
GSM模块选用华为公司的EM310.EM310 GSM支持串行接口,通过UART接口与外界进行串行通信,和STM32F103单片机的RXD0和TXD0引脚连接,用AT指令控制。UART支持可编程的数据宽度、可编程的数据停止位、可编程的奇偶校验或者没有校验。最高支持115.2 kb/s、最低支持300 b/s的波特率,默认支持9 600b/s的速率,支持波特率掉电保存。GSM模块有标准的SIM卡接口,GSM模块连接电路图如图3所示。
2.4 WT588D语音模块
本系统选用具有32 Mb存储器的WT588D语音模块,8 kHz采样时,录音时间长达790 s,满足语音提醒的要求。报警系统中,语音提醒需要较高分贝,为了驱动大功率的扬声器,输出用DAC接功放的形式,WT588D语音模块电路图如图4所示。R1和C1并联到地接功放。功率放大器选用TDA2030,额定功率达14 W,性价比高,应用广泛。语音模块与单片机的连接采用3线串口控制模式,和标准的4线SPI不同,WT588D只接收单片机发送来的数据、指令和时钟信号,而不需要发送数据。在这种3线串口模式下,P01为DATA数据接口,P02为片选CS,P03为CLK时钟,分别与单片机的PC7、PC8、PC6连接。模块供电电压为2.8~3.6 V,选用3.3 V.BUSY是忙信号输出端,当输出低电平时,发光二极管亮,此时为放音状态。WT588D模块应用范围广,几乎可以应用到所有的语音场所,如报站器、报警器、闹钟、智能家电等各种自动控制应用。
2.5 控制模块设计
2.5.1 油路控制电路
控制汽油喷射系统电源自动断电的具体方法,是在汽油喷射系统的电源线上加装常闭型汽车断电继电器来控制汽油喷射系统的供电电源。油路控制电路如图5所示。R2、R3起到限流的作用。当con1为高电平时,Q1导通,继电器打开,从而实现了断电熄火。正常情况下,con1输出低电平时,Q1截止,继电器闭合,汽油喷射系统供电电路接通。继电器线圈由导通变截止时,会感应出较大的自感电动势,容易击穿三极管8050.因此,在继电器两端反向并联二极管IN4148,吸收该电动势,保护三极管。
2.5.2 后视镜控制电路
每个后视镜采用一个步进电机和两个按键控制,步进电机用来转动后视镜,两个按键分别是角度增加键和角度减小键。车主根据自己的习惯,使用按键设定后视镜角度。系统设防时,控制后视镜折叠;撤防时,控制后视镜展开。图6是控制其中一个后视镜角度的驱动电路。
芯片L298N有两路电源,分别为工作电源和驱动电源。VSS是工作电源,电压范围为4.5~36 V,本系统选用5 V工作电压;VS为驱动电压,最大为36 V,要求VS最好大于VSS,设计中选用12 V.int1、int2、int3、int4为单片机控制电机的输入端,分别对应OUT1、OUT2、OUT3、OUT4四路输出,输出接四相五线式步进电机。ISENA、ISENB是使能端,直接接入5 V逻辑电源,也就是说,两个电机时刻都保持在使能状态。由于我们使用的电机是线圈式的,从运行状态突然转换到停止状态和从顺时针状态突然转换到逆时针状态时,会形成很大的反向电流,在电路中加入二极管的作用,就是在产生反向电流的时候进行泄流,保护芯片的安全。Motorl为步进电机提供插口。
2.6 无线遥控模块
汽车远程防盗系统不需要车主近距离接触防盗器,使用无线遥控器对系统设防和撤防。车主在的时候,对防盗系统撤防,以免造成误判,车主离开以后,可以对车辆设防。无线遥控模块选用台湾普城公司生产的编解码芯片PT2262/PT2272,工作电压范围是2.6~15 V.遥控器收发模块如图7所示。
发射端PT2262设置两个按键S1、S2,分别对系统设防、撤防。按下S1时,PT2262的D0引脚输入高电平,Dout向PT2272发射编码;接收端PT2272对应的D0引脚输出低电平,单片机检测到d0端为低电平,系统进入设防状态,各模块开始工作。PT2272的数据输出d0、d1和单片机的PB10、PB11连接。每按下一个键,在同一个系统中,Dout会输出相同的编码,单片机根据检测到的接收模块的数据输出引脚低电平,来实现用户的设防撤防需求。
2.7 电源模块
汽车上供电电压为+12 V,系统中各模块需要的电压有+5 V、+3.3 V和+4 V,因此,需要通过电源转换电路将+12 V电压转换为+5 V、+3.3 V和+4 V电压。+12 V转换为5 V选用LM2596开关电压调节器,该调节器有固定电压输出和可调电压输出。这里选用+5 V固定电压输出,输出电流高达3 A,具有过热保护和限流保护功能。在输出+5 V电压的基础上,利用X1117稳压芯片,把+5 V电压转为+3.3 V.X1117是一款正电压输出的低压降三端线性稳压电路,可输出固定电压+1.5 V、+2.8 V、+3.3 V等,也可输出可调电压。X1117的输入和输出电压相差不能太大,以免散热过多而损坏器件。系统从+5 V电压经二极管IN4007降压大约0.7 V,得到EM310模块需要的电压。电源电路如图8所示。
3 系统软件设计
系统采用C语言编写程序,将程序写入单片机,可进行系统测试。本设计在MDK编译环境中编写STM32F103的源程序,经过编译后产生。hex程序代码,用JTAG下载线将。hex文件下载到目标单片机的Flash中。
系统的总体程序流程图如图9所示。主控制器STM32F103初始化后,系统检测是否处在设防状态。遥控器PT2262/PT2272不需要软件编码,只需检测接收模块有没有收到设防控制。如果系统不是设防状态,程序执行控制后视镜和扫描遥控接口这样一个循环。如果处在设防状态,则控制后视镜闭合折叠起来,并且系统保持监视人体感应模块、振动模块与控制器接口,以随时采集警情信息。如果此时车主通过短信查询各接口状态,程序调用GSM通信程序发送各接口的状态。如果有警情发生,通过检测单片机接口,判断汽车是发生了振动还是有人非法入侵。然后,根据不同的情况,调用人体感应报警子程序或振动报警子程序,进行相应的处理,之后,单片机扫描遥控器接口,决定继续设防,还是撤防。如果撤防,后视镜展开到车主设定的角度。
结语
本文完成了基于STM32F103单片机的汽车远程防盗系统的总体设计,并在此基础上设计了系统的软硬件。经过反复试验,系统基本达到了预期的要求。