一类基于软件载波的学习型遥控器的设计与实现
扫描二维码
随时随地手机看文章
摘要:提出了一类学习型遥控器的设计与实现,并对其工作原理、软硬件进行简单的介绍,详细概述软件中红外遥控编码学习的实现过程。该红外遥控器采用测量脉冲宽度的原理,复制其红外脉冲信号进行自学习,以软件形式实现38 kHz载波,最后成功完成了对其他遥控器的学习。该装置可以代替各种不同的遥控器控制家用电器。
关键词:红外遥控器;自学习;软件载波;红外脉冲信号
0 引 言
红外线遥控是目前使用最广泛的一种通信和遥控方式,由于其具有结构简单、体积小、功耗低、功能强、成本低等特点,因而广泛应用于彩电、空调机、CD/VCD、录像机家用电器设备及其工业控制中。随着现在人们生活中家电日益增加的需要,使用红外遥控器也越来越频繁。因其各种红外遥控器编码格式不同,使得各种红外遥控器不能兼容。经常需要更换遥控器,这也给人们生活带来了不便。
目前国内学习型遥控器大多采用复制遥控器红外波形达到学习目的,其方法简单,实现起来较方便。但其采用专用遥控集成的芯片,导致设计复杂,成本高,并且遥控器的红外信号形成都是采用红外线遥控发射芯片产生,其集成度高,但价格昂贵。
在此介绍一种基于以AT89S52为核心的学习型红外遥控器,通过测量红外一体化接收头输出信号,并原样地记录其输出脉冲宽度,然后保存在E2PROM,最后利用单片定时器中断产生38 kHz载波信号,以软件代替了硬件,节约了资源。该学习型红外遥控器能成功地学习各种红外遥控设备的编码,并通过38 kHz载波发送学习到的记忆信号。实现了对各种各样红外遥控的学习,从而变成了真正的自学习遥控器。
l 学习型红外遥控器系统
1.1 学习型红外遥控器的原理
从家用万能学习型红外遥控一般原理出发,其可以分为2类:固定码式学习遥控器和波形拷贝式学习遥控器。前者,主要通过收集各种不同种类的遥控器信号,然后分而治之。这种学习型遥控器对硬件要求相对简单,控制器的工作频率不高,存储容量大,其缺点是对未知遥控器无效。后者,主要是把原始遥控器所发出的信号进行完全拷贝,而不管遥控器是什么格式,进行适当的压缩后,存储在ROM存储器中,当发射时,只需将储存器中读出的遥控编码,还原成原始信号,便完成了学习功能。此学习型遥控器对MCU的主频要求高,RAM要求大,其优点是对任何一种红外遥控器可以进行学习。下面主要以第二种方法进行设计。
1.2 学习型红外遥控器基本硬件组成
学习型红外遥控器由单片机、红外发射电路、红外一体化接收头、E2PROM存储电路,矩阵键盘及LED指示灯构成,如图1所示。单片机AT89S52构成红外遥控的处理器,其数据存储器RAM(258 B)用来存储学习过程中编码信号的脉冲宽度;红外发射电路:用遥控脉冲信号调制38 kHz方波,经过三极管放大后,驱动红外发光二极管,其中38 kHz载波由AT89S52定时器TO产生。红外一体化接收头:红外接收头输出的信号经过检波、整形、放大、解调38 kHz载波信号,其输出信号为TTL高低电平。外接E2PROM存储器:存放学习到的高低电平信号的脉宽值。
1.3 系统软件设计
学习型遥控器的设计性能及实现与其软件设计编写具有密切的关系,特别是码宽计数的采集周期及计数器采用的位数都关系到能否精确采集到遥控编码信号。编码宽度计数的采样周期在编程中须经过多次实验测试才能决定。该设计读码采样周期大约为12μs。读遥控编码的计数器采用16位计数器,采样时间在0~786.432 ms之间。其值保存在设定的数据存储器中,然后写入到外部E2PROM存储器中,发射过程再从外部的E2PROM存储器读出,通过38 kHz载波发送编码信号。
2 红外遥控编码学习与软件载波的发射
2.1 红外遥控信号编码结构分析
红外遥控器发射的遥控编码脉冲由起始码、系统码、功能码、功能码的反码组成,如图2所示。起始码是1个遥控码的起始部分,由1个高电平和1个低电平组成,作为接收数据的准备脉冲。这些编码是经38 kHz的载波脉冲调制后发射出去。
通过分析大量不同类型的红外遥控码波形,遥控码的数据帧间歇宽度均为10 ms以上,起始码的高电平均为5 ms以上,通常为9 ms左右。编码位在10μs~5 ms之间,在设计中,只考虑遥控器发射信号的高低电平宽度,不考虑其编码方式,以简化设计。
2.2 红外遥控信号编码学习软件设计
一般红外遥控器的的红外信号都是通过38~40kHz(周期大约为26.3μs)进行载波调制而成的,经过载波后信号的脉冲宽度与单片机的指令周期时间(12 MHz晶振的指令周期为1μs)数量级差不多。如果直接记录载波信号的脉冲宽度,这样误差很大,必须对载波信号进行解调后,方可记录此时遥控编码信号的脉冲宽度。[!--empirenews.page--]
在设计中采用计数器对信号高低电平计时的方法来采集数据并保存。当系统识别到起始码的低电平时,系统启动设计的采集信号对低电平进行采集,同时计数器开始计数,当起始码的低电平结束时,并保存计数器此时的值,记录下起始码的低电平信号脉冲宽度值。然后依次保存采集到的编码信号脉冲宽度值,如果采集到编码信号位数大于设定值M(程序中设定值),就认为编码采集已经结束,学习子程序结束,如图3所示:
2.3 红外遥控信号的发射
由软件实现遥控信号的载波合成,用定时中断0产生38 kHz的载波信号,用学习到的遥控编码信号的低电平去控制载波的输出,此时定时器O定时长度由相应的遥控信号低电平宽度计数值确定,即如果需发射的遥控信号为高电平时,关定时中断O;如果为低电平,则开定时中断0。输出38 kHz载波信号到红外发射控制脚(P3.7),从而实现遥控信号的脉宽调制发射。不考虑红外信号的编码方式,只采集其高低电平宽度的方法,如图4所示。发射时并不需要用到38 kHz载波电路,而是采用以单片机的定时器TO产生载波,程序代码如下所示:
3 结 语
该次设计中红外遥控器,可以准确采集到红外编码脉冲信号,并将原始的红外编码信号保存,发送,能成功学习各种不同家用红外遥控器,对各种家用红外遥控器进行控制,解决了家庭用户众多遥控器的烦劳。