摘 要: 介绍了一种基于单片机实现远程温湿度调控的智能控制系统。根据电力线载波传输和温湿度调控的原理,阐述了系统的硬件框图、模块结构,详细介绍了系统终端、编解码单元和耦合电路模块,并给出了系统软件逻辑及流程框图、PID温湿度控制算法。通过本地或远程操作实现对网络内的温箱设备进行温湿度调控,是集监测、管理、控制于一体的智能测控设备。
以单片机为核心的控制系统可准确实现交互信息的输入输出,信息量大,被广泛应用于工控系统、移动电子设备中。利用电力线网络作为高速数据的传输媒介,能够创造出很高的经济效益和社会效益。电力线载波通讯是利用电网的电力线作为传输媒介的有线传输模式,作为载波通讯在同一电力变压器范围内无需另外架设线路,成本低,使用方便。双音多频DTMF(Dual ToneMultiFrequency)信号由于具有较强的抗干扰能力和可靠的信号传输等优点,已逐渐被广泛使用。本系统设计采用以单片机为核心结合PID算法的智能载波温湿控制系统,实验证明系统运行稳定可靠。
1P89V51单片机简介
P89V51是PHILIPS生产的高性能、低功耗的8位微控制器。它具有64 KB的Flash,1 KB RAM,双工UART通道,有很强的外部扩展能力。片上集成了存储、控制单元,能有效地控制系统体积,可以很容易地嵌入设备内部。在需交互控制的设备中,基于单片机的控制系统可以单独工作,而不跟设备其他部分发生交叉影响。其低廉的成本及稳定的工作状态成为工控、家电、仪器仪表设计的首选。
2 电力线载波温度控制系统
2.1 系统总体设计原理
电力线载波是一种有线传输方式,不需要专门的传输线路,只需借助通常的电力线就可以完成数据传输。其传输信号由专门的芯片产生,本系统采用DTMF信号为载体,即:
其中f1、f2为不同信号的频率,A1、A2为两个频率信号的幅值。发送端通过调制耦合至电力线;接收端通过解调还原获得传输信号。电力线上的信号为电源信号和载波信号的叠加。载波信号的加载和卸载也就是电源信号和载波信号的叠加和分离过程。
本系统以单片机为核心,系统包括终端模块、控制模块、编码解码模块、耦合电路等部分,分别实现信息的发送、接收和处理。系统框图如图1所示。
控制单元通过接收外部键盘信息或传感器信息产生控制信号,经信息识别、处理后通过编解码芯片MT8888产生发送端信号,经耦合电路至电力线发送。在接收端,通过耦合电路将载波信息卸载,逆向通过MT8888解码至控制单元,从而执行相应的响应功能。
2.2 系统终端
采用Sensirion公司推出的可以同时测量温度和湿度的数字式传感器SHT15。内部集成温湿传感器、A/D转换、放大器、I2C等,不需外围器件即可直接输出标定的数字信号。测量稳定、精度高,湿度精度为±2.0%RH,温度精度为±0.5℃。将SHT15输出的数字量做如下的转换成实际温湿度值。
温箱内部采用电热丝和电风扇调节温度。检测到温度低于设定温度时,电热丝通电,当温度超过设定温度时,电风扇通电降温,两者均通过继电器实现工作。
按键模块选用8缓冲驱动器,三态的74LS244扩展8个按键。按键没有按下时,IO输入被拉高为高电平;当按键按下时,相应管脚被拉低,产生外部中断信号,在中断服务程序中读按键信息。使能芯片,单片机通过74LS244读取按键状态。每个按键对应于电力线上的各个温箱设备,各控制设备既是主控设备也是被控设备,方便实验员随时调节各温箱情况。
温度调节模块通过旋转编码器即旋钮进行温度调节,能比较准确地设定温度值。旋转编码器是通过转轴旋转,经内部电路产生90°相位差的正、反计数脉冲,不直接改变信号,转速越高其脉冲宽度就越窄。当旋转编码器正向旋转时,A相相位超前B相90°;反向旋转时,B相超前A相90°。编码器旋转时,每转过一个栅格,A相就产生一个脉冲信号,触发一次中断,在中断服务程序中通过判断B相的值来确定是正转还是反转并计数。为了有效地消除旋转时的抖动,编码器产生的信号通过施密特触发器整形后再接到单片机,同时在代码中做一个相应的延时能达到很好的效果。
为了能直观地反映温箱内的环境情况,本设计增加了通用的12864液晶模块。该液晶模块的控制芯片为ST7920,支持绘图、字符和汉字,在一般的应用中足以胜任。当液晶控制码为写状态时,数据通过串口发送至液晶控制单元,显示各温箱温湿度值及变化趋势,并能显示预计温度变化时间等信息。
2.3 编解码模块
编解码电路以MT8888为核心单元,通过控制单元的控制,可以分别执行编码、解码。当有按键操作时,单片机被唤醒进入中断,读旋转编码器变量,获取温度调节信息,对所选择温箱进行温度设定,将数据由单片机P1口送至MT8888。MT8888工作于DTMF发送模式时,单片机发送4位BCD码于TDR(发送数据寄存器)中控制芯片内部分频器合成DTMF发送信号,由8号引脚输出经耦合电路加载至电力线上,同时将修改信息送液晶显示,方便管理。
在被控设备端,其原理大致与主控设备端相似。此时,MT8888工作于接收模式。通过耦合电路卸载电力线上的DTMF信号,送MT8888解码后经RDR(接收数据寄存器)送单片机。单片机通过中断服务程序,在P1口获取解码后的BCD码信息。通过对比接收到的数据和各终端设备设定数据,判断是否执行操作,并返回操作信息。在整个过程中,任意终端设备均可以了解在整个电力线系统中其他设备的工作状况。
2.4 电力线耦合模块
按照低压电力线通信耦合技术的要求,必须进行强弱电隔离,同时确保较高的载波信号加载效率。为此,本系统采用“电磁耦合”与“阻容耦合”相结合的“复合耦合”[4]。载波接收耦合电路如图2所示,变压器在耦合载波信号的同时使通信电路与强电隔离。二极管D1、D2起限幅作用,用来保护后续电路。其调谐回路的谐振频率应满足:
若将中心频率选在460 kHz,电容取值为22 nF,经计算可得电感L的取值在5.7 nH左右,即通过调节变压器初级绕组电感量来调节中心频率。变压器T1将电力线与耦合电路的其余部分相隔离,从电力线上接收载波信号,滤除来自电力线上的干扰噪声。
发送耦合电路如图3所示,三极管Q1和变压器T1组成调谐功率放大电路。同样变压器在耦合载波信号的同时使通信电路与强电隔离。在Q1和前级运放之间通过一个电阻R1耦合载波信号,同时避免后级电路产生自激振荡,也能相应的增加放大器的负载阻抗。前级运放输出的信号经R1输入到功率放大管Q1,再经Q1和谐振网络组成的单调谐放大器放大耦合到电力线上,实现信号的发送。
3 控制系统的软件设计
3.1 系统软件结构
系统软件采用并行逻辑结构,主要分为主控部分和被控部分。根据各设备在网络中的角色不同,自行切换到相应的模式。系统默认为被控模式,即接收模式。系统程序由初始化程序、中断程序、接收发送程序、温度控制程序及终端人机交互程序等构成。初始化程序包括单片机初始化、MT8888预置模式、按键初始化、显示初始化等。系统上电后执行初始化程序,完成后进入待机状态,等待收发中断信号,从而判断是否主控。当有按键中断产生时,系统进入主控发送模式,通过解析按键信息,执行发送动作,将温湿度调节信号经电力线网络发送。处于被控接收模式的设备,在MT8888收到接收中断后,耦合卸载电力线数据。通过单片机解析收到的数据信息,判断是否是本机需要执行的操作。若是则控制温湿度调节模块执行操作,否则放弃信息。同时,每台设备还间隔2 s将本地状态广播给电力线网络上的其他设备。从而让使用者可以在任一设备了解及控制所有设备。为了增强系统的稳定性和抗干扰能力,单片机通过中断信号唤醒工作,在判断中断信号的合法性后再执行操作,可以避免误操作和毛刺信号等干扰,同时利用看门狗定时器,保证了系统的稳定可靠。系统软件框图如图4所示。
3.2 PID控制算法
系统将传感器采集的数据与设定值比较,通过PID算法,经单片机发送控制量e(k)=(测量值-设定值),调节温箱温湿度。由于温湿度的测控响应缓慢有滞后性,本文采用增量PID算法[6],并进行简单的调整,以克服超调和振荡。其公式为:
本系统以单片机为核心,以电力线网络作为传输通道,通过PID算法实现对同一网络的各温箱设备的温湿度控制,是集监测、管理、控制于一体的计算机测控设备。实验证明本系统成本低廉,安装调试方便,工作稳定,抗干扰能力强。可增添其他传感器测控模块,适用于需要分散布局的应用环境,有较强的实用性。