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