引言
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分别为:
式中:空气的介电常数ε空气为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所示。
2 系统软件设计
根据系统要求,除了需要实时检测和显示水箱温度和水位外,还需要控制淋浴温度、上水阀、节流阀、辅助加热控制装置等,所有这些功能由AFS600内部嵌入 8051内核完成。控制器软件设计采用模块化结构,除主程序外,还包括键盘与显示子程序、温度与液位采集子程序、以及淋浴水温控制子程序和上水控制子程序等。系统的主程序接收控制指令,调用子程序完成温度、水位检测等。下面重点介绍淋浴温度控制和上水控制子程序流程。
2.1 上水控制
热水器控制器具有智能化上水控制功能,可以起到保护热水器的作用。例如,水位较低时,淋浴时或高温日照下禁止自动上水;居家长时间无人时,需要考虑自动上水问题;水位传感器失灵时,防止上水溢出等。对此,系统预置最低水位和最高水位,并根据时间系统预置自动上水时段。程序中设有计时器,检测上水时的水位变化与上水时间关系,以此检测水位传感器失效问题,并可防止上水溢出问题。具体流程如图5所示。
2.2 淋浴温度控制
淋浴温度控制是热水器控制器的关键,是舒适度的重要指标。本系统将传统的手动控制改为自动控制,并引入了适合步进电机控制的增量式PID控制算法。其差分方程式如下:
式中:u(k)是控制量;e(k)是系统的控制偏差;Kp是比例增益;Ti是积分时间;Td是微分时间;T为采样周期。PID运算的输出增量为相邻两次采样时刻所计算的位置值之差,综合式(5)、(6)有:
根据预置的温度和采集的淋浴温度进行参数正定,确定PID参数q0、q1、q2,其调节方法可参考相关文献。具体流程如图6所示,实际的淋浴水温可控制在设置温度的上下2℃范围内。
结语
采用Actel公司usion系列的AFS600芯片,通过嵌入8051内核来实现太阳能热水器控制器功能。该太阳能热水器具有集成度高、成本低和操作方便的优点,特别是淋浴温度的自动调节,以及上水过程的智能化、人性化控制等功能,较好地弥补了目前相关产品的不足,有一定的推广和经济价值。本设计得到了 Actel公司、广州致远电子有限公司及其武汉办事处的资助和技术指导,在此特表感谢。
上一篇:Cx51程序设计的堆栈空间计算方法
下一篇:采用C8051F020设计的嵌入式测试仪
推荐阅读最新更新时间:2024-03-16 12:31
设计资源 培训 开发板 精华推荐
- NXP 2.5亿美元收购Aviva,但车载SerDes领域依然处于战国时期
- 应对 AI 时代的云工作负载,开发者正加速向 Arm 架构迁移
- 沉浸式体验漫威宇宙,英特尔锐炫显卡为《漫威争锋》提供Day 0支持
- 艾迈斯欧司朗与法雷奥携手革新车辆内饰,打造动态舱内环境
- 《嵌入式-STM32开发指南》第二部分 基础篇 - 第7章DMA(HAL库)
- 【“源”察秋毫系列】DC-DC电源效率测试,确保高效能与可靠性的关键步骤
- NVIDIA 推出高性价比的生成式 AI 超级计算机
- Mapbox与Arm合作推出虚拟主机 加速软件定义汽车导航
- 移植tslib和Qt5.6到三星s5pv210开发板
- 智能座舱新赛点在哪? 看这四款重磅新车