《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 设计应用 > 基于KEELOQ技术的遥控门禁系统的实现
基于KEELOQ技术的遥控门禁系统的实现
来源:电子技术应用2013年第2期
薛巨峰,乔 鹏
东北林业大学 机电工程学院,黑龙江 哈尔滨150040
摘要: 基于KEELOQ技术的解码运算,采用滚动码技术,通过HCS301进行跳码编码并对其进行解码,同时采用芯片PIC16F630,设计了一个遥控门禁系统。给出了系统流程图和部分硬件原理图,详细描述了密钥的产生和解码的过程。本系统具有保密性高、使用方便、成本低的特点。
中图分类号: TN409
文献标识码: B
文章编号: 0258-7998(2013)02-0045-03
Realization of remote access system based on the KEELOQ technology
Xue Jufeng,Qiao Peng
College of Machinery and Electricity Engineering,Northeast Forestry University,Harbin 150040,China
Abstract: A remote access system is designed by using rolling code technology,with the HCS301 for size coding and the decoding,and using the PIC16F630 chip,which are based on the operation of the KEELOQ technology decoding arithmetic. The system flow chart and part of the hardware principle diagram are given. And the key generation and decoding process are detailed. This system has characteristics of high confidentiality, easy to use and low cost.
Key words : HCS301;PIC16F630;rolling code;KEELOQ technology

    目前,大部分家庭门禁系统都是采用机械式开锁,操作比较麻烦,给家里有老人的家庭带来了诸多不便,且安全性也不能得到很高的保障。近年来RF遥控器件的价格越来越便宜,且电子式遥控开锁更加方便、安全,从而使其市场有了更大的提升空间,利用其特点已开发出了一些重要的应用,遥控门禁就是其中之一。机械式开锁的最大缺点就是不安全,采用滚动码技术的遥控门禁系统则大大改变了这一现状,因为其每次发出的编码信息不同、不规则,而且重复出现同一编码信息被视为无效,传输代码采用了非线性位加密技术,使其产生了具有很高保密性的滚动码,使得一些非法的装置不能在一定的时间内破解其密码。本文主要介绍KEELOQ技术在遥控门禁系统中的应用,并且利用PIC16F630进行控锁和软件解码。

1 编码器的工作原理
    本设计的遥控门禁系统[1]通过按键遥控器就能开关家门,其工作流程如图1所示。当系统按钮被按下时,HCS301将开始准备工作,为使按钮抖动平息,大约要延迟10 ms。信息将以跳码的形式进行传输,跳码包括识别码、按钮信息和徒步计数值。跳码就是跳动的代码,在每次发送时都将产生变化,即便同一个按钮被按下多次,它也会发生变化。因此,发送的编码字在超过64 000次的传输中都不会重复。以每天执行10次操作为例,跳码可以保证在18年之内编码字不会重复。溢出信息可用来将唯一发送的次数提高超过192 000次。在发送代码过程中,如果有按钮被按下,则会产生复位的效果,并且当前编码字的传输将不会被完成。只要有按钮处于按下状态,松开按钮就不会对编码字产生任何影响。在这样正常的情况下,编码字将完成并在随后断电[2]。

2 KEELOQ技术介绍
    KEELOQ技术[3]实际上是一个关于“ASIC”的特别设计,它包括解码技术和加密技术,并提出了一种实用可靠的KEELOQ算法,适用于遥控或命令辨别的场合。它的加密、解密技术安全,具有变化多、不容易被截获的特点,KEELOQ技术可应用在车库门遥控、秘密通信、被动式感应控制、停车场管制、安全锁等场合,用途广泛。KEELOQ的传送可经由公共频道,内含一组64 bit的编码密码,编码器将把该编码密码传输到解码器,其中有32 bit的编码密码是不知道的,从而可保证该技术的保密性,并且传送资料不唯一和不重复。KEELOQ技术的重点在于它独特的演算法(即数学推算公式),当资料进入这演算法并进行运算时,其输入与输出是一一对应的,不存在重复。
2.1 KEELOQ技术的密码编码和存储[4]
    密钥的产生是由64 bit厂家代码和28 bit发送序列号在密钥生成算法中实现,并把其生成的密钥存储在HCS301中的EEPROM中,如图2所示。

2.3 PWM的接收
    发送的信息包括32 bit跳码和34 bit固定码,由图3可知,该固定码包括识别码、功能键和溢出指示位。首先进入前导资料并进行准备;然后开始接收所传输的资料,利用Sync.Header 10 TE来改变接收的速率,会得到TE的时间。当检测到有上升沿上升时,过一半TE时间后,开始进行取样并检测其结果。如果为1,则接收成功;如果为0,则接收失败,需要等待1 TE时间,然后立即取样,并把采样结果作为资料位元再重复以上动作,重新采样并进行测试;如果重测结果为1则失败。当下一个上升沿出现时,如果等待时间大于1 TE,则可以断定其结果为失败。重复以上步骤,直到把这66 bit编码密码接收完成[5],如图4所示。

