APP下载

一种基于单片机的智能红外遥控系统的解码方法*

2010-12-08蔡燕玲

潍坊学院学报 2010年6期
关键词:低电平遥控器解码

蔡燕玲

(厦门海洋职业技术学院,福建 厦门 361012)

0 引言

家庭中只要具有红外遥控功能的电器都是各自配备一个红外遥控器,各种遥控器之间无法通用,造成家中遥控器多、使用不方便的现象。若要将家中所有的遥控器整合在一起,即实现一个遥控器或一机(如eBox II)控制所有能接收红外遥控的电器设备,则必须对原先的各种红外遥控器编码进行解码。由于市场上各类电器的红外遥控器编码格式不同,不同厂家生产的同类电器其红外遥控器的编码格式也不同,造成各类红外遥控器编码无法以统一的编码格式进行识别。目前市场上解决这个问题的方法有两种,一种是将大多数常用电器的红外遥控器的键码事先存储在所谓的万能遥控器中,因每个家庭选购的电器组合各不相同,这种方式不仅浪费遥控器的存储器资源,而且遇到某种电器的红外遥控器键码不属于其设想的范围内,就失去了“万能”的功能。另一种方法是在专门定制的红外遥控器中通过软件判断某个红外遥控器的编码格式,从而以特定的格式对遥控器编码进行解码,也就是“学习”原有的红外遥控器各键的编码,并将编码存储在该遥控器中,这样,“学习”多少个红外遥控器的编码,就能取代多少个遥控器对相应的家电进行控制,这种方式更能体现“万能”的含义。但是,若某种红外遥控器的编码格式不是内置软件能判断的,还是无法进行“学习”,所以这种方式也不是真正的“万能”。

本文提出的对红外遥控器编码进行“学习”的原理是不考虑信号的红外编码格式,即不去判断接收进来的逻辑是“0”还是“1”,直接计算同一种逻辑持续的时间,并根据持续时间的比例判断出两种不同的逻辑,用“0”或“1”表示 ,经解码后得到红外遥控器上各按键的发射编码,并将这些发射编码存储起来,需要时,再将相应的发射编码经调制后发射出去。

1 红外编码格式

红外遥控器是通过红外发光管发射波长为940mn的红外光来传递信号,红外光为不可见光,以直线方式传递信号。

红外编码采用一个高低电平组合的脉冲信号代表编码中的逻辑“0”和逻辑“1”,红外遥控器上的每个按键对应一组规定的逻辑“0”和逻辑“1”,叫做按键编码,简称键码。

各厂商对红外编码格式[1]的规定各不相同。例如,NEC编码格式规定,0.56m s的高电平和1.69m s的低电平代表逻辑“1”,0.56m s的高电平和0.565m s的低电平代表逻辑“0”(见图1)。SONY SIC的编码格式则规定,1.2m s的高电平和0.6m s的低电平为逻辑“1”,0.6m s高电平和0.6m s低电平为逻辑“0” (见图2)。也就是说,不同编码格式规定的逻辑“1”﹑“0”的脉冲高低电平的持续时间是不同的。

图1 NEC编码格式

图2 SONY SIRC编码格式

目前红外编码格式没有一个统一的标准,制造编码芯片的厂商都是各自规定自己的红外编码格式,而且发码的格式也不一样,对红外遥控器信号的解码造成一定的困难。

为了增加红外编码的传送距离,提高抗干扰能力,红外编码在传送之前必须进行调制,国内常见的调制频率是38KHZ,国外为40KHZ。

红外编码调制方式有两种:脉冲宽度调制(PWM)和脉冲相位调制(PPM)。

(1)脉冲宽度调制(PWM)

以发射红外载波的占空比代表逻辑“0”和“1”的调制方式叫做脉冲宽度调制。如上述的NEC编码,经调制后,发射载波0.56m s,不发射载波1.69m s,共2.25m s的脉冲周期表示逻辑“1”,发射载波0.56m s,不发射载波0.56m s,共1.12m s的脉冲周期表示逻辑“0”,如图3所示。同理,SON Y SIC的编码调制方式见图4。

