几种常用红外遥控器协议 
一、  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 重复发送一次。 
实测波形 
 
 
 
 
 
四、其他 
1、 ITT 
从上面波形可以读出该段数据的值为 1001000 10000   cmd :0001001 addr: 00001. 
2、 JVC 
3、 Nokia NRC17 
4、 RCA 
5、 Sharp 
 
 
 
 
 
 
 
6、 X-Sat