前言
老家地下水井抽水泵的控制闸可以使用遥控器远距离遥控,这样在浇水时,人不用跑过去推闸了,方便了很多,上次回家我妈说配套的遥控器丢了,又了买一个遥控器,卖给她的人说可以用就是要配对,怎么配对卖家也没说。但是全村人问遍了,没人知道怎么配对,于是趁我回去,问我能不能配上。我当时忙着帮忙秋收也一直没有帮她弄,回来后研究了一下遥控的相关产品。
查阅资料了解了一下遥控的类型
常见的遥控原理可以分为433MHz、lora、2.4GHz、GPRS、NB-IOT等,但是适用于我们这种农村庄家地里的只有433MHz这类的遥控,这类遥控方案比较成熟,简单,无后续费用,如果用NB-IOT还需要办个物联网卡。当然还有一种lora方案,传输距离更远,功耗更低,可以组网,但是成本会比较高一点。
无线信号的调制方式 OOK、ASK、FSK、GFSK。解调的原理有超再生、超外差等,想深入了解的请翻一下大学教程通信原理。以OOK来简单说一下OOK(On-Off Keying),通断键控。OOK的调制原理就是用来控制把一个幅度取为0,另一个幅度为非0,就是OOK。又名二进制振幅键控(2ASK),它是以单极性不归零码序列来控制正弦载波的开启与关闭。高电平长码 + 低电平短码表示逻辑1,高电平短码 + 低电平长码表示逻辑0。调制后信号通过天线发射出去。
实现无线通信就需要按上述原理进行数据的信号的调制和解调,调试是为了把数据通过无线电波发送出去,解调是为了从调制的无线电波中解析出发送的数据。所以遥控器端的芯片就是信号调制芯片,被控制端的芯片就是信号解调芯片和数据处理逻辑控制芯片。
实物分析
拆了一下我手上有的两款遥控产品。图片如下
遥控器图1
遥控器图2
接收模块图1
接收模块图2
接收模块图3
遥控产品2:
遥控器图1
遥控器图2
接收模块图1
接收模块图2
查阅资料
数据的发送过程
数据的接收过程
实物拆解和资料查询就到这了,看到这个芯片的资料,如果第一次接触遥控产品的人肯定蒙圈了,不要捉急,接下来我将带领大家深入分析,解疑答惑,感兴趣的朋友继续阅读。
归纳总结
根据第三部分我们查阅到的芯片资料,知道我手上的两款遥控器属于“滚码”类型的遥控器。所谓的滚码是数据的一种加密形式。
首先解答第一个疑惑,不知道有没有小朋友会想,一个遥控器为什么可以控制一个设备,为什么别人家的遥控器不能遥控我们家的产品,或者说遥控器丢了,怎么新配一个遥控器。基于这个问题解答如下,目前433遥控的类型有三种。
固定码:它的地址码是固定不变的,也许有人会问,如果是固定的,为什么开客厅的遥控器,却开不了房间里的灯呢?虽然地址码是固定不变的,但它是由8位不同的地址码组合而成的,我们可以通过不同的组合来进行配对,这样就不会出现上述情况了!遥控器固定码是相对滚动码说的,一般由PT2262/2272组成的系统为硬件编码、固定码遥控系统
学习码:它由百万组不同的编码组成,接收器只有通过对码学习,才能识别遥控器。它大大增加了产品的安全性。通常学习码的编码IC为1527和2240,解码为单片机。
滚动码:编码器检测到按键输入, 把系统从省电状态中唤醒, 同步记数加1 , 与序列号一起经密匙加密后形成密文数据, 并同键值等数据发送出去。由于同步计数值每次发送都不同, 即使是同一按键多次按下也不例外。同步计数自动向前滚动, 发送的码字不会再发生。因此被成为滚动码。同步计数跟编码器序号一个64位一起经过DES加密,DES密钥为厂家独有,必须保密。加密之后的密文则通过射频系统发射出去。接收端接收到密文之后,通过厂家的DES密钥进行解密,解密之后得到同步计数和编码器序号。首先检测编码器需要是否与接收器的序号相对应,如果对应,就检测同步计数是否在同步窗口内,也就是说是否大于本机的保存同步计数但是又不大得太多,如果大得太多,本机就再作一次同步。如果在同步窗口中,通知执行机构执行用户命令,比如说打开门锁或者关闭门锁之类的。
学习码的遥控器,可以说是具有内部存储器的遥控设备,需要通过设备预先烧录的固件地址到发送芯片和接收芯片中,地址相同的设备才能匹配。这类设备和固定码相比安全度相对较高,地址的位数可以很高,避免了“重码”的概率;第二,加装配件就显得很简单。因为主机本身不具有固定的地址编码;所有的探测器和遥控器用着各不相同的编码;主机学习各配件的编码即可工作;因此加装配件只须在主机上学习录入即可,遥控器即使丢失也不用担心,只须在主机上删除其编码,一般有个按键,长按按键清空已有编码,短按按键添加新的遥控。
接着就是我们的滚码遥控器了,也就是我手上拆解的这两款产品。以上两种类型的遥控器都是明文通信,当然固定码的遥控器也可以施加加密措施,所谓明文,就是我们的数据未经处理,直接加到载波上,通过天线发射出去,这时候任何人都可以通过天线接收你发送的数据,并且解析,然后就知道你发送了什么数据来控制设备,从而复制一个一模一样的遥控器,听上去是不是很可怕,看到网上有大神说,弄音频线就可以知道这类遥控器发送了什么数据。
音频线
把这个线插到电脑上,打开录音软件,当你的遥控器发送数据时,音频线就可以作为接收天线,收到你发送的电波,电脑端打开录音软件,就可以采集到你发送的载波信息,进而解析出你发送的数据。基于安全方面考虑就有了我的滚动码,所谓滚动码简单点数据就是把发送的数据加密后再发送出来,加密的方式就是滚动码加密。这类产品的优点就是安全,不能说绝对安全,反正就是非常安全。缺点就是更换遥控器不容易。
有了以上的知识,我们知道为什么现在越来越多的产品使用滚动码,逐渐的淘汰固定码 和学习码的产品了吧。接下来我们来重点来深入分析一下滚动码遥控器产品。
首先来看一下我们遥控的构成
芯片:我拆了几个都是HCS301,这个是microChip公司的产品,估计是因为拥有编码方面的专利,所以目前滚码的方案可能都是他家的。我们来深入解读一下他的产品规格书,看看他究竟是怎么做到安全的。
我们看一下上一章发的两个图,关于他的产品的描述
产品说明
看完这段完全懵逼,根本不知道他在说什么,什么滚码,什么序列号,什么KeeLoQ,怎么就安全了?你是不是跟我一样充满疑问,我们来看一下他的发送过程
发送过程
这就比较清晰了
KeeLoQ是一种加密算法,关于加密算法简单说一句,加密算法我们简单提一句,如果让你设计一套加密算法估计不太现实,我们会用就行了。所谓的加密就是输入一串明文和一串密钥,通过某种数学运算,得到一串新的数字,这段新的数字就是密文,明文就是我们要发送的没有加密的数字。而密文又可以和密钥经过数学计算得到明文。这个过程就叫加密和解密。所以这里的加密密钥+同步计数值,经过KeeLoQ算法,生成密文。“滚动”一词正是上面的同步计数值不断的更新而来,而加密密钥又是有序列号和制造商代码联合生成的,生成的信息存储在芯片的存储区。
先看一下发送芯片内部存储结构
存储器存储的内容
实际发送的数据格式
学习过程
学习过程:被控制端一般有设置按键,当长按按键,清空已经配对的遥控器,短按添加遥控器。添加遥控器到过程叫学习过程,当被控制端进入学习过程时,遥控端按下按键,发送自己的数据“32字节密文+2位状态+4个按键状态+28位序列号”,密文是由4个按键状态+识别位+同步计数值+计数溢出位生成。密文和明文都包含序列号信息,收到的明文序列号,使用和遥控相同的加密算法和制造商编号生成密钥,用密钥解密密文,然后比对解密后的数据和序列号是否匹配,如果匹配就存入钥匙的序列号。
所以:需要被控制端和钥匙首先拥有相同的加密算法和制造商编号。综上所述,如果滚码的钥匙丢了,只能找同一制造商买钥匙了,不然就两个一起换。因为他是在是太安全了。
最后在回过头看一下microChip的规格书开头说的产品的特点是不是就比较明朗了。
最后,文中有错误的地方欢迎指出,如果你觉得对你有收获,请在下方点个赞,谢谢支持。