水温恒温控制嵌入式系统设计
- 格式:doc
- 大小:234.50 KB
- 文档页数:16
水温恒温控制嵌入式系统设计
1概述
1.1发展历史
温度控制电路广泛使用于社会生活的各个领域,如家用电器、汽车、材料、电力电子等,同时在很多工业使用场合都需要温度的恒定控制,比如电加热炉,烟叶初烤炕房,某些传感器的工作环境温度等。同时,在实际工作和科研中,许多实验均需要用加热器来加热实验对象,使其达到并保持在某一设定温度,而且在实验过程中,对象的温度有时要求稳定性很高,有时需要不断地调节。正因为如此,恒温的控制在工业和科研中占有非同一般的地位。
水温恒温控制就是其中的一种。水的恒温控制是利用对加热系统(热源)的控制,使之在不同的温度输出不同的功率,使得在水温我们预设的温度附近作为小的变动,而不会超出太大的范围,从而达到我们使用的要求。在预设温度的附近时,温度和加热器、散热器之间的关系是很微妙的,我们没办法控制任意时刻的准确的水温,但是我们可以通过测量来判断其变化的趋势,和变化的幅度,从而来使之朝着我们预想的方向进行。
1.2发展现状和发展方向
常用的水温恒温控制系统根据使用场合和所要求的性能指标有所不同,主要分为继电器恒温控制系统,PID恒温控制系统以及电子式(多用可控硅)恒温控制系统等几种。
传统的继电器恒温控制系统简单实用,但由于继电器动作频繁,可能会因触点不良而影响正常工作。
PID控制即比例、积分、微分控制。自19世纪40年代开始以来,广泛使用在工业生产中,长期以来,由于其结构简单、实用、价格低,在广泛的过程领域内可以实现满意的控制。PID算法根据比例、积分、微分系数计算出合适的输出控制参数,利用修改控制变量误差的方法实现闭环控制,其缺点是现场
PID参数整定麻烦,被控对象模型参数难以确定。
可控硅恒温控制系统的特点是体积小、无噪声、调节方便、控制精度高,但会对电网产生一定影响,适用于科研实验等小功率加热器。
1.3 本系统设计说明
本文设计的水温恒温控制嵌入式系统采用以凌阳系列单片机的SPCE061单片机作为控制核心,来实现对温度的恒定控制,除了单片机控制模块,还包括温度传感器采样模块、A/D转换模块、温度显示模块、设置/存储预定温度模块、加热电路模块、散热电路模块,本系统的设计电路比较简单,控制效果好。设计可以显示0°到100°范围内的温度,显示精度可以包括小数位。系统的静态误差不大于0.2℃ ,超调量较小。本系统的单片机程序代码放在上交的电子版的设计内容的附录中,且程序在unsp开发环境(IDE)下经过调试通过可以正常的使用。
2系统原理介绍
2.1系统工作原理介绍
本系统的结构框图如下图1所示:
图1.系统框图
从图中易可知,本设计系统主要包括如下几部分:单片机控制模块、温度传感器采样模块、A/D转换模块、温度显示模块、设置/存储预定温度模块、加热/散热电路模块。 温度传感器采样 A/D转换 单片机控制
水 加热/散热电路 温度显示 设置/存储预定温度
系统的工作流程是这样的:首先用户要先使用设置/存储预定温度模块设置和存储预定的温度;温度传感器采样模块对水温进行采样,将采集到的温度传给A/D转换模块,A/D转换模块将此温度对应的数值传给单片机控制模块,单片机控制模块会判断此温度是否在用户预定的温度+/-0.5°的范围内,如果两个温度不等就会调用加热/散热电路模块,即如果此温度高于用户设定温度0.5°以上,则散热电路就会开启以将当前的水温降到预定的温度+/-0.5°的范围内,反正则会启动加热电路以加热当前的水。同时如果用户想显示当前的水温或者预定的水温,都可以通过温度显示模块显示,而如果用户要改变当前的预定水温,可以通过设置/存储预定温度模块进行设置。
2.2系统设计依据和方法介绍
1.单片机控制模块:它的设计采用凌阳系列单片机的SPCE061单片机作为控制核心,来实现对温度的恒定控制。之所以选择这款单片机,是因为原来在本科阶段学习时接触过这款单片机,对它有一定的了解,SPCE061拥有普通十六位单片机所不具备的各种功能,配合它的开发工具非常简单可靠,它的开发环境(unSP IDE)非常经典易用,它还拥有高档微处理器的端口特性,功能强大,而且功耗低,性价比高,是嵌入式使用中较好选择,值得一提的是,这款芯片的IOB口的IOB1和IOB2分别可以用于SCK和SDA以支持I2C总线,在下一节将专门对I2C总线进行一些介绍。
2.温度传感器采样模块:它的设计对于系统的成功和否是非常关键的,对于它的测量部分,参考温度测量方面的相关资料,提出了两个方案:
方案一:采用热敏电阻,可满足40℃~90℃的测量范围,但热敏电阻精度、重复性、可靠性都很差,对于检测小于1℃的温度信号是不适用的。
方案二:采用温度传感器AD590K。AD590K具有较高的精度和重复性(其良好的非线性可以保证优于0.1℃的测量精度),利用其重复性较好的特点,通过非线性补偿,可以达到0.1℃的测量精度。
对比这两个方案,第二种明显优于第一种,所以选择集成温度传感器AD590K作为温度传感器件。
3. A/D转换模块:采用常用的A/D转换器MAX153对由温度传感器
AD590K及温度/电压转换电路采集提供的温度信号进行A/D转换得到数字信号,然后输入到单片机,系统即可获取所要采集的温度数值。
4. 温度显示模块:采用支持I2C总线的MAX7219驱动8个数码管来实现显示功能,可以显示0°到100°范围内的温度,显示精度可以包括小数位,其实4块数码管就已经足够使用了,但是因为MAX7219最多支持驱动8个数码管,考虑到以后功能扩充方面的问题,就选用了8块数码管。
5. 设置/存储预定温度模块:此模块设计包括键盘设计部分和EEPROM设计部分,其中设置四个按键分别对应完成显示预定温度、显示当前温度、对预定温度加一、对预定温度减一功能,采用支持I2C总线的DS1307芯片作为系统的扩展EEPROM存储器,它用于存储预定的温度。
6.加热/散热电路模块:此模块采用较简单的加热/散热电路,加热电路由一个电热器和一个光电隔离开关(包括一个光电二级管和一个三端双向可控硅)来组成,其中光电隔离开关来接收单片机模块的控制信号来控制电热器的开关状态,散热电路由一个电风扇和一个场效应管组成,也是由场效应管接收单片机模块的控制信号来控制电风扇的开关状态。
2.3 I2C总线介绍
I2C (Inter Integrated Circuit)总线是1980年由Philips公司推出的。I2C总线用两条线(SDA和SCL)在总线和装置之间传递信息,在微控制器和外部设备之间进行串行通信或在主设备和从设备之间进行双向数据传送。两条通信线通过上拉电阻被拉升至+5 V。在控制系统中的每个集成电路可以通过一个CMOS缓冲器来读每一条线路,也可以通过一个栅极开路的FET管将每一条线的电平下拉。因此,对每个芯片来说,每条线既是输入线,又是输出线。I2C总线遵从同步串行传输协议,即各位串行(一位接一位)发送,由时钟(clock)线指示读数据(data)线的时刻。每个数据包前有一个地址,以指示由哪个器件来接收该数据。
I2C总线最主要的优点是其简单性和有效性,且支持多主控,它只需两线(一串行数据线SDA及一串行时钟线SCL),每个连线到总线的器件以单一不同的地址,用软件来存取。由于接口直接在组件之上,因此I2C
总线占用的空间非常小,从而减少了电路板的空间和芯片管脚的数量,降低了互联成本。
同时由于我们的单片机的IOB口的IOB1和IOB2分别可以用于SCK和SDA以支持I2C总线,再加上I2C总线的这一系列的优点,使得我们在扩展外围存储器和温度显示模块的芯片选型时专门选取了支持I2C总线的DS1307和
MAX7219芯片。
它的数据传输过程如下图2所示,每一个放上SDA线的字节为8位长,每一次传送的字节数量没有限制,每字节必须有一确认位跟随。数据传送以最高有效位为先。在开始条件之后,一个从属地址被送出,这个地址是7位长,然后是第8位,它是一个数据方向位(读/写),其中"0"代表发送(写入),"1"代表需求数据(读入),数据传送通常以主控器所发出的停止条件(P)结束。
图2. I2C总线的数据传输过程
3硬件系统设计介绍
3.1嵌入式处理器选型设计介绍
本系统采用凌阳系列单片机的SPCE061单片机作为系统的嵌入式处理器,它的CPU内核采用凌阳的unsp(Microcontroller and Signal Processor)16位微处理器芯片,它采用的是模块式集成结构,以unsp内核为中心集成不同规模的ROM、RAM和功能丰富的各种外设接口部件。它的结构示意图如下图3所示。
图3. SPCE061单片机结构示意图
SPCE061A共有84个引脚,封装形式为PLCC84,它的管脚示意图如下图4所示。
图4. SPCE061单片机管脚示意图
它的各个管脚的功能描述如下表1所示
表1. SPCE061单片机管脚功能描述
3.2温度传感器采样模块设计介绍
系统的温度传感器采样模块由温度传感器AD590K及温度/电压转换电路组成,利用AD590温度传感器将温度信号转换为电压信号,温度的变化会引起AD590的电阻的变化,从而引起OP07的2端口电压的变化,通过运放从6端
口输出电压V0给A/D转换模块.电路原理图如下图5所示:
图5. 温度采集电路
3.3 A/D转换模块设计介绍
图6. A/D转换电路
从上图6可知,从温度传感器采样模块标记采集温度值的电压V0输入到A/D转换器MAX153的VIN端,单片机控制模块通过给出MAX153的RD、WR、MAX153_CS控制信号来控制它的工作,同时从MAX153的D0-D7获取转换出来的标记实时温度值的数值。
3.4温度显示模块设计介绍
本模块采用MAX7219驱动8个数码管来实现显示功能,LD端接收单片机的控制信号以实现显示功能,由于它支持I2C总线,直接通过和后面会讲到的系统的扩充存储器EEPROM、单片机的IOB口的IOB1和IOB2端相连来实现对 (预定及当前实际)温度数据的获取,可以显示0°到100°范围内的温度,显示精度可以包括小数位。其具体电路图如下图7所示。
图7. 温度显示电路
3.5外扩存储器设计介绍
选用支持I2C的DS1307芯片作为系统的扩展EEPROM存储器,它用于存储预定的温度,它的SCL、SDA端要和MAX7219的SCL、SDA端相连,并同时连上单片机的IOB口的IOB1和IOB2端,以将用户设定的预定温度存储起来,还可以提供给显示模块进行显示,其设计电路如下图8所示。