红外通信原理详解:从基本概念到实际应用
红外通信原理详解:从基本概念到实际应用
红外通信是一种常见的无线通信方式,广泛应用于遥控器与各种电器设备之间的通信。本文将从红外通信的基本原理出发,介绍红外管的工作原理、载波的概念、红外通信协议以及不同设备的红外遥控器编码方式。
船舶通信语言—— 灯语
船舶灯光通信使用摩尔斯符号(Morse),发信人手工操纵闪光灯发送,收信人凭视觉接收。摩尔斯符号以点码(短)和划码(长)组成字母和数字。约定发送方法为:点码持续1单位时间;划码持续3单位时间;点码、划码之间间隔1单位时间;字符之间间隔3单位时间;单词之间间隔7单位时间。
红外管和红外光电管
红外光波长为0.76um1000um,分为近红外、中红外、远红外、极红外。红外线遥控利用近红外光传送遥控指令,波长为0.76um1.5um。由于红外管的的发光波长与红外接收器件(光敏二极管、三极管及光电池)的受光峰值波长一般为0.8um~0.94um,在近红外光波段内二者的光谱正好重合、能够很好地匹配。红外通信用一般采用940nm波长,可以获得较高的传输效率及较高的可靠性。而850nm的红外发射管辐射强度较高,人眼可以看到红光,称为“红爆”,常用于摄像头等监控场景。
图2 940红外发射管及红外光敏接收管
通信载波
载波是一个具有特定频率和幅度的正弦波信号(数字信号中为方波),本身不包含信息。在通信中,数据通过调制加载到载波上,使其携带信息。载波信号要求频率远远高于调制信号的带宽。
在模拟信号中使用载波,是为了解决天线尺寸问题,以及提高传输效率。在数字信号中使用载波,主要是由于载波具有特定的频率,那么接收端采用特定的选频电路可以更好的抵抗外界噪声和干扰,保证信息的准确性和完整性。
红外通信的载波频率为38KHZ。传统无线电、射频、蓝牙、WiFi、手机通信等都有不同的载波频率。
图3 调幅和调频——把信息信号加载到高频载波上
红外通信协议
红外IR(Infrared)遥控是一种无线、非接触控制技术,常用于遥控器与电器之间的通信。NEC协议是IR协议中的一种具体实现。在NEC协议中,逻辑0被定义为560us的高电平+560us的低电平,逻辑1被定义为560us的高电平+1680us的低电平。另外由于接收和发送需要同步,其起始标记为9ms高电平+4.5ms低电平。
图4 NEC协议逻辑电平编码格式
由于红外接收头内部的三极管电路具有信号反向功能,也就是将1变为0,0变为1,为了统一发送和接收,一般将红外发射管电路设置为低有效。
图5 红外发送00111010
需要注意的是,协议是一种约定或者说是一种标准,即我按照标准做发射电路,你按照同样标准做接收电路,肯定可以通信。如果是自己设计通信电路,可以有自己的标准。
实际上,红外通信中的逻辑0和逻辑1的低电平和高电平宽度并非严格按照NEC协议。一个重要原因是晶振片在使用过程中(老化、机械应力、电压不稳、温度等影响)其频率会产生偏移,从物理上无法获得精准时序,所以电平宽度允许在某个范围内,只要能够足够区分逻辑0和逻辑1即可。
通过对一个格力空调遥控器的通信编码测试发现——逻辑0平均为650us低电平+520us高电平,逻辑1平均为650us低电平+1650us高电平。另外,格力的红外通信还有两个连接码,一次连接码为650us低电平+20ms高电平,二次连接码为650us低电平+40ms高电平。而结束标记为650us的低电平+超过100ms的高电平。
三种红外遥控器编码
以下是三种电器的红外遥控器编码格式,不同公司的标准不一样,同一公司、不同型号间有差异,以下只是例子,实际编码格式应以具体实验为准(或者获得公司内部技术资料)。
- 爱普生投影仪遥控器采用最简单编码方式,即一个按键对应一个编码数值。电视机、机顶盒等遥控器采用这种方式。
1.1 如果短按开关键,将连续发送两次内容相同的一组编码。其中AA为起始标记助记符,C2为二次连接标记助记符,EE为结束标记助记符。C2连接了两组完全一样的开关键编码数据。
1.2 如果长按开关键,将通过C2连接一组又一组开关键编码数据。
1.3 除去起始、连接、结束,真实按键编码数据为32位、共4字节。
图6 爱普生投影仪开关键编码
- 海尔空调遥控器的起始标记连续发送两次,真实编码数据为112位、共14字节。位数很长的原因是,空调遥控器发送的不是按键编码,而是发送了空调遥控器当前所有状态(开或关、模式、温度、是否扫风、风速、灯光、除湿、节电等),并且还有一些校验位以保证通信的可靠性。
按理说,柜式空调有控制面板,可以独立操作,那么空调遥控器完全也可以只发送按键编码,不需要采用如此复杂的编码格式。这就涉及到标准的制定过程,猜测是,最开始空调没有控制面板,即使柜式空调有、挂式空调也没有,而且空调一开始也没有LED或液晶显示,那么一家公司为了遥控的便捷性以及公司内部标准的通用性,就设计了这种红外通信编码格式。而标准一旦确定,很难更改,这也是标准重要的原因。另外,标准具有很强的人为因素,比如若没有比尔盖茨,照样会有某个通用的操作系统,但不会是windows这种标准,仍然会有各种编程环境,但不会有VS Code。
图7 海尔空调遥控器编码
- 格力空调遥控器的编码格式非常复杂,C2连接的两组数据并不完全相同,至于为什么有差异,由于没有公司技术资料,实在不好猜测。而每组数据内的C1连接,将编码分为两部分,前者35位,后者32位,至于每位的含义,通过反复测试猜测出一些含义,但更多位的含义很难猜测,尤其是如何产生校验位。
图8 格力空调遥控器编码
用简单电路、数字芯片、汇编语言可以实现学习型红外遥控器,即学习某个遥控器的编码,然后发送。如果知道各家公司的编码格式,那就能做出商用的万能遥控器,比如有些智能音箱的红外遥控功能。如果要用红外线组网通信,只需加入地址码(分为源地址和目标地址),再通过令牌的方式轮流发送数据。