红外遥控信号传输采用NEC协议,按下遥控器的一个按键时,会发送一帧数据,这一帧数据由引导吗、地址码、地址反码、数据码、数据反码以及一位结束位组成。
数据结构
引导码:9ms高电平脉冲和4.5ms的低电平。
地址码与数据码,低位在前,高位在后。
最后是562.5um的脉冲表示信息传输的结束。
逻辑1:560us的高脉冲加上1.69ms的低电平组成。
逻辑0:560us的高脉冲加上560us的低电平组成。
重复码
长按时,发送完数据每隔110ms会发送一个重复码,重复码由9ms的高电平和2.25ms的低电平以及560us的高电平组成。
由于板载的红外光接收模块接受的波形和输出给FPGA的波形是相反的,因此从FPGA的角度来看,各数据结构是这样的:
☆对某信号进行采沿(很关键)
以这次学习的红外信号来说,infrared_in为原始输入信号,由于是外部信号传入,可能与系统时钟不在统一节拍,所以首先对原始信号打一拍得到同步在系统时钟下的输入信号1。
对信号1进行取反,得到 ~信号1
对信号1进行打拍,得到信号2
对信号2进行取反,得到 ~信号2
上升沿:~信号2 & 信号1
下降沿:信号2 & ~信号1