文章目录
1 红外线协议介绍
在光谱中波长自760nm至400um的电磁波称为红外线,它是一种不可见光。
2 红外线的通讯原理
红外光是以特定的频率脉冲形式发射,接收端收到到信号后,按照约定的协议进行解码,完成数据传输,在消费类电子产品里,脉冲频率普遍采用 30KHz 到 60KHz 这个频段,NEC协议的频率就是38KHZ。 这个以特定的频率发射其实就可以理解为点灯,不要被复杂的词汇难住了,就是控制灯的闪烁频率(亮灭),和刚学单片机完成闪光灯一样的意思,只不过是灯换了一种类型,都是灯。 接收端的原理: 接收端的芯片对这个红外光比较敏感,可以根据有没有光输出高低电平,如果发送端的闪烁频率是有规律的,接收端收到后输出的高电平和低电平也是有规律对应的,这样发送端和接收端只要约定好,那就可以做数据传输了。
红外线传输协议可以说是所有无线传输协议里成本最低,最方便的传输协议了,但是也有缺点,距离不够长,速度不够快;当然,每个传输协议应用的环境不一样,定位不一样,好坏没法比较,具体要看自己的实际场景选择合适的通信方式。
3 NEC协议介绍
NEC协议是众多红外线协议中的一种(这里说的协议就是他们数据帧格式定义不一样,数据传输原理都是一样的),我们购买的外能遥控器、淘宝买的mini遥控器、电视机、投影仪几乎都是NEC协议。 像格力空调、美的空调这些设备使用的就是其他协议格式,不是NEC协议,但是只要学会一种协议解析方式,明白了红外线传输原理,其他遥控器协议都可以解出来。
4 NEC编码格式
NEC协议采用脉冲间隔的方式编码每一位数据,用不同数据位的时间间隔来表示不同的逻辑位。与众多单总线IC的通信方式很相似。
NEC编码的载波频率为38KHz,对应的单脉冲周期约等于26.3us
逻辑"0":562.5µs的有效脉冲 + 562.5µs的空闲间隔,总时长为1.125ms。
逻辑"1":562.5µs的有效脉冲 + 1.6875ms的空闲间隔,总时长为2.25ms(为逻辑0的一倍)。
5 NEC协议命令帧格式
5.1 命令帧
命令帧由 起始位 + 地址码 + 地址码反码 + 命令码 + 命令码反码 组成。
5.2 地址码 + 命令码
起始位之后会传输4个字节共32Bit的数据位,分别是 地址码 + 地址码反码 + 命令码 + 命令码反码。字面上是4个字节,而实际只有2个字节有效,多余的2字节为冗余的反码。一方面可以用于校验是否出错。另一方面,因为总有相同数量的反码的存在,每帧的总消息时长保持恒定。
5.3 结束位
结束位为末尾的562.5µs的有效脉冲。
6 NEC协议重复码
即使一直按住遥控器上的一个键,命令帧也只会发送一次。 只要按键保持按下状态,就会每110毫秒发送一次重复码。 该重复码的组成为 9ms的AGC脉冲 + 2.25ms的空闲间隔 + 560µs的脉冲。
6.1 重复码组成
6.2 重复码发送时序
7 应用
7.1 红外遥控
遥控就是一一对应发送编码与解码,没什么可争议的。
7.1 86盒人体感应
可以用做低成本的人体感应功能,之前实际测试用过一款红外接收探头,这时的数据内容要求不是很高(正常是要求探头接收数据时的电平与常态相反),调整nec的频率可以调整感应距离。
下图:2是发送信号,-是接收信号
NEC 编码参考:
https://www.sbprojects.net/knowledge/ir/nec.php