摘 要:设计了一个DS18B20温度传感器校验平台。将Pt100测得的温度值作为标准温度值,校验温度传感器是否合格。为了提高Pt100测得温度的精准性,使用格罗布斯准则和算术平均值法分别消除粗大误差和随机误差。以P89LPC935为核心设计了校验平台的硬件和软件,并使用Visual C++ 6.0设计了上位机显示界面。
关键词:DS18B20;Pt100;温度传感器;校验
电冰箱出厂前需要试运行几十分钟甚至数小时,同时检测冷藏室、冷冻室、压缩机进气口、出气口和环境温度、压缩机功率等参数,以判断电冰箱是否合格。一条电冰箱检测线少则使用数百只温度传感器,多则使用数千只温度传感器。为了准确检测温度,曾经采用热电阻、AD590等模拟式温度传感器。由于模拟式温度传感器均需要检测转换电路与A/D转换器,使得电冰箱检测线的制造与维护成本很高。DS18B20的问世给电冰箱检测线数千点温度检测提供了极其方便的途径。DS18B20直接输出相应温度的数字量,无需转换电路与A/D转换器,使用极其方便,已被电冰箱生产厂家广泛采用。
DS18B20采用“1-Wire”接口,测量温度范围为-55 ℃~+125 ℃,最高温度分辨率为0.062 5 ℃,在-10 ℃~+85 ℃范围内,精度为±0.5 ℃。温度值采用12位二进制数表示,存储在DS18B20的两个8 bit的RAM中,其中高5位为符号位,低11位为温度值。如果测得的温度大于等于0 ℃,高5位为0,将低11位的数值乘0.062 5即可得到实际温度值;如果测得的温度低于0 ℃,高5位为1,将低11位取反加1再乘0.062 5即可得到实际温度值。
通常电冰箱冷冻室的温度低于-20 ℃,压缩机排气口温度可高达60 ℃左右,为了保证检测线上数千只温度传感器测量偏差不大于±0.5 ℃,必须对DS18B20在-30 ℃~+60 ℃温度范围内进行校验筛选。为此,本文设计了一个DS18B20温度传感器校验平台。
1 系统设计
校验平台由酒精恒温槽与传感器校验系统构成。酒精恒温槽模拟不同的被测温度。系统以P89LPC935单片机为核心,Pt100测温电路为校验平台提供准确温度值。DS18B20为待测温度传感器,校验平台一次可以检测16只传感器。继电器接口用来控制酒精槽制冷、制热工作,为传感器模拟-30 ℃~+60 ℃范围的工作温度。采用七位数码管,显示标准温度、待测传感器的温度检测值、二者偏差值等数据。
上位机可以通过串口接收、显示各个传感器的测量数据和校验结果。通过按键实现系统的开始、停止等功能。
DS18B20是单总线、数字式温度传感器,对时序要求比较严格。工作时序包括初始化时序、读时序和写时序。常用的基本操作有Skip Rom(跳过Rom)[CCH]、Convert Temperature(温度转换)[44H]和Read Scratchpad(读暂存存储器)[BEH]。测得的温度值存储在高速暂存RAM的前两个字节中。P89LPC935通过连续两次读操作,可以获得温度值。首先读取的是低位字节TL,接着是高位字节TH[1]。P89LPC935与DS18B20的接口电路如图1所示。本系统需要一次校验16个DS18B20,因单片机引脚有限,故选用16选1模拟开关CD4067。A、B、C、D为通道选择端,INT为控制端。当INT=1时,关闭所有通道。
2 标准温度值获取
标准温度值是校验的参考温度,将DS18B20测得的温度值和标准值进行比较,以决定其是否合格。因此,标准温度值的获取至关重要。Pt100铂电阻具有精度高、稳定性好、性能可靠等特点。在0 ℃~650 ℃范围内:Rt=R0(1+At+Bt2);在-200 ℃~0 ℃范围内:Rt=R0(1+At+Bt2+C(t-100)t3)。式中,R0=100 Ω,为t=0 ℃时的电阻值,A=3.968 47×10-3,B=-5.847×10-7,C=-4.22×10-12。
Pt100是电阻式温度传感器,温度变化引起电阻变化。将电阻的变化转换成电压信号,经放大后,再将模拟电压信号转换成数字信号,由单片机换算成相应的温度。Pt100测温电路采用三线制接法,如图2所示。
LM334为恒流源,外加二极管和电阻,就可以为Pt100提供恒定的电流,调节电位器R3即可改变电流大小。当温度改变时,Pt100电阻改变,引起电压变化。MC1403为基准电压源,提供2.5 V精密电压,经电位器分压后送入运放作为调零信号。前端测得电压值经过运放OP07放大,送入A/D转换器,转换成数字信号后换算成温度值,即可以实现温度的测量[2-4]。
在Pt100测温过程中,由于各种原因,测量结果和真实值之间总会存在一定的误差,使得测量结果不能客观地反映实际温度。根据测量误差的性质,可以将误差分为系统误差、随机误差和粗大误差。由于Pt100测得的温度为标准温度值,因此,必须将它的误差减到最小,这就需要选择合适的误差分析和消除方法。
为了消除Pt100测温电路的系统误差,必须调整好电路的零点和增益。零点包括运放的零点和温度的零点。将J_Pt100的1号脚与B点短接时调节运放的调零电位器,使运放的输出为零;用标准电阻箱替代Pt100,将其阻值打在100 Ω上,调节R3,使A点电压为0.3 V,即恒流源为3 mA,再调节R5,使B点电压也为0.3 V,此时温度显示值为零;再将标准电阻箱打在123.24 Ω上,调节电位器R10,使C点电压为P89LPC935内部A/D参考电压3.3 V左右,温度显示值为60 ℃[5]。
随机误差主要是由对测量值影响微小但却互不相关的大量因素共同造成的,这些因素主要有温度波动、噪声干扰、电磁场微变、空气扰动等。为减小Pt100测温的随机误差,采用算术平均值作为测量结果[6,7]。
将粗大误差剔除后,重新计算平均值x、标准差σ、G0、G1和Gn,重复上述步骤继续进行判断,依此类推,直至完全消除粗大误差[8]。格罗布斯准则消除粗大误差软件流程如图3所示。
3 实验结果
在相同条件下,进行15次测量测量数据如表1所示。选用格罗布斯准则消除粗大误差。首先按测量值大小
通常消除粗大误差和随机误差,都是采用去极值算术平均值法。在这组数据中,首先,去掉最大值20.55和最小值20.40,再求剩下数据的算术平均值,可得x=20.51。实验数据表明,采用格罗布斯准则消除粗大误差,要比去极值法效果更理想,更接近真实值。
利用Visual C++ 6.0设计上位机显示界面,用来显示标准温度值、各个待校验DS18B20的温度值、与标准温度的差值以及最终校验结果[9,10]。
为了保证电冰箱检测线数千只DS18B20温度传感器,在-30 ℃~+60 ℃温度范围内,测量偏差均不大于±0.5 ℃,本文以P89LPC935为核心设计了DS18B20温度传感器校验平台。用Visual C++ 6.0设计了上位机校验结果显示界面。采用Pt100热电阻作为标准温度传感器。为了提高Pt100热电阻的检测精度,设计了恒流三线制Pt100热电阻温度转换电路,采用算术平均值法、格罗布斯准则分别减小随机误差和粗大误差。实验结果表明,该校验平台设计合理,判断准确、使用方便。筛选后的传感器完全符合用户的要求。
参考文献
[1] 雷建龙.数字温度传感器DS18B20读出数据错误分析[J].电子器件,2007,30(6):2183-2185.
[2] 张志勇,辛长宇,朱玉龙,等.Pt100温度传感器非线性的补偿方法与电路实现[J].电子器件,2007,30(6):2189-2191.
[3] 王龙.基于铂电阻Pt100的高精度温度测控系统设计[J]. 吉首大学学报,2009,30(3):70-73.
[4] ALAN T.Improving the accuracy of temperature measurements[J].Sensor Review,2009,21(3):193-198.
[5] 潘雄,付宗堂,范晓明.一种处理系统误差的新方法[J].仪器仪表学报,2007,28(4):630-634.
[6] 费业泰.误差理论与数据处理[M].北京:机械工业出版社,2005.
[7] Tao Chongde,Wang Guanglin,Shao Dongxiang.New method on rigidity measurement of precision elastic elements[J].
Journal of Harbin Institute of Technology,1995,12(1):34-36.
[8] 隋文涛,张丹.测试数据中粗大误差的判定技术及其软件实现[J].电测及仪表,2006,43(11):61-63.
[9] 龚建伟,熊光明.Visual C++/ Turbo C串口通信编程实践[M].北京:电子工业出版社,2007.
[10] 王中训,徐超,王德法.基于VC++ 6.0的多串口通信方法[J].计算机应用,2008,28(6):254-256.