更新时间:2024-08-20 13:16
红外遥控系统主要由遥控发射器、一体化接收头、单片机、接口电路组成SM0038对外只有3个引脚:VS、GND和1个脉冲信号输出引脚OUT,外形引脚如图二所示。与单片机接口非常方便,如图三所示。VCC接电源+5V并经电容进行滤波,以避免电源干扰; GND接系统的地线(0V);脉冲信号输出接CPU的中断输入引脚(例如8051的13脚INT1)。采取这种连接方法,软件解码既可工作于查询方式,也可工作于中断方式。
如图一所示。遥控器用来产生遥控编码脉冲,驱动红外发射管输出红外遥控信号,遥控接收头完成对遥控信号的放大、检波、整形、解调出遥控编码脉冲。遥控编码脉冲是一组串行二进制码,对于一般的红外遥控系统,此串行码输入到微控制器,由其内部CPU完成对遥控指令解码,并执行相应的遥控功能。使用遥控器作为控制系统的输入,需要解决如下几个关键问题:如何接收红外遥控信号;如何识别红外遥控信号以及解码软件的设计、控制程序的设计。
应用中的各种红外遥控系统的原理都大同小异,区别只是在于各系统的信号编码格式不同。遥控专用集成电路的编码格式是公开的,可以查阅到。下面就以TC9012组成的遥控器说明它的编码体制规律。当按下遥控器上任一按键时,TC9012即产生一串脉冲编码如图四所示。TC9012形成的遥控编码脉冲对40kHz载波进行脉冲幅度调制后便形成遥控信号,经驱动电路由红外发射管发射出去。编码体制规律如下:
(1)一次按键动作的遥控编码信息包含一引导脉冲和32 位串行二进制码。前16 位码为用户码,不随按键的不同而变化。它是为了表示特定用户而设置的一个辨识标志,以区别不同机种和不同用户发射的遥控信号,防止误操作。后16位码随着按键的不同而改变,是按键的识别码。前8位为键码的正码,后8位为键码的反码。
(2)遥控信号不是用高电平或低电平来表示“1”或“0”的,而是通过脉宽来表示的,对于二进制信号“0”,一个脉冲占1.2ms;对于二进制信号“1”,一个脉冲占2.4ms,而每一脉冲内低电平均为0.6ms。
图四一帧码的数据结构图
按键识别程序的设计
要使用一个遥控器进行遥控系统的设计,必需首先了解不同的按键编码脉冲是怎样和遥控器上不同的按键一一对应的。笔者用软件的方法实现对脉冲流的分析,使用如图三所示的接口电路接收信号。如果没有红外遥控信号到来,接收器的输出端口OUT 保持高电平;当接收到红外遥控信号时,接收头将信号解调下来并转换成脉冲序列加到CPU的中断输入引脚。用软件测试引脚的逻辑电平,同时启动T计时器,测量该引脚分别为逻辑“0”和逻辑“1”情况下的时间值,存储起来,然后分析。其规律如下(仿真机CPU晶振为6MHz):
①引导脉冲是一个时间值为1137H~1157H的低电平和时间值为084FH~086FH的高电平;
②数据脉冲的低电平时间值约为0127H~0177H;
③高电平时间值有2种情况:00BBH~00FFH(窄:表示“0”)利0301H~0333H(宽:表示“1”);
④同时通过分析能从中了解各键的键码值,供编写应用程序时使用。
红外遥控系统的组成及红外接收电路如图一、图三所示,在这主要介绍系统软件的设计。系统软件主要由主程序、各控制处理程序、遥控接收解码中断程序、显示控制等模块组成。