:固件数据处理

                  temperature value 温度值

公式法:

在公式法中,热敏电阻的阻值使用标准的分压方程式计算,如等式 2 所示。

[2]

这里的 VGND 和 Vref 可在程序中定义为常数,也可测量得出。将测量得出的值代入等式 2,可以消除因参考电压变化、ADC 增益和偏置变化引起的误差。在本文中,假定参考电压、ADC 是理想的,且Vref 和 VGND均为常数。在计算出阻值后,就可以使用等式 1 计算出温度值。

因为等式 1 不是简单线性等式,在采用公式法的情况下,有效的存储器利用和执行的速度都很重要。这个等式必须加入较大的数学库。是否因为精度而接受较大的存储器占用和较慢的反应速度,取决于应用的需要。在医疗或太空设备中,精度非常重要,而在家用电器中,精度并不是最重要的因素,比如我们在安保系统、炉具或者轿车中所见到的温度测量。在这些应用中,如果外部温度是 70 度,而感应系统显示 71 度,并不会导致致命的结果。消费者也不愿意化更多的钱购买功能更强大的芯片来获得这种精度。

针对热敏电阻的 LUT

热敏电阻的电压会一直对应一个唯一的阻值,也就是唯一的温度值。例如,如果 NTC 热敏电阻在 25 摄氏度的阻值为 RT=10 KΩ,参考电阻为 Rref=10 KΩ 时,则意味着 25 摄氏度时的电压 VT=Vref/2。在温度为 50 摄氏度时,RT=5 KΩ,不过 Rref 和 Vref 保持不变,故VT=Vref/3。因此,VT=Vref/3 就意味着 T=50 °C,而VT=Vref/2 意味着 T=25 °C。这样就可以根据测得电压对应的温度值使用等式编制一张表格,存储在存储器中作为 LUT。然后使用测得的电压值作为索引来解析LUT,进而获得对应的温度值。决定温度步长的LUT 的大小会影响测量的精度。如果要求的温度范围为 –40 ~ 125 °C,则在步长为 1 °C 的情况下需要有 166 条目的 LUT,如果是 0.5 °C,就需要 332 条目的 LUT。因此在精度、测量范围和存储器使用方面存在大量的权衡空间。在公式法下,不管要求的精度和测量范围如何,存储器使用都是固定的。

比较

包含 LUT 法和公式法的项目都在赛普拉斯软件 PSoC Designer 中借助 CY8C27x43 芯片得到了实施。LUT 的大小如前所述,为 166 条样本。LUT 法使用的 ROM 为1,000 字节,而在公式法中为 3,780 字节。如果项目在带有 4K 存储器的芯片上实施,则剩下的闪存对任何复杂系统均不敷使用。

为比较执行速度,分别运行了两种方法。如图 2 所示,每种方法运行完毕后,都会触发一个引脚。