红外线遥控凭借其体积小、功耗低、成本低和抗干扰能力强等特点,已成为家电、玩具乃至工业控制领域最广泛使用的无线遥控手段。在高压、辐射或存在有毒气体的恶劣工业环境中,红外遥控也能提供安全可靠的隔离控制方案。
一个通用的红外遥控系统主要由发射和接收两大部分构成,核心是专用的编码与解码芯片。发射端负责将按键指令调制并转化为红外光信号,而接收端则完成光电转换、解调并还原出原始指令。
红外的发射与接收基本原理
其核心过程并不复杂:在发射端,经过编码和调制后的电信号驱动红外发射管(LED),将其转换为红外光脉冲发射出去;在接收端,红外接收管检测到这些光脉冲,并将其转换回微弱的电信号,经过放大器等电路处理后,最终还原出发射端的原始信号。
1. 红外遥控系统结构
红外遥控系统的关键环节在于调制、发射与接收,其典型结构如下图所示:

为了提高发射效率并降低整体功耗,红外遥控普遍采用调制方式传输数据。简单说,就是将代表“0”和“1”的数据信号与一个特定频率的载波进行逻辑“与”操作。
这个载波频率通常在30kHz到60kHz之间,其中38kHz(占空比约1/3)的应用最为广泛。这个频率并非随意选择,它通常由发射端的一颗455kHz陶瓷谐振器经过12分频得到(455kHz ÷ 12 ≈ 37.9kHz ≈ 38kHz)。载波的典型波形周期如下图所示:

目前市场上有多种专用芯片可以实现红外发射,并能产生不同协议的编码。考虑到遥控器由电池供电,这类芯片的功耗必须极低,普遍设计有休眠模式,仅在按键按下时才唤醒工作。此外,为承受可能的外力冲击(如跌落),它们通常采用陶瓷谐振器而非更精密的石英晶体,其频率微小误差在遥控应用中可以接受。
红外发光二极管(红外发射管)是最终的信号出口,其内部结构与普通LED类似,但半导体材料特殊,使得在两端施加电压时发出的是人眼不可见的红外光而非可见光。

上图展示了一种最简单的驱动电路。选择三极管时需注意其开关速度要快,同时需考虑LED的最大正向电流(通常为100mA)和反向漏电流。流过LED的电流越大,发射的红外信号强度就越大,遥控距离也越远(相关的三极管知识是理解驱动电路的基础)。
但这个简单电路有个缺点:当电池电压下降时,流过LED的电流也会减小,导致信号变弱、遥控距离缩短。

上图所示的射极输出驱动电路能有效解决上述问题。两个二极管将三极管基极电压钳位在约1.2V,从而将发射极电压稳定在0.6V左右。这使得发射极电流 IE 基本恒定,根据 IE≈IC,流过LED的电流也几乎不变。这样即使在电池电压降低时,也能保证一定的遥控距离。
2. 一体化红外接收头
红外接收部分通常被制造商集成到一个元件内,即“一体化红外接收头”。典型接收电路如下图所示:

接收头内部集成了红外监测二极管、放大器、限幅器、带通滤波器、积分电路和比较器等。工作流程如下:监测二极管接收到红外信号后,将其转换为电信号送至放大器和限幅器。限幅器确保无论发射器与接收器距离远近,脉冲幅度都稳定在一定水平。随后,交流信号进入带通滤波器(通常允许30kHz-60kHz的载波通过),再经解调、积分,最后由比较器输出高低电平,还原出发射端的信号波形。值得注意的是,接收头输出的高低电平与发射端原始信号通常是反相的,这种设计旨在提高接收灵敏度。
一体化红外接收头实物通常有三个引脚,如下图所示:

接收头种类繁多,引脚定义可能不同,但一般都包含电源(Vcc)、地(GND)和信号输出(OUT)三个引脚。务必根据发射端所用的载波频率,选用解调频率匹配的接收头。
由于内部放大器增益极高,接收头易受电源噪声干扰。因此,必须在供电引脚附近加装滤波电容(通常不小于22μF)。有些厂商还建议在电源与接收头Vcc引脚间串联一个330Ω电阻,以进一步抑制干扰。
对于发射端,除了使用成品遥控器,也可以利用单片机的PWM功能自行产生。例如,使用红外发射管L5IR4-45,通过单片机产生频率为37.91kHz、占空比1/3的PWM波,并通过定时中断控制PWM的开启与关闭,即可生成所需的发射波形。
红外编解码格式深度解析
1. 主流编码格式
现有的红外遥控编码主要分为两种调制方式:PWM(脉冲宽度调制)和PPM(脉冲位置调制)。
由于不同厂家、不同设备(尤其是功能复杂的空调)可能采用完全不同的编码格式和帧长,因此市面上宣称能“学习64位或128位”的万能遥控器,其兼容性并不可靠。
2. 常见红外遥控编码实例分析
常见的消费电子遥控编码格式主要有 NEC 和 RC5。
NEC 格式特征:
- 使用38 kHz载波频率。
- 引导码为9 ms高电平 + 4.5 ms低电平。
- 使用16位客户地址码。
- 使用8位数据码,并跟随其8位反码用于校验。

为便于分析,通常需要将接收头输出的信号进行反相(即高低电平翻转):

NEC协议采用PWM方式。其位定义如下:
- 逻辑“0”:0.56ms的38kHz载波 + 0.56ms的无载波。
- 逻辑“1”:0.56ms的38kHz载波 + 1.68ms的无载波。
- 结束位:一个0.56ms的载波脉冲。

以下是一个实际捕获的NEC遥控器波形示例:
遥控器的地址码(Address)为0xDD20,某个按键的命令码(Command)为0x0E。

注意:NEC协议先发送地址码的低位(LSB),再发送高位(MSB)。因此,波形中的二进制序列 0000,0100,1011,1011 需要按字节为单位反转(不是整体反转),得到 1101,1101,0010,0000,即十六进制的 DD20。
命令码部分的波形如下:

同样,命令码 0111,0000 按字节反转后得到 0000,1110,即十六进制的 0x0E。协议规定,8位命令码后会自动发送其反码(1000,1111)作为校验。最后一位是一个逻辑“1”(0.56ms载波+1.68ms空隙)。
RC5 编码 相对简洁。同样,分析前需对接收头输出的波形进行反相:


根据RC5的编码规则(每位中间必有一次跳变):

从反相后的波形可以解析出一组数字:1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1。参照RC5的帧结构定义:

- 第1位(S):起始位,通常为逻辑1。
- 第2位(F):场位,通常为逻辑1。在RC5扩展模式下,此位用于将命令码从6位扩展至7位(作为最高位MSB),从而使键值从64个扩充到128个。
- 第3位(C):控制位。这是RC5协议的一个巧妙设计:每次按下按键并释放后,此位会发生翻转(0变1或1变0)。这使得接收端能够区分一个键是被“持续按住”还是“松开后再次按下”。
- 后续5位:系统地址位。本例中
1 1 0 1 0 = 二进制 11010,即十六进制 0x1A。
- 最后6位:命令位。本例中
0 0 1 1 0 1 = 二进制 001101,即十六进制 0x0D。
下图展示了连续按下同一按键两次的波形,可以看到只有控制位(C)的逻辑状态相反,其他位完全相同,这印证了控制位的防连按机制。
