邬宝寅,张端阳,刘 引
(1.郑州科技学院,郑州 450064;2.新乡县电业局,新乡 453700)
目前市场上一般设备系统采用专用的遥控编码及解码集成电路,这种方案具有制作简单、容易等特点,但由于功能键数及功能受到特定的限制,只适合用于某一专用电器产品的应用,不适合小批量产品的使用。而采用单片机进行遥控系统的应用设计,具有编程灵活多样、操作码个数可随需求设定等优点。本单片机遥控电机调速系统采用红外线脉宽编码、单片机软件脉宽计时解码,实现了对一个单相交流电机的启停及脉宽调制转速控制。
单片机红外遥控电机连续调速系统要求用单片机作为控制芯片制作一个遥控器,另一个单片机控制系统能被遥控操作吊扇的启动、停止和调速。图1 和图2为该应用系统的遥控器设计框图及接收控制系统设计框图。
图1 单片机遥控器设计框图
图2 接收控制系统设计框图
单片机遥控应用系统电路分遥控发射系统电路和遥控接收系统电路。
3.1.1 遥控发射系统电路
电路主要以AT89C2051 单片机最小系统为中心,外围连接四个独立的电机控制按键、空闲方式控制电路、红外发射电路、LED 发射指示灯电路等部分。单片机平时都处于低功耗空闲状态,一旦有键按下,就会通过中断唤醒单片机,进行键盘查询,并由查询的键号控制红外管发射电路发射相应的脉冲串,发射完毕后再进入低功耗空闲状态。
设置控制按键,即为开、关、加速和减速功能,当按键按下时,引脚读入为低电平,否则读入为高电平。
AT89C2051 采用了空闲节电工作方式。遥控器退出低功耗空闲方式电路由IN4148 二极管组成“与”门实现。当有键按下时,由“与”门触发外部中断0 发生中断,单片机退出空闲工作方式,进入键盘和红外发射程序,结束后又进入低功耗空闲方式待机。使用过程中单片机基本上都处于空闲工作方式,功耗相当低,。从而为使用电池电源提供保障。该电路由3V 电池供电,待机电流约为0.6mA,工作电流约为2.5mA。
遥控器信息码由AT89C2051 单片机的定时器0调制成38KHZ 红外线载波信号,由P3.3 口输出,经过三极管8050 推动红外线发射管发送。
3.1.2 红外接收机及电机调速电路设计
该电路由AT89C2051 单片机红外接收和转速显示电路、5V 电源电路、电机调速控制电路等部分组成。遥控器发射的信号经SM0038 处理后送给单片机,单片机通过脉宽检测对信号进行分析识别,对电机进行调速和启/停控制等操作,并显示相应的工作状态。
电源部分由220V 交流电直接供电,220V 交流电通过电容限流,整流电桥D3 整流再通过三端稳压器U1 生成5V 电压,该电路最高可提供69mA 电路。稳压管D2 用于限制三端稳压器在单片机耗电较低时,输入电压不超过9V。
电机驱动部分由光电耦合器、双向晶闸管和外围元件构成[2]。光电耦合器输入端与单片机引脚相连,当引脚输出低电平时,光电耦合器和双向晶闸管导通,电机开始工作;当引脚输出高电平时,光电耦合器和双向晶闸管截止,电机停止工作;光电耦合器采用高压双向输出光耦MOC3021,与双向晶闸管BT136 配合使用。在控制电机变速时光电耦合器和晶闸管交替导通和截止,通过控制占空比来控制电机转速。实际工作时,脉宽调制周期约为0.1s,单片机引脚输出低电平占空比在10% 到90% 间变化[3]。
比红光波长还长的光叫红外线。肉眼看不到这种光线,但利用红外线发送和接收装置却可以实施红外线通讯。利用红外线通讯无需连线,只需将两设备的红外线装置对正即可传输数据。红外线通讯方向性很强,适用于近距离的无线传输。红外线的特点是不干扰其他电器设备工作,也不会影响周边环境。电路调试简单,这里就采用对发射信号进行编码,来实现多路红外遥控功能。
3.2.1 红外发射与编码、调制
发射部分由编码调制和LED 红外发送器等组成[6]。其中编码和调制用单片机软件实现,由单片机引脚发射采用脉宽调制的脉冲串[5],如图3 所示,发射端口每次发射一串基频为38KHz的脉冲,每两串脉冲之间间隔一段时间,由这段时间对所发出的信息进行调制,时间的长短由单片机内的时间寄存器设置。
3.2.2 红外接收与解调、解码
因红外遥控器的控制距离约6~12 米远,要达到这个指标,其发射的载波频率(38kHz)要求十分稳定。一体化红外接收头SM0038 对38kHz 进行解调,当接收到38KHZ的载波信号时,SM0038 接收器会输出低电平,否则输出高电平,从而可以将红外光信号解调成一定脉宽的连续方波信号。方波下降沿触发单片机的外部中断,经单片机解码,来判断是否为有效信号,以及哪一种信号,并将信号还原为相应的控制信息。
图3 红外信号波形
3.3.1 红外发射器软件设计
红外发射机需用到单片机两个定时器,一个外部中断等硬件资源,其中定时器T0 用以计量发射38KHz 脉冲串的脉宽,定时器T1 用以计量脉冲串与脉冲串之间的时长,外部中断0 用以唤醒待机状态。程序流程图如图4 所示。
图4 红外遥控发射程序框图
定时器T0 处于常开状态,程序首先读按键,若无按键按下,则进入待机状态,关发射标志;若有按键按下,则将启动按键、停止按键、增速按键、减速按键相对应的数值(数值1、数值2、数值3、数值4)填入时间寄存器,开发射标志。在定时器T1的中断子程序中,若发射标志关,则返回等待下一次中断;若发射标志开,则将时间寄存器的数值填入初值寄存器,打开定时器T0 开始发射红外信号,红外脉冲串间的时间间隔即由时间寄存器中相应的数值来决定。
外部中断0 用于待机状态唤醒,其程序段为空。当读键时无按键按下即进入待机状态,当有按键按下时外部中断0 输入引脚即接到下降沿,触发外部中断,将IDL 位清零,退出待机状态。
3.3.2 红外接收器软件设计
红外接收机需用到单片机两个定时器,一个外部中断等硬件资源。其中外部中断0 用来检测由红外接收头所发出的下降沿而触发中断,启动定时器T0 开始计时。定时器T0 通过定时来测量脉冲串与脉冲串之间的时长,判断信号的种类;定时器T1 用来控制电机驱动口的方波占空比,对电机调速。程序流程图如图5 所示。
当红外接收头接收到一个红外脉冲串时,便输出一个低电平,外部中断引脚接收到一个下降沿触发中断,启动定时器T0 从零开始计时;当红外接收头再次接收到一个脉冲串时第二次触发外部中断,将T0 初值寄存器中的数值读入时间寄存器,再对T0 清零开始第二次计时,如此反复不断。
在主程序中,不停判断时间寄存器中的数值是否为规定的数值(数值1、数值2、数值3、数值4),为数值1 则进行启动操作,开定时器T1,发出PWM 信号启动电机,开显示;为数值2 则进行停止操作,关定时器T1,关显示;为数值3 则进行增速操作,将速度寄存器中的数值加1,刷新显示;为数值4 则进行减速操作,将速度寄存器中的数值减1,刷新显示。
速度寄存器中的数值在1 到9 之间,使定时器T1 发出占空比在10%到90%之间的PWM 波,对电机调速,并通过数码管将这十个数码显示出来。定时器T1的定时时长固定,当调速引脚输出低电平时,速度寄存器中的数值即为定时次数;当调速引脚输出高电平时,速度寄存器中的数值对10的补码为定时次数。由此输出周期为定时时长十倍的PWM波,速度寄存器中的数值越大,低电平的占空比越大,速度越高。
经实验测试,红外遥控信号的编码解码方法没有出现传输误码,可靠、实用,在编码解码方面降低了硬件成本。容易实现系统扩展,此系统稍作改动即可应用于其它红外遥控的控制系统中,实现灵活,应用广泛。
图5 红外接收器程序框图
设计采用AT89C2051 单片机,其最低使用电压为2.7V,并不是很低,在待机状态下的功耗也较高,不利于由电池供电的遥控发射器。如采用功能相似的STC12C2051 单片机,工作在掉电模式下由外部中断唤醒,可以进一步降低功耗;或者采用功耗更低的AVR ATtiny 系列单片机,也可以起到进一步降低功耗的作用。
[1]赵力.将春辉.邹采荣,吴镇扬.语音信号中的情感特征分析和识别的研究[J].电子学报,2004,13(3):345-347.
[2]赵轩.基于PWM 控制的模型车用小型直流电机的调速装置[J].计算机工程与设计,2009,30(21):4884-4887.
[3]陈伯.自动控制系统——电力拖动控制[M].北京:中央广播电视大学出版社,2004.
[4]聂诗良,李磊民.红外遥控信号的一种编码解码方法[J].仪表技术与传感器,2004(8):28-32.
[5]华容.信号与系统[M].北京:北京大学出版社,2007.
[6]王清珍.单片机原理及接口技术[M].大连:大连理工大学出版社,2009.