Infrared
最后更新于
最后更新于
红外光对人类是不可见的。红外波长范围为0.7到1000微米。家用遥控器使用红外信号进行数据传输,工作波长范围为0.75到1.4微米。遥控器中的微控制器会以特定频率使红外LED闪烁,将数字信号转换为红外信号。
为了接收红外信号,使用光电接收器。它将红外光转换为电压脉冲,这些脉冲已经是数字信号。通常,接收器内部有一个暗光滤波器,只允许所需波长通过,并消除噪音。
红外协议在以下三个因素上有所不同:
位编码
数据结构
载波频率 — 通常在36到38千赫范围内
1. 脉冲距离编码
通过调制脉冲之间的间隔持续时间来对位进行编码。脉冲本身的宽度是恒定的。
2. 脉冲宽度编码
通过调制脉冲宽度来对位进行编码。脉冲爆发后的空间宽度是恒定的。
3. 相位编码
也称为曼彻斯特编码。逻辑值由脉冲爆发和空间之间的极性转换来定义。“空间到脉冲爆发”表示逻辑“0”,“脉冲爆发到空间”表示逻辑“1”。
4. 前述方式的组合和其他特殊方式
有些红外协议试图成为多种设备的通用协议。最著名的是RC5和NEC。不幸的是,最著名的并不意味着最常见。在我的环境中,我只遇到了两个NEC遥控器,没有遇到RC5遥控器。
制造商喜欢在同一范围内的设备(例如电视盒)中使用自己独特的红外协议。因此,来自不同公司甚至来自同一公司不同型号的遥控器,无法与同类型的其他设备配合使用。
查看遥控器红外信号外观最可靠的方法是使用示波器。它不会解调或反转接收到的信号,只是“原样”显示。这对于测试和调试很有用。我将以NEC红外协议为例展示预期信号。
通常,在编码数据包的开头会有一个前导码。这使接收器能够确定增益和背景水平。也有一些没有前导码的协议,例如Sharp。
然后传输数据。结构、前导码和位编码方法由具体协议确定。
NEC红外协议包含一个简短的命令和一个重复码,在按下按钮时发送。命令和重复码在开头都有相同的前导码。
NEC 命令除了前导码外,还包括地址字节和命令号字节,设备通过这些字节了解需要执行什么操作。地址和命令号字节是具有相反值的重复值,以检查传输的完整性。命令末尾还有一个额外的停止位。
重复码在前导码后有一个“1”,这是一个停止位。
对于逻辑“0”和“1”,NEC使用脉冲距离编码:首先传输脉冲爆发,然后是一个暂停,其长度设置位的值。
与其他遥控器不同,空调不仅传输按下按钮的代码。它们还在按下按钮时传输所有信息,以确保空调机器和遥控器同步。 这将避免一个设定为20ºC的机器被一个遥控器增加到21ºC,然后当另一个遥控器,仍将温度设定为20ºC,用于进一步增加温度时,它会“增加”到21ºC(而不是以为在21ºC时增加到22ºC)。
您可以使用Flipper Zero对红外线进行攻击:
FZ - Infrared