基于STM32F的汽车远程防盗系统的设计与实现
芯片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单片机的汽车远程防盗系统的总体设计,并在此基础上设计了系统的软硬件。经过反复试验,系统基本达到了预期的要求。
- 基于CAN总线的一体化步进电机驱动器的设计与实现(11-25)