引言
AFS600是Actel公司推出的混合信号FPGA芯片,它将模拟ADC、DAC、RC振荡器等嵌入到数字FPGA中。AFS600是片上系统 (SoC)设计的首选,其内部可嵌入8051单片机内核,大大扩展了其应用范围。本文以AFS600为核心,实现了太阳能热水器的控制器系统。与目前采用微处理器、PLC或FPGA芯片设计的系统相比,该系统具有结构简单、外围元件少、稳定性高等优点。
1 系统结构
太阳能热水器的控制结构是根据热水器的上水通道与热水通道设计的,包括阀门控制、传感器的配置等。
1.1 系统控制结构
太阳能热水器的控制系统分为主控制器和水箱控制两部分。主控制器完成水温水位的显示、控制操作,以及热/冷水的温度、压力参数的采集、处理与控制;水箱控制部分完成水箱水位、水温的检测,以及电加热控制器的控制。水箱控制部分通过数据线与主控制器的串口连接,实现主控制器对相关功能的控制与管理。完整的水循环结构及其阀门、传感器的配置如图1所示。
通常,系统中的3个电磁阀为关闭状态;当接受上水指令后,上水电磁阀打开,自来水经过三通由上水电磁阀流向水箱,此时电动节流阀和热水电磁阀仍处于关闭状态;当接受淋浴指令后,热水电磁阀打开,热水流出,电动节流阀根据设定的淋浴温度自动开启合适的角度。
太阳能热水器一般来说配有辅助控制装置,例如水箱内增加一个电加热器来辅助加热,水位、水温探测器安装在水箱中以检测水箱中的水位高度和水温,并通过缆线接人控制器显示。水流量的大小控制是通过步进电机精确控制节流阀实现的,同时保证用户设定的淋浴温度要求。当水位过低时,一方面报警,另一方面可根据实际需要自启动上水操作。
1.2 控制器的配置
整个控制系统采用Fusion StartKit开发平台,嵌入的8051内核为核心控制单元。由于8051内核以网表的形式提供,而且只有其控制部分(CPU)及简单的外设(定时器、 UART等),所以只需将8051内核移植到FPGA内部就能搭建一个完整的8051单片机。内核包括8051内核网表、内部RAM、单片机ROM和 PLL四个子模块。
8051内核和Flash之间的通信由接口模块控制,接口模块由HDL语言在Libero集成开发环境下描述得到。系统硬件接口电路包括:水箱温度和水位检测接口电路、设定键和并行显示接口电路、节流阀的控制接口电路、光电隔离与辅助加热电路,以及继电器输出接口电路等。这些模块的I/O口分配如图2所示。水箱温度、水位检测、水温控制、上水控制、辅助加热等模块的I/O口分配到Mini接口上。
8051内核的P0口为液晶的数据口,P2.O~P2.2为液晶的使能控制端,P2.3~P2.5分别为3个电磁阀的控制端。对淋浴水温进行智能检测和显示,经单片机内部运算与设定温度进行比较,通过控制节流阀的角度来调节水流量,从而来保证淋浴水温与用户设定水温相一致。P1.O为数字温度传感器DSl8820的专用端,用于检测水箱温度并显示在液晶上;P1.1也是温度传感器专用端,用于检测淋浴水温。如果水箱温度不足 (达到设置水温下限),则控制继电器启动辅助加热装置;当水温达到加热温度上限时,则关闭辅助加热装置。水位用5段LED灯显示。若水位不足,则报警蜂鸣器响;若没使用,则上水继电器动作,电磁阀开通,自动上水至水位上限后关闭。
1.3 液位传感器的设计
由于目前常用的垂子式液位传感器易受水垢的影响,本文利用浸入水中的两个极板组成电容,电容值大小反映了水位的高低。其结构如图3(a)所示。
图3(a)中,H为铝板总高度,h为液位高度。设板间距为l,铝板的宽度为b。上下两部分的介质分别为空气和水,等效电容为C1和C2分别为:
式中:空气的介电常数&epSILon;空气为l,水的介电常数ε水为80。总电容C总为:
显然,电容的大小与水位的高度成正比。实际制作的电容传感器,测试电容值C为0.1~2.2μF。
本传感器采用定时器NE555设计了一款方波发生器,用于实现水位-电容值-频率的转换,输出的频率可反映水位的变化,取中心工作频率为1 kHz。具体电路如图3(b)所示。输出频率f为:
这里,R1、R2均取为1.43 kΩ。
当水位发生变化引起电容的变化,经多谐振荡器输出的方波频率f也随之发生变化,根据单片机的计数器T0捕捉到的时钟的个数,再经数据处理判断水位。
1.4 节流阀的控制
为了控制淋浴水温、调节流量,需要控制节流阀。本文采用节流阀和步进电机组成流量控制方案,通过控制步进电机的旋转来控制节流阀的开启角,从而控制流量。选用步进电机驱动器BY一2HB03M,控制二相四拍步进电机的步进及正反转。其驱动器接线如图4所示。