APP下载

红外遥控在嵌入式系统中的实现

2010-07-25翟祥林王景成

微型电脑应用 2010年5期
关键词:高电平遥控器遥控

翟祥林,王景成

0 引言

红外遥控技术是70年代发展起来的新兴电子技术,它具有价廉、非接触控制等特点,在普通的环境下,可靠性高。目前,红外遥控技术已经取得了非常广泛的应用。不仅很多家电,像电视、影碟机、空调等都采用红外遥控,而且在很多工业设备中,为了克服一些恶劣的工作环境,也纷纷采用红外遥控器来控制设备。另外,为了方便使用,许多仪器也都采用红外遥控器来遥控操作。

一套完整的红外遥控系统,都由红外发送器和红外接收器两部分组成。红外发送器的功能是把它上面的按键的功能编码,以 30~60kHz的载波调制后加到近红外线发光二极管上发送出去。通常采用的近红外线发光二极管所发出的近红外线光的中心波长在 940nm左右。红外接收器的功能是将发送端的调制波解调,得出发送端所发送的功能编码,遥控设备再根据功能编码来进行相应的动作,从而达到遥控的目的。

1 红外遥控编码的基本原则

随着技术的不断发展,采用红外遥控的电器设备逐渐增多。为了防止误操作,不同厂家不同种类遥控设备的遥控系统编码方式各不相同,互不兼容,但是它们基本都遵循如下方式:

图1 红外遥控系统的编码方式

引导码信号是必须的,不可省略,不同厂家所定的信号宽度略有不同。引导码的信号需要一段较长的信号时间,在此时间内来设定红外接收器内光电路的增益,大小随输入信号的强度而不同,这样动作可较为稳定。

编码输出可分为两部分,前面是用户码(custom code),后面是数据码(data code)。一般将不同的custom code当成不同的产品来分类,而data code则代表功能设定。custom code 及data code的长度,就是传送的bit数,不同的产品也会有所不同。有时为了抗干扰的需要,分别将custom code及data code的反码再一起传送出去。

编码输出的调制方式一般采用 PPM 方式(Pulse Position Modulation),即利用脉冲之间的大小作为传送信号的“0”与“1”,一般采取间隔短的代表“1”,间隔短的代表“0”。

重复码是表示使用者按下按键(在按下按键时就开始发送),间隔一段时间以后,若使用者仍未将按键放开,为了减少电源的功耗,不再传送完整的编码输出,发射器改为发送重复码,表示按键仍在按着。重复码不是必须的。重复码的时间与引导码的时间、“0”和“1”的时间都应不同。

在完整的编码输出后,应该再输出一个停止位,这样,在接收器的接收处理程序中才可以确定编码输出的最后一个bit的时间。同理,在重复码的最后也必须加上一个停止位。

2 红外发送的原理

红外发射器应用电路的一般形式如下:

图2 红外遥控系统发送部分的原理图

红外发射器的工作流程:首先,发射器中的MCU以扫描方式检测是否有按键按下;其次,有按键按下后,查找该按键对应的功能编码;然后,就开始传送,把引导码,用户码及其反码,按键的功能编码及其反码,停止位依次传送出去。所有的信息传送完之后,若按键仍持续按着,每超过一段时间(一般取100ms左右)后就传送一次重复码。

整个流程如下框图所示:

图3 红外遥控系统发送部分的流程图

红外发送的最佳发射频率为38kHz。采用I/O口传送方式来发送时,可利用定时器中断或空指令延时来产生38kHz的频率。其中空指令延时与MCU的晶振频率有关,空指令执行次数计算公式如下:

空指令执行次数 = 晶振频率 / 空指令的指令周期 /38000

如果发送单片机上有PWM口时,采用PWM口传送方式传送则更为方便,因为可利用PWM口来产生38kHz的频率,PWM口的具体使用方法可参阅相关单片机的使用手册。

假如用户码为0110 1110B(二进制表示法),按键对应的编码为0110 0000B,采用I/O口传送方式发送,则从此I/O口输出的波形如下所示:

图4 红外遥控系统信号发送波形示例

其中,高电平部分由 38kHZ的脉冲组成,从而输出38kHZ的红外载波。

现在市面上已有专用的红外发送单片机,只要加上少量的外围电路和按键,即可组成一个红外遥控器。如 Holtech公司(台湾盛扬半导体)的八位 OTP载波遥控单片机HT48RA0A ,它是八位高性能精简指令集的单片机,专为多输入/输出口的产品而设计的,特别适用于作红外遥控器中的控制器。

3 红外接收的原理

