DS18B20温度传感器在温室大棚中的应用研究

  • 投稿
  • 更新时间2018-06-22
  • 阅读量109次
  • 评分0
  • 0
  • 0

  [摘要]針对温室大棚需严格监测温度的实际情况,在介绍了新型单总线温度传感器DS18B20内部结构和操作命令的基础上,建立了以AT89S51单片机为核心、DS18B20为温度传感器的温室大棚温度检测系统,设计了温度检测系统的硬件组成和软件流程。


  [关键词]DS18B20;检测;AT89S51


  [中图分类号]S625[文献标识码]A


  1前言


  温度作为最基本的一个物理参数,它代表物体的冷热程度,人们在生活和生产活动中离不开温度检测。研究表明温度对农业上温室大棚中的农作物(如蔬菜)的生长、产量都有重要的影响。以往采用传统的方式测量温度,要求解决放大电路零点漂移、引线误差补偿等很多问题,而且还必须要使A/D转换器集成在接口上,使得温度测量系统不但成本高并且结构复杂,操作也比较繁琐。最主要的缺点是采用传统检测方式使得测量精度比较低,达不到高精度的温度测量要求。基于以上原因,改善传统的温度测量方式极其必要。


  DS18B20是美国DALLAS公司生产的智能数字式温度传感器,其采用一线式即One-Wire总线(单总线)方式,也就是用一条双向串行传输数据的信号线把数据线(DB)、地址线(AB)和控制线(CB)合在一起,并且允许若干个DS18B20器件挂接在这条信号线上。单片机可以直接与高封装的传感器件DS18B20进行串口通信,能够较为方便地获取温度值。其性能指标为:-55~+125℃的温度测量范围;非易失性的报警上下限值可由用户自己根据实际环境灵活设定;温度超限的DS18B20可由报警搜索命令识别;芯片本身具有丰富的命令集和一定存储容量的存储器。因此,在远距离多点温度检测系统中经常使用DS18B20温度传感器。


  2DS18B20内部结构及操作命令


  2.1DS18B20的内部结构


  DS18B20的内部结构主要由4部分组成,包括温度传感器、配置寄存器、温度报警触发器(TH、TL)和64位ROM。


  除主要构成部分外,8位CRC(循环冗余码生成器)、电源检测、寄生电源、存储控制逻辑等是DS18B20内部的其它组成部分。


  产品出厂前,被看成是该DS18B20的地址序列码的64位序列号在ROM中被光刻好,因此,每片DS18B20的64位序列号都不一样。64位地址码的前8位表示产品家族码,之后的48位表示DS18B20的序列号,剩余的8位表示前面56位的循环冗余校验码CRC。由于每个DS18B20都有唯一的64位序列号,这样就可以在一根总线挂接若干个DS18B20。


  2.2DS18B20的存储器及操作命令


  存放高温触发器TH和低温触发器TL、电擦除RAM结构寄存器、高速暂存RAM(9个连续字节)构成了DS18B20内部存储器,RAM的组成包括温度的低位字节、温度的高位字节、TH使用字节、TL使用字节、结构寄存器使用字节、保留字节、CRC校验字节。


  结构寄存器用来确定温度值的数字转换分辨率。


  低温报警触发器TL、高温报警触发器TH和配置寄存器都由E2PROM(1个字节)组成。写入结构寄存器或TL、TH操作可以使用存储器功能命令进行。


  高速暂存器是一个存储器(9个字节),其中的第9字节读出的是前面所有8个字节的CRC码,作用是确保通信正确,第6、7、8字节未用,全为逻辑1,第3、4、5字节内容为TH、TL、配置寄存器的临时副本,被测温度的数字量信息由第1、2字节表示。


  DS18B20中有5条对ROM的操作命令,如表1所示。


  主机执行ROM操作指令之后,就能使用操作指令对DS18B20内部的存储器进行操作,如表2所示。


  3温室大棚温度检测系统的硬件接口电路


  基于DS18B20的温室大棚数字温度测量系统如图1所示,主要由传感器数据采集、单片机数据处理和温度显示等几部分组成。


  DS18B20使用外接电源方式,VDD端使用3~5.5伏电源供电。单片机直接驱动LED,P0口作段码驱动,P2口作位码驱动。


  3.1传感器部分


  温度传感器为DS18B20,本文使用的是电源供电方式,其1脚接地,2脚为数据信号线,3脚接VCC。首先初始化DS18B20,之后将已保存的温度上、下限值从E2PRAM调到RAM中。先读取温度,然后温度值被发送到单片机中,同时检查温度,如数值不在设置的范围内,则发出报警信号。之后读取温度并把数值发送给单片机。不断地循环此过程。


  3.2单片机及显示部分


  整个系统的核心部分是AT89S51单片机,其作用是控制整个电路。AT89S51不但能够控制温度传感器还负责读取温度传感器的相关信息,还能控制数码管显示温度。单片机首先将温度传感器初始化,接着发送重调E2PRAM命令。在各项准备工作完成后,单片机开始发送温度转换命令,然后读取温度。温度被读取后,进行数值转换,即把读取的十六进制形式表示的温度值转换成十进制形式的温度值。最后将温度值通过单片机的P0口送到LED数码管显示所测温室大棚环境的温度。为节约成本,显示部分采用的是价格低廉的LED数码管。


  4温室大棚温度测量系统软件流程


  4.1基于DS18B20的温室大棚温度测温系统的软件流程


  具体测温流程如图2所示。DS18B20和单片机接口软件设计包括主程序、DS18B20读写程序和显示程序。


  根据通信协议,CPU访问DS18B20的工作流程分为三步:首先初始化DS18B20,其次是发ROM操作命令,最后是对存储器和数据进行操作。工作时序分为初始化时序、写时序和读时序。特别需要注意的是每一次读写之前都要对复位。


  单线温度传感器负责数值输出,测得的温度数值被采用串行方式输出,并且用该线获取复位、写时间片和读时间片等主机命令。


  初始化:主机把写数据线拉低480~960μs后释放,并且在DS18B20等待15~60μs后,输出持续时间为60~240μs的低电平,主机收到应答后可对其进行其他操作。?写时间片:其形成方法是主机把数据线从高电平1拉到低电平0,包括写0和写1两种方式。写时间片开始时DS18B20在15~60μs期间进行采样。需要注意的是每个时间片间必须有最少1μs的恢复期。?读时间片:其形成方法是主机从DS18B20读取数据。当主机把数据线从高拉到低时读时间片被初始化,在此后的15μs内,DS18B20把有效数据送给口线,因此主机应该在此时间范围内进行采样。60μs是每个读时间片的最小周期,而且一定要有最小1μs的回复期。最后进行数据处理,使用LED显示温度值。


  4.2控制温室大棚温度具体措施


  若温度过低则采取加温措施,如热水加温法、热风加温法、土壤加温法。若温度过高则采取降温措施,如自然通风,必要时采用人工强制方式降温,其常见方式包括强制通风法、遮光降温法、蒸发冷却法和流水降温法。


  5结论


  本文采用AT89S51单片机和DS18B20数字温度传感器设计了一套温室大棚温度检测系统,该系统可实现对温室大棚内温度的准确测量,该系统的优点是硬件结构简单和精度较高。该温度检测系统不但适于温室大棚的温度检测,还可推广到其他领域的温度测量。


  [参考文献

  [1] 唐杉林.温度传感器与温度的测量[J].电子测试,2016(5). 

  [2] 何希才,任力颖,杨静.实用传感器接口电路实例[M].北京:中国电力出版社,2007. 

  [3] 梁勇.粮仓中使用的各种温度传感器的分析与比较[J].粮食储藏,2007(6). 

  [4] 来清民.传感器与单片机接口及实例[M].北京:北京航天航空大学出版社,2008. 

  [5] 王建春,李凤菊,于伟军,等.设施农业中温湿度监测系统的设计与应用[J].天津农业科学,2014,20(12). 

    作者:周福恩