一种红外遥控信号的解码方法

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第18卷第2期苏州大学学报(自然科学) Vol .18, No .2 2002 年 4 月JOURNAL OF SUZHOU UNIVERSITY(NATURAL SCIENCE) Apr .2002

文章编号:1000-2073(2002)02-0101-06

一种红外遥控信号的解码方法

肖圣兵,仲兴荣,徐清源,曲波

(苏州大学通信与电子工程系, 江苏苏州215021)

摘要:文章介绍了红外遥控的基本原理和红外遥控发射器的组成,详细论述了以单片机

89C2051 为核心的红外遥控信号的解码方法, 提出了用单片机对红外遥控信号进行识别译码

的程序设计流程.

关键词:单片机;89C2051;红外遥控;解码

中图分类号:TP722文献标识码:A

红外遥控技术广泛应用于各种家用电器产品、金融及商业设施中,为用户提供方便的操纵手段.一些遥控功能相对简单的电器产品,红外遥控信号的接收识别往往采用与编码调制芯片配套的译码芯片.而遥控功能比较复杂的一些电器产品(如电视机),均采用专用的遥控解码芯片,实现特定的功能.为了能将性能稳定、价格低廉、功能较多的电视机遥控器应用于其他控制场合,本文利用单片机89C2051为核心,设计了一套红外遥控信号解码的软硬件系统,通过驱动电路的扩展,可实现功能较复杂的遥控控制.

1 红外遥控的基本原理

红外遥控系统一般由发射系统和接收系统组成.发射系统由专用芯片产生指令代码,经载波调制后驱动红外发射器件,发射红外控制信号.红外信号的指令代码均为二进制码,编码调制由专用芯片完成,编码的方法有多种,不同芯片的编码方法和代码长度有所不同.指令信号常用的编码调制方法有脉冲宽度调制(PWM)和脉冲位置调制(PPM)两种,本系统采用脉冲位置调制方法的遥控信号发射器,即用两个脉冲串之间的时间间隔来表示二进制信息.红外遥控信号被红外接收头接收后,经放大、检波、整形,得到TTL电平的代码信号,再送给解码电路,经译码并执行,去控制指定对象,实现遥控功能.

收稿日期:2002-01-10

基金项目:江苏省青年教师基金(Q3119218)

作者简介:肖圣兵(1964-),男(汉族),江苏苏州人,高级工程师,主要从事信息技术的研究.

102苏州大学学报(自然科学)第18卷

2 红外遥控信号发射器的组成

红外遥控信号发射器选用以集成电路TC9012为核心的遥控信号发生器,它与键盘矩阵、输出驱动级和红外发光二极管组成遥控发射器器,图1为红外遥控信号发射器的电原理图.

图1红外遥控信号发射器的电原理图

遥控信号发生器集成电路TC9012,由振荡器、时钟信号发生器、键位扫描信号发生器、键位编码、遥控指令编码器、码转换器、编码调制器以及输出缓冲器等组成.振荡器由第8、9脚间的内部电路及其外接陶瓷谐振器组成,振荡频率取决于陶瓷谐振器,此处为455kHz,经TC9012 内部电路 12 分频后得到约为 37 .9kHz 、占空比为 1 3 的脉冲载波信号, 遥控编码脉冲对37.9kHz的载波信号进行调制,经驱动放大后,激励红外发射管发出红外遥控信号. 455kHz经 256 分频后得到约为 1 .78kHz 的系统时钟脉冲信号, 时钟脉冲周期 T cp =

0 .5626ms .

3 红外遥控信号的编码方式

图2遥控编码信号的波形

遥控器发射的遥控编码脉冲由前导码、系统码、系统码、功能码、功能码的反码组成,如图2所示.前导码是一个遥控码的起始部分,由时间宽度均为8T cp的一个高电平和一个低电平组成,作为接收数据的准备脉冲.系统码和功能码的编码是采用脉冲位置调制方式,根据

第2期肖圣兵,仲兴荣,等:一种红外遥控信号的解码方法103

脉冲之间的时间间隔来区分码值的“0”或“1” .对

应于二进制数字信号“0”、“1”的脉冲时间间隔

分别为2T cp和4T cp,而每一脉冲的宽度仍不

变均为T cp,如图3所示.系统码是通过遥控器

的遥控编码芯片的引脚不同接法设定的,用以区分不同型号的遥控系统;功能码则是遥控器图3脉冲位置调制方式的二进制码“0”和“1”的波形

