RSS
热门关键字:
当前位置 : 主页>通信技术>无线通信>列表

红外遥控器软件解码及其应用

来源:我要研发网 作者: 时间:2004-12-07 点击:



摘要:通过对红外遥控器各按键发送冲波形分析可以识别码型,从而为软件解码提供依据。本文以实例介绍红外遥控器与单片机硬件接口,并从原理出发给出软件解码方法。这是一个可以直接引用成功例子,同时也为各类红外遥控器在单片机控制产品中开发应用提供了一个非常实用参考。

关键词:遥控器 软件解码 单片机 字串2

在单片机控制产品开发应用中,为了向控制系统软件控制命令,键盘往往是不可缺少。传统方法是利用并行输入/输出接口芯片扩展一个键盘接口,或者直接利用单片机并行端口进行扩展。在某些应用环境下,这种方式2个弊端:①键盘和控制系统连在一起,不灵活,环境适应性差;②浪费单片机端口,且硬件成本较高。

字串9

使用红外遥控器作为控制系统输入设备,具有成本低、灵活方便特点。本文目就在于介绍软件解码研究一般方法和红外遥控器进行二次开发应用技术。该方法已在多个应用系统设计中成功地实现,效果良字串4

红外遥控器是一种非常容易买到,且价格便宜产品,种类很多,但它们都是配合某种特定电子产品(如各种电视机、VCD、空调器等),由专用CPU解码,作为一般单片机控制系统能直接使用。使用现成遥控器作为控制系统输入,需要解决如下几个问题:如何接收红外遥控信号;如何识别红外遥控信号;解码软件设计。其它问题都是非本质,例如遥控器面板功能键标注问题,可自行设计、重印即可。 字串3

1 红外遥控信号接收 字串5

接收电路可以使用集成红外接收器成品。接收器包括红外接收管和信号处理IC。接收器对外只有3个引脚:Vcc、GND和1个脉冲信号输出PO。与单片机接口非常方便,如图1所示。

字串1

①Vcc接系统电源正极( 5V);

字串2

②GND接系统地线(0V); 字串1

③脉冲信号输出接CPU中断输入引脚(例如803113脚INT1)。采取这种连接方法,软件解既可工作于查询方式,也可工作于中断方式。

字串6

2 脉冲流分析

字串1

要了解一个未知遥控器,首先要分析其脉冲流,从而了解其脉冲波形特征(以何种方式携带“0”、“1”信息),进而了解其编码规律。脉冲流分析应从分析脉冲高、低电平宽度入手。笔者用软件方法实现了对脉冲流分析。以图1所示接口为例,如果没有红外遥控信号到来,接收器输出端口PO保持高电平;当接收到红外遥控信号时,接收器件信号转换成脉冲序列加到CPU中断输入引脚。用软件测试引脚逻辑电平,同时启动TC计时器,测量该引脚分别为逻辑“0”和逻辑“1”情况下时间值,存储起来,然后打印、分析。下面用8051汇编语言给出对脉冲流进行采集、存储程序段: 字串5

MOV R0,#00H 字串8

MOV R1,#28H 字串9

MOV TMOD,#01H 字串6

TK:JB P3.3,TK ;等待低电平到来

字串2

;测低电平宽度 字串3

TK1:MOV TH0,#00H

字串9

MOV TL0,#00H

字串5

SETB TR0

字串9

TK0:JB TF0,TKE ;超时无效返回

字串4

JNB P3.3,TK2 字串4

CLR TR0 字串8

MOV A,TH0 字串4

MOVX @R0,A

字串7

INC R0 字串2

MOV A,TL0

字串6

MOVX @R0,A 字串2

INC R0 字串3

;测高电平宽度

字串4

MOV TH0,#00H

字串5

MOV TL0,#00H

字串3

SETB TR0 字串5

TK3:JB TF0,TKE ;超时无效返回 字串3

JB P3.3,TK3

字串6

CLR TR0

字串1

MOV A,TH0 字串8

MOVX @R0,A 字串6

INC R0

字串7

MOV A,TL0

字串9

MOVX @R0,A 字串4

INC R0

字串4

DJNZ R1,TK1 ;循环 字串3

TKE:RET 字串3

这段程序首先将TC0设置成16位定时器方式,初始化RAM地址指针R0和循环计数指针R1,每当引脚逻辑电平发生跳变时,停止计时,将计时值保存到连续RAM中。这段程序可以连续测量40个脉冲时间值(包括40个低电平脉宽)。笔者以TC9012芯片遥控器为对象,采集了所有按键编程脉冲波形,并且对同一按键进行了重复实验。限于篇幅,采样数据不能给出,仅给出脉冲流规律(仿真机CPU晶振为6MHz):

字串8

①引导脉冲是一个时间值为0937H~0957H低电平和时间值为084FH~086FH高电平;

字串3

②数据脉冲低电平时间值约为0.127H~0177H; 字串9

③高电平时间值有2种情况:00BBH~00FFH(窄)、02EFH~0333H(宽)。

字串2

由大量数据总结分析,按键编码有如下规律:

字串2

①除引导脉冲外脉冲是数据编码脉冲,数据“位”信息由高电平脉宽决定:窄脉宽表示“0”、宽脉宽表示“1”;

字串4

②每个按键脉冲流译码后,包含4个字节信息: 字串8

*所有按键前2个字节编码都一样,都是2个字节“0EH”; 字串3

*第3字节是键码;

字串5

*第4字节是键码反码。 字串9

经过对相同按键脉冲进行多次采样发现,相同按键脉冲序列对应位置脉宽时间值是在一个小范围内波动(不是一个确定值),因此,对模式识别不能采取精确比较法。对此,本人采取模糊办法进行了抽象处理。根据上述实验规律,将软件译码时对脉冲分析判断依据及算法设计思想总结如下:

字串8

①引导脉冲低电平和高电平宽度判断依据是时间值“高字节大于08H”,低字节忽略; 字串6

②数据脉冲流低电平脉宽相同,忽略不判断; 字串4

③高电平脉宽是判断数据流每位是“0”还是“1”依据。本人抽取判断是脉宽高字节若小于2表示“0”,否则表示“1”,脉宽低字节忽略。 字串2

实践证明,上述判据是有效可行。这样处理不仅使解码软件设计简单化,而且大大提高了解码速度。使用上述判据编写软件解码程序时,要注意脉冲流采样数据存储地址与脉冲对应关系。软件主要有如下几部分:

字串5

①判断遥控信号到来(在解码前调用1个独立子程序);

字串4

②采样并存储脉冲流; 字串1

③判断引导脉冲是否有效;

字串7

④解码前2个字节并判断是否为“0EH”;

字串1

⑤解码第3个字节,该字节即为有效键码;

字串1

⑥键码查表映射(如果使用原键码,可省略这一步)。 字串8

3 解码软件设计 字串3

基于上述思路设计软件解码系统成功地应用于多个控制系统。下面给出一个实例(用MCS-51系列MC交通规则TC9012红外遥控器进行软件解码)汇编语言程序。程序中使用参数是针对MCU使用6MHz晶振情况,使用其它频率晶振,只需修改脉宽判据即可。为便于理解,尽量保持与原理叙述中致性,程序中给出了较详细注翻译,详见网络补充版(http://www.dpj.com.cn)。

字串3

本文虽然是用MCS-51系列MCU对TC9012红外遥控器软件解码研究,但其方法具有一般性。具体应用,可自行变通。 字串2

最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册
相关文章