基于单片机的红外遥控信号自学习及还原新方法

摘 要 本文介绍了一种利用51系列单片机实现对红外遥控信号的自学习及还原方法本方法实现电路简单、可靠性高,可学习及还原多种红外遥控规程的信号。
关键词 单片机 红外遥控信号 自学习

1概述
随着远程教育体系的不断发展和日趋完善,多媒体教学手段在各级各类学校都得到了广泛应用。近年来,我们在进行多媒体教学系统的开发和研制过程中,经常遇到多种用于教学中的红外遥控设备,如:数字投影机、DVD、VCD、录像机、电视机等,由于各种设备都自带遥控器,而且不同的设备所遵循的红外遥控规程也不尽相同,操纵这些设备得使用多种遥控器,给使用者带来了诸多不便。我们采用集中控制各设备的方式如图(1)所示解决了该问题。集中控制各设备的方法是首先对各设备的红外遥控信号进行识别并存储(自学习),然后在需要时进行还原。图(1)中由PC或集中控制器发送设备号及控制命令号至红外遥控信号自学习及还原电路,再由自学习及还原电路恢复对应的红外遥控信号,并发射出去控制指定的红外遥控设备动作。

 

 

图(1)集中控制多种红外遥控设备示意图

2红外遥控信号的自学习及还原

2.1红外遥控信号编码、发射原理
通常,红外遥控器是将遥控信号(二进制脉冲码)调制在38KHz的载波上,经缓冲放大后送至红外发光二极管,转化为红外信号发射出去的。二进制脉冲码的形式有多种,其中最为常用的是PWM码(脉冲宽度调制码)和PPM码(脉冲位置调制码)。前者以宽脉冲表示1,窄脉冲表示0,如图(2)所示。后者脉冲宽度一样,但是码位的宽度不一样,码位宽的代表1,码位窄的代表0。如图(3)所示。

 

 

 

图(2)PWM码

 

图(3)PPM码
遥控编码脉冲信号(以PPM码为例)通常由引导码、系统码、系统反码、功能码、功能反码等信号组成,如图(4)所示。引导码也叫起始码,由宽度为9ms的高电平和宽度为4.5ms的低电平组成(不同的遥控系统在高低电平的宽度上有一定区别),用来标志遥控编码脉冲信号的开始。系统码也叫识别码,它用来指示遥控系统的种类,以区别其它遥控系统,防止各遥控系统的误动作。功能码也叫指令码,它代表了相应的控制功能,接收机中的微控制器可根据功能码的数值去完成各种功能操作。系统反码与功能反码分别是系统码与功能码的反码,反码的加入是为了能在接收端校对传输过程中是否产生差错。为了提高抗干扰性能和降低电源消耗,将上述的遥控编码脉冲对频率为38KHz(周期为26.3us)的载波信号进行脉幅调制(PAM),再经缓冲放大后送到红外发光管,将遥控信号发射出去。

 

图(4) 遥控编码脉冲信号的组成

2.2红外遥控信号自学习及还原的硬件实现
根据遥控信号编码和发射过程,遥控信号的识别——即解码过程应是去除38KHz载波信号后识别出二进制脉冲码中的0和1。遥控信号识别、存储、还原的硬件电路如图(5)所示。由MCS—51系列单片机 AT89C51、一体化红外接收头、存储器、还原调制与红外发光管驱动电路组成.。
一体化红外接收头采用SIEMENS SFH 506-38,它负责红外遥控信号的解调。将调制在38kHz上的红外脉冲信号解调并反向后再输入到AT89C51的INT0(P3.2)引脚,由单片机进行高电平与低电平宽度的测量。
图中使用具有I2C总线接口的E2PROM 芯片24C32作为存储器,其容量为4KB,



图(5) 红外遥控信号自学习及还原原理框图
用来保存识别出来的遥控信号的高电平与低电平宽度数据。通常遥控信号的二进制脉冲码长为32位,每位由一个高电平与一个低电平组成,应保存的信号宽度数据为 64个,再加上引导码2个数据,共计66个数据,每个数据用一个字节来表示,一个遥控信号命令就需要66个字节来保存。考虑到不同的遥控系统有一定的区别,有些遥控信号命令长度较长,所以存储空间应适当留有余量。在实际应用中,可根据红外遥控设备的数量及每个设备的遥控命令数量等具体情况来决定 E2PROM 芯片的容量和型号。
遥控信号的还原和发射是通过P0口(如图中为P0.1)输出二进制脉冲码(高电平与低电平的维持时间为识别时保存的一组宽度数据)与38KHz调制脉冲相与,即P0口输出高电平允许38KHz调制脉冲通过,P0口输出低电平关断38KHz调制脉冲。调制后的信号经驱动后通过红外发光管,发射红外遥控信号去控制红外遥控设备。图中LED发光管用来指示红外遥控信号,同时用来指示自学习中的各状态。
P2口连结一组按钮,按钮的数量与需要集中控制的红外遥控设备数量相同,用来控制单片机进入或退出自学习状态,按钮号即为设备号。
单片机同时通过串行口连接上位机PC或集中控制器接收控制命令,上位机或集中控制器通过RS—485总线与单片机通信,从而实现了红外遥控设备的远程控制。

 

2.3 软件设计
单片机上电复位后,首先对其内部定时器、串行口进行初始化,并允许串行口中断。然后监测P2口,当进入自学习状态(P2口有一引脚输入为低电平并维持1S以上)时,采用定时器定时、软件计数的方法,测量INT0引脚上输入脉冲的高、低电平的宽度。INT0引脚平时为高电平,当接收到红外遥控信号时,由于一体化红外接收头的反向作用,INT0引脚下跳至低电平,此为引导码。将测得的高低电平的宽度保存在存储器中,并将每次测得的低电平的宽度与引导码低电平宽度比较,若相等则表示一遥控命令码识别、存储(自学习)结束。再次监测P2口该引脚,若为低电平并维持1S以上,则退出自学习状态。否则,进一步自学习下一红外遥控命令码。
串行口中断服务程序主要是根据接收到的设备号及命令号查表得到一组事先存储的高、低电平宽度数据,然后在P0口还原出红外遥控信号去控制红外遥控设备按指定的命令动作,即红外遥控信号的还原。

3结束语
我们用上述红外遥控信号的自学习及还原方法,成功地实现了新科VCD、DVD、金正DVD、松下系列录像机以及多种型号数字投影机、彩色电视机遥控信号的自学习和还原,从而在多媒体远程教学系统中实现了可红外遥控设备的远程控制。