功能按键的编码,不同的功能按键其代码不相同;功能码的反码是用来纠错的.系统码为8位,功能码也为8位,所以脉冲码共为32位.,为了增强遥控系统的可靠性,将系统码发送两次,将功能码与其相反码一起发送.从图中可知,该遥控器的系统码为八位二进制数01101110 , 功能码为 01100000 八位二进制数, 该遥控器最多可以有256 个功能键 .

4 红外遥控信号接收器

红外遥控接收器由光电二极管和红外遥控信号接

收集成电路CX20106构成,其原理如图4所示.

遥控信号接收集成电路CX20106由前置放大器、限

幅放大器、带通滤波器、峰值检波器和整形电路等组成.红

外遥控信号发射器发射的红外遥控信号,激励光电二极管,

产生光电流,经输入电阻转换成电压信号,通过

CX20106 放大,再经过检波器滤去 38kHz 的载波 ,最后经

整形电路整形,由脚7输出遥控编码脉冲,送至单片机解

码电路.

图4红外遥控接收器电原理图

5 红外遥控信号单片机解码的硬件电路

图 5红外遥控信号解码硬件电路

以 89C2051 单片机为核心组成的红外遥控信号解码电路如图 5 所示.

104 苏州大学学报(自然科学)第18卷

图 5 中 89C2051 是美国 ATMEL 公司推出的一种高性价比单片机.89C2051 指令系统与

MSC -51 完全兼容,具有2K 字节可重复编程的闪烁存储器和128 字节内部 RAM ;P3 .0~ P3 .

6 共

7 个脚, 准双向端口,并且保留了全部P3 的第二功能, 如P3 .0、P3 .1的串行通信功能, P3 .2、P3 .3的中断输入功能 ,P3 .4、P3 .5 的定时输入功能, 以及两个 16 位定时计数器 .

图 5 中 U2 为具有上电复位功能的“看门狗”集成电路 IMP706 ,其6 脚与89C2051 的 9 脚相

连,接收89C2051输出的“看门狗”控制信号,U2的7脚输出的复位信号通过一个反相器连接

到89C2051的复位端1脚.89C2051的4、5脚外接12MHz的晶振和2只20P的元片电

容,与其内部电路一起产生12MHz 的时钟信号.遥控编码脉冲直接传送至单片机的 11 脚 ,并经一反相器传送至单片机的6脚.

6 红外遥控代码单片机译码程序的设计方法

单片机红外遥控译码信号采用中断方式.红外接收头输出信号(图4中OUT与图5中的IN相连)经反相后连接到89C2051的外部中断INT0.INT0设置为下降沿边缘触发方式,用内部定时器T0测量正脉冲宽度,T0工作于方式2(16位计数器),在INT0的中断服务程序中,完成遥控译码.红外遥控信号在INT0引脚引起单片机中断后,进入中断服务程序.在中断服务程序中检测INT0引脚上是否为低电平,如为低电平表示传送码到来,延时等待至再次出现高电平,清TH0、TL0,开启T0,计数开始,INT0引脚变低时关闭T0.根据计数器TH0、TL0 的计数值 ,判断出该位代码为“0”或“1” ,并存入系统码寄存器的对应位;继续进行延时等待,直至INT0引脚电平升高后重复进行上述位代码检测步骤,并将相应值放入相应位至8 位系统码检测完毕 .随后进行8 位系统码、8 位功能码和8 位功能反码检测,具体过程与第一次系统码检测完全相同,结果存入相应寄存器中.最后,单片机系统根据功能码寄存器内容进行不同的功能操作.

6 .1引导码的识别

无遥控信号时,遥控接收器输出为低电平,经反相后INT0引脚上为高电平,当有遥控信号引导码出现时,INT0引脚由高到低发生电平变化,引起INT0中断.在INT0中断服务程序中检测INT0引脚电平,如为低电平则等待,直至INT0引脚出现高电平,清TH0、TL0,启动T0计数.根据TH0和TL0的计数值,判断正脉冲的宽度.如正脉冲的宽度在3.5~5.5ms范围内(实际引导码正脉冲宽度为 8T CP =8 ×0 .563ms =4 .5ms), 则认为是引导码 ,准备读取后续遥控代码,否则认为干扰,跳出INT0中断译码程序,返回主程序.程序流程图如图6所示.

6 .2系统码、功能码、功能反码的译码 .

系统码、功能码、功能反码的识别技术关键是0、1代码的识别.根据上面的遥控编码方法和波形图可知,在INT0中断服务程序中,我们只要能测出加到单片机INT0引脚的遥控接收反码信号的高电平宽度即可得到其代码.如脉冲宽度编码方法中,表示“0”的高电平宽度为0.56ms,表示“1”的高电平宽度为1.68ms,我们需要做的是判断出高电平的宽度范围.如

相关文档
最新文档