基于KEELOQ跳码技术的密码系统设计

最新更新时间:2006-09-15来源: 现代电子技术关键字:译码  跳变  计数器 手机看文章 扫描二维码
随时随地手机看文章

1 引言

传统编译码芯片如VD5026,VD5027,MCI45026,MCI45027等已经在防盗、安全等系统得到广泛的应用,这些芯片简单易用,但具有很大的缺陷:编码量少而极易重码;密码长度短(一般为8-12位,最多不超过16位),因而数据极易被扫描和破译,不能满足高安全场合的需要。

基于KEELOQ技术的跳码芯片则克服了以上两个缺陷,较好地解决了密码的防盗问题,所谓跳码,就是密码不是固定的,而且不断跳动变化的,是为满足高性能要求而设计的,跳码芯片的使用十分简便,只要在第一次使用前,编译码器进行一次"学习",使编译码器的密码同步,通常一个译码器可以支持多个编码器,再加上其电压使用范围宽,功率消耗极小,因此成为传统编译码器的理想升级换代产品。 2 跳码核心技术--KEELOQ技术使用KEELOQ技术的编码器每次发出的密码都不同,只有配对的译码器能准确译出收到的密码,使用不配对的编、译码器或重复发送译码器曾收到的密码等均告知无效。即使编码器发送出的码在译码器方没有收到,也不会影响以后的正常使用。这一切归功于芯片内强大的微处理器及KEELOQ独特的同步算法。

跳码芯片的密码虽是一大串几乎随机的乱麻,但实际毫不紊乱,密码包括2部分:

(1)跳码,编译器每次产生的都不一样,产生后就被加密;

(2)在传输过程并不加密,主要包括编码器的系列号,在与译码器的配套使用中作识别信号。

跳码包括功能信息、辨别码以及同步计数器、通过一个加密算法加密后再传送出去。跳码芯片在使用前必须预置序列号、加密钥匙、同步计数器、发送方和接收方一起工作前,接收方必须先通过"学习"来获得并存储发送方的序列号、加密钥匙和当前同步计数器的值。

硬件实现KEELOQ技术加密过程如图1所示。

在KEELOQ技术中"学习"功能是一个重要部分,"学习"包括清除原来的存储的信息和学习新的信息,每对跳码型编译码器在使用前都要至少单向"学习"一次,密码在第一次配对使用时是随机产生的乱码。然后把要配对的编码器的密码传进译码器,译码器就会学习和存储这一次的安全代码,从此这一对译码器的密码就按照同一套跳变码算法同步变化,译码器以后每次就能准确译出编码器的密码,同时,这一存入的安全代码被作为无效码参考,再收到同样的密码就会视而不见,因而能有效地防止偷码冒用。

最后,译码器设计了一套容错算法,他不但能预知配对的编码器的下一个密码变化,而且能预知他以后256次的变化码,并都能准确译出,这样,即使发射器被乱按了好多次不为译码器所知,但都能依旧保护默契配合,保持了极好的跳变译码能力和抗截码的功能。

3 应用电路

3.1 HCS301跳码编码器的管脚及其功能

HCS301跳码编码器的引脚排列如图3所示。

引脚1-4:S0-S3,数据输入通道,其中S2,S3在编程状况时可作为时钟输入,引脚5:VSS,电源地;引脚7:LED,指示工作状态及低电压指示,可直接驱动LED,低压时,指示灯将以5次/秒的频率闪烁;引脚8:VDD,电源,工作电压为+3.5-+13.0V。

编码器 HCS301发出的密码长66位,由34位的固定码和32位由KEELOQ算法产生的加密码组成,固定码主要包括28位的系列号(每个编码器独一无二),还含6个状态位,其中2位显示号码是否重复、电源是否低压;另外4位状态位为4位的功能信息(即按键输入组合情况)。32位的加密码中含4位功能信息,以及12位的辨别码(判断译码过程是否有效)和16位同步计数器值。每次按下命令控制键时,译码器的同步计数器的值加1,从冲击的角度看,有一半的位将发生改变,因此相邻的密码将大相径庭。一个相当长的时期内,密码将不会重复,不重复次数可达64K(216),有人统计过,如果每天按10次,那么要经过18年密码才有可能重复。

HCS301还具有独特的电源自动关闭功能,即只有在有编码信号时才进入工作状态,静态功耗极低,降低了电源功耗。通过二极管阵列,HCS301最大可实现15个功能。

3.2 TDH6301跳码译码器的管脚及其功能

TDH6301跳码译码器的引脚排列如图4所示。

引脚1:VDD,电源,一般接+5V;引脚2:LEARNIN,"学习"键;引脚3,LEARNLED,"学习"指示输出;因该4:MCLR:译码器复位端口;引脚5:LMS,上拉时锁存输出,下拉时暂存输出;引脚6:NC(D5),空引脚;引脚7:NC(D4),空引脚;引脚8- 11,D0-D3,数据输出端;引脚12:VT,接收信号有效输出;引脚13:RFIN,接收信号输入;引脚14:VSS,接地。

