本帖最后由 lehaha1111_899263498 于 2023-10-13 15:27 编辑

前言

老家地下水井抽水泵的控制闸可以使用遥控器远距离遥控,这样在浇水时,人不用跑过去推闸了,方便了很多,上次回家我妈说配套的遥控器丢了,又了买一个遥控器,卖给她的人说可以用就是要配对,怎么配对卖家也没说。但是全村人问遍了,没人知道怎么配对,于是趁我回去,问我能不能配上。我当时忙着帮忙秋收也一直没有帮她弄,回来后研究了一下遥控的相关产品。

查阅资料了解了一下遥控的类型

常见的遥控原理可以分为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密钥进行解密,解密之后得到同步计数和编码器序号。首先检测编码器需要是否与接收器的序号相对应,如果对应,就检测同步计数是否在同步窗口内,也就是说是否大于本机的保存同步计数但是又不大得太多,如果大得太多,本机就再作一次同步。如果在同步窗口中,通知执行机构执行用户命令,比如说打开门锁或者关闭门锁之类的。



        固定码的遥控器,是通过硬件配置遥控器和被控制端的地址的,芯片上有地址脚,根据配置脚的上拉、下拉、悬空来决定一个遥控的地址和被控制端的地址,地址相同的设备才能匹配。这类设备的缺点有:第一,安全度很不高,因为地址总量有限,很容易重码。这就意味着容易出现不安全的操作,所谓不安全的操作就是地址相同的设备就可以控制,别人的遥控器可以控制你家的设备的概率可能会很高。第二,如果用户想增加遥控器,那将会是件相当非常麻烦的事。因为主控制器只有一个固定的地址编码,所有探测器和遥控器须调成跟主机一样的地址编码才能使用。因此加装配件就首先要知道主机的地址编码,并且还须要具备一定的电子技术基础,手动通过跳短路帽或焊接,这样它们才能相互通讯正常工作。第三,假如遥控器丢失,那将是件更可怕的事情,因为主机不能删除其编码,捡到遥控者可以随意控制本主机;如果让主机换个新的地址编码就更麻烦,这就要让系统中所有的配件都要更换地址以便于主机的地址编码一致。

学习码的遥控器,可以说是具有内部存储器的遥控设备,需要通过设备预先烧录的固件地址到发送芯片和接收芯片中,地址相同的设备才能匹配。这类设备和固定码相比安全度相对较高,地址的位数可以很高,避免了“重码”的概率;第二,加装配件就显得很简单。因为主机本身不具有固定的地址编码;所有的探测器和遥控器用着各不相同的编码;主机学习各配件的编码即可工作;因此加装配件只须在主机上学习录入即可,遥控器即使丢失也不用担心,只须在主机上删除其编码,一般有个按键,长按按键清空已有编码,短按按键添加新的遥控。

接着就是我们的滚码遥控器了,也就是我手上拆解的这两款产品。以上两种类型的遥控器都是明文通信,当然固定码的遥控器也可以施加加密措施,所谓明文,就是我们的数据未经处理,直接加到载波上,通过天线发射出去,这时候任何人都可以通过天线接收你发送的数据,并且解析,然后就知道你发送了什么数据来控制设备,从而复制一个一模一样的遥控器,听上去是不是很可怕,看到网上有大神说,弄音频线就可以知道这类遥控器发送了什么数据。

音频线

把这个线插到电脑上,打开录音软件,当你的遥控器发送数据时,音频线就可以作为接收天线,收到你发送的电波,电脑端打开录音软件,就可以采集到你发送的载波信息,进而解析出你发送的数据。基于安全方面考虑就有了我的滚动码,所谓滚动码简单点数据就是把发送的数据加密后再发送出来,加密的方式就是滚动码加密。这类产品的优点就是安全,不能说绝对安全,反正就是非常安全。缺点就是更换遥控器不容易。

有了以上的知识,我们知道为什么现在越来越多的产品使用滚动码,逐渐的淘汰固定码    和学习码的产品了吧。接下来我们来重点来深入分析一下滚动码遥控器产品。

image.png

首先来看一下我们遥控的构成

芯片:我拆了几个都是HCS301,这个是microChip公司的产品,估计是因为拥有编码方面的专利,所以目前滚码的方案可能都是他家的。我们来深入解读一下他的产品规格书,看看他究竟是怎么做到安全的。

我们看一下上一章发的两个图,关于他的产品的描述

产品说明

看完这段完全懵逼,根本不知道他在说什么,什么滚码,什么序列号,什么KeeLoQ,怎么就安全了?你是不是跟我一样充满疑问,我们来看一下他的发送过程

发送过程

这就比较清晰了

KeeLoQ是一种加密算法,关于加密算法简单说一句,加密算法我们简单提一句,如果让你设计一套加密算法估计不太现实,我们会用就行了。所谓的加密就是输入一串明文和一串密钥,通过某种数学运算,得到一串新的数字,这段新的数字就是密文,明文就是我们要发送的没有加密的数字。而密文又可以和密钥经过数学计算得到明文。这个过程就叫加密和解密。所以这里的加密密钥+同步计数值,经过KeeLoQ算法,生成密文。“滚动”一词正是上面的同步计数值不断的更新而来,而加密密钥又是有序列号和制造商代码联合生成的,生成的信息存储在芯片的存储区。

先看一下发送芯片内部存储结构

存储器存储的内容

实际发送的数据格式

学习过程

学习过程:被控制端一般有设置按键,当长按按键,清空已经配对的遥控器,短按添加遥控器。添加遥控器到过程叫学习过程,当被控制端进入学习过程时,遥控端按下按键,发送自己的数据“32字节密文+2位状态+4个按键状态+28位序列号”,密文是由4个按键状态+识别位+同步计数值+计数溢出位生成。密文和明文都包含序列号信息,收到的明文序列号,使用和遥控相同的加密算法和制造商编号生成密钥,用密钥解密密文,然后比对解密后的数据和序列号是否匹配,如果匹配就存入钥匙的序列号。

所以:需要被控制端和钥匙首先拥有相同的加密算法和制造商编号。综上所述,如果滚码的钥匙丢了,只能找同一制造商买钥匙了,不然就两个一起换。因为他是在是太安全了。

最后在回过头看一下microChip的规格书开头说的产品的特点是不是就比较明朗了。

最后,文中有错误的地方欢迎指出,如果你觉得对你有收获,请在下方点个赞,谢谢支持。