深入解析Microchip HCS500 KEELOQ® 代码跳变解码器
在电子工程师的日常工作中,安全可靠的远程无钥匙进入(RKE)系统设计是一项重要任务。Microchip 的 HCS500 KEELOQ® 代码跳变解码器为这一领域提供了强大的解决方案。今天,我们就来深入了解一下这款解码器的特点、工作原理和应用。
文件下载:HCS500-I/P.pdf
一、HCS500 概述
1.1 产品特性
HCS500 具有诸多出色的特性,使其在安全领域表现卓越。
- 安全性:它采用加密存储制造商代码和加密密钥的方式,增强了系统的安全性。同时,支持最多学习七个发射器,并运用 KEELOQ 代码跳变技术,以及具备正常和安全学习机制,有效防止代码被破解。
- 操作特性:工作电压范围为 3.0V - 5.5V,内部集成振荡器,还能自动检测比特率,适应不同的工作环境。
- 其他特性:作为独立解码器芯片组,配备外部 EEPROM 用于存储发射器信息,具有同步串行接口和 1Kbit 用户 EEPROM,采用 8 - Pin PDIP/SOIJ 封装,方便进行电路设计。
1.2 典型应用
HCS500 的应用范围广泛,涵盖了汽车远程进入系统、汽车报警系统、汽车防盗器、门禁和车库开门器、电子门锁、身份令牌以及防盗报警系统等领域,为各种安全应用提供了可靠的保障。
二、系统概述与关键术语
2.1 关键术语解释
在理解 HCS500 的工作原理之前,我们需要了解一些关键术语。
- RKE:即远程无钥匙进入,是一种常见的车辆或门禁系统的进入方式。
- 代码跳变:每次传输时,代码在系统外部看起来会不可预测地变化,增加了安全性。
- 代码字:按钮激活时重复传输的数据块。
- 传输:由重复的代码字组成的数据流。
- 加密密钥:用于加密和解密数据的 64 位唯一秘密数字。
- 编码器:生成和编码数据的设备。
- 加密算法:使用加密密钥对数据进行加扰的方法。
- 解码器:对从编码器接收的数据进行解码的设备。
- 解密算法:使用相同的加密密钥对加密数据进行解密的方法。
- 学习:接收器计算发射器的加密密钥,解密接收到的跳变代码,并将序列号、同步计数器值和加密密钥存储在 EEPROM 中。
2.2 HCS 编码器概述
HCS 编码器在使用前需要加载一些重要参数,包括生产时生成的加密密钥、16 位同步计数器值和 28 位序列号。制造商在生产时为每个编码器编程序列号,通过“密钥生成算法”生成加密密钥。同步计数器是代码字变化的基础,每次按下按钮时,同步计数器会递增,导致传输的代码字中超过 50% 的比特发生变化。
三、解码器操作
3.1 学习发射器
在发射器和接收器协同工作之前,接收器需要“学习”并存储发射器的相关信息,包括序列号的校验值、加密密钥和当前同步计数器值。同时,解码器还需将制造商代码存储在受保护的内存中。HCS500 有七个内存插槽,最多可存储七个发射器。学习过程通过向解码器发送 ACTIVATE_LEARN 命令启动,按照特定的步骤进行,如激活发射器两次等。学习过程中,解码器会进行一系列检查,确保传输的有效性。
3.2 代码验证
解码器等待传输并检查序列号,判断是否为已学习的发射器。如果是,则对传输的代码跳变部分进行解密,并使用判别值验证解密是否有效。最后,评估同步计数器值,确保其在有效范围内。验证步骤包括搜索 EEPROM 匹配序列号校验值、解密跳变代码、比较判别值和序列号的低 10 位、检查同步计数器值是否在同步窗口内等。
3.3 同步技术
KEELOQ 技术采用了复杂的同步技术,通过 3 - 分区旋转同步窗口来确保系统的安全性。当传输被认证时,执行相应功能并更新同步计数器值,旋转同步窗口。同步窗口包括单操作窗口(16 个代码)、双操作(重新同步)窗口(最多 32K 个代码)和阻塞窗口,有效阻止无效传输。
四、与微控制器接口
4.1 有效传输消息
解码器通过将数据线拉高最多 500ms 来通知微控制器接收到有效传输。微控制器通过将时钟线拉高进行确认,然后解码器将数据线拉低,微控制器开始从 HCS500 时钟输出数据流,包括起始位、状态位、功能代码、停止位、块指示和传输数据等。
4.2 命令模式
微控制器通过特定的命令模式与解码器进行通信,包括命令激活、实际命令、访问地址和数据。解码器使用碰撞检测来防止与微控制器发生冲突,确保通信的稳定性。命令激活时间根据解码器的状态而定,不同的命令有不同的操作和时序要求,如读取和写入用户 EEPROM、激活学习、擦除所有发射器等。
4.3 独立模式
HCS500 还可以在独立模式下使用。当接收到有效传输时,它会将数据线激活最多 500ms,可用于驱动继电器电路。通过连接按钮到 CLK 输入,可以激活学习或擦除所有命令,通过连接 LED 到 DATA 输出线提供用户反馈。
五、解码器编程
5.1 系统内存编程
解码器使用 2K 的 24LC02B 串行 EEPROM,分为系统内存和用户内存。在使用解码器之前,需要对系统内存中的 64 位制造商代码和解码器配置字节进行编程。这些内存位置受读保护,需要使用编程命令在设备上电时进行写入。
5.2 配置字节
配置字节用于在初始化时配置解码器,包括学习模式选择(正常学习或安全学习)、算法选择(KEELOQ 解密算法或 XOR 算法)和重复传输启用等选项。
5.3 编程波形和数据字符串
编程命令包括命令请求序列、命令字节、配置字节、制造商代码和激活确认序列。总共 80 位数据以最低有效位(LSB)优先的方式时钟输入解码器,解码器使用其唯一的 64 位 EEPROM 加密密钥对制造商代码进行加密。
六、密钥生成
HCS500 支持三种学习方案,根据不同的算法和输入种子来生成加密密钥。
6.1 正常学习(序列号派生)
使用 KEELOQ 解密算法和发射器的 28 位序列号来派生加密密钥。
6.2 安全学习(种子派生)
使用编码器传输的安全种子来派生输入种子,再通过 KEELOQ 解密算法或 XOR 算法生成加密密钥。
七、KEELOQ 编码器
7.1 传输格式
KEELOQ 编码器的传输由前导码、头部、加密数据和固定数据组成,每次传输后有一个保护期。代码跳变部分提供多达 40 亿种变化的代码组合,非代码跳变部分包括状态位、功能位和 28 位序列号,两者结合增加了组合数量。
7.2 代码字组织
HCS 编码器在按下按钮时传输 66/69 位代码字,由代码跳变部分和非代码跳变部分组成。加密数据由按钮位、溢出计数器位、判别位和同步计数器值生成,非加密数据由状态位、功能位和序列号组成。
八、开发支持
Microchip 为 HCS500 提供了丰富的开发支持,包括集成开发环境(MPLAB X IDE)、编译器、汇编器、链接器、模拟器、仿真器、调试器、编程器等工具,以及各种演示、开发和评估板、套件,还有第三方开发工具,方便工程师进行开发和调试。
九、电气特性
9.1 绝对最大额定值
HCS500 的绝对最大额定值包括环境温度、存储温度、引脚电压、功率耗散、电流等参数,使用时需要确保不超过这些额定值,以保证设备的安全和可靠性。
9.2 标准操作条件
标准操作条件包括工作电压和工作温度范围,不同的工作频率对应不同的最小工作电压。
9.3 电气特性参数
包括直流特性和交流特性,如电源电压、输入输出电压、电流、传输时间、时钟频率等参数,这些参数为电路设计提供了重要的参考。
十、封装信息
HCS500 提供 8 - Lead PDIP 和 8 - Lead SOIJ 两种封装形式,文档中详细介绍了封装的标记信息和尺寸规格,方便工程师进行 PCB 设计。
综上所述,Microchip 的 HCS500 KEELOQ® 代码跳变解码器是一款功能强大、安全可靠的解码器,适用于各种安全应用场景。电子工程师在设计 RKE 系统时,可以充分利用 HCS500 的特性和功能,提高系统的安全性和稳定性。你在使用 HCS500 过程中遇到过哪些问题呢?欢迎在评论区分享你的经验和见解。
发布评论请先 登录
深入解析Microchip HCS500 KEELOQ® 代码跳变解码器
评论