红外通信

上一篇只是粗略地提了一下红外通信,这篇来说些注意事项与细节问题

载波

红外通信一般为 38K 载波,“载波” 简单来讲就是一段周期性的、不断震荡的波;

注:特别注意的是,对于一些非信号专业的新手来讲,虽然眼睛看到了该条件,但并没有进行思考,只当作“公理”给记住,这时在使用时往往会忽略掉。与福尔摩斯说过的话有异曲同工之处:“你只是用眼睛看,并不是在观察”,现在是:“你只是眼睛看到了,却没有在思考。”

我们可通过调制将信息加载到载波上,这样信息就会随着波的传播而发射出去了;波发出去后会受到外界环境光的干扰,这就可能会导致信息的丢失或篡改;理论上来讲:传播距离越远,信息丢失的概率越大。

38K频率

上面提到载波上的信息可能会丢失,那有没有什么预防措施呢?

这就要说到用 38K 载波的原因了:主要是为了提高抗干扰能力,尽量避免因环境光干扰导致的信息丢失或篡改;

另外的原因(来自百度):

这一频率的选择与常用的 455kHz 晶振密切相关。‌在发射端,‌通过对晶振进行整数分频,‌通常取分频系数为12,‌从而得到 38kHz 的载波频率。‌这种分频方式不仅技术上可行,‌而且经济实用,‌因为它利用了现有的成熟技术和组件,‌避免了开发高精度晶振的成本和复杂性。‌

此外,‌38kHz 的载波频率还具有其特定的优势。‌在红外通信中,‌使用 38kHz 的载波可以实现较高的通信质量和较远的通信距离,‌同时保持较低的功耗和成本。‌这种频率的选择也符合红外通信的基本需求,‌即在保证通信效果的同时,‌尽可能地降低系统成本和功耗。‌

值得注意的是:

38K 载波意味着每秒有38000个周期,单个周期的时间为1/38000S。‌这个时间长度代表了一个完整脉冲的时间,‌包括高电平和低电平的总时间。‌

但是我们红外通信需要的是高低电平均为1/38000S,因此我们定时器应配置为 76K ,这样每次进中断的时间就是1/38000S,那么产生的高、低电平就是1/38000S了。

OK,了解基本原理后就有大概的框架了:

  1. 首先要有个波形发生器,用来产生 38K 载波
  2. 制定自己的通信协议(也可以使用现有的协议,如: NEC协议)
  3. 代码实现