基于单片机的小型开水锅炉控制系统设计Word文件下载.docx
《基于单片机的小型开水锅炉控制系统设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于单片机的小型开水锅炉控制系统设计Word文件下载.docx(45页珍藏版)》请在冰豆网上搜索。
3方案论证
3.1温度检测设计方案
方案
(1):
温度检测部分采用热电偶,经过温度变送后,对信号进行采样保持,A/D转换后,然后与单片机通信进行控制。
若温度检测部分采用热电偶,它需要冷端补偿电路与其配套,并且热电偶输出电压只有几毫负,必须经过放大处理才能A/D转换,外围电路复杂,占用单片机的接口多[2]。
方案
(2):
主要是以单片机作为控制器的核心,利用温度转换芯片DS18B20进行温度采集。
数字化温度传感器DS18B20是世界上第一片支持"
一线总线"
接口的温度传感器,测量温度范围为-55°
C~+125°
C,在-10~+85°
C范围内,精度为±
0.5°
C,现场温度直接以一线总线的数字方式传输,大大提高了系统的抗干扰性,使系统设计更灵活、方便。
同时DS18B20可使程序设定9~12位的分辨率,精度为±
C。
可选更小的封装方式,更宽的电压适用范围。
分辨率设定,及用户设定的报警温度存储在EEPROM中,掉电后依然保存,并且性能价格也非常出色。
图1方案
(1)结构框图
图2方案
(2)结构框图
由于热电偶属于非线性器件,因此每个温度值都必须通过分度表,查表才能获得,这给软件编程和数据处理增加了难度。
这种系统具有测量温度范围可以从零下一XX到上千摄氏度,而且有很多热电偶精度非常高这是这种测量系统的优点。
但构成系统复杂,抗干扰能力不强。
而数字温度传感器DS18B20,它的最高分辨率为12位,可识别0.0625摄氏度的温度[3]。
它具有直接输出数字信号和数据处理,并且它和单片机接口只需要一位I/O口,因此由它构成的系统简单使用,综合比较温度检测方案
(1)和方案
(2),我们只在常温下使用,并且经济合理,因此选择了方案
(2)。
3.2水位检测设计方案
采用电感式浮球传感器对其进行水位检测。
传感器液筒上的汽水管与锅炉筒相连接,使筒锅内的水位与液筒内水位互相连通。
当锅筒内水位变化时,液筒内水位相应发生变化。
液筒内浮球根据水位高低而发生变化,水位升高时,浮球向上浮。
水位下降时,浮球向下浮。
连接浮球上的矽棒在电感线圈内发生位移,使电感线圈两端电感量发生相应的变化,变化的电感量写入仪表,仪表接收这一变化的液位信号,转换成与液平面相应显示信号,系统根据水位的变化信号,自动调节给水流量,使水位稳定在正常区域,以确保锅炉的安全运行。
采用金属电极式进行水位检测。
在锅炉内的不同的高度安装3根金属棒,以感知水位变化情况。
其中A棒处于下限水位,C棒处于上限水位,B棒在上、下水位之间。
通过接头b、c与单片机通信,再配上水位显示电路,完成水位的检测和状态显示,单片机驱动控制电路,实现自动上水。
采用电感式浮球传感器对锅炉水位进行检测,检测精密,但该元件的成本太高。
采用金属电极式进行水位检测,电路简单易行,成本相对小,而且该技术应用广泛。
考虑综合因素,水位检测设计方案采用方案
(2)[4]。
4系统结构框图
系统整体电路方框图如图3所示。
图3系统整体结构框图
本系统主要由温度传感器、液位传感器、掉电存储、复位及时钟信号产生电路、报警电路、显示电路、开关控制电路以及AT89S51组成。
通过对锅炉水位和水温实时检测与采集,将锅炉的液位、温度等参数输入单片机,由单片机AT89S51在内部与预先设定参数通过软件计算生成各个控制信号,从而对补水泵和锅炉内部的电加热器进行控制,再配以外部的温度显示和水位状态显示以及报警装置,进而对锅炉进行优化控制,达到了用户的要求和节能目的。
操作过程如下:
用户首先设定水温数值,然后系统检测锅炉中水位。
如果水位正常则系统开始启动,否则产生声光报警并进行自动保护。
系统正常运行以后,利用传感器DS18B20检测出锅炉中的水温,并且实时显示出来。
当水温超过设定上限,系统同样会发出报警信号并采取保护措施,控制加热器工作情况。
当水温未达到设定值,立即回馈给系统,由系统自动调整加热器工作状态,使水温到达设定值,满足用户需求。
5单片机外围器件的设计
5.1元件选择及介绍
5.1.1单片机AT89S51
本设计采用AT89S51作为中央处理单元,它是是一个低功耗,高性能CMOS8位单片机,片内含4kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。
AT89S51具有如下特点:
40个引脚,4kBytesFlash片内程序存储器,128bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。
此外,AT89S51设计和配置了振荡频率可为0~24MHz并可通过软件设置省电模式。
空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。
同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。
40个引脚,4kBytesFlash片内程序存储器,128bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。
此外,AT89S51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。
AT89S51的主要特性:
(1)8031CPU与MCS-51兼容
(2)4K字节可编程FLASH存储器(寿命:
1000写/擦循环)
(3)全静态工作:
0Hz-24KHz
(4)三级程序存储器保密锁定
(5)128*8位内部RAM
(6)32条可编程I/O线
(7)两个16位定时器/计数器
(8)6个中断源
(9)可编程串行通道
(10)低功耗的闲置和掉电模式
(11)片内振荡器和时钟电路
AT89S51的引脚结构(如图4)及各管脚说明:
VCC:
供电电压
GND:
接地
P0-P3:
分别是8位准双向I/O端口,但P0在作为一般的I/O端口用时,应外接上拉电阻,才能高电平输出
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间
ALE/PROG:
地址锁存允许信号端。
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现
/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;
当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入
XTAL2:
来自反向振荡器的输出
5.1.2温度传感器DS18B20
传统的温度传感器如热电偶和铂电阻等分立元件,外围电路比较复杂,仅提供与温度相关的电压或电流。
而较新型的单片集成温度传感器如AD590,也只能产生与温度呈线性关系的电流信号。
上述两种传感器都必须使用电阻、运算放大器和A/D转换器等构成温度测量电路。
当外界环境条件发生变化时元件参数也会改变,致使测量误差增加,准确度降低。
本系统采用的是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器DS18B20,它可以把温度信号直接转换成串行数字信号供单片机处理,采用单线接口,仅需一根口线与MCU相连,无需外围元件。
其突出优点是:
将被测温度直接转换成数字信号输出。
它在测温精度、转换时间、传输距离、分辨率等方面都比DS1820有所改进。
在解决各种误差、可靠性和实现系统优化等方面,有无可比拟的优越性。
DS18B20的主要特点:
(1)采用单总线方式,仅需一根信号线与CPU连接即可传送串行数据,且不需要外部元件
(2)每个芯片都有惟一编码,多个DS18B20芯片可以并联在一根总线上,故可实现多点测温
(3)测温范围为-55~125℃,分辨率为12位
(4)测温结果的数字量位数为9~12位,并可编程选择
(5)可用数据线供电,也可用外部电源
DS18B20的结构:
DS18B20采用3脚PR-35封装(或8脚SOIC封装),其中3脚PR-35封装的DS18B20,其外形象一个三极管,管脚排列如图5所示。
图中,GND为地;
DQ为数据输入/输出端(即单线总线),为漏极开路输出,常态下呈高电平;
VDD为外部电路端,电源电压为+5V,不用时应接地。
DS18B20的内部结构如图6所示,主要包括寄生电源、温
度传感器、64位激光ROM、高速暂存器、用于存储用户设定的温度上下限值的TH和TL触发器、存储与控制逻辑、8位循环冗余校验码发生器等七部分。
其中ROM由64位二进制数字组成,它由生产厂家光刻而成,共分为8个字节,字节0的内容是该产品的厂家代号28H,字节1~6的内容是48位器件序列号,字节7是ROM前56位校验码。
每个DS18B20的64位序列号均不相同,它可以看作是该DS18B20的地址序列码。
ROM的作用是使每一个DS18B20都各不相同,这样,就可以在一根总线上挂接多个DS18B20。
图6DS18B20内部结构
(1)寄生电源
寄生电源由二极管VD1、VD2和寄生电容C组成。
电源检测电路用于判定供电方式。
寄生电源供电时,VDD端接地,器件从单线总线上获取电源。
在DS线呈低电平时,改由C上的电压继续向器件供电。
该寄生电源有两个优点:
第一,检测远程温度时无需本地电源;
第二,缺少正常电源时也能读ROM。
若采用外部电源VDD,则通过VD2向器件供电。
(2)温度测量原理
DS18B20测量温度时使用特有的温度测量技术。
其测量电路框图如图7所示。
DS18B20内部的低温度系数振荡器能产生稳定的频率信号f0,高温度系数振荡器则将被测温度转换成频率信号f。
当计数门打开时,DS18B20对f0计数,计数门开通时间由高温度系数振荡器决定。
芯片内部还有斜率累加器,可对频率的非线性予以被偿。
测量结果存入温度寄存器中。
一般情况下的温度值应为9位(符号点1位),但因符号位扩展成高8位,故以16位被码形式读出,表1给出了温度和数字量的关系。
(3)64位激光ROM
64位ROM的结构图如图8,开始8位是产品类型的编号(DS1820为10H),接着是每个器件的唯一的序号,共有48位,最后8位是前56位的CRC校验码,这也是多个DS1820可以采用一线进行通信的原因。
主机操作ROM的命令有五种,如表2所示。
表1温度和输出数字的对应关系
温度/℃
数字输出(二进制数)
数字输出(十六进制)
+125
0000011110010000B
07D0H
+25
0000000110010001B
0191H
+0.5
0000000000001000B
0008H
0000000000000000B
0000H
-0.5
1111111111111000B
FFF8H
-25
1111111001110000B
FE70H
-55
1111110010010000B
FC90H
图864位ROM的结构图
表2存储器操作命令
指
令
说
明
读ROM(33H)
读DS1820的序列号
匹配ROM(55H)
继读完64位序列号的一个命令,用于多个DS1820时定位
跳过ROM(CCH)
此命令执行后的存储器操作将针对在线的所有DS1820
搜ROM(F0H)
识别总线上各器件的编码,为操作各器件作好准备
报警搜索(ECH)
仅温度越限的器件对此命令作出响应
(4)高速暂存器
它由便笺式RAM和非易失性电擦写EERAM组成,后者用于存储TH、TL值。
数据选写入RAM,经校验后再传给EERAM。
便笺式EAM点9个字节,包括温度信息(第1、2字节)、TH和TL值(3、4字节)、计数寄存器(7、8字节)、CRC(第9字节)等,第5、6字节不用。
暂存器的命令共6条,见表3所列。
表3DS18B20的存储控制命令
指令
说明
温度转换(44H)
启动在线DS1820做温度A/D转换
读数据(BEH)
从高速暂存器读9bits温度值和CRC值
写数据(4EH)
将数据写入高速暂存器的第2和第3字节中
复制(48H)
将高速暂存器中第2和第3字节复制到EERAM
读EERAM(B8H)
将EERAM内容写入高速暂存器中第2和第3字
读电源供电方式(B4H)
了解DS1820的供电方式
在正常测温情况下,DS1820的测温分辨力为0.5℃,可采用下述方法获得高分辨率的温度测量结果:
首先用DS1820提供的读暂存器指令(BEH)读出以0.5℃为分辨率的温度测量结果,然后切去测量结果中的最低有效位(LSB),得到所测实际温度的整数部分Tz,然后现用BEH指令取计数器1的计数剩余值Cs和每度计数值CD。
考虑到DS1820测量温度的整数部分以0.25℃、0.75℃为进位界限的关系,实际温度Ts可用下式计算:
Ts=(Tz-0.25℃)+(CD-Cs)/CD
(1)
(5)CRC的产生
在64位ROM的最高有效字节中存储有循环冗余校验码(CRC)。
主机根据ROM的前56位来计算CRC值,并和存入DS1820中的CRC值作比较,以判断主机收到的ROM数据是否正确。
CRC的函数表达式为:
CRC=X8+X5+X3+1。
此外,DS1820尚需依上式为暂存器中的数据来产生一个8位CRC送给主机,以确保暂存器数据传送无误。
DS18B20的工作时序
根据DS18B20的通信协议,用主机控制DS18B20以完成温度转换必须经过三个步骤:
每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。
每一步操作必须严格按照时序规定进行。
DS18B20的工作时序包括初始化时序、写时序和读时序。
(1)初始化时序
DS18B20的初始化时序图如图9所示。
(2)写时序
DS18B20的写时序图如图10所示。
(3)读时序
DS18B20的写时序图如图11所示。
图9DS18B20的初始化时序图
图10DS18B20的写时序图
图11DS18B20的读时序图
DS18B20的工作流程
无论是进行单点还是多点温度检测,在系统安装及工作前,应将主机逐个与DS18B20挂接,读取其序列号,其工作过程为由主机与DS18B20联接的位1/O口发“0”电平>
480p。
复位DS18B20,待DS18B20发回响应脉冲后,主机由位1/O线再发读ROM命令代码33H,然后依此发一个负脉冲(15p),并接着读取DS18B20序号值的一位。
同样方法读取序号值的56位。
对于带有多个DS18B20传感器,用以实现多点温度测量的系统,分三步完成全过程工作:
(1)系统通过重复操作,搜索出在线各个DS18B20序列号
(2)启动所有在线DS18B20作温度/数字转换
(3)逐个读出在线DS18B20转换后的温度数据
5.1.3掉电存储器AT24C02
当程序因受到干扰而弹飞到一个临时构成的死循环中时,系统将安全瘫痪。
本系统采用AT24C02芯片构成WATCHDOG。
掉电存储单元的作用是在电源断开的时候,存储当前设定的温度值。
AT24C02是ATMEL公司生产的
2KB电可擦除存储芯片,是8位电可擦除PROM,由256×
8位存储器构成,并具有两线串行接口。
遵循I2C总线协议与单片机通讯,电压最低可以到2.5V,额定电流为1mA,静态电流10uA(5.5V),芯片内的资料可以在断电的情况下保存40年以上,而且采用8脚的DIP封装,使用方便。
系统在上电过程、瞬间电压降压或存在瞬间干扰脉时,WATCHDOG电路都能正确地给出复位脉冲信号,使系统恢复正常的运行状态,保证了锅炉的正常运转。
AT24C02的引脚结构如图12所示,其管脚功能如表4所示。
名称
功能
GND
接地端
SDA
串行地址/数据I/O端
SCL
串行时钟端
WP
写保护输入端
VCC
+2.5V到5.5V电源端
NC
无内部链
表4AT24C02的管脚功能5.1.4固态继电器SSR
固态继电器英文名称为SolidStateRelay,简称SSR,它是一种性能优越的新型无触点电子开关器件。
其输入端要求很小的控制电流,输出回路采用双向可控硅或大功率晶体管接通或断开负载电流。
输入与输出之间采用光电耦合,通断无可动接触部件,因此工作可靠,具有开关速度快,无噪声、寿命长、体积小等特点。
该电路采用的SSR的型号是MOC3063,其内部电路原理图如图13。
该电路由输入恒流控制电路、光电耦合隔离电路和输出功率开关电路三部分走成。
该类型的固态继电器的输出功率开关由两只双向可控硅并联担任,负载电流可高达90A。
输入控制电压可在3V~32V间的范围变化
5.2硬件电路具体设计与实现
5.2.1水温采集部分
水温采集部分主要由数字温度传感器DS18B20、AT89S51和上拉电阻组成,其工作电路如图14所示。
DS18B20采用外部5V电源供电,数据端DQ与单片机AT89S51的P3.4连接,DS18B20与单片机AT89S51的通信