EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 Zedd 于 2019-4-26 15:37 编辑 : b1 \$ j5 }7 U
( M0 u& T; J1 L7 |转——ZRtech Altera CycloneIV FPGA开发板--红外接口原理 4 R6 d0 |0 U# ^- Y
; j7 x7 l! V4 m话说红外接口很常见,各种 单片机开发板上都有,可惜以前没玩,好吧,那就零基础开始吧。 于是便开始了: 按照光盘中实验4所说: 建立一个signaltap ,来观察IRDA接收后的数据。 下面就来分析一下:按下了5(遥控器上),接收到的数据如下: " I1 X& A, U p% f9 @
" r0 _ ]+ r6 B0 I4 x3 G这个时候看看红外手册了,由于想快速上手,偷了个懒,网上下载了中文版。共享出来哈。 首先改红外接口采用的是NEC协议,我们先从发送端看起:
# ?/ U! W! `2 M" a4 P4 n2 O根据NEC协议, 发送端发出引导码,用户码(00,FF),数据码(1C,e3) 也就是说按下了5(遥控器上)这个键的话 那么在接收端: ; Z8 }, j% K+ p0 a9 k) d1 E
# o" v- F( t) T
也就是说: 引导码: 9ms低电平+4.5ms高电平 重复码: 周期110ms,9ms低电平+2.25ms高电平+0.56ms低电平+剩余全部高电平 数据1: 0.56ms低电平+1.69ms高电平 (比较宽) 数据0: 0.56ms低电平+0.56ms高电平 (比较窄) 那么来看signaltap传回的数据:
& Y' u, _5 ~) ~6 z& a' I' y4 w( O说明白些就是窄的就是0,宽的就是1,因此: 1和2组成的是引导码,3是用户码的0,4就是反码FF,5就是数据码1C,6是反码e3(注意NEC协议是先发送LSB) 然后就可以判断出来了是5(遥控器上)这个按键按下去的。
# k1 E6 b" `) c% L9 i还有注意的地方:如果没有键按下去的话就是一直高电平。 一直按下去的话就是
" P/ g2 r7 w2 i; c8 N: D那么FPGA设计中就只要考虑几个问题就可以了: (1) 引导码+数据,这是第一次按下的时候的数据格式,那么我们就是要识别出引导码,然后读出后面的数据了,(NEC是发送LSB在前) (2) 重复码,如上图110ms,9ms低电平+2.25ms高电平+0.56ms低电平+剩余全部高电平。 (3) 无键按下的时候就是高电平了。 IRDA中来的信号就是上面几种形式,那么接下来就是编写verilog了。
, o1 X2 t/ `- `% {! F |