1.温度传感器DS18B20介绍
DALLAS公司单线数字温度传感器DS18B20是一种新的“一线器件”,它具有体积小、适用电压宽等特点。一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。DS18B20支持“一线总线”接口,测量温度范围为-55℃~+125℃,在-10℃~+85℃范围内,精度为±0.5℃;通过编程可实现9~12位的数字值读数方式;可以分别在93.75ms和750ms内将温度值转化为9位和12位的数字量。每个DS18B20具有唯一的64位长序列号,存放于DS18B20内部ROM只读存储器中。
DS18B20温度传感器的内部存储器包括1个高速暂存RAM和1个非易失性的电可擦除E2RAM,后者存放高温度和低温度触发器TH、TL和结构寄存器。暂存存储器包含了8个连续字节,前2字节为测得的温度信息,第1个字节为温度的低8位,第2个字节为温度的高8位。高8位中,前4位表示温度的正(全“0”)与负(全“1”);第3个字节和第4个字节为TH、TL的易失性拷贝;第5个字节是结构寄存器的易失性拷贝,此三个字节内容在每次上电复位时被刷新;第6、7、8个字节用于内部计算;第9个字节为冗余检验字节。所以,读取温度信息字节中的内容,可以相应地转化为对应的温度值。表1列出了温度与温度字节间的对应关系。
温度与温度字节间的对应关系
2.系统硬件结构
系统分为现场温度数据采集和上位监控PC两部分。图1为系统的结构图。需要指出的是,下位机可以脱离上位PC机而独立工作。增加上位机的目的在于能够更方便地远离现场实现监控、管理。现场温度采集部分采用8051单片机作为中央处理器,在P1.0口挂接10个DS18B20传感器,对10个点的温度进行检测。非易失性RAM用作系统温度采集及运行参数等的缓冲区。上位PC机通过RS485通信接口与现场单片微处理器通信,对系统进行全面的管理和控制,可完成数据记录,打印报表等工作。 系统各模块分析如下:
2.1 DS18B20与单片机的接口电路
DS18B20与8051单片机连接非常简单,只需将DS18B20信号线与单片机一位I/O线相连,且一位I/O线可连接多个DS18B20,以实现单点或多点温度测量。DS18B20可以通过2种方式供电:外加电源方式和寄生电源方式。前者需要外加电源,电源的正负极分别与DS18B20的VDD和GND相连接。后者采用寄生电源,将DS18B20的VDD与GND接在一起,当总线上出现高电平时,上拉电阻提供电源;当总线低电平时,内部电容供电。由于采用外加电源方式更能增强DS18B20的抗干扰性,故本设计采用这种方式。在实际应用中,传感器与单片机的距离往往在几十米到几百米,传输线的寄生电容对DS18B20的操作也有一定的影响,所以往往在接口的地方稍加改动,以增加芯片的驱动能力和减少传输线电容效应带来的影响,达到远距离传输的目的。
2.2键盘及显示
键盘通过编程设置可完成以下功能:对温度值进行标定,定时显示各路的温度值,单独显示某路的温度值,给每一路设定上下限报警值等。LED则可为用户提供直观的视觉信息。在工作现场,用户可通过6位LED的显示数据来确定系统的当前工作状态以及采样的温度值信息等。
2.3报警电路
当被测温度值超过预先设定的上下限时,报警电路作出响应,蜂鸣器发出响声,告知用户温度的异常。具体哪一个传感器温度值超限,可由软件查询各DS18B20内部告警标志而确定,继而调整该现场温度,以达到对温度波动的控制。
3.软件设计及流程
3.1下位机软件
系统下位测温部分软件采用MCS51汇编语言编写,主要完成对DS18B20的读写操作,实现实时数据的采集,并获取最终温度值送至单片机内存。但需要注意的是,由于DS18B20的单总线方式,数据的读写都占用同一根线,所以每一种操作都必须严格按照时序进行。图2为测温子系统流程图。单片机首先发送复位脉冲,该脉冲使信号线上所有的DS18B20芯片都被复位,接着发送ROM操作命令,使得序列号编码匹配的DS18B20被激活。被激活后的DS18B20进入接收内存访问命令状态,内存访问命令完成温度转换、读取等工作(单总线在ROM命令发送之前存储命令和控制命令不起作用)。
3.2上位机软件
系统上位机的软件采用VC++6.0编写。主要完成的功能包括:与下位单片微机的实时通信;模拟显示各采集点温度曲线;保存各测温点温度数据;统计各采集点平均温度值;打印各点温度统计报表等。
程序流程图
4.结论
本系统具有如下特点:
结构简单,成本低廉,维护方便。
直接将温度数据进行编码,可以只使用单根电缆传输温度数据,通信方便,传输距离远且抗干扰性强。
配置灵活、方便、易于扩展。可扩展多路下位温度采集子系统,将它们通过RS485与上位PC机组网,形成多点温度采集网络。也可在各子系统中有选择性地增减温度传感器。
工作稳定,测温精度高。实验表明,在长达200m的一位总线上挂接24个DS18B20温度传感器,系统可正确地进行温度采集,分辨率为0.5℃。
适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。在大范围温度多点监控系统中具有十分诱人的应用前景。