红外遥控器协议简介
目前有如下几类标准
- RC5
- NEC
- SAMSWNG
- ......
- SIRC (Sony Infrared Remote Control)
目前RK平台只支持 NEC 协议.
NEC 协议如下所示
NEC 默认协议采用32bit 帧格式来发送按键指令, 格式如下表
Address | Complement of Address | Command | Complement of Command
---|---|---|---
LSB-MSB(0-7) | LSB-MSB(8-15) | LSB-MSB(16-23) | LSB-MSB(24-31)
NEC 逻辑1和0波形如下图

逻辑0: 562us 的高电平, 跟随 526us的低电平, 周期为1.125ms(小数约掉)
逻辑1: 562us 的高电平, 跟随 1.675us的低电平, 周期为2.25ms(小数约掉)
NEC 协议接收按键时运行过程如下
- 持续9ms 的高电平, 然后4.5ms 的低电平(帧头)
- 发送设备8bits 地址, 如: 10110001
- 发送设备8bits 地址的逻辑反向值, 如: 01001110 (在RK平台, 把address和invert address两个字节作为usercode, 部分遥控器并未把invert address按照协议规范发送反码, 而是作为独立的一个byte)
- 发送指令command 8bits, 如: 10001101
- 发送指令command 8bits的逻辑反向值, 如: 01110010
- 发送截至位, 562us的高电平
红外接收头的原理
红外接接收头由 红外接收二极管/三极管/硅光电池组成, 它们将接收到的红外发射器的信号转换为电信号输出, 在通过PWM接收模块转换为数字信号.
# RK3288 红外遥控器配置方法
## 使能驱动
RK3288 针对红外遥控器的驱动在 kernel/drivers/input/remotectl/rockchip_pwm_remotec