阐述了通过单总线测温元件DS1820来实现多点测温的技术,实现方法是利用DS1820和89C51单片机构建单线多点温度测控系统,通过软件对单片机进行控制,从而实现一根总线多点测温,达到理想的测温效果。实验结果表明,该测控技术具有测温系统简单,测温精度高,连接方便,占用口线少等优点。该技术的创新主要在于能够利用一个通信接口同时监测几个甚至几十个温度数据,从而达到节省带宽,简化硬件设施的目的。
随着科学技术的发展,特别是现代仪器的发展,微型化、集成化、数字化正成为传感器发展的一个重要方向。美国Dallas半导体公司推出的数字化温度传感器DS1820采用单总线协议,即与微机接口仅需占用1个I/O端口,无需任何外部元件,直接将温度转化成数字信号,以9位数字码方式串行输出,从而大大简化了传感器与微处理器的接口。
1 DS1820简介
DS1820是美国DALLAS公司生产的可组网数字式温度传感器,在其内部使用了在板(ON-BOARD)专利技术。全部传感元件及转换电路集成在形如一只晶体管大小的集成电路内,内部结构如图1所示。
与其他温度传感器相比,DS1820具有以下特性:
(1)独特的单线接口方式。DS1820在与微处理器连接时仅需要1条口线即可实现微处理器与DS1820的双向通信。
(2)DS1820支持多点组网功能。多个DS1820可以并联在惟一的三线上,实现多点测温。
(3)DS1820在使用中不需要任何外围元件。
(4)测温范围为-55~+125℃,固有测温分辨率为0.5℃。
(5)测量结果以9位数字量方式串行传送。
2 工作原理
DS1820测温原理如图2所示。图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振随温度变化,其振荡率有明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在-55℃所对应的一个基数值。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。
图2中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。DS1820特点如下:硬件接口简单,性能稳定,单线接口,仅需一根口线与MCU连接,无需外围元件;由总线提供电源;测温范围为-55~+75℃;精度为0.5℃;9位温度读数;A/D变换时间为200 ms;用户自设定温度报警上下限,其值是非易失性的;报警搜索命令可识别哪片DS1820超温度限。
3 温度检测系统设计
3.1 硬件设计
由于每片DS1820含有惟一的硅串行数,所以在一条总线上可挂接多个DS1820芯片。从DS1820读出信息或写入DS1820信息,仅需要1根口线(单线接口)。读/写及温度变换功率来源于数据总线,总线本身也可以向所挂接的DS1820供电,而无需额外电源。DS1820提供9位温度读数,构成多点温度检测系统而无需任何外围硬件。对DS1820的使用,多采用单片机实现数据采集。处理时,将DS1820信号线与单片机一位口线相连,单片机可挂接多片DS1820,从而实现多点温度检测系统。由于DS1820只有3个引脚,其中2根是电源线VDD和GND,另外两根用作总线DQ(DataIn/Out),由于其输出和输入均是数字信号,且与TTL电平兼容,因此可以与微处理器直接进行接口,从而省去了一般传感器所必需的中间转换环节。
该设计以DS1820为传感器,以AT89C51单片机为控制核心,组成的多点温度测试系统如图3所示。
3.2 软件设计
程序处理是整个系统的关键,简洁的硬件结构是靠复杂的软件来支持的。多个器件挂在一条总线上去识别不同的器件,在程序设计过程中一般有初始化命令、传送ROM命令、传送RAM命令、数据交换命令4个步骤。
需要注意的是,无论是单点还是多点温度检测,在系统安装及工作之前,应将主机逐个与DS182挂接,读出其序列号。它的工作过程为:主机发出一个脉冲,待“0”电平大于480μs后,复位DA1820,在DS1820所发响应脉冲由主机接收后,主机再发读ROM命令代码33H,然后发一个脉冲(15μs),并接着读取DS1820序列号的1位。用同样方法读取序列号的56位。另外,由于DS1820单线通信功能是分时完成的,遵循严格的时隙概念,因此系统对DS1820和各种操作必须按协议进行,即初始化DS182(发复位脉冲)→发ROM功能命令→发存储器操作命令→处理数据。
在正常测温情况下,DS1820的测温分辨率为0.5℃。这对于精度要求高的场合有所不足。在详细分析DS1820测温原理的基础上,采取直接读取DS1820内部暂存寄存器的方法,将DS1820的测温分辨率提高到0.1~0.01℃。图4为软件设计的总流程。
4 结语
虽然DS1820具有测温系统简单,测温精度高,连接方便,占用口线少等优点,但在实际应用中还应注意以下几方面的问题:
系统硬件虽然简单,但需要相对复杂的软件进行补偿;由于DS1820与微处理器间采用串行数据传送,因此,在对DS1820进行读/写编程时,必须严格地保证读/写时序,否则将无法读取测温结果。
在DS1820的有关资料中均未提及单总线上所挂DS1820数量问题,容易使人误认为可以挂任意多个DS1820,在实际应用中并非如此。当单总线上所挂DS1820超过8个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。连接DS1820的总线电缆是有长度限制的。由于信号电缆本身存在电阻,距离过长时将导致信号衰减。试验中,当采用普通信号电缆传输长度超过50 m时,读取的测温数据将发生错误;当总线电缆改为双绞线带屏蔽电缆时,正常通信距离可达150 m;当采用每米绞合次数更多的双绞线带屏蔽电缆时,正常通信距离能进一步加长。这种情况主要是由总线分布电容使信号波形产生畸变造成的。因此,在用DS1820进行长距离测温系统设计时要充分考虑总线分布电容和阻抗匹配的问题。
阐述了通过单总线测温元件DS1820来实现多点测温的技术,实现方法是利用DS1820和89C51单片机构建单线多点温度测控系统,通过软件对单片机进行控制,从而实现一根总线多点测温,达到理想的测温效果。实验结果表明,该测控技术具有测温系统简单,测温精度高,连接方便,占用口线少等优点。该技术的创新主要在于能够利用一个通信接口同时监测几个甚至几十个温度数据,从而达到节省带宽,简化硬件设施的目的。
随着科学技术的发展,特别是现代仪器的发展,微型化、集成化、数字化正成为传感器发展的一个重要方向。美国Dallas半导体公司推出的数字化温度传感器DS1820采用单总线协议,即与微机接口仅需占用1个I/O端口,无需任何外部元件,直接将温度转化成数字信号,以9位数字码方式串行输出,从而大大简化了传感器与微处理器的接口。
1 DS1820简介
DS1820是美国DALLAS公司生产的可组网数字式温度传感器,在其内部使用了在板(ON-BOARD)专利技术。全部传感元件及转换电路集成在形如一只晶体管大小的集成电路内,内部结构如图1所示。
与其他温度传感器相比,DS1820具有以下特性:
(1)独特的单线接口方式。DS1820在与微处理器连接时仅需要1条口线即可实现微处理器与DS1820的双向通信。
(2)DS1820支持多点组网功能。多个DS1820可以并联在惟一的三线上,实现多点测温。
(3)DS1820在使用中不需要任何外围元件。
(4)测温范围为-55~+125℃,固有测温分辨率为0.5℃。
(5)测量结果以9位数字量方式串行传送。
2 工作原理
DS1820测温原理如图2所示。图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振随温度变化,其振荡率有明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在-55℃所对应的一个基数值。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。
图2中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。DS1820特点如下:硬件接口简单,性能稳定,单线接口,仅需一根口线与MCU连接,无需外围元件;由总线提供电源;测温范围为-55~+75℃;精度为0.5℃;9位温度读数;A/D变换时间为200 ms;用户自设定温度报警上下限,其值是非易失性的;报警搜索命令可识别哪片DS1820超温度限。
3 温度检测系统设计
3.1 硬件设计
由于每片DS1820含有惟一的硅串行数,所以在一条总线上可挂接多个DS1820芯片。从DS1820读出信息或写入DS1820信息,仅需要1根口线(单线接口)。读/写及温度变换功率来源于数据总线,总线本身也可以向所挂接的DS1820供电,而无需额外电源。DS1820提供9位温度读数,构成多点温度检测系统而无需任何外围硬件。对DS1820的使用,多采用单片机实现数据采集。处理时,将DS1820信号线与单片机一位口线相连,单片机可挂接多片DS1820,从而实现多点温度检测系统。由于DS1820只有3个引脚,其中2根是电源线VDD和GND,另外两根用作总线DQ(DataIn/Out),由于其输出和输入均是数字信号,且与TTL电平兼容,因此可以与微处理器直接进行接口,从而省去了一般传感器所必需的中间转换环节。
该设计以DS1820为传感器,以AT89C51单片机为控制核心,组成的多点温度测试系统如图3所示。
3.2 软件设计
程序处理是整个系统的关键,简洁的硬件结构是靠复杂的软件来支持的。多个器件挂在一条总线上去识别不同的器件,在程序设计过程中一般有初始化命令、传送ROM命令、传送RAM命令、数据交换命令4个步骤。
需要注意的是,无论是单点还是多点温度检测,在系统安装及工作之前,应将主机逐个与DS182挂接,读出其序列号。它的工作过程为:主机发出一个脉冲,待“0”电平大于480μs后,复位DA1820,在DS1820所发响应脉冲由主机接收后,主机再发读ROM命令代码33H,然后发一个脉冲(15μs),并接着读取DS1820序列号的1位。用同样方法读取序列号的56位。另外,由于DS1820单线通信功能是分时完成的,遵循严格的时隙概念,因此系统对DS1820和各种操作必须按协议进行,即初始化DS182(发复位脉冲)→发ROM功能命令→发存储器操作命令→处理数据。
在正常测温情况下,DS1820的测温分辨率为0.5℃。这对于精度要求高的场合有所不足。在详细分析DS1820测温原理的基础上,采取直接读取DS1820内部暂存寄存器的方法,将DS1820的测温分辨率提高到0.1~0.01℃。图4为软件设计的总流程。
4 结语
虽然DS1820具有测温系统简单,测温精度高,连接方便,占用口线少等优点,但在实际应用中还应注意以下几方面的问题:
系统硬件虽然简单,但需要相对复杂的软件进行补偿;由于DS1820与微处理器间采用串行数据传送,因此,在对DS1820进行读/写编程时,必须严格地保证读/写时序,否则将无法读取测温结果。
在DS1820的有关资料中均未提及单总线上所挂DS1820数量问题,容易使人误认为可以挂任意多个DS1820,在实际应用中并非如此。当单总线上所挂DS1820超过8个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。连接DS1820的总线电缆是有长度限制的。由于信号电缆本身存在电阻,距离过长时将导致信号衰减。试验中,当采用普通信号电缆传输长度超过50 m时,读取的测温数据将发生错误;当总线电缆改为双绞线带屏蔽电缆时,正常通信距离可达150 m;当采用每米绞合次数更多的双绞线带屏蔽电缆时,正常通信距离能进一步加长。这种情况主要是由总线分布电容使信号波形产生畸变造成的。因此,在用DS1820进行长距离测温系统设计时要充分考虑总线分布电容和阻抗匹配的问题。
举报