红外遥控编码常用的格式有两种:NEC 和 RC5
红外遥控编码
NEC 格式的特征:
1:使用 38 kHz 载波频率
2:引导码间隔是 9 ms + 4.5 ms
3:使用 16 位客户代码
4:使用 8 位数据代码和 8 位取反的数据代码
下面的波形是从红外接收头上得到的波形:(调制信号转变成高低电平了)
不过需要将波形反转一下才方便分析:
NEC 协议通过脉冲串之间的时间间隔来实现信号的调制(英文简写 PPM)。逻辑“0”是由
0.56ms 的 38KHZ 载波和 0.560ms 的无 载波间隔组成;逻辑“1”是由 0.56ms 的 38KHZ 载
波和 1.68ms 的无载波间隔组成;结束位是 0.56ms 的 38K 载波。
下面实例是我们公司遥控器的波形:
遥控器的识别码是 Address=0xDD20;键值是 Command=0x0E;
注 意 波 形 先 是 发 低 位 地 址 再 发 高 位 地 址 。 所 以 0000,0100,1011,1011 反 转 过 来 就 是
1101,1101,0010,000 十六进制的 DD20;
键值波形如下:
也是要将 0111,0000 反转成 0000,1110 得到十六进制的 0E;另外注意 8 位的键值代码是取反
后再发一次的,如图 0111,0000 取反后为 1000,1111。
最后一位是一个逻辑“1”。
RC5 编码相对简单一些:
下面的遥控器地址是 1A,键值是 0D 的波形
同样由于取自红外接收头的波形需要反相一下波形以便于分析:
反相后的波形:
根据编码规则:
得到一组数字:110,11010,001101
根据编码定义
第一位是起始位 S 通常是逻辑 1
第二位是场位 F 通常为逻辑 1,在 RC5 扩展模式下它将最后 6 位命令代码扩充到 7 位代码
(高位 MSB),这样可以从 64 个键值扩充到 128 个键值。
第三位是控制位 C 它在每按下了一个键后翻转,这样就可以区分一个键到底是一直按着没松
手还是松手后重复按。
如图所示是同一按键重复按两次所得波形,只有第三位是相反的逻辑,其它的位逻辑都一样。
其后是五个系统地址位:11010=1A
最后是六个命令位:001101=0D
Jim Lu 于 2009-3-5(Magnum Semiconductor)
参考:http://www.sbprojects.com/knowledge/ir/nec.htm