1 引 言
随着RF遥控器件的成本在逐年下降,电子式遥控开锁系统比机械式开锁系统更有成本优势,从而导致该市场的进一步扩张,新的应用也在不断涌现,车库门禁系统是其中之一。传统的安防产品主要采用固定编码集成电路,如PT2262、PT2272等编解码芯片。但由于此类编解码芯片的编码长度有限,格式固定不变,十分易于在空中以捕捉电波码字和扫描跟踪等方法破解,只能用于一些对保密安全要求不高的场所。美国MICROCHIP公司的基于KEELOQ算法的系列滚动码编码芯片则克服了以上系统的缺点,已成功的应用于各种安防产品中,如闸门、车库、银行、自动防盗报警系统、身份识别、智能IC卡等领域。由于在传输代码之前采用了先进的非线性位加密技术,产生具有极高保密性的滚动编码。每一次发送的代码都是惟一的、不规则的、且不重复,使得任何通过非法捕捉和扫描跟踪等破译手段都化为泡影。本文介绍了基于KEELOQ技术的HCS300芯片的编码过程及基于PIC16C54的MCU解码程序在车库门禁系统中的应用。
2 系统工作原理
车库门禁系统的目的是实现遥控无匙门禁技术(RKE),使驾驶员可以通过遥控器的按钮来开关库门,图1为其原理结构图。系统由遥控编码器及接收解码器组成。其中遥控器由编码芯片、发射电路组成,附加按键及电池,是袖珍发射装置,可随身携带;接收器由接收电路、解码芯片、控制电路及执行机构组成,执行机构又包括门控电机、声光报警等。下面分析系统各部分的设计及应用。
3 HCS300工作原理
3.1 KEELOQ技术介绍
KEELOQ实际上是一个“ASIC”的特别设计,内含加密及解密技术。其核心在于KEELOQ演算法,即一种非线性的推算公式,当输入数据进入这个算法时,其输出对输入而言是惟一的(不重复)结果。KEELOQ核心元件由三部分组成:制造商代码(Manfacture's Code),长度为64 b,由制造商自行决定此代码,这是不可泄露的原始密码,遥控器的制造商代码必须与接收解码器相同;序号(Serial Number),长度为28 b,每一编码IC或遥控器其序号均不相同,用来识别遥控器与接收器之间的关系,即使使用者同时有两支遥控器来控制同一接收器,其序号也不相同;编码密码(Encryption Key),长度为64 b,这是利用制造商代码及序号产生64 b的编码密码,这64 b的编码密码会被烧录在HCS300内部的E2PROM,这64 b的编码密码是用来产生跳码的密码。
3.2 KEELOQ密码编码过程
根据上述编码材料,用MICROCHIP提供的编码工具KEELOQ TOOL V2.00即可生成编码密码,如图2所示,然后写入HCS300的E2PROM中。而每当遥控器按键按下时,就会读取按键输入并更新同步计数器,同步码及密码编码等经KEELOQ算法加密后,产生32 b高度保密的滚动代码。由于KEELOQ算法的复杂性和16 b同步码每次传输时都要更新,故每次传输代码都和上一次的代码完全不同,因此这部分被称为跳码(HOPPING CODE)。这32 b的跳码再结合序列号及按键信息构成的34 b固定码组成66 b发射信息,如图3所示。
3.3 编码器应用电路
本设计采用MICROCHIP公司的HCS300做编码芯片,HCS300内部集成了KEEl,0Q算法,带4个按键接口,有15种功能可供使用,使用很简单,只需添加发射电路即可。典型应用电路如图4所示。当检测有按键被按下时,HCS300被唤醒。延时去抖后进行加密运算形成跳码,而完整的编码信息由PWM端输出(TX)到射频电路发射。
4 基于PIC16C54的解码原理
对于跳码编码可用由MICROCHIP公司提供的专用解码芯片(如HCS5XX)进行硬件解码,考虑到成本等因素,本系统采用单片机16C54进行软件解码。系统电路如图5所示。图中RF接收器来接收遥控器发射的信号,以PIC16C54进行软件解码,产生S0~S3的控制信号,以便对车库门马达,照明灯具及报警系统进行控制。
为了使发送器,接收器一起工作,发送器首先要被“学习”确认,“学习”确认完成后,解码器将所学的序列号和同步值经加密后存储到E2PROM中,解码器需要工厂代码(只有相同工厂代码的发射器才能进行学习),工厂代码通常存储到ROM中,以提高安全性。解码器取得系列号之后先与工厂代码结合产生与发射器相同的密钥,并用这一密钥进行解密滚动数据。解码器接收到一次发送后,立即检查序列号是否已被学习,如果是,则进行解码过程,由生成的密钥对滚动码部分进行解密,用鉴别位来判断解密否有效,如果以上通过,则检查同步计数器是否匹配,在确认其匹配后,再去处理接收到的按键信号指令。解码器的基本操作如图6所示。图中数字表示信息处理次序。
5 结语
该系统综合运用了微机控制技术,无线传输技术,数据加密技术,设计了一种成本低廉,性能可靠,安全性高的车库门禁系统,得到了广大车主的认可。实际使用时还可通过增加硬件及软件,提升系统功能,使其可以满足更广泛的要求。