滚动码产品开发指南.pdf
3页8-bit MCU 应用技术资料 滚动码产品开发指南滚动码产品开发指南 智格软件开发(深圳)有限公司 曹士成 引言引言 随着人们安全意识的提高,应用到机车防盗器、防盗卷帘门等涉及财产安全场合的 RF 产品日益受到用户的关注 早期的产品采用固定码发射, 容易被人利用特殊工具抓取到号码, 好比自家的防盗门钥匙被别人复制, 其安全性能可想而知 由此采用滚动码的编解码芯片有 了其用武之地本文则主要提供一种利用微控制器设计滚动码编解码的思路 正文正文 一.滚动码产品的设计要求一.滚动码产品的设计要求 一般来说滚动码产品在设计上有以下几点要求:发射与接收要有相同的 ID(身份校验 码) ,ID 的位数由最多不同组遥控器的数目来确定,ID 码最好不直接出现在发射码中;每 按下一次按键发射码要改变,改变的规律不易推算,必需由缜密的解码协议来解码;曾经发 射过的发射码要舍弃或发射码虽有重复可能性但有不易推算的顺序限制; 不同的厂商如有相 同的解码协议,则厂商还要有自己独立的 VID(厂商标识码) ,同样不能直接出现在发射码 中;如果发射码中位元过多,应视实际情况考量是否添加数据校验码;由于在某些特殊情况 下,客户要自行设计滚动码解码,因此需要向其提供滚动码解码协议,因此在设计时要尽量 保证编、解码无法反推性。
二.滚动码设计思路二.滚动码设计思路 所谓滚动码,主要是指虽有固定的 ID,但发射码一直在按照某种协议发生改变而针 对这种协议来说,越复杂、越不容易推算其安全性也越高,但相对于微控制器来说其实现也 越困难因此设计一种简单有效的算法是有必要的 发射码的改变有两种情况: 一种是每执行完一次发射, 其发射码便被废弃掉不允许有重 复, 而且其下一个发射号的出现规律不易推算; 一种是每执行完一次发射, 发射码便会改变, 允许有重复的可能性,但滚动码有不易推算的顺序所限制前一种情况,其不同发射码的数 目决定于发射码中滚动码的位元数目例如滚动码位元数目为 N,则发射码最多有 2N个, 一旦使用完毕便会出现重码因而 N 越大安全性越高,但会降低数据的传输率,而且滚动 码的随机出现和 ID 融入的算法也越麻烦后一种情况,由于受规律不易推算顺序的存在, 加大了滚动码自由改变的机会, 而且遥控器和接收器之间由于协议的存在, 产生了相互知晓 发射码顺序的默契,其 ID 的融入也变的灵活简单 三.滚动码产品设计的一般思路三.滚动码产品设计的一般思路 图一 发射码的组成 按照后一种设计思路, 发射码信息一般由滚动码 (Rolling Code) 、 地址码、 按键信息码、 数据校验码四部分组成, 用户也可视情况取消数据校验码。
地址码的位数由不同组遥控器的 最大数目所决定,按键信息码可视实际情况灵活设定不必隐藏滚动码是由相同位数的 Counter 值根据协议加密而成,地址码则由相同位数的身份校验码加密而成由于每次发射 码的改变主要来源于滚动码和地址码部分,因此 Counter 和身份校验码的加密也就成为滚动 8-bit MCU 应用技术资料 码产品设计的关键 其程序流程如图二所示 一般来说身份校验码的加密是可以配合滚动码 进行的,而滚动码是由 Counter 值加密而成,由此 Counter 的加密算法则显得至关重要了 每次有按键按下,Counter 值本身加一,滚动码的取得可以通过 Counter 值左/右旋转并对某 些特殊位进行有规律运算的方式, 但要求每组滚动码中 1 和 0 的位数要均匀 而且在 Counter 达到某些特殊值,如末 3bit 值为 3、5、7 时,其加密算法要有所改变,从而达到滚动码数 据更改灵活多变的效果而身份校验码的加密可以采用与滚动码作些特殊运算的方式来进 行,但不要直接与 Counter 值作运算,从而达到加强 Counter 隐秘性的效果 图二 滚动码设计流程 图三 滚动码解码流程 对于滚动码解码部分来说,由于身份校验码和 Counter 顺序的双重限制,使得遥控与接 收配对的唯一性得到很好的保证。
其程序流程图如图三所示 一般来说接收端首先将地址码 部分解密得到 ID,并与自身的 ID 进行验证,验证通过后方可由滚动码推算 Counter 值,得 到的 Counter 值符合要求后便可执行相应的指令了由于每次有按键按下后,Counter 都会 加一,所以得到的 Counter 值要大于原来的 Counter 值才能符合要求,执行完动作后新的 Counter 值要覆盖旧的 Counter 值 一般来说 Counter 差值会有一个容许范围, 设定新 Counter 与旧 Counter 的差值为 N,则 1 N 16即保证用户有 15 次 Counter 值的容差范围,避免 用户在非工作区按键或接收时没有正确接收到数据如果解码 Counter 值在容差范围内,则 可以直接执行相应指令,如果在容差范围外,则需记下新的 Counter 值,并不立即执行相应 指令,等待下次的 Counter 值是否符合要求,才确定是否执行 四.滚动码产品在设计和生产时的注意事项四.滚动码产品在设计和生产时的注意事项 滚动码遥控器一般都会有省电的要求, 因此在设计时要选用功耗较低的微控制器 Sonix 的 SN8P25xx、SN8P26xx 系列微控制器在 3V/4MHz 条件下正常工作耗电流为 2~3mA,休 眠时耗电流1uA,因此足可胜任。
此外如果选用功耗较高的微控制器则要考虑停止发射时 关掉系统电源,但关断电源时,芯片将停止工作,并且无法记忆 Counter 值,因此需要外挂 E2Prom 或选择内置 E2Prom 的微控制器此外每颗遥控芯片会有单独的 ID,因此要考虑到 将 ID 存入到 E2Prom 中或编程在芯片程式区中 两种方式由于要不断改变 ID 因此不利于大 8-bit MCU 应用技术资料 规模生产,但 Sonix 提供滚动码烧录芯片的功能(每烧录一颗芯片,用户要求的滚码区域数 值加一从而进行下次的烧录动作) ,极大地方便了滚动码遥控器芯片的生产 对于接收解码端来说,一般来说要考虑选择内置 E2Prom 的微控制器或在设计时外置 E2Prom用户在设计时不必考虑 ID 的生产问题,可以设计成具有学习功能的解码器即将 学到的 ID 值依次存入 E2Prom 中,平时验证时只需将所得的 ID 与存入的 ID 相互比较,只 有具有相同 ID 并且所得 Counter 值符合要求时才执行相应指令,这样设计,不但利于大规 模生产而且便于用户的灵活使用 如果需要有 VID 的情况, 则在设计时, 需要将 VID 和滚动码而不是身份校验码作运算, 从而保证其隐秘性。
总之一句话, 正确的身份校验码/VID 和符合要求的 Counter 值是码形正 确的前提,而其隐秘性协议的设计则是滚动码产品设计的关键。

卡西欧5800p使用说明书资料.ppt
锂金属电池界面稳定化-全面剖析.docx
SG3525斩控式单相交流调压电路设计要点.doc
话剧《枕头人》剧本.docx
重视家风建设全面从严治党治家应成为领导干部必修课PPT模板.pptx
黄渤海区拖网渔具综合调查分析.docx
2024年一级造价工程师考试《建设工程技术与计量(交通运输工程)-公路篇》真题及答案.docx
【课件】Unit+3+Reading+and+Thinking公开课课件人教版(2019)必修第一册.pptx
嵌入式软件开发流程566841551.doc
生命密码PPT课件.ppt
爱与责任-师德之魂.ppt
制冷空调装置自动控制技术讲义.ppt


