《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 设计应用 > 学习型红外遥控器的设计
学习型红外遥控器的设计
李 斌,高恭娴
(南京信息职业技术学院,江苏 南京 210036)
摘要: 提出了一种用于智能家居的学习型空调遥控器解决方案。该方案在软件设计时采用测量脉冲宽度的原理并对测量数据进行了编码压缩,同时用软件形式模拟38 kHz载波信号的发送,实现了对各种空调遥控器的自学习功能。测试结果表明,本编码压缩方法简化了编码信息,减少了存储空间,可以代替各种遥控器。
Abstract:
Key words :

摘  要: 提出了一种用于智能家居的学习型空调遥控器解决方案。该方案在软件设计时采用测量脉冲宽度的原理并对测量数据进行了编码压缩,同时用软件形式模拟38 kHz载波信号的发送,实现了对各种空调遥控器的自学习功能。测试结果表明,本编码压缩方法简化了编码信息,减少了存储空间,可以代替各种遥控器。
关键词: 红外遥控;载频编码状态转换;自学习

    现代科学技术的发展,尤其是计算机技术和网络技术的高速发展,不仅改变了人们的工作方式,也逐渐地改变了人们的生活方式,智能家居即是在这样的背景下产生的。无线控制的智能家居系统可以不破坏原有装修,只要在一些插座等处安装相应的模块即可实现智能控制,更不会对原来房屋墙面造成破坏,即便家居已装修也可轻松升级为智能家居。但是对主要由遥控器控制的空调系统需设计专门的学习型红外遥控器以便接入智能家居系统。为此,本文提出一种此类型的空调遥控器解决方案。
1 红外遥控码型分析
    通过对市面上比较普遍的几十种遥控器的码型结构进行研究分析发现,各空调生产厂家对其遥控器的收发信号的脉冲编码、码型和码流没有统一的标准,存在如下状况:
    (1)帧格式多样:脉冲流中一般包括:帧头、系统码、操作码、同步码、帧间隔码、帧尾,且同步码与帧间隔码出现的位置不固定。对这些灵活多变的帧格式,很难区分各种脉冲流的含义。
    (2)码型多样,如图1所示。


    (3)载波频率误差大:标准载波频率为38 kHz,误差范围±2 kHz。
    (4)编码长短不一致:彩电类产品一般只有几十位,而空调遥控器编码长达上百位。
    (5)发送方式不同:最常用的发送方式有:完整帧如图2(a)只发送1次、完整帧如图2(b)重复发送2次、如图2(c)先发1个完整帧,后重复发送1个帧头和1个脉冲。


    本系统避开了各种形式的码型和帧格式,不考虑其实际意义,只检测脉冲的时间宽度[1],再对测量的数据进行压缩,即可存储遥控命令,发送时进行解压来重构命令数据。
2 遥控器硬件结构
    学习型红外遥控器由红外一体化接收电路、反相器、温度传感器、单片机、红外发送电路、E2PROM存储器、键盘及LED指示灯构成,如图3所示。


    单片机AT89S52构成红外遥控的处理器,其数据存储器RAM(258B)用来存储学习过程中编码信号的脉冲宽度和编码。
    (1)红外发射电路:38 kHz方波直接由单片机模拟产生,经过三极管放大后,驱动红外发光二极管(注意:38 kHz载波不能用AT89S52定时器产生,因为38 kHz载波信号的周期只有26 μs,考虑到有载波时的占空比为1/3,即定时器的最小中断时间间隔只有8 μs,在执行中断时中断处理过程(如保护现场等)实际运行时间根据中断点的不同需要的时间也不同,有时会大于8 μs,这样不能保证38 kHz信号的稳定性),在软件处理过程中应用延时程序模仿38 kHz的红外载波信号。
    (2)红外一体化接收头:接收器选用一体化红外接收器MK0038,该接收器是黑色环氧聚光透镜,能够滤除可见光的干扰,集红外接收和放大于一体,内含红外线PIN接收管、选频放大器和解调器。不需任何外接元件,就能完成从红外遥控信号(38 kHz的载波信号)中分离出基带信号,输出与TTL电平兼容的所有工作。在与单片机连接时,将接收来的红外遥控信号反相,其正向信号接外部中断0,反相信号接外部中断1。通过记录2个中断间的间隔时间来测量红外遥控信号的高低电平的脉宽值。
    (3)外接E2PROM存储器:用于存放学习到的控制命令的编码和高低电平信号的脉宽值。
    (4)按键盘:启动一个学习过程。
    (5)温度传感器:用于测量室内温度,根据已学习的温度控制命令自动开启或关闭空调。
    (6)LED指示灯:用于显示遥控器的工作状态。
