1、红外遥控基础:红外通信原理、载波与调制、NEC协议详解、常见红外编码格式

各位同学,欢迎来到红外遥控的第一课。

说实话,红外遥控这东西,看起来简单,但坑不少。我最早做智能家居项目时,以为买个红外发射管就能搞定一切,结果被各种协议折腾得够呛。今天咱们就把基础打扎实。

1.1 红外通信原理

红外通信,说白了就是用光来传数据。但不是可见光,是红外光——波长大概在 940nm 左右,人眼看不见。

它的工作方式很简单:

  • 发射端:红外 LED 发光,代表“1”或“0”
  • 接收端:光电二极管或红外接收头,检测到光就输出低电平,没光就输出高电平
  • 传输介质:空气,直线传播,不能穿墙

关键点:红外遥控是单向通信。遥控器只管发,家电只管收。没有握手,没有应答。

嗯,这里要注意:红外接收头内部其实集成了放大、滤波、解调电路。你买到的 VS1838B、HS0038B 这类接收头,输出已经是解调后的数字信号了。我刚开始不懂,还自己搭了个放大电路,白费功夫。

1.2 载波与调制

为什么要有载波?

你想想看,如果直接让红外 LED 亮灭来传数据,环境光(太阳光、白炽灯)里也有红外成分,接收端根本分不清哪个是信号,哪个是干扰。

所以,我们需要一个“载波”。

载波,就是一个固定频率的方波。常见的是 38kHz。为什么是 38kHz?因为红外接收头的带通滤波器中心频率就是 38kHz,对其它频率的干扰有抑制作用。

调制的过程:

  1. 把要发送的数据(0 和 1)变成脉冲宽度信号
  2. 用这个信号去控制 38kHz 载波的通断
  3. 发射端发出的是“一段一段的 38kHz 红外光”

接收端收到 38kHz 信号时,输出低电平;没收到时,输出高电平。这样就把调制信号还原成了数字信号。

我的经验:载波频率不是绝对的。有些遥控器用 36kHz、40kHz,甚至 56kHz。但 38kHz 占了 90% 以上的市场。我做项目时一般默认 38kHz,除非客户指定特殊遥控器。

1.3 NEC 协议详解

NEC 协议,是红外遥控里最常用的协议。日本电气(NEC)最早用在自家家电上,后来几乎成了行业标准。

它的数据格式是这样的:

引导码 + 地址码 + 地址反码 + 命令码 + 命令反码

总共 32 位数据。但实际发送时,前面还有一个 9ms 的引导脉冲和 4.5ms 的间隔。

具体时序

信号 高电平时间 低电平时间 含义
引导码 9ms 4.5ms 通知接收端:我要发数据了
逻辑 0 560μs 560μs 总时长 1.12ms
逻辑 1 560μs 1.69ms 总时长 2.25ms
重复码 9ms 2.25ms 长按按键时发送

我当年第一次用逻辑分析仪抓 NEC 信号时,看到 9ms 的引导码吓了一跳——这么长?后来才明白,这是为了让接收端有足够时间调整增益。

避坑指南:我曾经在项目中直接用 delay() 函数模拟 NEC 时序,结果发现不同 ESP32 的时钟精度有差异,导致遥控距离变短。后来改用硬件定时器,问题解决。记住:红外时序对微秒级精度有要求,别偷懒用软件延时。

NEC 协议还有一个变种:NEC 扩展模式。它把 8 位地址码扩展成了 16 位,不再发送地址反码。这样能支持更多设备,但兼容性差一些。

1.4 常见红外编码格式

除了 NEC,市面上还有好几种编码格式。我整理了一个表格,方便你对比:

协议名称 载波频率 数据位长 特点 常见应用
NEC 38kHz 32 位 有引导码、反码校验 电视、空调、机顶盒
RC-5 36kHz 14 位 曼彻斯特编码,双向通信 飞利浦电视
RC-6 36kHz 20 位 RC-5 的升级版 飞利浦高端设备
Sony SIRC 40kHz 12/15/20 位 脉冲宽度编码 索尼电视、音响
Sharp 38kHz 15 位 类似 NEC,但无引导码 夏普家电

你可能会问:这么多协议,我该学哪个?

我的建议是:先把 NEC 吃透。因为市面上 70% 以上的红外遥控器都是 NEC 协议。学会了 NEC,其他协议无非是时序参数不同,原理大同小异。

实用技巧:如果你不确定手里的遥控器是什么协议,可以用逻辑分析仪抓一下波形。看引导码长度:9ms 是 NEC,没有引导码可能是 Sharp,曼彻斯特编码是 RC-5。我一般先按 NEC 去解析,不对再换。

好了,这一章的内容就到这里。红外遥控的基础知识,说白了就是:载波 + 调制 + 协议。下一章我们会用 ESP32 实际接收和解析红外信号,到时候你会更深刻地理解这些概念。