红外接收器的接收模块收到红外线光后,由光电二极管做光电转换,经过放大、带通滤波器滤波,再经过检波、整波即可将发送端的调制波解调。现在市面上已有将上述接收过程的电路整合成单一元件的器件,如日本光电子公司的PIC-12043、西门子公司的SFH506-38。

红外接收器应用电路的一般形式如下:

图5 红外遥控系统接收部分的原理图

经解调处理以后,红外接收模块输出的信号为源发射信号的反向。假如按上述红外发送部分发送信号,则红外接收模块的输出信号应为如下形式:

图6 红外遥控系统信号接收波形示例

红外接收器中的MCU至少有一个定时器和一个外部中断。其中定时器以特定的频率计数,来确定信号的一个脉冲的时间。红外接收模块的输出信号应接在外部中断源的引脚上,此外部中断应设置为下降沿触发方式,如果不能设置为此方式,在红外接收模块的输出后面还要加上反向电路或反向器。在定时器中断服务程序中,每执行一次就将计数值加1,在外部中断服务程序中,检查定时器中的计数值大小,从而确定接收信号的某个脉冲的内容:引导码、0,1、重复码,并且清除计数值内容。

在接收端来说,假如引导码的低电平和高电平时间分别为 8.8ms、4.4ms,“1” 的低电平和高电平时间分别为 0.55ms、1.65ms,“1” 的低电平和高电平时间分别为 0.55ms,“0” 的低电平和高电平时间都为 0.55ms,重复码的低电平和高电平时间分别为8.8ms、2.2ms。若定时器以8kHz的频率计数,则各阶段的计数值都可以计算出来:

引导码:(8.8ms+4.4ms)/(1/8000)=105.6

“0”: 1.1ms /(1/8000)=8.8

“1”: 2.2ms /(1/8000)=17.6

重复码:(8.8ms+2.2ms)/(1/8000)=89.6

为提高抗干扰的能力,可以理论的计数值为中心给定一范围,只要定时器中的计数值落在相应的范围,就确定此脉冲为相应的值。

红外接收的整个判断流程如下:

图7 红外遥控系统接收部分的流程图

下面是一个红外遥控系统中的接收模块源代码,使用对象是Windbond公司的51系列单片机W78E52,经在产品中长期使用,证明可以高效无误的实现遥控功能。下面仅给出了接收模块部分的源代码,其他部分均已略去(包括调用的子函数、中断的初始化等),给出部分采用C51语言编写。详细源代码如下:

4 结论

在实际使用的红外遥控系统中,红外发送部分即为常说的遥控器,它一般只作发送遥控指令用,功能较为单一。由于遥控器基本上都使用电池供电,因此,编制红外发送部分MCU的控制程序时,一定要遵循节省电源的原则。红外接收部分一般只是在产品中接收外部操作指令,并不是产品的核心功能。目前,使用红外遥控的产品有两种方式来完成红外接收功能,一种方式是直接在产品的主控MCU中加上红外接收模块,另外一种方式是产品中两个MCU,其中一个负责人机接口,完成红外接收解码等工作,再通过一定的接口传输给另外一个MCU,即完成产品主要功能的MCU。

目前,带有红外遥控的电器设备逐渐增多。如果在同一环境下需要遥控多台设备,由于不同厂家不同种类的遥控设备与其遥控系统一一对应,互不兼容,操作就十分不方便,有时还会因为拿错遥控器而不能及时操作。现在市面上出现的一种既具有通用性又能适应每个用户的特殊要求,并能随时更新内容的通用型学习式红外遥控器,就能很好的解决这类问题。这种遥控器具有自我学习功能,它能够学习并存储不同种类的遥控器所发出的各种控制信号,然后重发出来,从而实现一台遥控器同一控制多种设备。

[1] 王镇道等.长距离遥控[J] .半导体技术,2001(4):39-41.

[2] 邱玉春,李文俊.单片机系统中的红外通信接口[J] .电子产品世界,2000(5) :36-37.

[3] 麦山等.基于单片机的协议红外遥控系统[J] .电子技术,1998(5):22-24.

[4] 霍林科.彩电遥控系统的软件设计[J] .电视技术,1997(4):29-35.

[5] 谢晓晖.红外遥控技术在复费率电度表中的应用[J] .电测与仪表,1996(4):24-26.

猜你喜欢

高电平遥控器遥控
一种基于FPGA的PWM防错输出控制电路
“遥控”老师
我是“糊涂虫”
时间遥控器
爸妈有个“遥控器”
TS-03C全固态PDM中波发射机开关机控制电路原理及故障分析
他是如何遥控引爆的
行走的飞行遥控器
浅谈物理电路与数字电路
PDM 1kW中波广播发射机保护电路分析