3 系统软件设计
    学习型遥控器的设计性能及实现与其软件设计编写具有密切的关系,在设计中采用内部定时器对信号高低电平计时的方法来采集数据并保存。当系统识别到起始码的低电平时,系统启动内部定时器对输入低电平计时,当起始码的低电平结束时保存定时器此时的值,记录下起始码的低电平信号脉冲宽度值;然后依次保存采集到的编码信号脉冲宽度值,如果采集到编码信号位数大于设定值M(程序中设定值),就认为编码采集已经结束,即学习子程序结束。
    在软件设计过程中,使用了2个外部中断和2个内部定时器,外部中断0启动定时器0停止定时器1计数并保存定时器1的数据,外部中断1启动定时器1停止定时器0计数并保存定时器0的数据,用定时器0记录红外解调信号的高电平时长。用定时器1记录红外解调信号的低电平时长,本文采用12 MHz晶振,1个机器周期是1 μs,计数器采用16位计数器。如果在外部中断0和外部中断1之间不发生内部定时器中断,可以记录的最大时间间隔为65.5 ms;如果在外部中断0和外部中断1之间发生内部定时器中断则可以记录的最大时间间隔是n×65.5 ms,其中n为中断次数。其值保存在设定的数据存储器中,然后写入到外部E2PROM存储器中。发射过程再从外部的E2PROM存储器读出,通过用软件模仿38 kHz载波信号发送编码信息。
3.1 数据压缩编码
     在设计过程中研究发现:尽管空调遥控器存在帧格式多样、码型多样、编码长短不同、发送方式不同等问题,但对于某一个独立的空调遥控器还是有规律可依的。在系统设计方案时,选择通用性好的就能解决这个问题。例如测得一款空调遥控器的1个命令码如下:
    低电平(有红外发送载波)信号码时长数据是:
    0x7368 0x0578 0x0577 0x0563 0x0555 0x0584 0x0564 0x0545 0x0572 0x0554……
     高电平(无红外发送载波)信号码时长数据是:……0x0578 0x1377 0x0563 0x0555 0x1384 0x0564 0x0545 0x1382 0x0554 0x01345……
     尽管码型有帧头、系统码、操作码、同步码、帧间隔码、帧尾,但不论是低电平(有红外发送载波)信号码时长或是高电平(无红外发送载波)信号码时长其结构都相对简单。但是1个帧如此多的数据占据了大量的内存空间,增加了硬件成本和程序运行时间,有必要在数据分析的基础上采取数据压缩。
     数据压缩根据使用场合和要求的不同分有损和无损压缩。为了在数据发送时准确再现接收到的红外数据,本文采用无损压缩的方法,使用的编码方式是改进型的游程编码,根据游程编码的原理,游程长度(游程或游长)RL(Run-Length)指的是由信号采样值构成的数据流中各个数据重复重现的长度,只要给出重复的数据、数据长度和位置就可以恢复原来的数据流[2-3]。其具体实现过程如下:
     (1)在接收红外信号时分别按高电平和低电平不同的时间长度编号(时间长度规定一定的误差范围),每1次测得的数据根据电平持续时间记录其编号,再将同编号的数据相加求平均值作为标准时间长度,根据红外信号格式的不同,可以选择4 bit压缩方式和2 bit压缩方式,即压缩比达到1/4和1/8。在接收红外数据时采用的是中断方式,不占用过多的CPU时间,还可以一边学习一边存入E2PROM以达到节省内存空间的目的。
     将上述空调遥控器的1个命令码(其中红外编码长度为150 bit,压缩比为1/8)的数据存储在E2PROM中的数据格式如下:
    01100101……(共10个字节低电平数据);
    11010101……(共10个字节高电平数据);
    0x96(字节总长度);
    0x1377 0x0560 0x0572 0x370(4个不同的时长);
    (2)发送红外数据时,先从E2PROM中读出字节总长度、4个不同的时长及部分高低电平数据,在发送高电平时(即不发送红外载波信号)且时长大于1 ms,再读E2PROM数据,这样更可以节省内存空间。
3.2 软件设计
     根据上述原理其软件流程图如图4所示。


      本文提出的学习型红外遥控器的设计方案。由于在数据处理和存储时采用了无损压缩的改进型游程编码技术,简化了数据结构,节省了存储空间,存储1个键码(如150 个双字节信息)仅需29 个字节,压缩比达7:1。同时采用均值算法,消除了载波频率误差大的影响,使发送的载波频率误差小于0.5 kHz。本设计能自动学习市面上流行的各种红外遥控器的遥控指令,从而控制各种不同类型的红外遥控设备。比较接收和发送的红外波形结果是两波形完全一致。通过对海尔、澳柯玛、三星等红外空调遥控器的测试,都达到了理想的准确率,有效的遥控距离可达8~10 m[4]。本设计作为一个节点再连接上通信模块即可实现智能家居系统中空调的智能控制。
参考文献
[1] 陈祖爵,王建毅.智能型红外遥控器的设计[J].微计算机信息,2008,24(1-2):305-307.
[2] 徐志,何明华,林武,等.一类基于软件载波的学习型遥控器的设计与实现[J].现代电子技术,2009(2):36-38.
[3] SALOMON D.数据压缩原理与应用[M].吴乐南,译.北京:电子工业出版社,2003.
[4] 丁跃华,陈艳峰,龙筝.红外遥控系统的一种设计方法[J].现代电子技术,2007(7):71-75.

此内容为AET网站原创,未经授权禁止转载。