目录
一 背景说明
项目中需要使用红外进行简单控制,选用比较通用的红外NEC协议实现。
红外(Infrared,IR)遥控是一种无线、非接触控制技术,常用于遥控器、无线键盘、鼠标等设备之间的通信。IR协议的工作原理是,发送方通过红外线发送一个特定的编码,接收方通过识别该编码来执行相应的操作。
IR协议是指红外线通信协议的总称,而NEC协议是IR协议中的一种具体实现。红外遥控系统分为发射和接收两部分,发射部分的发射元件为红外发光二极管,它发出的是红外线而不是可见光;接收电路的红外接收管是一种光敏二极管。
【1】发射部分就是红外遥控器,淘宝上几块钱一个,支持NEC协议即可,也可以自己定制协议。
【2】接收部分是红外接收头,我这边选用的是亿光的 IRM-H638T/TR2 :
二 原理分析
要实现红外NEC协议的解码,先了解一下协议内容。
【1】电平形式:
NEC协议采用PPM(Pulse Position Modulation,脉冲位置调制)的形式进行编码,数据的每一位(Bit)脉冲长度为560us,由38KHz的载波脉冲 (carrier burst) 进行调制,推荐的载波占空比为 1/3至 1/4。有载波脉冲的地方,其宽度都为 560us,而载波脉冲的间隔时间是不同的。
逻辑“1”的载波脉冲+载波脉冲间隔时间为2.25ms;逻辑“0”的载波脉冲+载波脉冲间隔时间为逻辑“1”的一半,即1.125ms
【2】协议内容:
每次信息都是按照下面的格式进行传输,因此,单次信息传输的时间是固定不变的:
引导码 (9ms载波脉冲+4.5ms 空闲信号) + 地址码 + 地址反码 + 控制码 + 控制反码