摘 要:针对汽车车位应用,基于PIC16F630及无线射频技术设计并实现了一个无线遥控车位锁。运用了KEELOQ滚码技术实现无线数据传输,大大降低了车位锁编码重复率,提高了车位锁的安全性。扩展声光报警电路,指示车位锁的工作状态,并具备过流保护和电量检测功能。整个车位锁系统具有安全性高、功耗低、易操作等特点,有良好的市场前景。
关键词:车位锁;PIC16F630;KEELOQ技术;RF射频
随着人们生活水平的提高和汽车工业的快速发展,汽车已经走进千家万户。停车难、乱停车成了一个普遍且急需解决的社会问题。为保护好自己的车位不被他人占用,车位锁非常必要。已有的车位锁主要存在以下几个问题:
(1)传统的车位锁大多是人工操作实现翻转臂的起落,使用起来极不便利;
(2)利用红外方式遥控,其对方向性要求高,不具有穿透性,使遥控距离和角度方面受到限制[1];
(3)在一些遥控车位锁中,更多的是采用PT2262/2272、MC145026/145027等固定编解码芯片进行加密和解密。但此类编解码芯片的编码长度有限,系统每次发送的数据格式固定不变,容易通过空中捕获和扫描跟踪的方法识别代码,安全性得不到保障[2]。
基于上述考虑,本文设计了一个基于KEELOQ技术[3-4]的无线遥控车位锁系统。无线遥控采用美国Microchip公司基于KEELOQ算法的系统滚动码技术,使数据传输具有极高的保密性,每次传输的代码都是唯一的、不规则的,且不重复,以此来防止密码破译。同时,与无线射频技术相结合,使用户在一定范围内的任何位置都能对车位锁进行控制,有效克服了上述系统的缺点。
1 系统总体结构
遥控车位锁系统结构图如图1所示。用户利用遥控器输入功能按键,将信号经编码后通过无线射频方式发送给无线接收模块;MCU通过无线接收模块监测远程用户遥控器的按键操作,根据用户的按键逻辑驱动电机对车位锁进行上锁或解锁的操作,限位开关限制锁上升或下降的高度。系统同时提供声光报警电路,用于提示车位锁的动作情况以及低电量等异常情况。
2 无线发射与接收模块
无线发射模块通过无线射频技术在频率为315 MHz的条件下实现点对点传输,具有发射功率低、穿透性强、信号传输抗干扰性好、成本低等优点。无线接收电路主要由超外差接收模块J05U来完成,相比超再生接收模块,它在稳定性方面具有优势。J05U是一款特小体积、超低功耗、高灵敏度的OOK/ASK超外差接收模块,工作在315.0 MHz/433.92 MHz固定频点,能有效地将射频电路发射过来的信息进行解调后传送给解码器。
为降低车位编码的重复率,提高遥控功能安全性,无线遥控过程采用KEELOQ滚动加密技术。KEELOQ滚动加密算法对功能信息、识别码和同步计数值进行加密后,产生32 bit高度保密的滚动码,并与34 bit固定码一起形成66 bit的编码信息。由于KEELOQ算法的复杂性以及同步计数值每次都要加1,使编码信息每次都要发生变化,有效解决了编码重码的难题。若以每天传输10次代码计算,可保证在KEELOQ技术下同一遥控器发送重复码的概率18年不重复,以此来防止密码破译。解码器需要“学习”编码器的序列号、识别码和同步计数值后,解码器才能有效地解码编码信息[3-4]。
遥控器的KEELOQ编码由HCS301发出,电路如图2所示。它是一块8引脚的编码IC芯片,带有4个按键接口,实现15 bit的功能/命令码,内置192 bit EEPROM。HCS301在使用之前,需利用芯片烧写软件KEELOQ Evaluation Kit设置好制造商代码、序列号、识别码以及波特率等参数信息,并烧写到HCS301的EEPROM中。同时,解码器的EEPROM中也需要存储相同的制造商代码、序列号和识别码,使得编码器与解码器之间配对唯一。每当有按键按下时,HCS301会发送一组66 bit的编码数据,这时HCS301的LED端口会以5次/s的频率输出低电平,使指示灯闪烁,提示编码信息发送。完整的编码信息由PWM端(TX)输出到射频电路进行无线发射[3-4]。
3 主控制模块
主控制模块用于KEELOQ数据解码和实现车位锁动作的逻辑控制,系统控制电路图如图3所示。该模块选用PIC16F630作为主控制器,外围配备车位锁驱动电机、限位开关和声光报警电路。当超外差无线接收模块接收到远程用户的按键后,由MCU解码后获取用户的按键信息,根据按键功能,I/O口经L298N H桥驱动电机工作,控制车位锁撑杆的上升与下降。在电机工作过程中,PIC16F630通过限位开关实时判断撑杆是否到达上限位或者下限位,并以蜂鸣器发单一长声来提示动作到位。
本设计的供电系统由12 V、7 AH的蓄电池提供,采用高效率的开关电源芯片LM2596,将12 V电源转换为5 V电压给控制系统供电。为降低系统功耗, PIC16F630单片机定时处于SLEEP睡眠状态,每隔500 ms唤醒,唤醒后使能J05U的CE端口,启动超外差无线接收模块工作,检查有无无线编码进入,若无则单片机继续进入SLEEP睡眠状态,CE置低电平,关闭无线接收模块,从而有效减少了系统功耗。
电池电量主要通过CAT809T进行实时检测,若电量不足则使CAT809T产生低电平信号,单片机检测到该低电平信号时,控制蜂鸣器定时发两次短促报警声通知用户。为实现电机过流保护,在L298N输出与电机控制接口之间串联0.5 Ω电阻,以实时检测电机的工作电流。当过电流超过4 A,即在采样电阻两端产生压降超过TTL高电平最低电压2 V时,单片机通过I/O口检测到该变化电平信息,马上停止电机运转,并进行声光提示告知用户。
4 系统工作流程
系统工作流程主要实现KEELOQ软件解码[4-5]、电路检测和外围电路控制功能。系统主程序流程图如图4所示。当单片机上电时,系统不断执行循环主程序,对电源电量以及电机电流进行检测,并实时判断是否有本地学习按键和远程用户遥控输入。若接收到远程用户的按键输入,则进行用户信息的解码过程,并对解码后的按键值进行判断,控制电机的正转或反转;若电机运转超时则进行报警;若有学习按键按下,则执行学习子程序。
在PIC16F630进行正确解码之前,用户需通过触发接收电路的学习按键,使接收模块获取识别码、序列号和同步计数值,并存储在解码器的EEPROM中供以后解密使用[6]。当接收端解密密匙(即制造商代码)与发送方的一致时,即可对遥控器的发送命令进行正确解码。其学习程序流程图如图5所示。
5 系统测试
经测试,系统遥控距离可以达到30 m,系统从睡眠到唤醒的时间在0.5 s以内。系统静态电流(无机械动作)为0.022 A,动态电流(有机械动作)约为0.35 A,则一天的静态损耗为0.022×12×24=6.336 W。动态损耗主要在控制电机正反转时消耗,每次运转时间约3 s,若每天升
参考文献
[1] 胥萌,何广军,刘彬,等.基于单片机的智能遥控车位锁研究[J].电脑知识与技术,2012,8(19):4712-4714.
[2] 赵春红,杨勇.基于单片机和无线电遥控技术的密码锁设计[J].测控技术,2005,24(9):9-11,31.
[3] Microchip Technology Inc.HCS301 KEELOQ code hopping encoder(DS21143C)[EB/OL].(2011)[2013-08-06].http://www.microchip.com.
[4] Microchip Technology Inc.使用KEELOQ产生跳码密码(DS00665A_CN)[EB/OL].(2007)[2013-08-06].http://www.mirochip.com.
[5] 李荣正,王成杰,戴国银.PIC单片机原理及应用(第四版)[M].北京:北京航空航天大学出版社,2010.
[6] 薛巨峰,乔鹏.基于KEELOQ技术的遥控门禁系统的实现[J].电子技术应用,2013,39(2):45-47.