红外遥控器
编码
NEC Protocol的PWM(脉冲宽带调制)和Philips
RC-5 Protocol的PPM(脉冲位置调制)。
NEC协议特征
- 8位地址和8位指令长度
- 地址和命令2次传输
- PWM脉冲宽度调制,以发射红外载波的占空比代表“0”和“1”;
- 载波频率为38Khz
- 位时间为1.125ms或2.25ms
NEC码位定义
位: 一个脉冲对应560us的连续载波+一段低电平
一个逻辑1传输需要带2.25ms(560us脉冲+1680低电平)
一个逻辑0的传输需要1.125ms(560us脉冲+560低电平)
红外接收头解码
脉冲→低电平 无脉冲→高电平
NEC遥控器指令格式
NEC指令数据格式:同步码头、地址码、地址反码、控制码、控制反码。
同步码头:9ms 低电平+4.5ms高电平
地址码、地址反码、控制码、控制反码均是8位数据格式。
反码:增加传输可靠性
正点原子红外遥控器的地址码为00000000
连发码
如果在发送完帧数据按键还没松开,则发送连发码,9ms低电平+2.5ms高电平+0.56ms低电平+97.94高电平
红外接收头
外观
只有3个管脚
原理图
DATA管脚跟STM32定时器通道管脚相连(PB9),采样输入捕获的方式进行捕获。
定时器通道
输入捕获
捕获一段电平的时间(宽度)
上升沿捕获:捕获上升沿
下降沿捕获:捕获下降沿
红外接收头解码
脉冲→低电平 无脉冲→高电平
所以,捕获到560us高电平就是逻辑0,
1690us高电平时逻辑1
4.5ms 高电平 同步码头
程序设计思路
-
开启定时器对应输入捕获功能,默认上升沿捕获。定时器计数频率1Mhz,自动装载值10000。
-
捕获到上升沿,产生捕获中断。并设置下降沿捕获
-
捕获到下降沿,读取定时器的值,计算出高电平时间。
-
根据时间判断是啥信号
沿,产生捕获中断。并设置下降沿捕获
-
捕获到下降沿,读取定时器的值,计算出高电平时间。
-
根据时间判断是啥信号