1、红外遥控原理
红外遥控是先将控制指令进行数字编码,再通过红外发射管以调制光信号形式发出;接收端收到红外信号后,完成解调与波形解码,再按照通信协议还原指令,最终让设备执行相应操作的过程。
2、NEC协议的特征
使用38kHz的红外线载波进行通信,每个数据包由一个引导码、一个地址码和一个控制码组成。引导码用于同步接收器和发送器之间的通信,地址码用于标识接收器,而控制码则表示具体的操作指令。
3、 NEC的表现形式
NEC 码的位定义:
基础载波脉冲:
① 单个有效脉冲:560μs载波
② 脉冲后跟随低电平时间
逻辑1:
① 结构:560μs脉冲+1690μs低电平
② 总时长:2250μs = 2.25ms
逻辑0:
① 结构:560μs脉冲+560μs低电平.
② 总时长:1120μs = 1.12ms
位
脉冲时长
低电平时长
总位时长
1
560μs
1690μs
2.25ms
0
560μs
560μs
1.12ms
NEC红外遥控协议数据发送流程如下:
首先发送9ms高电平脉冲,紧随其后是4ms低电平;
随后一次传输8位地址码(低位先行),8位地址反码(用于数据校验);
再发送8位控制码(同样低位先行),最后8位控制反码。
同步码:
① 9ms 高电平
② 4.5ms 低电平
同步码作用:标记一帧数据的开始,让接收端同步时钟。
数据段(共4字节,低位先行)
按发送顺序:地址吗(8Bit ,低位先行)->地址反码(8Bit,对地址码按位取反)-> 控制码(8Bit,按键码,低位先行)-> 控制反码 (8Bit,对控制码按位取反)
遥控接收时,由于红外接收头内部有三极管反向作用,所以接收头在收到脉冲的时候为低电平,在没有脉冲的时候为高电平。我们在接收头端收到的信号为: 逻辑 1 ( 560us 低+1680us 高),逻辑 0 ( 560us 低+560us 高)。
红外接收头端收到的波形如图:


从上图可以看到,约40ms后出现的几组脉冲,是NEC协议定义的连发码。其结构为:9ms低电平+2.5ms高电平+0.56ms低电平+97.94ms高电平。当一帧完整数据发送完成后,若按键仍保持按下状态,遥控器会持续发送这种重复码。通过检测和统计连发码的次数,即可判断按键时长按还是多次短按。