图3 NEC编码的调制方式

图4 SONY SIRC编码的调制方式

为了解码方便,多数协议规定了红外编码的引导码。引导码一般是一个高低电平组成的脉冲,如NEC红外编码的引导码为9m s的高电平和4.5m s的低电平,经脉宽调制后就是载波发射9m s和载波不发射4.5m s,如图5(a),SONY SIC红外编码的引导码为2.4m s的高电平和0.6m s的低电平,如图5(b)。

图5 NEC、SONY SIRC红外编码引导码

同一协议中每组编码的周期是固定的,NEC为108m s。以NEC upd6121编码芯片为例,完整的编码串如图6(a)所示。SON Y SIRC的编码串如图6(b)。

图6 NEC(a)、SONY SIRC(b)红外编码串发射情况

(2)脉冲相位调制(PPM)

以发射载波的相位表示逻辑“0”和逻辑“1”的调制方法叫做脉冲相位调制。从发射载波到不发射载波规定为逻辑“0”,从不发射载波到发射载波规定为逻辑“1”。其发射载波和不发射载波的时间是相同的,也就是逻辑“0”和“1”脉冲周期是固定的,这种调制方式的代表产品有Philips的RC-5、RC-6等,图7为Philips RC-5红外编码调制和红外编码串发射情况。

本文主要研究调制频率为38KHZ脉宽调制编码的解码方法。

图7 Philips RC-5红外编码调制(a)和红外编码串发射情况(b)

2 红外解码方案

由于各制造商规定的红外编码格式不同,如果只按照某种型号的格式进行解码,不能得到正确的解码。针对多种编码格式,本系统采用“学习”的方式,即分析接收到的逻辑位高低电平的持续时间,得到对应的按键发射编码,需要时再将对应的发射编码调制发射。这样就不必考虑编码格式和发码格式的问题,但这种方法需要较大的存储器容量。

分析常见红外编码格式,可以看出,引导码的脉冲宽度在3m s以上,逻辑“0”和逻辑“1”的脉冲宽度在0.52m s到1.69m s之间。

引导码为先高电平后低电平的脉冲,通过调制发射,经红外接收模块处理后的信号相位变反,因此, A T89S52只要识别到低电平,就开始接收,接收到的前两个逻辑位的持续时间为引导码的高低电平持续时间。接下来接收到的是按键发射编码串各逻辑位的高低电平持续时间。依次将每个逻辑位的高低电平持续时间存储在A T89S52的内部RAM,并计算已存的单元个数,直到接收到的逻辑位高低电平持续时间大大于逻辑“0”或逻辑“1”的脉冲宽度,则可认为一串编码已发射完整,A T89S52停止接收。将已存储的数据进行分析,并转换为二进制“0”和“1”,形成该键的发射编码。

3 红外接收/解码模块

红外接收/解码电路以A T89S52为核心,包括红外接收电路和单片机解码部分。

3.1 红外接收电路

这部分的功能是接收红外遥控器发出的信号,并将解调信号送A T89S52的P1.6脚。

为了防止周围光源对红外光的干扰,提高红外编码的传送距离,所有红外遥控器发射的信号都是经过调制的。因此,要测量原先的编码脉宽,必须对已调波进行解调,即还原出按键的发射编码。红外接收电路采用了市面上常见的一体化红外接收头 HS0038。HS0038集成了光电转换、解调和放大电路,能解调接收到的红外已调波,处理后输出与TTL电平信号兼容的红外编码信号。需注意的是,由HS0038解调出来的信号与原信号的相位相反。HS0038只有三个引脚,1脚OU T输出红外调制编码信号的解调信号, 2脚GND接地,3脚V s为电源端。

