嵌入式操作系统
太阳热水器水位控制的EDA实现
1 引言
[1]目前,我国太阳能热水器的产量和使用量均居世界首位[1][2]。随着人们生活水平的提高,对太阳能热水器的品质要求越来越高。智能控制型太阳能热水器越来越受到人们的欢迎。水位控制是智能控制型太阳能热水器的基本功能之一,是实现“全自动控制”不可或缺的环节。所谓水位控制,是通过设定来实现太阳能热水器水箱里缺水时自动补水、水满时自动停水的功能。现有的控制方案多由水位传感器根据缺水或满水时发出的不同信号控制半导体器件的通断,从而进一步控制继电器、电磁阀的开合状态,来进行补水与否。水满后自动停水功能一般都能做到。但“缺水”的定义往往会造成用户的使用不便。如把缺水定义为水箱无水,当晚上仍有少量余水时不能及时补水,会造成第二天用水不便;而若把缺水定义为一特定水位,则会在低于此水位用水时出现混水状态[3]。
本文设计了一种新型的水位控制器,并采用了电子设计自动化(EDA)技术[4][5],用目前广泛应用的VHDL硬件威廉希尔官方网站 描述语言,在Altera公司的MAX+PLUSⅡ集成开发环境下进行综合、仿真,并下载到可编程逻辑器件EPF10K10TC144-3中,以实现控制功能。
2 水位控制的主要功能
智能型水位控制要求补水及时且不影响正常使用。此处设计的智能化水位控制器可以实现水满后自动停水、条件补水和强制补水及显示、报警等功能。如图1所示。
图1 水位控制示意图
其中“水位”由水箱中的水位传感器提供。分三个档位:满水水位、条件补水水位和强制补水水位。满水水位用于实现水满后自动停水功能;条件补水水位可设置在一定水位如半箱水,当水箱水位低于此设置(高于强制补水水位)时实现有条件补水:当用水指示位有效(正在用水)时禁止补水,否则予以补水;强制补水水位可设置为水箱无水(或设置在较低水位),此时实现强制补水功能。为使用方便,控制器提供报警、指示功能:补水时补水指示灯亮,用户此时不能用水;水箱水位低于条件水位时发出提示音乐,此时用户若想继续间断用水,可通过键盘设置“补水禁止”,这样,即便不用水也不会补水,以便短时间内仍有热水可用,因此时有音乐提示,用户可在用水完毕及时撤销“补水禁止”位,为水箱补水;水箱水位到达强制补水水位而又被禁止补水时,发出报警信号,以便撤销补水禁止位及时补水,防止水箱长时间缺水。
3 水位控制器的VHDL代码
VHDL(Very-High-Speed Integrated Circuit Hardware Description Language)是IEEE工业标准硬件描述语言,是随着可编程逻辑器件(PLD)的发展而发展起来的。这种用语言描述硬件威廉希尔官方网站 的方式,容易修改和保存,且具有很强的行为描述能力,所以在威廉希尔官方网站 设计中得到了广泛应用。以下是描述水位控制的VHDL代码。
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY bushui IS
PORT (ply,forbid : IN STD_LOGIC; --用水标示,用水禁止
level : IN INTEGER RANGE 0 TO 7; --水位
valve,alm,music : OUT STD_LOGIC; --补水电磁阀,报警,提示音乐
fil_l : BUFFER STD_LOGIC); --补水指示灯
END bushui;
ARCHITECTURE behav OF bushui IS
BEGIN
PROCESS(ply,forbid,level)
BEGIN
CASE forbid IS
WHEN '1' => valve <= '0';fil_l <= '0'; --禁止补水
IF level <= 3 AND level > 1 THEN
music <= '1';alm <= '0'; --音乐提示水位低于条件补水水位
ELSIF level <= 1 THEN
alm <= '1';music <= '0'; --水位低于强制补水水位报警
ELSE music <= '0'; alm <= '0';
END IF;
WHEN '0' => alm <= '0';
IF level = 7 THEN
valve <= '0';fil_l <= '0';music <= '0'; 水满时停止补水
ELSIF level<= 3 AND level > 1 THEN
alm <= '0';music <= '1'; --音乐提示水位低于条件补水水位
valve <= not ply; fil_l <= not ply; --不用水时予以补水
ELSIF level <= 1 THEN
valve <= '1';fil_l <= '1';music <= '0'; --强制补水
ELSE music <= '0'; valve <= fil_l;fil_l <= fil_l;
END IF;
WHEN OTHERS => null;
END CASE;
END PROCESS;
END behav;
代码中,水位设为0~7八个级别,综合后,水位以三位二进制码表示,即最小可分辩的水位为满水箱的八分之一。条件补水水位设定在“level= 3”,即半箱水;强制补水水位设定在“level= 1”,即满水箱的八分之一。
4 仿真结果
为了验证设计的正确性,在Altera公司的MAX+PLUSⅡ集成开发环境下对以上代码描述进行综合、仿真,以下是该设计的仿真结果。
由图2可以看出,forbid(用水禁止)具有强制性,不论水位在何位置,该位都可随时停止补水;当该位被撤销时,是否继续补水则与当前水位有关:若低于补水水位则继续补水(约1.0us、8.0us处),否则不予补水(约3.4us处)。forbid无效时,补水按预先设定正常进行:水箱水位低于强制补水水位时强制补水(约1.0us处),水位介于强制补水水位与条件补水水位之间时进行有条件补水(约5.25us~5.75us间),水满则停止补水(约9.7us处)。补水指示灯fil_l与补水value一致。Music及时提供音乐提示。Alm在水位低于强制补水水位而又被禁止补水时发出报警(约0.2us~1.0us间)。可见,威廉希尔官方网站 满足了设计要求。
5 结语
该设计采用了用于电子产品设计中比较先进的EDA技术,该技术具有设计灵活、修改快捷、调试方便、研制周期短等优点[4],且设计出的电子产品具有高可靠性和较高的性能价格比,极具市场竞争力。如本设计中的设定水位的改变、水位级别的增多、报警方式的调整等均可以不需要硬件威廉希尔官方网站 的支持而方便地直接从VHDL源程序中进行修改。本设计实现的智能型水位控制器,既可以单独用以实现水位控制,也可以与其他太阳热水器控制环节(如水温控制)有机地结合为一个整体,构成真正意义上的“全自动控制”太阳能热水器,全天候为用户提供热水,克服了因补水带来的使用上的不方便,让使用太阳能热水器成为一种享受,从而提高人们的生活质量。
全部0条评论
快来发表一下你的评论吧 !