写点什么

红外遥控接收发射原理及 ESP8266 实现

用户头像
IoT云工坊
关注
发布于: 2020 年 11 月 27 日
红外遥控接收发射原理及ESP8266实现

红外遥控是利用近红外光进行数据传输的一种控制方式。近红外光波长 0.76um~1.5um ,红外遥控收发器件波长一般为 0.8um~0.94um ,具有传输效率高,成本低,电路实现简单,抗干扰强等特点,在家用电器上被广泛使用。

红外遥控一般有发射和接收两部分组成,发射元件为红外发射管,接收一般采用一体化红外接收头,但发射载波频率与接收头固定频率需一致才能正确接收。



一、发射


1. 调制


红外遥控是以调制方式发射数据,将数据调制到固定的载波上发送,调制发送抗干扰能力更强,传送距离也更远。红外发送首先要解决的就是调制问题。


目前主流的调制方式有 PPM 和 PWM。


  • PPM:脉冲位置调制,调制脉冲宽度不变,用脉冲间隔来区分 0 和 1。如下图所示,脉冲宽度不变都是 560us,脉冲间隔改变。逻辑 1 总时间为 2.25ms,逻辑 0 中时间长度为 1.12ms。



图 1:PPM 调制

  • PWM:脉冲宽度调制,脉冲间隔不变,调制脉冲宽度改变。如下图所示,脉冲间隔 为 600us,脉冲宽度不同。逻辑 1 高电平时间为 1.2ms,逻辑 0 高电平时间为 0.6ms。



图 2:PWM 调制


调制载波频率一般在 30KHz 到 60KHz 之间,常用的载波有 33K,36K,36.6K,38K,40K,56K 等,其中 38K 使用最多。


常用占空比有 1/3、1/2,1/3 最多。


2. 红外传输协议


常用的红外传输协议有 ITT 协议、NEC 协议、Nokia NRC 协议、Sharp 协议、Philips RC-5、RC-6 RECS-80 协议、Sony SIRC 协议等,其中最常见的为 NEC 协议。


常见 NEC 协议分析:


l 载波 38KHz,逻辑 1 为 2.25ms,脉冲时间 560us;逻辑 0 为 1.12ms,脉冲时间 560us


图 3:NEC 逻辑’0’与逻辑’1’


l 协议格式

 


图 4:NEC 红外载波发送协议


(1) 首先发送 9ms 的高电平脉冲


(2) 然后发送 4.5ms 的低电平


(3) 接下来是 8bit 的地址码(低位在前)


(4) 然后是 8bit 的地址反码,用于检验地址码是否出错


(5) 接下来的是 8bit 的命令码(低位在前)


(6) 然后是 8bit 的命令反码,用于检验命令码是否出错。


l 重复码


 图 5:NEC 重复发送载波协议


如果一直按着一个键,将以 110ms 为周期发送重复码,重复码由 9ms 高电平、2.25ms 低电平及 560us 高电平组成。


图 6:NEC 重复码


3. 编码


虽然不同协议都对各自的协议格式做了不同定义,但总体而言还是有高低电平组成的一串数据。


对于红外发射,就是按照协议规定高电平时间内,在红外输出口输出固定频率载波;低电平则直接输出低。红外接收头接到载波时输出高电平,没有载波时输出低电平,完成数据解码。


图 7:NEC 解码后协议


二、接收


红外接收常采用一体化红外接收头,集红外接收、放大、滤波、比较器输出等功能,并输出 MCU 可识别的 TTL 信号的。常用的一体化红外接收头有 SCR638、HS0038、VS1838 等。


SCR638


HS0038


图 8:一体化接收头


红外接收应用电路图:


 

图 9:红外接收典型应用


三、ESP8266 红外发送与接收


ESP8266 定义了 1 个 IR 红外遥控接口,IR 红外遥控接口由软件实现,接口定义如下:


图 10:ESP8266 红外管脚定义


1. 发送


在 ESP8266 上用于发送的载波可以通过以下方式实现:


1) I2S 的 BCK


2) WS 管脚产生


3) 由 GPIO 中的 sigma-delta 功能在任意 GPIO 口产生载波。


其中 sigma-delta 产生的载波占空比约为 20%,推荐使用 MTMS 管脚(GPIO14),可产生准确的 38KHz 且占空比为 50%的标准方波。


2. 接收


红外接收功能通过 GPIO 的边沿中断实现,读取系统时间,将 2 次时间相减可以得到波形持续时间,然后通过软件逻辑实现红外协议处理。


用户头像

IoT云工坊

关注

公众号:涂鸦IoT开发平台(Tuya_IoT) 2020.10.31 加入

微信:tuya1077,回复“行业报告”,可获取2020年20多份最新物联网相关行业报告。

评论

发布
暂无评论
红外遥控接收发射原理及ESP8266实现