基于FPGA的温度控制器设计
扫描二维码
随时随地手机看文章
摘要 介绍了一种基于FPGA的温度控制系统设计。可编程器件FPGA和硬件描述语言VHDL的出现使得数字电路的设计周期缩短、难度减小。系统采用FPGA作为核心控制器件进行编程,设计采用模块化思路分别实现温度检测、键输入、温度显示和控制模块,再加以整合实现整个系统,达到了温度控制的目的。
关键词 温度控制;FPGA;VHDL
随着人们生活水平的不断提高,温度控制系统被广泛应用。对于温度控制器,可以通过继电器、PLC、单片机以及专用工控机等方法实现,继电器具有零电压导通、零电流关断、噪音小、耐腐蚀、抗干扰、寿命长、体积小,以微小的控制信号直接驱动大电流负载等优点。但也存在通态压降,需要散热措施,有输出漏电流,交直流不能通用,触点组数少、成本高等缺点。PLC主要应用于电力工业控制领域,或整条流水线的控制;相对单片机的功耗大,但性能较稳定;单片机适用实时工业控制,相对微机价格较低,可编程性和可扩展性较强;专用工控机配置硬盘容量小、数据安全性低且存储选择性小。
由于体积、成本、操作等因素的限制,对于这些控制方法功能修改和调试都需要硬件电路的支持,在一定程度上增加了功能修改及系统调试的困难。
电子技术的发展,FPGA(Field Programmable GateArray)可编程技术的出现给现代工业控制的测控领域带来了一次新的“技术革命”,它具有数百万的逻辑门,可用于实现复杂的功能。
FPGA作为温度控制器的主控部分可以使系统的器件数目减少,具有设计灵活、现场可编程、调试简单和体积小等特点,具有更高的性价比。
1 温度采集器的原理
实现温度采集有多种方法,例如用传统的二位模拟控制方法选用模拟电路,用电位器设定固定值,经采样放大的信号将反馈的温度值与给定的温度值比较后,根据比较结果控制当前温度显示,以确定加热或者不加热。其特点是电路简单、易于实现。但是系统所得结果的精度不高且调节动作频繁、系统不稳定,受环统的控制及对温度的显示,人机交换性能差。而且选用模拟电路将反馈的温度值与给定的温度值比较决定是否加热,从输入采样到输出控制的各种误差产生因素较多,精度难以达到要求。另一种方法是采用EDA对系统进行智能化控制,采用FPGA芯片为核心控制器,使用温度传感器ADS90采集温度变化信号,并通过FPGA芯片处理后去控制温度使其达到稳定。该方法具有编程灵活、控制简单的优点,使系统能简单实现温度的控制及显示。文中采用FPGA实现温度采集,其结构图如图1所示,FPGA具有运行速度快,内部集成锁相环且能将外部晶振倍频到更高频率,其管脚多,易实现大规模系统,FPGA内部程序可并行运行,有处理更复杂功能的能力。
温度传感器模块采用温度传感器ADS90。ADS90具有体积小、质量轻、线性度好、性能稳定的优点。其测量范围在-50~+150℃,满刻度范围误差为±0.01℃,其性能可满足此系统的设计要求。另外ADS90为温度/电流传感器,对于提高系统抗干扰能力有较大帮助。
加热控制部分采用继电器作为控制,使用继电器易实现对电路的控制,在正常条件下,工作可靠。继电器无需外加电耦,自身即可实现电气隔离。该类型电路无法精确实现电热丝功率控制,电热丝只能工作在最大功率或零功率,对控制精度将造成影响。但可以多路加热丝功率控制,由FPGA芯片对温差的处理实现分级功率控制,提高系统动态性能。
采用两位LED七段数码管分别显示十位、个位,数码管具有低能耗、低损耗、低压、寿命长、耐老化、对外界环境要求低等优点,另外数码管采用BED编码显示数字,编程容易,资源占用少。
2 系统硬件设计
该硬件系统中包含的功能模块有FPGA芯片、温度传感器、电源、ADC0809、七段数码管、继电器和加热器。
2.1 温度传感器
温度传感器分为热电阻温度传感器、热电偶温度传感器、辐射温度计和光纤温度传感器等。在设计中采用热电偶温度传感器ADS90,其功能单一、测温误差小、价格低、响应速度快、传输距离远、体积小、微功耗,适合远距离测温、控温,不需要进行非线性校准。
AD590温度传感器的感测能力是温度每升高1 K就增加1 μA的电流,该电流流入10 kΩ电阻后,将产生0.01 K(0.01 V)的电压。而0℃(273 K)时,数尺电压值时273μA,经过I\V转换后,将产生2.73 V的电压。如果测到的电压是Xvs时,则可由(X-273)\0.01得到要测的温度。温度传感器ADS90的输出经过放大器后,将电压引入ADC0809的Vin(+)的管脚。
2.2 A/D转换器
ADC0809是CMOS的8位模/数转换器,采用逐次逼近原理进行A/D转换,芯片内有模拟多路转换开关和A/D转换两大部分,可对8路0~5 V的输入模拟电压信号分时进行转换。具体控制状态如下:
当CS和WR同时为高电平时,ADC0809开始转换,当转换完成后,在INT脚输出高电平,等待读数据;
当CS和RD同时为高电平时,通过数据总线D[7…0]从ADC0809读出数据。
当CS=1、WR=1、RD=0时,由控制器发出的信号要求ADC0809开始进行模/数信号的转换。
当CS=0、WR=0、RD=0时,ADC0809进行转换动作,转换完毕后INT将低电位升至高电位。
当CS=1、WR=0、RD=1时,由控制器发出信号以读取ADC0809的转换资料。
当CS=0、WR=0、RD=0时,由控制器读取数据总线上的数字转换资料。
2.3 继电器
继电器是一种电子控制器件,它具有控制系统和被控制系统,通常用于自动控制电路中,即用较小的电流去控制较大电流的一种“自动开关”。在电路中起着自动调节、安全保护、转换电路等作用。
该设计中采用电磁式继电器,该种继电器一般由铁芯、线圈、衔铁、触点簧片组成,给线圈加一合适电压,则有电流流过线圈产生电磁效应,衔铁在电磁力的作用下克服弹簧的拉力,从而使衔铁的动触点和静触点复合。当线圈断电后,拉力消失,则动触点和静触点分离。
3 系统工作流程
系统的工作流程图,如图5所示。
4 功能仿真
4.1 数据采集模块
在系统中数据采集模块的核心是AD0809,以下是对实现AD0809的电路进行仿真验证。
4.2 控制模块
控制模块主要实现的功能是温度调节控制模块和加热控制模块,以下对其分别进行仿真验证。
4.2.1 温度调节控制模块
由图8可知,当输入a、b时得出count的值,并且可以得到指示灯Y的状态。
4.2.2 加热控制模块
加热控制模块管角图以及时序仿真如图9,图10所示。
5 结束语
以硬件描述语言VHDL在可编程逻辑器件CPLD/FPGA中的应用为基础,进行了温度控制器的设计。选择设计一个简易的水温控制系统,采用FPGA进行控制的水温自动控制电路,使系统能简单地实现温度的控制及显示,并将EDA的软硬件资源、友好的人机界面和AFPGA优秀的实时控制功能、灵活的编程能力有机地结合起来,并且通过软件编程实现各种控制算法,使系统具有控制精度高的特点,实现对水温的自动控制,具有重要意义。
在仿真实践中遇到了不少问题,虽然能够在程序流程上得到把握,但在处理细节上时还是不能做到认真细致,尤其是针对VHDL语法比较严格的语言,稍不注意就可能带来令难以调试的错误,因此调试程序耗时较长。