一种红外遥控信号的解码方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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,我们需要做的是判断出高电平的宽度范围.如