3 PIC16F630的软解和控锁
    跳码编码可用专用芯片进行硬件解码。由于专用芯片的价格很贵,因此本设计采用PIC系列的单片机芯片PIC16F630进行软件解码[6]。当接收器接收到信号时,把信号传输到单片机中,然后PIC16F630进行软件解码,产生控制信号D0、D1、D2、D3。其原理图如图5所示。

    主机接DC12 V变压器,+12 V为正极输入端,GND为负极输入端,JP1~JP5为短路帽,第一组控制信号由跳线端JP4控制:如果JP4跳到A端,则只有按遥控器A键,L1才有开锁信号;如果JP4跳到D端,则只有按遥控器D键,L1才有控制信号输出。第二组控制信号由跳线端JP3控制:如果JP3跳到B端,则只有按遥控器B键,L2才有开锁信号;如果JP3跳到C端,则只有按遥控器C键,L2才有控制信号输出。
4 KEELOQ技术的学习模式
    为使生产配对方便、管理简单,KEELOQ系统要进行学习。解码器在没工作时,仅知道其制造商代码,剩下的都不知道;解码资讯存储在EEPROM中,具体包括:序列号(Serial Number)、同步计数值(Current Sync.Counter Value)、识别码(Discrimination Value)、编码密码(Encrypion Key)[7]。
4.1 简易学习模式

 


    如果使用简易学习模式,则编码密码就是制造商代码。此模式的特点是简单和容易明白,不足之处是假如制造商代码被知道,则当有两个使用相同制造商代码的系统时,这个系统的编码密码就很容易被知道,因此安全性被降低。在简易学习模式下,接收到资料,然后进行解码,判断是否与制造商代码一致。如果超过时间,则学习失败;如果解码正确,则判断识别码与所接收的序列号中较低的10位元是否相等以及功能键与所接收资料中的固定码按键值是否相等,如果不相等,则学习失败,如果相等则把学习到的3种资料记录在EEPROM中,作为解码资料库用。
4.2 标准学习模式
    标准学习模式与简易学习模式的解码方式其实是一样的,只是使用不同的解码密码(Encrypion Key)。在标准模式中,解码密码是通过序列号、制造商代码经过运算后得到的,前后共经过两次,并得到64 bit的编码密码。第一次运算,先取得32 bit(LSB),第二次运算,再取得32 bit(MSB)。进入标准学习模式下,将第一次接收的资料进行解码后,得到序列号、识别码、同步技术值,并判断识别码是否与序列号相等;将第二次接收的资料进行解码后,判断识别码与序列号是否相等,并检查同步技术值是否加1,如果都正确,则存储学习结果到EERPROM中。
4.3 安全学习模式
    安全学习模式与标准学习模式的解码方式其实是一样的,只是解码密码产生的方式不同。在安全学习模式中,制造商代码与SEED运算取得解码密码,并得到32 bit(LSB);然后此密码又与序列号进行运算,运算后所取得的密码为32 bit(MSB),即形成了64 bit的解码密码。当安全学习模式启动时,将准备接收跳码,并检查新、旧序号是否一样,利用新的解码密码与跳码进行解码后会得到识别码和同步技术值,然后存储解码资源中的4种信息到EEPROM中。
5 KEELOQ纸上解码
    以HCS301为例,其跳码(Hopping Code)使用0~F的制造商代码,以简易编码方式来记录HCS301所送出的编码作为解码输入。烧录设定:序列号0001234,同步技术值0000,识别码序号最低10 bit。把烧录的HCS301作为编码器,制造商代码为0123456789ABCDEF,使用简易编码解码方式将所收到的Hopping码填入“KEELOQ Decoding Tool”中的解码资料栏中来解码,所得到的结果如表1所示。

    本文运用了单片机技术、无线传输技术、KEELOQ技术,采用DXP2004软件绘制原理图,设计出了一种方便、成本低、保密性高的防盗门禁系统。在实际使用时还可以适当地加设硬件(例如报警器、LED灯等)来实现更大的作用。
参考文献
[1] Microchip Crop.AN661-Code hopping decoder using a  PIC16C56[Z].2011.
[2] 孔慧芳,丘宇宁.PKE智能钥匙系统设计[J].微型机与应用,2010,29(20):103-106.
[3] 何此昂,周渡海.远程无钥匙进入系统的方案设计[J].单片机与嵌入式系统应用,2006,29(12):33-35.
[4] 王文虎,李建奇,陶曾杰.KEELOQ滚动加密技术在汽车防盗系统中的应用[J].电子测量技术,2007,30(10):197-199.
[5] 陈元.基于轿车车身控制网络的研究和仿真[D].武汉:武汉理工大学,2008.
[6] 丁明勇.KEELOQ技术的文件加密设计与实现[J].辽宁工程技术大学学报,2005,24(5):727-729.
[7] 石幸利.基于滚动码技术的汽车防盗系统研究[D].重庆:重庆大学,2007.

此内容为AET网站原创,未经授权禁止转载。