<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://jackxiang.com/post/3704/</link>
<title><![CDATA[Ds18B20还是Tsic506，我觉得什么技术修正到0.1度，都是瞎扯淡]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[WEB2.0]]></category>
<pubDate>Fri, 29 Oct 2010 05:50:21 +0000</pubDate> 
<guid>http://jackxiang.com/post/3704/</guid> 
<description>
<![CDATA[ 
	Tsic506这个能达到 ±0.1℃温感集成块还没有到货的时候，我们开始用市面上最为普通的DS18B20来进行原理图设计实验。DS18B20温感集成块的精度只有±0.5℃，虽然便宜（只要7元人民币），但是它与昂贵的Tsic506(100元人民币)使用的是同样的单总线结构，所以用来做原理图设计实验，足够了。<br/><br/>在查DS18B20相关的资料的时候，无意中发现一个惊喜：看到一篇文章<a href="http://www.dzjs.net/html/zonghejishu/2008/1118/3493.html" target="_blank">《DS18B20的高精度温度传感器设计》</a>，提供了如何降低误差的方法，并且表明 “可得到误差在0.1℃以内的温度精度” 。大学老师的大作，满篇图形、公式、矩阵……，一看就感觉让人信服！<br/><br/>兴奋啊，想想，100元 vs. 7元！如果能提高精度，别说±0.1℃，只要能到±0.2℃就行，这可是93元的成本差别啊！<br/><br/>于是，仔细研读。<br/><br/>……<br/><br/>……<br/><br/>好景不长，因为，疑窦丛生：<br/><br/>1.前面四章讲的都是DS18B20原理，可以略过。第五章名为“采用最小二乘估计降低线性误差”，嗯，这是正题。<br/>可是，一开始就感觉不对头。<br/>第五章一上来就说“通过以上方法理论上可以得到0.1℃范围内的误差，但由于受各种因数的影响．往往误差范围能达到0.5℃。通过分析．得知误差主要来源于芯片内部半导体热噪声。其类型为线性误差，并随温度的上升而误差增大……”。这是哪儿跟哪儿啊？前四章讲的都是该芯片的内部功能结构，凭什么理论作者们可以得到“<br/><br/><br/>DS18B20官方文档上的误差曲线<br/><a href="http://jackxiang.com/attachment.php?fid=146" target="_blank"><img src="http://jackxiang.com/attachment.php?fid=146" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><br/>通过以上方法理论上可以得到0.1℃范围内的误差”这个结论？！基于这个不靠谱的结论，又说“通过分析．得知误差主要来源于芯片内部半导体热噪声。其类型为线性误差，并随温度的上升而误差增大”，凭什么？凭什么得到这几个结论啊？ <br/>2.看看DS18B20官方的文档中的误差曲线（见右图），就可以更加证明了，这篇文章的这几个推导（尤其是上面灰色字体中带下划线的部分）根本是错的！推导错了，这不是最严重的问题，这段话最严重的问题在于：没有论据，就敢如此推断！ <br/><br/>3.作者们根据以上结论（不靠谱的结论），建立了误差模型：“为了提高估计精度，对于不同的温度区间应采用不同的修正系数．设该系统的线性误差模型如下：<br/>T=KTγ+C<br/>其中，T为测量值，Tγ为真实值(采用更高精度MS6506测量而得)．K为随温度变化的线性误差修正系数，C为误差补偿参数……”<br/>而后，就是大学老师擅长的一堆高数理论，最小二乘估计、矩阵、维度、极限、梯度，一顿眼花缭乱的分析，得出结论“K=1.0408．C=-1.5256，该修正系数是在25℃～40℃温度下得到的。其他温度范围内也可采用相同方法获得修正系数。根据计算得到的修正系 数编写相应的单片机程序，就可得到误差在0.1℃以内的温度精度。基于以上的理论基础，可以设计出高精度、低性价比的温度传感器”。<br/>我们来看看灰色字体部分中那些带下划线的部分：<br/><br/>“K=1.0408．C=-1.5256”，如果我们用上面的这个官方的平均误差图来看，就知道这个结论是不准确的，比如说，假如我们用DS18B20去测一个30℃的温度，那么官方结论是：平均测量温度应该是在29.82℃。如果用这篇论文的计算方法，T=1.0408Tγ-1.5256，测量温度应该在29.6984℃。 <br/>“采用更高精度MS6506测量而得”。纵观整篇论文，其实验与推断的关键点在于：建立误差模型，然后通过测试，得到误差模型中的参数。所以，最后结论的准确性其实质是依赖测试的准确性。于是，我对这篇文章中两次被提及的“高精度MS6506”产生了兴趣：如果不贵，万元左右的，买一台，进行温感探头的校准，还是挺值得的，实在不行，租也可以啊。到网上一查，我的天，才几百元！几百元的温度测量设备，就能称作“高精度”？再查查，OMG，淘宝里大把的，你猜猜精度是多少？不是±0.01℃，也不是±0.1℃，也不是±0.5℃，而是±1℃！<br/>拿±1℃的温度计去校准±0.5℃的温感探头？！这简直是太滑稽了吧！<br/>难怪这篇文章里如此模糊地去提及这个测试设备啊，故意的吧！<br/>不是故意的？那你这学术文章，也太不严谨了吧！<br/><br/><br/><br/><br/><br/><br/>
]]>
</description>
</item><item>
<link>http://jackxiang.com/post/3704/#blogcomment63931</link>
<title><![CDATA[[评论] Ds18B20还是Tsic506，我觉得什么技术修正到0.1度，都是瞎扯淡]]></title> 
<author>290738891 &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 23 Jan 2014 13:30:54 +0000</pubDate> 
<guid>http://jackxiang.com/post/3704/#blogcomment63931</guid> 
<description>
<![CDATA[ 
	Accuracy: ±0.1°C over span of 40°C 楼主，精度是0.1
]]>
</description>
</item><item>
<link>http://jackxiang.com/post/3704/#blogcomment63951</link>
<title><![CDATA[[评论] Ds18B20还是Tsic506，我觉得什么技术修正到0.1度，都是瞎扯淡]]></title> 
<author>AS &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Tue, 05 Aug 2014 08:47:49 +0000</pubDate> 
<guid>http://jackxiang.com/post/3704/#blogcomment63951</guid> 
<description>
<![CDATA[ 
	我在恒温箱里测试18B20，比恒温箱高1度左右，恒温箱是非常好的恒温箱
]]>
</description>
</item><item>
<link>http://jackxiang.com/post/3704/#blogcomment63981</link>
<title><![CDATA[[评论] Ds18B20还是Tsic506，我觉得什么技术修正到0.1度，都是瞎扯淡]]></title> 
<author>yuanshuai &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Tue, 15 Mar 2016 02:12:01 +0000</pubDate> 
<guid>http://jackxiang.com/post/3704/#blogcomment63981</guid> 
<description>
<![CDATA[ 
	楼主有这套系统吗？我们需要一个TSic506的测温装置，不知楼主这里是否有相关的电路图或者例程?可不可以提供一个邮箱，私聊
]]>
</description>
</item><item>
<link>http://jackxiang.com/post/3704/#blogcomment63982</link>
<title><![CDATA[[评论] Ds18B20还是Tsic506，我觉得什么技术修正到0.1度，都是瞎扯淡]]></title> 
<author>yuanshuai &lt;ys6120200616@live.cn&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Sat, 19 Mar 2016 12:55:33 +0000</pubDate> 
<guid>http://jackxiang.com/post/3704/#blogcomment63982</guid> 
<description>
<![CDATA[ 
	我看了TSic506的datasheet，感觉和18B20类似，但是总是调试不成功，我用的是51单片机，感觉很麻烦，我们现在很急，能不能从你这里买一套呀？能提供51的程序也可以
]]>
</description>
</item><item>
<link>http://jackxiang.com/post/3704/#blogcomment63984</link>
<title><![CDATA[[评论] Ds18B20还是Tsic506，我觉得什么技术修正到0.1度，都是瞎扯淡]]></title> 
<author>yuanshuai &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Wed, 20 Apr 2016 09:04:17 +0000</pubDate> 
<guid>http://jackxiang.com/post/3704/#blogcomment63984</guid> 
<description>
<![CDATA[ 
	嗯，我们已经搞定了TSic506的程序，确实像你说的，对时序特别敏感，我们原来写的程序烧进去之后温度值是乱码。后来用示波器把延时函数精确校准之后就好用了。TSic506测温范围太窄，最后我们还是用的DS18B20。
]]>
</description>
</item><item>
<link>http://jackxiang.com/post/3704/#blogcomment63985</link>
<title><![CDATA[[评论] Ds18B20还是Tsic506，我觉得什么技术修正到0.1度，都是瞎扯淡]]></title> 
<author>yuanshuai &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Wed, 20 Apr 2016 09:05:51 +0000</pubDate> 
<guid>http://jackxiang.com/post/3704/#blogcomment63985</guid> 
<description>
<![CDATA[ 
	嗯，我们已经搞定了TSic506的程序，确实像你说的，对时序特别敏感，我们原来写的程序烧进去之后温度值是乱码。后来用示波器把延时函数精确校准之后就好用了。TSic506测温范围太窄，最后我们还是用的DS18B20。
]]>
</description>
</item><item>
<link>http://jackxiang.com/post/3704/#blogcomment63990</link>
<title><![CDATA[[评论] Ds18B20还是Tsic506，我觉得什么技术修正到0.1度，都是瞎扯淡]]></title> 
<author>justwinit &lt;xdy108@126.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 29 Sep 2016 23:53:32 +0000</pubDate> 
<guid>http://jackxiang.com/post/3704/#blogcomment63990</guid> 
<description>
<![CDATA[ 
	恭喜恭喜
]]>
</description>
</item>
</channel>
</rss>