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