首页 > 技术文章 > IR(红外线) 接收器的 数据发送结束判断(结束码)

DoreenLiu 2021-01-21 15:59 原文

友晶科技的 《逻辑电路设计 DE2-115 实战宝典》的第7章节 有讲解 IR 接收器的原理以及 有对IR 接收数据的解析。

但是我看到代码里面提到IR 数据是否传输完成的判断是 :

parameter IDLE_HIGH_DUR      =  262143;  // data_count    262143*0.02us = 5.24ms, threshold for DATAREAD-----> IDLE

  

我对这个262143非常疑惑,我感觉应该是要测量 引导码 后面的  数据发送时间 (地址码+地址码取反+控制码+控制码取反)? 是不是因为 数据发送时间是不固定的, 因为发送0 和发送1 用的时间不一样, 所以没办法测量,所以 就 有个结束码 标志  测量这个结束码就好了?但我看书中介绍的协议里面没有提到结束码的时间。

 

 

 

 然后我百度了一下也没有找到NEC协议关于结束码的定义。于是我就好奇问了问公司的工程师:

認定 IR 為IDLE 是當IRDA 為 高 的時間要大於 5.24ms ,故用一個以50Mhz 為clock 的counter來數 ,需要數262143 次 , 5.24ms=262143 *1/50Mhz”,这里的5.24ms 相当于结束码的判断。對要進入 idle  的條件 ,只要測到 hi-pulse >1.7ms(比 0.56 x 3 大)即可。

 

 

 

然后我测试将 262143 (5.24ms) 改成 85000(1.7ms) 确实也可以正常收码。

 

推荐阅读