TDH6301与编码芯片(HCS300或HCS301)配对使用,可省去了烦琐的编码和配对。他有两种输出方式,当TDH6301的5端悬空时为脉冲型电平输出方式,即无接收信号时,数据输出将保持约500ms;当TDH6301的5端接法如图4所示时为锁存型电平输出方式,即输出电平将保持到有其他输出口接收信号时为止。

TDH6301的输出状态由"学习"过的编码器决定,即对应的按键输入组合产生对应的输出组合,因而通过门电路组合TDH6301的输出能够实现15个功能。

3.3 应用电路图

HCS301的应用电路非常简单,只需要几个按键和几个电路和电容就可实现,如果用于无线,还需要RF(射频)电路,图5为具有4个功能的编码电路,通过二极管阵列任意组合S0-S3,HCS301最多可扩展到15个功能。在传输的过程中,指示灯将被点亮。如果HCS301检测到有新的按键下,复位将立即产生,密码将无法完整的发出。

相应的译码电路图如图6所示,译码器的RFIN端接收译码器PWM端输出的信号:

初次配对使用时,要先进行"学习"。按下"学习"键,使译码器进入"学习"接收状态,学习指示灯闪亮一下后熄灭。之后的30s内,按下编码器的任意键,输出信号代码,若编码器未被学习过,学习指示灯长亮约1s后自动熄灭,说明编码器输出的代码被成功学习,学习过程完成;若学习指示灯快速闪亮(>5次/s)表示学习失败,可能是芯片不配套或者被烧坏,学习成功以后,这一对编译码器就可以同步跳变工作了。

TDH6301译码器最多可支持15个译码器,只需经过上述学习步骤,就可实现,当编码器学习溢出时(即超过15个编码器时),译码器会从头开始自动覆盖并作废最早一个已学习的译码器,长按学习键超过8s,待学习灯LED熄灭后,译码器自动清除存储器里的记忆内容,这样就可让遗失的编码器失效而作废,但此时所有的编码器都失效,因此,所有的编码器需重新进行学习一遍才可正常使用。

4 结语

译码芯片TDH6301有2种工作方式,可方便地选择,跳码芯片经过扩展,可以具有15个功能,跳码技术的关键在于:对于同一动作(如开门),编码器每次发出的编码却有极大不同,发过的码字被记录,重发也视为无效。且码字具有足够的长度,保密性很高,足以抵抗使用仪器对码字进行扫描,因此,跳码芯片至少在目前是传统密码锁更型换代的理想产品,可广泛应用汽车遥控报警器、家庭安全系统、电子钥匙、门禁系统、自动门系统等高度安全保障领域。

关键字:译码  跳变  计数器 编辑: 引用地址:基于KEELOQ跳码技术的密码系统设计

上一篇:设计一个低成本的低失真受控振荡器电路
下一篇:基于TMS320C64x实现LFM信号的实时脉冲压缩

推荐阅读最新更新时间:2023-10-12 20:12

STM32 定时器计数器 更新事件
向上计数模式 在向上计数模式中,计数器从0计数到自动加载值(TIMx_ARR计数器的内容),然后重新从0开始计数并且产生一个计数器溢出事件。 如果使用了重复计数器功能,在向上计数达到设置的重复计数次数(TIMx_RCR)时,产生更新事件(UEV);否则每次计数器溢出时才产生更新事件。 这样很容易误解 应该是否则每次计数器溢出时都产生更新事件,即不使用重复重复计数功能每次溢出都产生更新事件。 产生更新事件方式 1.设置了TIMx_CR1寄存器中的URS位(选择更新请求),在TIMx_EGR寄存器中(通过软件方式或者使用从模式控制器)设置UG位将产生一个更新事件UEV,但硬件不设置UIF标志(即不产生中断或DMA请求)
[单片机]
stm32f103r6仿真计数器程序+Proteus
单片机源程序如下: #include stm32f10x.h #include Delay.h #include smg.h #include sys.h #include timer.h #include led.h #include fmq.h #include key.h #include stm32f10x_tim.h uint16_t table = { /* 0, 1, 2, 3, 4, 5, 6, 7, 8, */ 0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, /* 9, A, B, C,
[单片机]
stm32f103r6仿真<font color='red'>计数器</font>程序+Proteus
PLC编程语言的设计与应用
    1  引言     在PLC中有多种程序设计语言,如梯形图语言、布尔助记符语言、功能表图语言、功能模块图语言及结构化语句描述语言等。梯形图语言和布尔助记符语言是基本程序设计语言,它通常由一系列指令组成,用这些指令可以完成大多数简单的控制功能,例如,代替继电器、计数器、计时器完成顺序控制和逻辑控制等。通过扩展或增强指令集,它们也能执行其它的基本操作。功能表图语言和语句描述语言是高级的程序设计语言,它可根据需要去执行更有效的操作,例如,模拟量的控制,数据的操纵,报表的报印和其他基本程序设计语言无法完成的功能。功能模块图语言采用功能模块图的形式,通过软连接的方式完成所要求的控制功能,它不仅在PLC中得到了广泛的应用,在集散控制系统
