由单片机和多片DS1820组成的多点温度测控系统
扫描二维码
随时随地手机看文章
1 概述
DS1820 是美国DALLAS公司生产的单线数字温度传感器,它具有微型化、低功耗、高性能、抗干扰能力强、易配微处理器等优点,特别适合于构成多点温度测控系统,可直接将温度转化成串行数字信号供微机处理,而且每片DS1820都有唯一的产品号并可存入其ROM中,以使在构成大型温度测控系统时在单线上挂任意多个 DS1820芯片。从DS1820读出或写入DS1820信息仅需要一根口线,共读写及温度变换功率来源于数据总线,该总线本身也可以向所挂接的 DS1820供电,而无需额处电源。DS1820能提供九位温度读数,它无需任何外围硬件即可方便地构成温度检测系统。
2 DS1820的工作原理
DS1820采用3脚PR-35封装或8脚SOIC封装,管脚排列如图1所示。图中GND为地,I/O为数据输入/输出端(即单线总线),该脚为漏极开路输出,常态下呈高电平。VDD是外部+5V电源端,不用时应接地。NC为空脚。
图2所示为DS1820的内部框图,它主要包括寄生电源、温度传感器、64位激光ROM单线接口、存放中间数据的高速暂存器(内含便笺式RAM),用于存储用户设定的温度上下限值的TH和TL解发器存储与控制逻辑、8位循环冗余校验码(CRC)发生器等七部分。
2.1 寄生电源
寄生电源由二极管VD1、VD2和寄生电容C组成。电源检测电路用于判定供电方式。寄生电源供电时,VDD端接地,器件从单线总线上获取电源。在 I/O线呈低电平时,改由C上的电压Vc继续向器件供电。该寄生电源有两个优点:第一,检测远程温度时无需本地电源;第二,缺少正常电源时也能读ROM。若采用外部电源VDD,则通过VD2向器件供电。
2.2 温度测量原理
DS1820 测量温度时使用特有的温度测量技术。其测量电路框图如图3所示。DS1820内部的低温度系数振荡器能产生稳定的频率信号f0,高温度系数振荡器则将被测温度转换成频率信号f。当计数门打开时,DS1820对f0计数,计数门开通时间由高温度系数振荡器决定。芯片内部还有斜率累加器,可对频率的非线性予以被偿。测量结果存入温度寄存器中。一般情况下的温度值应为9位(符号点1位),但因符号位扩展成高8位,故以16位被码形式读出,表1给出了温度和数字量的关系。
[!--empirenews.page--]
2.3 64位激光ROM
64位ROM的结构如下:
开始8位是产品类型的编号(DS1820为10H),接着是每个器件的唯一的序号,共有48位,最后8位是前56位的CRC校验码,这也是多个DS1820可以采用一线进行通信的原因。主机操作ROM的命令有五种,如表2所列
[!--empirenews.page--]
2.4 高速暂存器
它由便笺式RAM和非易失性电擦写 EERAM组成,后者用于存储TH、TL值。数据选写入RAM,经校验后再传给EERAM。便笺式EAM点9个字节,包括温度信息(第1、2字节)、TH 和TL值(3、4字节)、计数寄存器(7、8字节)、CRC(第9字节)等,第5、6字节不用。暂存器的命令共6条,见表3所列。
在正常测温情况下,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
2.5 告警信号
DS1820 完成温度转换后,就把测得的温度值与TH、TL作比较。若T>TH或T<TL,则将该器件内的告警标志置位,并对主机发出的告警搜索命令作出响应。因此,可用多只DS1820同时测量温度并进行告警搜索。一旦某测温点越限,主机利用告警搜索命令即可识别正在告警的器件,并读出其序号,而不必考虑非告警器件。
2.6 CRC的产生
在64 位ROM的最高有效字节中存储有循环冗余校验码(CRC)。主机根据ROM的前56位来计算CRC值,并和存入DS1820中的CRC值作比较,以判断主机收到的ROM数据是否正确。CRC的函数表达式为:CRC=X8+X5+X3+1。此外,DS1820尚需依上式为暂存器中的数据来产生一个8位CRC 送给主机,以确保暂存器数据传送无误。
[!--empirenews.page--]
3 多路温度测控仪的电路设计
用单片机控制的多路测度测控仪的电路如图4所示。现用6只DS1820同时测控6路温度(视实际需要还可任意扩展通道数)。图4中采用89C51单片机,其 P1.1口接单线总线。DS1820采用寄生电源供电方式。为保证在有效的DS1820时钟周期内能提供足够的电流,图4中采用一个MOSFET管和 89C51的H.0口来完成对DS1820的总线上拉。P1.2~P1.7口用来输出温度测控信号,经驱动器MC1413后分别驱动6只固态继电器,通过改变加热或致冷系统的工作状态,可实现对被监测系统的实时控制。
为提高系统的可靠性,该系统设计了由硬件与软件组成的“看门狗”。硬件看门狗由MAX813L及其外围电路组成,同时还具有电源监控和复位功能。 P1.1定时输出喂狗,按键S1为手动复位。键盘扫描和动态扫描的显示共用一片可编程接口芯征8279,显示采用8位共阴极LED数码管,它可用来显示通道数、温度测量值以及TH、TL的值。
需要注意的是,在系统安装及工作之前应将主机逐个与DS1820挂接,以读出其序列号。其工作过程为:主机发出一个脉冲,待“0”电平大于 480μs后,复位DA1820,在 DS1820所发响应脉冲由主机接收后,主机再发读ROM命令代码33H,然后发一个脉冲(15μs),并接着读取DS1820序列号的一位。用同样方法读取序列号的56位。另外,由于DS1820单线通信功能是分时完成的,遵循严格的时隙概念,因此,系统对DS1820和各种操作必须按协议进行,即:初始化DS1820(发复位脉冲)→发ROM功能命令→发存储器操作命令→处理数据。系统对DS1820操作的总体流程图如图5所示