使用一个GPIO数字接口测量温度的简单方法
2023-03-17 来源:elecfans
随着在专注于机器健康和其他物联网 (IoT) 解决方案的现代应用中,对传感功能的需求变得越来越普遍,对具有更少 I/O 和更小设备占用空间的更简单接口的需求也在增加。连接到单个微处理器或FPGA的器件密度不断增加,而应用空间(因此I/O引脚的数量)可能会受到限制。在理想情况下,所有应用都将有一个ASIC,提供小型集成解决方案。然而,ASIC开发既耗时又昂贵,并且无法灵活地重新用于其他用途。因此,越来越多的应用使用微处理器或小尺寸FPGA来及时、经济高效地完成产品开发。在本文中,我们将探讨一种温度频率转换器,该转换器可以在仅使用单个GPIO引脚的情况下提供准确的温度结果。它还将演示如何使用电压-频率转换器适应各种传感应用。
赋予动机
一些传感器测量,如温度、湿度和气压,本质上是直流的,变化速率不够快,也不需要足够精确的分辨率,以保证ADC和随之而来的设计考虑因素。大多数ADC需要快速、精确的时钟生成和定时、稳定的基准电压源、具有极低输出阻抗的基准电压缓冲器和模拟前端电路,以便在对传感器输出进行数字量化并供系统监控之前对其进行正确信号调理。在检测环境温度的情况下,分立式应用可能会在惠斯通电桥中使用热敏电阻,然后由仪表放大器获得其输出,然后馈入ADC。这种设计过度设计,需要更多的空间、功耗和计算周期,适用于可能只需要每 15 秒进行一次测量的应用。
可以使用哪种替代测量解决方案来减少与ADC信号链相关的元件数量和复杂性,但仍能测量模拟电压?解决方案是配置在压控振荡器 (VCO) 模式下的电压-频率转换器,例如 LTC6990,可用于测量模拟电压,而无需 ADC。在本例中,精密热电偶放大器AD8494配置为环境温度传感器,其输出电压用作LTC6990的输入,从而形成温度-频率转换器信号链。
图1.简单的温度-频率转换器。
如何将温度输入转换为频率输出?
如今,许多现代电子设备都需要车载温度监控系统。将模拟信号转换为脉宽调制信号或数字信号的方法已有据可查。但是,如果测量解决方案需要ADC,则存在与成本、精度和速度相关的缺点。通常,测量越准确,解决方案就越昂贵。该电路提供了一种低成本、多功能且易于接口的解决方案,其精度可根据温度测量系统的需求而变化。
AD8494是一款精密热电偶放大器,但也可通过将其输入短路至地来用作环境温度传感器。然后将输出定义为:
在本电路中,采用单极性电源:–VS= 地 (0 V),即使环境温度为负,也必须向AD8494的REF引脚施加失调电压,以便将输出电压偏置到地电位以上。
温度传感器的输出电压,V外,定义为:
在 VCO 模式下,LTC6990 频率输出定义为:
由于AD8494的输出电压为V按对于LTC6990,公式1可替代V按在公式2中,并设置R设置= RVCO产生以下结果:
从这里,T氛围现在可以解决。电压单位抵消,得到公式5:
好的,我有一个频率输出。这有什么用?
频率输出的优点在于,您可以使用单个GPIO引脚来获得传感器测量值。如果使用图2中的同步计数器电路,则时钟的上升沿将始终在其CLK_IN输入端观察到。如果 F外的 LTC6990 用作输入时钟,然后每次 F 上的上升沿时计数器都会递增外检测到,创建周期计数器。如果每次测量之间的时间间隔是恒定的,则可以计算给定时间间隔内的周期数,并且可以通过使用浮点数学或查找表来确定频率。通过将采集时间 T 除以收购通过计算的周期数,我们得到 F 的周期外.取此关系的反比得到等式6。
图2.一个 4 位同步计数器,将 LTC6990 输出作为其时钟输入。
示例 Verilog 代码显示了一个函数,该函数可用于通过在 FPGA 上使用单个 GPIO 输入来计算周期数。采集周期越长,测量就越准确。对于以下代码,使用 16 位计数器来提供其他分辨率。这还假设控制测量采集时间的逻辑在架构中的更高级别执行。
图3.示例验证代码。
图4.温度-频率转换器的传递函数。
结论
在本应用中,讨论了一种新型的温度频率转换器。它提供了一种准确、低成本的温度测量方法。如果温度超过–40°C至+125°C的工业范围,则可以在传感器的输入端安装热电偶。作为结论,下图显示了测量系统的误差。它展示了环境温度与输出频率之间的线性关系以及系统的精度。虽然该解决方案可能无法提供非常精细的温度分辨率结果,但对于可以接受大约±2°C误差的应用,这为测量温度提供了一个廉价而简单的接口。此外,使用电压-频率转换器的概念可以调整为测量其他类型的传感器输出,而无需ADC。
图5.温度误差。