DS18B20的高精度温度传感器设计

  作者:dolphin 时间:2011-05-11

1 引言
单线数字温度传感器(例如DS18B20)因其体积小、系统结构简单等优点得到越来越广泛的应用。DS18B20是美国Dallas半导体公司研制的一款单总线可编程智能温度传感器。它将A/D转换器、寄存器、接口电路集成在一个芯片中,可以直接输出数字信号。与单片机的接口电路也很简单,具有控制功能强、传输距离远、抗干扰能力强等特点,非常适用于微型、低功耗的温度测量器件。

2 DS18B20的性能特点
DS18B20在-10℃~+85℃范围内.可确保测量误差不超过±0.5℃;在-55℃~+125℃范围内,其测量误差不超过±2℃。供电电压范围为3.0 V~5.5 V。
DS18B20内置64位经过激光修正的ROM.出厂前作为唯一的产品序号存入ROM中。构成大型温控系统时,允许在单总线上挂接多个DS18B20,理论上可挂接264个。
DS18B20可分别设定各路温度的上、下限并写入RAM中.并能迅速识别出温度越限的器件。
采用Dallas公司独特的“单总线(1-Wire)”专有技术,通过串行口(I/O)直接输出所测温度值。
内含寄生电源。既可由单总线供电,亦可采用外部5 V电源供电。

3 系统简介
KJ05温度传感器系统包括:单总线DS18B20温度传感器。ATmega8单片机及其接口电路构成的温度数据采集模块;由数码管,键盘和遥控电路构成友好的人机界面;报警灯和报警蜂鸣器电路,以及标准的4 mA~20 mA电流输出模块。其结构框图如图1所示。

图1 系统结构框图

4 利用测温原理降低非线性误差
首先.由于DS18B20的分辨率为9~12位可编程,为了得到较高精度的温度,可采用l2位模式,理论上最小温度分辨率为0.0625℃ .但由于受各种因素影响,DS18B20测量温度的分辨率真实值只有0.5℃,该系统设计巧妙结合DS18B20的内部结构.进一步提高其分辨率。DS18B20的内部结构框图如图2所示。

图2 DSI8B20的内部结构框图
图2中,高温度系数振荡器确定一个门控周期,然后在此门控周期内通过对低温度系数振荡器的时钟个数进行计数便可测量温度。在计数器和温度寄存器内均预置了对应于-55℃的初值,如果在门控周期结束前,计数器的值没有减到零,就表明当前测量温度高于-55℃,温度寄存器中的值要增加。同时,斜率累加器再给计数器预置初值,计数器重新计数到零.若门控周期没有计数,则重复上述过程。
利用下式可计算出高分辨率的温度值:
T=temp_read-0.25+(count-per_degree-count_remain)/count_per_degree
其中,temp_read:DS18B20中读出的温度读数;count_per_degree:每摄氏度的计数值;count remain:门控周期结束时计数器中的余数。
为了提高温度分辨率,必须从DS18B20中读出count_per_degree和count_remain.这两个值存储在便笺RAM的第6、7个字节中。从DS18B20中读出count_per_degree和count_remain的C语言程序如下:
void readtm
{unsigned char tmp;
reset(); /*复位DS18B20*/
sendcmd();/*发读DS18B20 RAM命令*/
templ=read_tmp();/*读温度低字节*/
temph=read_tmp(); / 读温度高字节 /
tmp=read_tmp();
tmp=read_tmp();
tmp=read_tmp();
Count_remain=read_tmp();
Count_per_degree=read_tmp();
}

5 采用最小二乘估计降低线性误差
通过以上方法理论上可以得到0.1℃范围内的误差,但由于受各种因数的影响.往往误差范围能达到0.5℃。通过分析.得知误差主要来源于芯片内部半导体热噪声。其类型为线性误差,并随温度的上升而误差增大。为了提高估计精度,对于不同的温度区间应采用不同的修正系数.设该系统的线性误差模型如下:
T=KTγ+C
其中,T为测量值,Tγ为真实值(采用更高精度MS6506测量而得).K为随温度变化的线性误差修正系数,C为误差补偿参数。
建立了DS18B20的误差模型后,通过试验来估计误差模型的参数。设被估计量X是n维随机向量,为了得到其估计量.对它进行k次线性观测得到:
z=HiX+V,(i=1,2,…k) (2)
该式可写成:

其中,Z是m维观测向量。Hi是mxn观测矩阵是均值为零的m维观测误差向量。当kmn时,由于方程的数目多于未知数的数目,因此可以根据Z来估计X。如果要求选择X的一个估计,使下列性能指标达到极小.那么.就称这个估计为X的最小二乘估计.上述最小二乘估计只是一个确定性的求极小值问题。因此可以通过使J(X)对X的梯度等于零的方法来实现。
由梯度公式,可得:

令上式等于零,则当(HTH)为非奇异阵时,可得:

上式就是由观测数据Z求的最小二乘估计的表示式。其中XTS(Z)是观测数据的Z的线性函数。
某次实验所得的数据如表1所列,取这五次DS18B20修正前的数据为Z向量,高精度温度计(MS6506)的数据为H向量,被估计的温度为X向量:

表1 温度采集实验数据表
DS18B20修正前高精度温度计(Ms6506)DS18B20修正后
25.0625 25.54 25.5000
28.1250 28.50 28.5000
31.1870 31.52 31.4375
34.9375 35.00 35.1250
37.8750 38.00 37.9375

关键词: DS18B20 高精度 温度 传感器 设计

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关电路