几种常用红外遥控器协议
一、NEC 协议
特征
8位地址和8位命令长度
为提高可靠性每次传输两遍地址(用户码)和命令(按键值)
通过脉冲串之间的时间间隔来实现信号的调制
38Khz载波
每位的周期为1.12ms或者2.25ms
调制方式
Note:对于测试红外接收头的信号来说,有脉冲信号的地方就是高电平。即逻辑“1”为0.56ms高电平+1.69ms低电平,逻辑“0”为0.56ms高电平+0.56ms低电平。
协议
上图为典型的NEC协议传输格式,起始位(引导码)为9ms高+4.5ms低组成,有效数据为地址+地址反码+命令+命令反码。反码的作用是用来校准前面的地址和命令,如果对可靠性不感兴趣,也可以去掉取反的数据,或者将地址和命令扩展到16位。
上图传输的地址数据为10011010,需要注意的是先发低位地址再发高位地址,因此该波形的地址为01011001=0X59,同理,命令为00010110=0X16。
长按键时,如下图所示,每隔110ms重复发送一次,但是命令只发送一次,重复发送的是9ms高电平+2.25ms低电平+0.56ms高电平+低电平。
扩展协议
扩展协议只是将地址改为16位,其他不变。
实测波形
下面的波形是从红外接收头上得到的波形:(调制脉冲信号转变成高低电平了)
由于红外接收头在接收信号时(或者是发送的时候)将波形反向了,因此在读数据时可以将示波器的反向功能打开,就能读到有效数据了。
下面实例是已知NEC类型遥控器所截获的波形:
遥控器的识别码是Address=0xDD20;其中一个键值是Command=0x0E
最后一位是一个逻辑“1”。
二、Philips RC5协议
特征
5位地址和6位命令长度(扩展协议用7位)
双向编码或者叫曼彻斯特编码(即电平的变化来表示逻辑0和1)36Khz载波
每位的周期为1.778ms(64 cycles of 36 kHz)
调制方式
协议
一段数据包含14位,周期长度为25ms。
前两位是起始位S 通常都是逻辑1。
在RC5扩展模式下第二位S2将6位命令代码扩充到7位代码(作为高位MSB),这样可以从64个键值扩充到128个键值。
第三位是控制位C 它在每按下了一个键后翻转,这样就可以区分一个键到底是一直按着没松手还是松手后重复按。
长按键时,数据每隔114ms重复发送一次,第三位不发生翻转,即重复发送的信号是完全一致的。
实测波形
连续按同一个键两次时,只有第三位发生翻转,其他位不变
从上面波形可以读出该段数据的值为101 01010 010111,由于该协议为RC5扩展协议,即第二位作为命令的第七位,因此地址为01010=0X0A,命令为0010111=0X17。(实际遥控器厂商给出的命令为57,可能是将第二位反相后作为命令的第七位)。
三、Sony SIRC协议
特征
有12,15,20位三种模式(下面介绍的12位模式)
5位地址和7位命令长度
脉冲宽度编码
40Khz载波
每位的周期为1.2ms或1.8ms
调制方式
协议
起始位为2.4ms高电平+0.6ms低电平;
长按键时,数据每隔45ms重复发送一次。
实测波形
从上面波形可以读出该段数据的值为1001000 10000 cmd:0001001 addr: 00001.
四、其他
1、ITT
2、JVC
3、Nokia NRC17
4、RCA
5、Sharp
6、X-Sat