3.2 单片机解码

红外编码串由一组逻辑“0”和逻辑“1”组成,而逻辑“0”和逻辑“1”又是由持续时间不同的高低电平组成。在不知逻辑“0”和逻辑“1”是由持续时间多长的高低电平组成的情况下,无法根据预定的时间来判断接收到的逻辑位。因此,本系统中采用单片机的定时器计算逻辑位高低电平的持续时间,通过综合分析判断出编码串中两种不同逻辑的组合方式,从而得出红外遥控器相应键按下后发射出的红外编码信号的解码数据。图8为解码程序的流程图。

4 红外接收/解码模块的测试

该模块的功能是将红外遥控器发射出来的红外信号进行解码,算出按键发射编码。遥控器上每个按键对应一组不同的发射编码。设计制作的红外遥控接收/解码模块的电路板如图9所示。

测试环境:电路板,遥控器,单片机仿真实验系统。

测试方法:将电路板上的 A T89S52串口与仿真实验系统的串口相接,用 51汇编语言编程将A T89S52读到的解调信号经双方串口传送到仿真系统的RAM。测试时,先按一下电路板上的“学习”键K1,将遥控器发射端对准红外接收模块并按“1”键,然后在仿真实验系统上,通过操作可查看传送过来的数据,即解调后发射编码各逻辑位高低电平的持续时间值。

图8 红外遥控信号解码流程图

测试结果:受仿真实验系统晶振的限制,测试时A T89S52晶振改为6M Hz。测试后,“1”键发射编码逻辑位高低电平的持续时间数据如下:

图9 红外遥控接收/解码电路板

其中,每四位十六进制数表示电平的持续时间,八位十六进制数为一组,表示逻辑位高低电平的持续时间。

第一组数据为引导码的高低电平持续时间。最末一组数据经判断后为结束码。中间的数据为“1”键发射编码中各逻辑位高低电平的持续时间。经过分析,这些数据中接近“00FB0095”的数据为一种逻辑,接近“00FB0249”的数据为另一种逻辑,因此可认为该键的发射编码为“01000000 00000100 00000001 00000000 00001000 00001001”。

用相同的方法可得到遥控器上各键的发射编码,如表1所示。

表1 遥控器上各键发射编码

分析以上数据可以看出,每个按键的发射编码有6个字节,前4个字节相同,应为厂商产品的编号,后两个字节不同,应为键码。再分析这两个字节,有一定的规律,根据一些编码芯片红外发码的特点,可判定键码其实只有一个字节,最后一个字节是为了增加可靠性而设置的校验码。

通过以上测试数据及数据分析,可初步判断[2]红外接收/解码电路及软件设计思路是正确的。

5 结束语

文中提出了一种新的对红外遥控编码进行解码的方法,并根据这个思路设计制作了实际电路。为了证实以上解码方法的可行性,在制作红外接收/解码模块的同时,也设计制作了红外发射模块,该模块是将存放在嵌入式计算机ebox II中的码经A T89S52软件调制后发射,遥控相应的设备。试验证明,用这个红外发射模块遥控设备,效果等同于原有的遥控器控制。

[1]Sam Bergmans.全面了解红外遥控[EB/OL].(2007-02-23)[2010-08-16]. http://www.ca800.com/dow nload/htm l/2007-2-23/dow n16534.htm l.

[2]蔡明文.红外遥控编码的唯一性研究[J].兰州工业高等专科学校学报,2008,15(4):1-3.

猜你喜欢

低电平遥控器解码
《解码万吨站》
铁道车辆高/低电平信号智能发生器设计
我是“糊涂虫”
时间遥控器
爸妈有个“遥控器”
解码eUCP2.0
NAD C368解码/放大器一体机
Quad(国都)Vena解码/放大器一体机
行走的飞行遥控器
2017款凯迪拉克2.8L/3.0L/3.2L/3.6L车型低电平参考电压总线电路图