[嵌入式]
ABB机器人IRB1410零点计数器更新方法教程
同步标记(ABB IRB1410) 下图所示:irb 1410的校准范围位置。 更新转数计数器 简介: 本节介绍如何对每根操纵器轴执行粗略校准,即使用FlexPendant更新每根轴的转数计数器值。 步骤1:手动将操纵器运转至同步位置 按本步骤手动将机械臂运行到同步位置。 轴4和轴6的正确校准位置 当操纵机械臂至同步位置时,应确保下述机械臂的轴4和轴6正确定位,这一点极为重要。否则,这些轴可能会按错误的顺序进行校准,从而导致机械臂校准错误。 确保这些轴按照正确的校准值而不仅仅是校准标记进行定位。在位于下臂上底座或框架法兰盘下的标签上可找到
[机器人]
如何采用STM32中的控制定时器Tim1实现计数器功能
STM32中的高级控制定时器(Tim1)是由一个16位的自动装载计数器组成,它由一个可编程预分频器驱动。 用途在于:测量输入信号的脉冲宽度(输入捕获),或者产生输出波形(输出比较,PWM,嵌入死区时间的互补PWM等)。 使用定时器预分频器和RCC时钟控制预分频器,可以实现脉冲宽度和波形周期从几个微秒到几个毫秒的调节。 具体如下: 16位上下,自动装载计数器。 16位可编程预分频器,计数器时钟频率的分频率的分频系数为1-65535之间任意数值,4个独立通道: 输入捕获 输出比较 PWM生成 单脉冲模式输出 死区时间可编程的互补输出 使用外部信号控制定时器和定时器互连的同步电路 在指定数目的计数器周期之后更新定时器寄存器
[单片机]
51单片机的定时器与计数器
1.0 1.0.1定时器 (1)51单片机的定时器是一个内部外设。 (2)定时器相当于CPU的一个“闹钟”。 (3)定时器是用计数器来实现的。 1.0.2计数器 (1)计数器可以计数外部脉冲的个数. (2)脉冲:(个人理解)单片机中一个低电平跳变成高电平在回到低电平的这么一个过程就称为一个脉冲。 1.0.3定时器是如何工作的 (1)第一步:先设置好定时器的时钟源(AT89C51单片机的时钟源只有一个不需要设置) (2)第二步:初始化时钟相关寄存器 (3)第三步:设置定时时间(计数个数) (4)第四步:设置中断处理程序(定时器总是与中断相互配合使用) (5)第五步:打开定时器 (6)第六步:定时器计数到后产生中断,然后执行中
[单片机]
水平地使用一个LED点阵屏
LED提供了一种电子式显示信息的简单方法。虽然七段LED显示器(排列成数字8的形式)很常见,但它却不能显示某些英文字母。5×7 LED点阵屏可显示所有ASCII字符,以及各种图形。本例中的电路给出了一种5×7 LED点阵屏的特别使用方式。 电路无需做任何修改,只要对LED单元稍加安排,就可以用于一组5×7 LED单元的设计中。使用一只5×7 LED点阵屏可以显示两个字符,而将N个单元水平排列(不是垂直排列)则可以显示2×N个字符。小写和大写字母最少都只需要一个3×5 LED的结构,但字母M和m除外,它们至少需要5×5LED结构,需要一个专用的子例程。图1中的电路使用了一只8位、18脚的PIC微控制器和一个十进制计数器,驱动一个
[嵌入式]
功能趋向多样化的语音编译码芯片
由于可携式产品愈来愈多,因此对于音效播出的功能要求也就愈被要求能够达到高音质输出的能力,事实上,目前在市场上有相当多的音效语音解决方案,然而经过更新技术的加持,使得这些音效语音编译码的输出能力,已经不亚于CD的质量,甚至于如果内建高阶处理器的话,还能够提供包括数字模拟转换、除错、以及系统控制等功能。 不过从基本的架构上来看,对于数字音讯数据处理而言,现在所内建的各种功能都并不是绝对备需要的,因为这些作业都可以利用一个或多个数字接口,藉由外部强大的处理器来进行,但是因为成本与轻薄应用的考虑之下,有些业者采取的策略便是把处理器内建于音效语音编译码芯片之中,至于孰优孰劣就是视个人见解来决定了。 依据不同的应用 选择各式各样的编解碼技术
[嵌入式]
小广播
最新模拟电子文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved