话说红外接口很常见,各种单片机开发板上都有,可惜以前没玩,好吧,那就零基础开始吧。
于是便开始了:
按照光盘中实验4所说:
建立一个signaltap ,来观察IRDA接收后的数据。
下面就来分析一下:按下了5(遥控器上),接收到的数据如下:
这个时候看看红外手册了,由于想快速上手,偷了个懒,网上下载了中文版。共享出来哈。
首先改红外接口采用的是NEC协议,我们先从发送端看起:
根据NEC协议,
发送端发出引导码,用户码(00,FF),数据码(1C,e3)
也就是说按下了5(遥控器上)这个键的话
那么在接收端:
也就是说:
引导码: 9ms低电平+4.5ms高电平
重复码: 周期110ms,9ms低电平+2.25ms高电平+0.56ms低电平+剩余全部高电平
数据1: 0.56ms低电平+1.69ms高电平 (比较宽)
数据0: 0.56ms低电平+0.56ms高电平 (比较窄)
那么来看signaltap传回的数据:
说明白些就是窄的就是0,宽的就是1,因此:
1和2组成的是引导码,3是用户码的0,4就是反码FF,5就是数据码1C,6是反码e3(注意NEC协议是先发送LSB)
然后就可以判断出来了是5(遥控器上)这个按键按下去的。
还有注意的地方:如果没有键按下去的话就是一直高电平。
一直按下去的话就是
那么FPGA设计中就只要考虑几个问题就可以了:
(1) 引导码+数据,这是第一次按下的时候的数据格式,那么我们就是要识别出引导码,然后读出后面的数据了,(NEC是发送LSB在前)
(2) 重复码,如上图110ms,9ms低电平+2.25ms高电平+0.56ms低电平+剩余全部高电平。
(3) 无键按下的时候就是高电平了。
IRDA中来的信号就是上面几种形式,那么接下来就是编写verilog了。
全面了解红外遥控(中文版).pdf
有奖活动 | |
---|---|
【有奖活动——B站互动赢积分】活动开启啦! | |
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |