基于DS18B20温度传感器的温度测量系统设计
2018-06-05张仲明郭东伟张立明
张仲明, 郭东伟, 吕 巍, 张立明
(1. 吉林大学 计算机科学与技术学院, 吉林 长春 130012; 2. 吉林大学 物联网虚拟仿真实验教学中心, 吉林 长春 130012)
温度测量与控制是工业自动控制的重要组成部分,在工业、电子、精度实验等领域有着普遍的应用[1]。温度是工业对象中主要的被控参数之一,因此温度控制是生过过程自动化中的一项主要任务[2]。特别是在温室产业快速发展的今天,通过自动监控系统有效调控温室的温湿度环境,对温室产业的发展具有重要意义[3]。对于一些类似于煤矿等极端恶劣危险的工作场所,温度监测仪器则显得尤为重要[4]。本文的温度测量与控制系统由DS18B20温度传感器、STC89C516RD+单片机与LCM液晶显示屏组成。DS18B20具有精度高、抗干扰能力强和硬件开销低的特点,封装之后可以装备于冷冻库、粮仓、电力机房等场所用于粮仓测温、机房测温以及大棚种植测温等方面。STC89C516RD+单片机具有高抗静电、超低功耗、容易维护且性能稳定等特点。因而它们十分适合于温度测控方面的应用。
1 系统设计
本系统由DS18B20温度传感器、STC89C516RD+单片机与LCM液晶显示屏组成。DS18B20温度传感器用于温度的测量并将测出的温度值转换为数字信号量,交由STC89C516RD+单片机进行采集和处理,最后将处理结果传送至LCM液晶显示屏。系统硬件结构如图1所示:
图1 系统硬件结构图
1.1 DS18B20温度传感器
DS18B20温度传感器是美国Dallas公司生产的体积小、精度高、抗干扰能力强的单总线数字温度传感器[5]。它具有低功耗、高性能,能够多点测温并易配处理器等优点。DS18B20传感器的工作电源是3.0~5.5 V/DC,它的可编程的分辨率为9~12位,测温范围为-55 ℃~+125 ℃,分辨率可达0.062 5 ℃[6]。由于多个DS18B20可以挂载在一根通信线上,因而应用起来十分方便。
DS18B20内部结构由64位ROM闪存、温度传感器、非易失性温度报警触发器TH和TL组成,如图2所示。其中暂存器用于存放测量结果,使用存储器的操作命令可以读出暂存器中的数据。TH和TL各由一个EEPROM字节构成。同样需要使用存储器的操作命令对TH和TL进行写入,对它们的读出则需要暂存器。
图2 DS18B20内部结构
图3 DS18B20测温原理图
DS1820有2个不同温度系数的振荡器,即低温度系数振荡器和高温度系数振荡器(见图3)。低温度系数振荡器输出的时钟脉冲信号在高温度系数振荡器产生的门周期内进行计数[7]。高温度系数振荡器用来确定一个门周期,基于这一门周期,计数器通过对一个低温度系数振荡器的脉冲进行计算来获得温度值。如果计数器在高温度系数振荡器输出的门周期结束前计数为零,则温度寄存器的值加1,这表明所测温度大于-55 ℃。重复该过程,直至高温度系数振荡器门周期结束为止,这时温度寄存器存储的就是测出来的温度值。主机通过发送读存储器命令读出该温度值后还要进行取补和十进制转换,进而得到实测的温度值。斜坡式累加器用来补偿和修正温度振荡器的非线性,从而获得较高的温度分辨力。DS1820能够提供0.5 ℃的分辨力,要想获得所需的分辨力,需要通过改变计数器对温度每增加1 ℃(斜坡式累加器)所需计数的值,因此,必须同时知道在给定温度下计数器的值和每度的计数值。
表1提供了温度值和输出数据间的关系,温度以16比特位+符号位的二进制补码形式读出,数据则以串行方式通过单线接口进行传输。由表中可知,DS1820的测温范围为-55 ℃~+125 ℃。若涉及到华氏温度,则通过转换因子查找表。
表1 温度/数据关系表
1.2 STC89C516RD+单片机
STC89C516RD+是STC公司推出的一款单片机,它具有以下优点[8]:
(2) 抗静电能力强,6 kV静电可以直接打在芯片管脚上;
(3) 抗干扰能力强,能够轻松避过2 kV/4 kV快速脉冲干扰;
(4) 支持在线系统串口编程功能;
(5) 6时钟/机器周期与12时钟/机器周期可任意设置;
(6) 加密性强,解密十分困难;
(7) 1280B内存RAM,63KB闪存,完全适用于小型嵌入式系统的需求。
本文使用的是STC89C516RD+单片机结构[9],封装形式为PQFP。它具有如图4所示的36个可操作的I/O口。
图4 STC89C516RD+单片机结构
该结构采用MAX4634(8个型号)的4路模拟多路复用器/开关对单片机的P0口进行扩展。MAX4634具有NO1、NO2、NO3和NO4共4个通道可供选择。STC89C516RD+的2个I/O用来控制MAX4634的选择管脚A0和A1的电平状态,从而切换该开关的通道。对应关系:若选择NO1,则A0的电平为0,A1的电平为1;若选择NO2,则A0电平为1,A1电平为0;若选择NO3,则A0电平为0,A1电平为1;若选择NO4,则A0电平为1,A1电平为1。
1.3 LCM液晶显示屏
液晶显示器的选择需要考虑到功能和成本[10]。本文使用图形点阵液晶显示器YM12864C,这是一个集成的液晶显示屏驱动芯片。该芯片由行驱动器和列驱动器组成了128(列)64(行)的全点阵液晶显示,可显示8(每行)4(行)个(1616点阵)汉字。行驱动电路一般是是利用多个译码器完成每行的选中[11]。YM12864C采用5条位控制总线和8位并行数据总线实现与CPU的接口。通过采用COB的软封装方式,显示器通过压框和导电橡胶[12]与LCD相连接,使其连接可靠,且使用寿命长。内部有显示数据锁存器,自带上点复位电路。YM12864C的引脚特性见表2。
表2 YM12864C的引脚特性
液晶显示模块和单片机的连接见图5。其中数据口对应连接到单片机的P0口,控制引脚分别与单片机P2.4—P2.6连接。单片机P2.7口连接到三极管控制背光是否开启[10]。
图5 液晶显示模块和单片机的接口
2 实验设计与仿真
2.1 实验设计
本实验使用STC89C516RD+单片机实验板。单片机的P1.4与DS18B20的DQ引脚相连,进行数据和命令的传输。单片机的P1.1连接热电阻。当P1.1为高电平时,热电阻加热。温度控制的方法采用PID控制实现。使用C51语言编写实现温度控制的功能,使用超声波/温度实验板测量温度,将温度测量的结果(单位为摄氏度)显示在LCM液晶显示屏上。根据系统设计方案构建的实验电路见图6。
图6 实验电路
本实验使用的DS18B20是单总线数字温度计,测量范围从—55 ℃~+125 ℃,增量值为0.5 ℃。用于储存测得的温度值的2个8位存储器RAM编号为0号和1号。1号存储器存放温度值的符号,如果温度为负(℃),则1号存储器8位全为1,否则全为0。0号存储器用于存放温度值的补码LSB(最低位)的1表示0.5 ℃。将存储器中的二进制数求补再转换成十进制数并除以2,就得到被测温度值。
温度检测与控制系统由加热灯泡、温度二极管、温度检测电路、控制电路和继电器组成。温度二极管和加热灯泡封闭在一个塑料保温盒内,温度二极管监测保温盒内的温度,用温控实验板内部的A/D转换器ADC7109检测二极管两端的电压,通过电压和温度的关系,计算出盒内空气的实际温度。
2.2 实验仿真
本系统的测量范围为-25 ℃~85 ℃,表3显示的是采集到的温度测量数据,第一列是8路通道,第二列是使用本文系统测量的温度值,第三列是温度计所测量的温度值。
表3 采集到的温度数据 ℃
本系统的测量结果与温度计的实际测量结果基本吻合,符合预期仿真结果。DS18B20数字值读取位数为8位,精确到1 ℃。能够满足日常测量的应用需求。如果对一些特殊环境进行测量,则可以修改DS18B20的数字值读取位数,提高精度。如果需要对一些温度异常情况进行监控,则可以设置温度警报值,在系统上进一步加入开关控制测量通路选择,对超过警报值的情况进行蜂鸣器报警。
3 结语
在冷库、粮库以及作物栽培的温室等实际应用场所,温度测量十分重要,根据测量结果可以进一步地采取相对应的措施。在这一应用背景下,本文设计了一种基于DS18B20的温度测量系统,基于系统设计而构建的仿真系统实际电路运行良好,测量结果与预期基本吻合。
参考文献(References)
[1] 王建勋,周青云.基于DS18B20和LabVIEW的温度监测系统[J].实验室研究与探索,2012,31(3):47-50.
[2] 申亚芳,郝莹. 采用PLC进行的温度控制系统实验[J].实验技术与管理,2000,17(5):28-30.
[3] 王宏涛,李红莉,程真英,等.基于PLC 的温室自动监控系统设计[J].实验室研究与探索,2017,36(5):21-23.
[4] 董军军,侯志坚,白武帅,等.用于煤自燃监测的无源温度报警器开发[J].实验技术与管理,2015,32(9):76-79.
[5] 刘海萍,苏世彬.基于DS18B20的温度采集系统设计[J].科技信息,2009(11):26-29.
[6] 吴春龙. 高精度数字温度测量系统设计:由 Keil C51单片机和DS18B20温度传感器组成[J].计算机安全与维护,2012(17):87-93.
[7] 程安宇,孙士民,徐洋.基于DS18B20的单片机温度测量控制系统[J].自动测量与控制,2007,26(2):88-90.
[8] 张朋娜.基于STC89C516RD+单片机的控制系统的实验论证[D].长春:吉林大学,2006.
[9] 李宇骁,张顺平.基于STC89C516RD+单片机的手持式电子鼻的设计[J].电子技术设计与应用,2011(12):34-37.
[10] 付丽,吴春鲜,杨隽莹,等.人体及温度感应式电风扇控制系统[J].实验技术与管理,2014,31(1):83-86.
[11] 孙利佳,漆强.LED显示屏的图片显示实验设计[J].实验室科学与技术,2016,14(3):56-58.
[12] 黄英,刘平,廉超,等.炭黑填充导电橡胶的温度传感器灵敏系数[J].复合材料学报,2012, 29(3):30-35.