目标:红外遥控原理的理解
1.红外遥控简介
- 红外线是波长介于微波和可见光之间的电磁波,波长在760纳米到1毫米之间,是波形比红光长的非可见光。自然界中的一切物体,只要它的温度高于绝对零度(-273)就存在分子和原子的无规则运动,其表面就会不停的辐射红外线。当然了,虽然是都辐射红外线,但是不同的物体辐射的红外强度是不一样的,而我们正是利用了这一点把红外技术应用到我们实际开发中。
- 红外发射管很常用,在我们的遥控器上都可以看到,他类似发光二极管,但是他发射出来的是红外光,是我们肉眼所看不到的。第二课我们学过发光二极管会随着电流的增大亮度逐渐增加,同样的道理,红外发射管会随着电流的增大,红外线的强度越来越强,常见的红外发射管如图16-1所示。
- 红外接收管内部带了一个具有红外光敏感特征的PN节,属于光敏二极管,但是它只对红外光有反应。无红外光时,光敏管不导通,有红外光时,光敏管导通形成光电流,并且在一定范围内电流随着红外光的强度的增强而增大。典型的红外接收管如图16-2所示。
2.红外遥控原理
红外遥控通信系统一般由红外发射装置和红外接收设备两大部分组成。
(1)红外发射装置
红外发射装置,也就是通常我们说的红外遥控器。它是由键盘电路、红外编码电路、电源电路和红外发射电路组成。-
(1)红外接收设备
红外接收设备是由红外接收电路、红外解码、电源和应用电路组成。成品红外接收头的封装大致有两种:一种采用铁皮屏蔽;一种是塑料封装。均有三只引脚,即电源正(VDD)、电源负(GND)和数据输出(VOUT)。
如何区分三个引脚各个作用呢?接受设备有一条竖直的凸出杠,那条杠对应的脚是电源负(GND),左边是数据输出(VOUT),右边是电源正(VDD)
-
传输方式
发射端发出高电平,接受端是显示低电平。当发射端发出低电平,接收端是显示高电平。
3.红外遥控内部结构
发射部分:左侧是发射端部分,当发射控制输出高电平时,三极管Q1不导通,红外发射管L1不会发射红外信号;当发射控制输出低电平的时候,通过三极管Q1导通让L1发出红外光。
接收部分:R4是一个电位器,也就是“传说”中的滑动变阻器。我们通过调整这个滑动变阻器给LM393的2脚一个阈值电压,这个电压值大小可以根据实际情况来确定。而红外光敏二极管L2收到红外光的时候,会产生电流,并且随着红外光的从弱变强,电流会从小变大。当没有红外光或者说红外光很弱的时候,3脚的电压就会接近VCC,如果3脚比2脚的电压高的话,通过LM393比较器后,接收检测引脚输出一个高电平。当随着光强变大,电流变大,3脚的电压值等于VCC-I*R3,电压就会越来越小,当小到一定程度,比2脚的电压还小的时候,接收检测引脚就会变为低电平。
- 小总结:接收的红外强度弱那么接收端得到是高电平。接收的红外强度强那么接收到的是低电平。
有关应用:
- 这个电路用于避障的时候,发射管先发送红外信号,红外信号会随着传送距离的加大逐渐衰减,如果遇到障碍物,就会形成红外反射。当反射回来的信号比较弱时,光敏二极管L2接收的红外光较弱,比较器LM393的3脚电压高于2脚电压,接收检测引脚输出高电平,说明障碍物比较远;当反射回来的信号比较强,接收检测引脚输出低电平,说明障碍物比较近了。
- 用于小车循迹的时候,必须要有黑色和白色的轨道。当红外信号发送到黑色轨道时,黑色因为吸光能力比较强,红外信号发送出去后就会被吸收掉,反射部分很微弱。白色轨道就会把大部分红外信号返回来。通常情况下的循迹小车,需要应用多个红外模块同时检测,从多个角度判断轨道,根据判断的结果来调整小车使其按照正常循迹前行。
4.红外发射原理
- 在实际的通信领域,发出来的信号一般有较宽的频谱,而且都是在比较低的频率段分布大量的能量,所以称之为基带信号,这种信号是不适合直接在信道中传输的。
- 为便于传输、提高抗干扰能力和有效的利用带宽,通常需要将信号调制到适合信道和噪声特性的频率范围内进行传输,这就叫做信号调制。
- 在通信系统的接收端要对接收到的信号进行解调,恢复出原来的基带信号,这就叫做解调。
原始信号就是我们要发送的一个数据“0”位或者一位数据“1”位,而所谓38K载波就是频率为38K的方波信号,调制后信号就是最终我们发射出去的波形。我们使用原始信号来控制38K载波,当信号是数据“0”的时候,38K载波毫无保留的全部发送出去,当信号是数据“1”的时候,不发送任何载波信号。
-
那在原理上,我们如何从电路的角度去实现这个功能呢?
- 38K载波,我们可以用455K晶振,经过12分频得到37.91K,也可以由时基电路NE555来产生,或者使用单片机的PWM来产生。
- 当信号输出引脚输出高电平时,Q2截止,不管38K载波信号如何控制Q1,右侧的竖向支路都不会导通,红外管L1不会发送任何信息,此时接收部分接收并输出高电平。
- 当信号输出是低电平的时候,那么38K载波就会通过Q1释放出来,在L1上产生38K的载波信号,此时接收部分输出低电平。
- 这里要说明的是,大多数家电遥控器的38K的占空比是1/3,也有1/2的,但是相对少一些。
正常的通信来讲,接收端要首先对信号通过监测、放大、滤波、解调等等一系列电路处理,然后输出基带信号。但是红外通信的一体化接收头HS0038B,已经把这些电路全部集成到一起了,我们只需要把这个电路接上去,就可以直接输出我们所要的基带信号了
由于红外接收头内部放大器的增益很大,很容易引起干扰,因此在接收头供电引脚上必须加上滤波电容,官方手册给的值是4.7uF,我们这里直接用的10uF,手册里还要求在供电引脚和电源之间串联100欧的电阻,进一步降低干扰。
图中所示的电路,用来接收图16-5电路发送出来的波形,当HS0038监测到有38K的红外信号时,就会在OUT引脚输出低电平,当没有38K的时候,OUT引脚就会输出高电平。那我们把OUT引脚接到单片机的IO口上,通过编程,就可以获取红外通信发过来的数据了。
5.NEC协议
此时OUT脚的输出数据又变成了基带信号,那么我们接收到的基带信号如何判断是什么数据呢?遵循什么规则来判断呢?红外线使用NEC协议。
NEC协议的数据格式是:引导码,用户码,用户反码,键数据码,键数据反码,最后加一个停止位,停止位主要起隔离作用,一般不会进行判断。协议的数据位就是上面加粗的部分,共4个字节32位。
第一个字节是用户码,第二个字节可能也是用户码,或者是用户码的反码,具体由生产商决定,第三个字节就是当前按键的键数据码,而第四个字节是键数据码的反码,可用于对数据的纠错。
- NEC协议表示数据的方式:
- 引导码:9ms的载波(低电平) + 4.5ms的空闲(高电平) = 13.5ms
- 比特“0”:560us的载波(低电平)+ 560us的空闲(高电平) = 1.125ms
- 比特”1“:560us的载波(低电平)+ 1.69ms的空闲(高电平) = 2.25ms
对于我们的遥控器来说,不同的按键,就是键码和键码反码的区分,用户码是一样的。这样我们就可以通过单片机的程序,把当前的按键的键码给解出来。
1、接收管接P3.2(外部中断0端口)或P3.3(外部中断1端口),写程序调用外部中断,触发方式为下降沿(IT1=1),设置变量a,外部中断服务函数写a=5,主函数设置显示设备显示变量a;
实验结果:按下遥控器任意键,显示“5”,红外遥控系统正常,接收管收到红外信号并触发外部中断。
2、接上面程序,设置变量b,外部中断服务函数写b++(累加),主函数设置显示设备显示变量b的值;
实验结果:显示数据最少为34,大多显示36,如果松开慢一些显示值更高,说明红外遥控器按键按下1次,最少触发34次外部中断。
3、使用示波器观察,可以明显看到波形有引导码1位,2个8位的地址码(大多是0x00和0xff),2个8位的按键码,1个结束码。所有都是电平先0后1(接收头输出波形),除引导码和结束码外,电平为高=1的时间长短决定数据是0还是1。结果和实验2中测试的相同,完整的全码为34个数据位。