红外遥控信号解码

红外遥控信号解码

之前就已经做过红外遥控的解码了,但是一直没有做记录,最近的项目又使用到了红外遥控,索性就把他捡起来记录一下,对于信号的解码,我一般的习惯都是先用逻辑分析仪抓取一下信号波形,然后对着波形来进行程序的编写,实现信号解码。

初识红外遥控信号

       以下是我通过逻辑分析仪抓取的红外遥控的波形:

这是一个红外按键单击的信号,前面9ms的低电平加上4.4ms的高电平我把他认为是信号的起始部分,后面的比较集中的信号才是信号的主要部分。分为地址码、地址反码、键值码、键值反码。每个码都是一个字节,所以一个红外信号一共四个字节。

       下面这个是长按的遥控信号波形

跟单击的相似之处是前面也是一个单独的4字节信号,后面每隔104ms就会出现一个2.2ms的高电平与612us的低电平,这个我把他当做是长按的一个判断。通过计算这个信号的个数,判断是否为长按。

信号内部的位是“1”还是“0”我是通过判断高点的时间长短来实现的,高电平为1.67ms左右的认为是高电平,高电平为549us的认为是电平,所以在程序解码的程序的,直接判断高电平的时间就好了,高电平在4.4ms左右,就是收到了起始信号,可以开始准备解码了,然后当高电平为1.67ms左右就是收到了“1”,当高电平为549us左右就是收到了“0”,当高电平大于100ms就是按键松开了,这是因为在长按的过程中,遥控发送相同码的时候是有一个91ms的高电平的。写到这里,突然发现也可以直接判断有没有超过100ms的高电平,如果没有那就还是一直在按着,也是一个判断长按的方法。整体的解码思路就是这样了。主要都是参考波形来的。

讲的可能不是很官方,野路子来的,欢迎大家来指正错误~~

    

首先将板子连接好;接着将红外接收头按照上述方法接好,将VOUT接到数字11口引脚 载波频率都是38khz 每一位癿时间为1.125ms戒2.25ms •逻辑 0和1的定义如下图 协议如下: •按键按下立刻松开的发射脉冲: 上面图片显示了NEC的协议典型的脉冲序列。注意:这首先发送LSB(最低位)的协议。在上面癿脉冲传输的地址为0x59命令为0x16。一个消息是由一个9ms的高电平开始,随后有一个4.5ms的低电平,(返两段电平组成引寻码)然后由地址码和命令码。地址和命令传输两次。第二次所有位都取反,可用于对所收到的消息中的确认使用。总传输时间是恒定的,因为每一点与它取反长度重复。如果你不感兴趣,你可以忽略这个可靠性取反,也可以扩大地址和命令,以每16位! 按键按下一段时间才松开的发射脉冲: 一个命令发送一次,即使在遥控器上的按键仍然按下。当按键一直按下时,第一个110ms癿脉冲与上图一样,之后每110ms重复代码传输一次。返个重复代码是由一个9ms的高电平脉冲和一个2.25ms低电平和560μs癿高电平组成。 •重复脉冲 注意:脉冲波形进入一体化接收头以后,因为一体化接收头里要迕解码信号放大和整形,故要注意:在没有红外信号时,其输出端为高电平,有信号时为低电平,故其输出信号电平正好和发射端相反。接收端脉冲大家可以通过示波器看到,结合看到的波形理解程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值