硬件层
规定
因为使用的是红外信号,日常的生活中会有许许多多的的红外信号(太阳),有很多是是与发射的频率相同或接近的,
因此,规定发送的是以38kHz闪烁的信号(后文所称的闪亮均为这种信号)为检测到的信号,
如果检测到这个频率闪烁的在规定频率范围内的红外光则认为是1(高电平),没有检测到这个频率的信号则认为是0(低电平)
发送
发送使用的就是红外LED,像这个
与控制设备连接时有两种方案
使用两个管脚
这是电路图
描述:使用两个管脚控制2个NPN三极管,做成与的逻辑,有且仅有2个三极管均导通时才能时LED发光,使用一个管脚产生38KHz的方波,另一个管脚产生协议,以此做到输出1时闪亮,0时为不亮
优点:编程简单,逻辑简单
缺点:使用多个引脚,电路较复杂
使用单个管脚
这是电路图(小功率时可以之间管脚驱动LED)
描述:通过编程实现在输出1时闪亮,0时不亮
优点:电路结构简单
缺点:编程较复杂
接收
接收部分一般使用1838一体式红外接收头
1838内部的流程如图
首先接收到指定频率附近的红外信号,并将其放大
之后检测是否出现38kHz的方波
之后再进行反相操作,注意这点
所以说如果出现闪亮情况则输出低电平,反之输出高电平(默认高电平)
协议层
分类和功能
名称 | 功能 |
---|---|
引导码 | 表示开始发送数据 |
数据码0 | 表示数据为0 |
数据码1 | 表示数据为1 |
重复码 | 表示重复上次的数据 |
结束码 | 在发送完数据帧或重复帧之后的占位符 |
注意,下面图片中给出的高电平为以38KHz的闪亮状态,为便于表示,只使用高电平代表
引导码
由9ms高电平闪亮和4.5ms低电平不亮构成,共13.5ms
表示数据帧的开始
重复码
由9ms高电平闪亮和2.25ms低电平不亮构成,共11.25ms
表示重复之前的数据
数据码0
由0.56ms高电平闪亮和0.56ms低电平不亮构成,共1.12ms
表示数据0
数据码1
由0.56ms高电平闪亮和1.96ms低电平不亮构成,共2.52ms
表示数据1
结束位
由0.63ms高电平闪亮构成
用于数据帧或重复码之后的占位
数据结构
标准NEC编码为4byte(32bit)数据构成,
分别是1byte地址+1byte地址反码+1byte数据+1byte数据反码
但目前很多厂商并不使用标准的NEC数据结构,可能有5byte数据,可能全部4byte都用于数据传输等等
1838接收的数据
1838接收的数据是反相的,即上文协议层写的高低电平对调
引导码
数据码0
数据码1
重复码
结束位