Ds18B20还是Tsic506,我觉得什么技术修正到0.1度,都是瞎扯淡

jackxiang 2010-10-29 13:50 | |
Tsic506这个能达到 ±0.1℃温感集成块还没有到货的时候,我们开始用市面上最为普通的DS18B20来进行原理图设计实验。DS18B20温感集成块的精度只有±0.5℃,虽然便宜(只要7元人民币),但是它与昂贵的Tsic506(100元人民币)使用的是同样的单总线结构,所以用来做原理图设计实验,足够了。

在查DS18B20相关的资料的时候,无意中发现一个惊喜:看到一篇文章《DS18B20的高精度温度传感器设计》,提供了如何降低误差的方法,并且表明 “可得到误差在0.1℃以内的温度精度” 。大学老师的大作,满篇图形、公式、矩阵……,一看就感觉让人信服!

兴奋啊,想想,100元 vs. 7元!如果能提高精度,别说±0.1℃,只要能到±0.2℃就行,这可是93元的成本差别啊!

于是,仔细研读。

……

……

好景不长,因为,疑窦丛生:

1.前面四章讲的都是DS18B20原理,可以略过。第五章名为“采用最小二乘估计降低线性误差”,嗯,这是正题。
可是,一开始就感觉不对头。
第五章一上来就说“通过以上方法理论上可以得到0.1℃范围内的误差,但由于受各种因数的影响.往往误差范围能达到0.5℃。通过分析.得知误差主要来源于芯片内部半导体热噪声。其类型为线性误差,并随温度的上升而误差增大……”。这是哪儿跟哪儿啊?前四章讲的都是该芯片的内部功能结构,凭什么理论作者们可以得到“


DS18B20官方文档上的误差曲线
点击在新窗口中浏览此图片

通过以上方法理论上可以得到0.1℃范围内的误差”这个结论?!基于这个不靠谱的结论,又说“通过分析.得知误差主要来源于芯片内部半导体热噪声。其类型为线性误差,并随温度的上升而误差增大”,凭什么?凭什么得到这几个结论啊?
2.看看DS18B20官方的文档中的误差曲线(见右图),就可以更加证明了,这篇文章的这几个推导(尤其是上面灰色字体中带下划线的部分)根本是错的!推导错了,这不是最严重的问题,这段话最严重的问题在于:没有论据,就敢如此推断!

3.作者们根据以上结论(不靠谱的结论),建立了误差模型:“为了提高估计精度,对于不同的温度区间应采用不同的修正系数.设该系统的线性误差模型如下:
T=KTγ+C
其中,T为测量值,Tγ为真实值(采用更高精度MS6506测量而得).K为随温度变化的线性误差修正系数,C为误差补偿参数……”
而后,就是大学老师擅长的一堆高数理论,最小二乘估计、矩阵、维度、极限、梯度,一顿眼花缭乱的分析,得出结论“K=1.0408.C=-1.5256,该修正系数是在25℃~40℃温度下得到的。其他温度范围内也可采用相同方法获得修正系数。根据计算得到的修正系 数编写相应的单片机程序,就可得到误差在0.1℃以内的温度精度。基于以上的理论基础,可以设计出高精度、低性价比的温度传感器”。
我们来看看灰色字体部分中那些带下划线的部分:

“K=1.0408.C=-1.5256”,如果我们用上面的这个官方的平均误差图来看,就知道这个结论是不准确的,比如说,假如我们用DS18B20去测一个30℃的温度,那么官方结论是:平均测量温度应该是在29.82℃。如果用这篇论文的计算方法,T=1.0408Tγ-1.5256,测量温度应该在29.6984℃。
“采用更高精度MS6506测量而得”。纵观整篇论文,其实验与推断的关键点在于:建立误差模型,然后通过测试,得到误差模型中的参数。所以,最后结论的准确性其实质是依赖测试的准确性。于是,我对这篇文章中两次被提及的“高精度MS6506”产生了兴趣:如果不贵,万元左右的,买一台,进行温感探头的校准,还是挺值得的,实在不行,租也可以啊。到网上一查,我的天,才几百元!几百元的温度测量设备,就能称作“高精度”?再查查,OMG,淘宝里大把的,你猜猜精度是多少?不是±0.01℃,也不是±0.1℃,也不是±0.5℃,而是±1℃!
拿±1℃的温度计去校准±0.5℃的温感探头?!这简直是太滑稽了吧!
难怪这篇文章里如此模糊地去提及这个测试设备啊,故意的吧!
不是故意的?那你这学术文章,也太不严谨了吧!






作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:http://jackxiang.com/post/3704/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!

评论列表
2016-9-30 07:53 | justwinit Email Homepage
恭喜恭喜
2016-4-20 17:05 | yuanshuai
嗯,我们已经搞定了TSic506的程序,确实像你说的,对时序特别敏感,我们原来写的程序烧进去之后温度值是乱码。后来用示波器把延时函数精确校准之后就好用了。TSic506测温范围太窄,最后我们还是用的DS18B20。
2016-4-20 17:04 | yuanshuai
嗯,我们已经搞定了TSic506的程序,确实像你说的,对时序特别敏感,我们原来写的程序烧进去之后温度值是乱码。后来用示波器把延时函数精确校准之后就好用了。TSic506测温范围太窄,最后我们还是用的DS18B20。
2016-3-19 20:55 | yuanshuai Email
我看了TSic506的datasheet,感觉和18B20类似,但是总是调试不成功,我用的是51单片机,感觉很麻烦,我们现在很急,能不能从你这里买一套呀?能提供51的程序也可以
justwinit 回复于 2016-4-8 22:58
兄弟,这个你在买Tsic506时可以找厂家要一个51的demo程序的,当年我是在深圳时买了4片,给过我一个这样的程序,但在实践中发现它对时序和温度加速变化相当的敏感,再就是电压,单片机是单进程容易导致死机,后来采用了arduino单独采集温度通过串口给raspberry pi再下发命令,才解决了它的不稳定性的,So,如果兄弟想一边实时采集又想控制通断这块最好是采用arduino加raspberry pi使用,但这样搞成本就上去了,经过我这些年的思考,觉得要是孵化一个鸡蛋啥的,倒还不如用DS18B20+,请兄弟三思。
2016-3-15 10:12 | yuanshuai
楼主有这套系统吗?我们需要一个TSic506的测温装置,不知楼主这里是否有相关的电路图或者例程?可不可以提供一个邮箱,私聊
justwinit 回复于 2016-3-16 11:22
电路图看下Tsic的Datasheet,单总线相当简单一个电源,一个地,一个信号线,我用的是arduino开发板里的例程,也很简单。
2014-8-5 16:47 | AS Email Homepage
我在恒温箱里测试18B20,比恒温箱高1度左右,恒温箱是非常好的恒温箱
2014-1-23 21:30 | 290738891
Accuracy: ±0.1°C over span of 40°C 楼主,精度是0.1
分页: 1/1 第一页 1 最后页
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]