APP下载

分布式温度测量与控制系统的设计

2010-04-18李晓慧周孝进徐晓明

科技传播 2010年19期
关键词:子程序温度传感器测温

李晓慧,周孝进,徐晓明

苏州大学物理科学与技术学院,江苏苏州 215000

0 引言

温度是工业生产中常见的和最基本的参数之一,在生产过程中常需对温度进行检测和监控[1]。近年来,利用单片机和传感器实现对温度的精确测量,提高了生产的自动化程度,且成本低廉,应用十分广泛,因此,研究温度的测量方法和装置具有重要的意义[2]。本文所用温度传感器是美国DALLAS公司生产的DS18B20,它集温度测量和A/D转换于一体,直接输出数字量,传输距离远,可以很方便地实现多点测量,硬件电路结构简单,与单片机接口几乎不需要外围元件[3]。

本文研究的对象是分布式测温系统,之前关于这方面的研究还存在如下问题:1)单片机的选择过于复杂;2)分布的点不够多,不能反应环境整体情况;3)多数系统仅有测温显示部分,缺少其他的辅助部件;4)有些模块不简化,系统过于冗杂等。本文在分布式测量的基础上,采用多个数字温度传感器DS18B20结合Atmega16芯片和PC机,设计出温度采集和控制系统。该系统不仅能对多点温度进行测量和显示,同时对遇到超出PC机的温度设置范围的情况能及时发出报警信号并控制功率设备工作。

1 数字式温度传感器DS18B20

1.1 DS18B20性能特点

DS18B20是一款单总线数字式温度传感器。测试温度范围为-55~+l25℃,精度为0.5℃,测量的温度值用9~12位数字表示,最大转换时间为750ms。转换分辨率和温度超标报警的上、下限值都可由用户设定。DS18B20利用DALLAS的单总线控制协议和单线控制信号在总路线上来实现数据的读写。它的工作电压为3V~5.5V(将外部电源接在VDD脚),在没有外部电源的情况下,电源由总线为高电平DQ脚上的上拉电阻提供(寄生供电模式),此时VDD脚接地。

1.2 DS18B20的工作原理

DS18B20的具体测温原理如下。低温度系数晶振的振荡频率受温度的影响很小,用于固定频率的脉冲信号;高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为脉冲输入。根据低温度系数晶振和高温度系数晶振的差可以计算出准确温度。

当DS18B20处于写存储器操作和温度A/D转换操作时,总线上必须有很强的上拉,采用寄生电源供电方式时VDD和GND端需接地。另外,由于单线制只有一根线,因此发送接口必须是三态的。同时,系统对DS18B20的各种操作必须按协议进行,其操作协议为:初始化DS18B20——ROM功能命令——发存储器操作命令——处理数据。

2 硬件系统设计

为了达到分布式温度测量与显示功能,系统分为5个模块:电源模块、测温模块、报警模块、显示模块和控制模块。该系统的整体结构框图如图1所示:

图1 系统结构框图

2.1 电源模块

电源电路输出电压+5V的稳压电源,它由电源变压器B,桥式整流电路BRIDGE,滤波电容C1、C3,防止自激电容C2、C4和一只固定式三端稳压器(LM7805)搭成的。

2.2 测温模块

温度传感器用数字式DS18B20,采用单总线模式与单片机相连,逐个测得温度,送到单片机处理,求得平均温度。

2.3 显示模块

显示电路采用7SEG-MPX4-CC四位LED数码管,PC口输出断码,扫描通过PA.4-PA.7控制。单片机处理后的数据送到显示口,先逐个显示各个DS18B20的数据,然后显示平均值,同时在其中加入时间模块,可以显示出每个点的测温时间。

2.4 报警模块

报警电路由一个三极管和蜂鸣器所组成,其控制部分由三极管、二极管、电阻以及继电器所组成,其信号是从单片机的一个准双向口输出到三极管的基极。用键盘可以对报警的上下限进行设置。报警装置后连接一个功率控制单元(如电机、风扇等设备),根据温度与设定值的比较,相应启动该单元。

2.5 控制模块

Atmega16单片机通过RS232和RS485的转换接口与PC机相连,通过键盘的人机界面,控制运行的程序和显示结果的处理。

3 软件系统设计

在设计程序时,由于DS18B20采用单总线的数据传输方式,所有的输入和输出都是通过一条总线实现的,因此它的时序就显得非常重要。所有的数据传输必须从字节的低位开始,编写程序时必须按照其对应的时序操作,否则不能获得完整正确的数据。本系统程序主要分为主程序和子程序两部分。

3.1 主程序

主程序的主要功能是负责温度的实时显示, 读出并处理DS18B20的测量温度值。其主要包括4个部分,即初始化部分、读取温度值部分、调用显示子程序以及结束返回部分。

3.2 读出温度子程序

读出温度子程序是先对单个DS18B20进行温度测量,然后用扫描方式,即每隔一秒读取其中一个,这样依次读取各个温度值,用数码管LED进行显示。

3.3 报警子程序

报警子程序是当单片机读取完数据后就开始检测温度值是否超过了预设的温度值范围。其程序流程图如图2所示:

图2 报警子程序流程图

4 实验仿真

图3 实验结果显示图

本实验(以8个DS18B20为例)采用Proteus软件进行仿真。若以8个DS18B20计算,各点所测温度为25℃,26℃,24℃,24.5℃,26.5℃,26℃,25℃,25.5℃,则用数学方法得平均温度为25.3125℃,而显示温度为25.3℃。结果如图3所示(见左图)。

5 结论

本文设计的分布式温度测量和控制系统,有效地结合了多个DS18B20芯片进行分布式温度采集,并且实时显示。Atmega16芯片可以根据PC机的温度设置范围发出报警和控制信号。实验结果表明,本系统,可以有效地对8个点的温度进行测量并分别显示,遇到超出PC机的温度设置范围的情况能及时发出报警信号并控制风机设备工作。系统可以广泛应用在工农业等温度测量及控制领域。

本文设计的系统的各模块采用有线衔接方式,有待集成、简化,并且要向智能化、精简化和无线化发展。Atmega16芯片可以最多衔接16路温度测量模块,如果换用更高性能的芯片或采用分层次衔接,可以衔接64路或更多的测温子模块。这些都有待进一步研究。

[1]卜范玉,王晓飞.单片机在数字式多路温度采集系统中的应用[J].管理观察,2009,4:179-180.

[2]黄慧,殷兴辉.基于DS18B20的高分辨率温度数据采集[J].电子测量技术,2009,6(32):131-133.

[3]易丽华,黄俊.基于AT89C51单片机与DS18B20的温度测量系统[J].电子与封装,2005,5(9):39-43.

[4]陈雷,王忠东,陈爽.基于虚拟仪器的分布式温度监控系统[J].仪表技术与传感器,2009,6:64-67.

[5]朱群峰,黄磊,唐杰,王跃球.基于DS18B20的单总线多路温度采集系统[J].仪表技术,2008,12:29-31.

猜你喜欢

子程序温度传感器测温
温度传感器DS18B20在温度计设计中的应用
一种高性能CMOS温度传感器
基于WiFi无线通信测温系统的设计
XTR105电流变送器在温度传感器中的应用
变压器光纤测温探头的安装固定
基于DS18B20的单片机测温系统
温度传感器在笔记本电脑散热系统中的应用
子程序在数控车加工槽中的应用探索
一例红外测温技术诊断220kV隔离开关过热缺陷