一、NEC协议说明
NEC协议特点:8位地址和8位命令为提高可靠性,地址和命令都传输2次,脉冲间隔调制38kHz载波频率
(1)NEC的0和1的脉冲定义
在发送端:
①每一位时间为1.12mS(560us+560个低电平)或2.25ms(560us+16 80us),调制采用脉冲间隔时间长短调制每一位。
②每一个脉冲都是由560uS长度的38kHz载波脉冲构成的,占空比为1 /4或1/3(约21个周期)。
逻辑1:2.25mS逻辑0:1.12mS
而在接收端:没有脉冲的时候为高电平,接收到脉冲的时候为低电平,故逻辑1为560us低+1680us高,逻辑0变为560us低+560us高。(因为560us是载波脉冲,故为低了,剩余的没有脉冲,故为高了,从而根据接收到的高电平的脉宽可以区分0与1);由这里我们可以得出在0与1之间,1高电平持续时间为1.68ms,0吃血的时间为0.56ms.
(2)NEC协议
图片在附件中
上图是NEC协议的一个典型脉冲发送图。此协议LSB最低位先传送,所以接收的时候最先接收的是低位。
此图传送的地址是$59、命令是$16.
协议说明:
①一个信息发送是由9mS的AGC自动增益控制脉冲开头,在早期的IR红外接收器中用来设置增益。接着是4.5mS空闲,然后是地址、命令。
②地址和命令都传送2次,第二次的地址和命令是反码,可以用来校验接收到的信息。
总的传输时间是固定的,因为每一位都有反码传送。
③一个命令只发送一次,即使遥控器上的按键一直按着。但是会每1 10mS发送一次代码,此代码是重复码(在④中解释),直到遥控器按键释放。
④重复码比较简单:一个9mS的AGC脉冲、2.25mS间隔、560uS 脉冲。
由以上可知:在接收端高电平持续最长的时间为4.5ms,表示为引导码。高电平时间持续为2.25ms为重复码。由此我们在一个5ms的时间内的脉冲的高电平持续时间,从而判断是引导码、重复码、还是1和0。
高/低电平时间4.5/9ms 2.25/9ms 1.68/0.56m
s
0.56/0.56m
s
码类型引导码重复码10
在5ms只要是上面的任意码,都会出现高低电平的变化的,如果超过5ms都没有出现变化,则这个码就是无效码。四个方框就构成了编程的基础。
在看上面的电平,在接收端都是先接收到低电平,再接收到高电平,所以一旦接收到低电平,就要进入中断,等待高电平的到来。