Temperature-to-Frequency Converter
详情介绍
电路功能与优势
本电路显示如何在精密热电偶温度监控应用中使用 ADuC7060 或 ADuC7061精密模拟微控制器ADuC7060/ADuC7061集成双通道24位∑-△型模数转换器(ADC)、双通道可编程电流源、14位数模转换器(DAC)、1.2 V内置基准电压源以及ARM7内核、32 kB闪存、4 kB SRAM和各种数字外设,例如UART、定时器、串行外设接口(SPI)和I2C接口。
在该电路中,ADuC7060/ADuC7061连接到一个热电偶和一个100Ω铂电阻温度检测器(RTD)。RTD用于冷结补偿。作为额外选项,ADT7311数字温度传感器可用于代替RTD来测量冷结温度。
在源代码中,ADC采样速率选择4 Hz。当ADC输入可编程增益放大器(PGA)的增益配置为32时,ADuC7060/ADuC7061的无噪声分辨率大于18位。
与主机的单边半字节传输(SENT)接口通过使用定时器控制数字输出引脚来实现。然后,使用外部NPN晶体管将此数字输出引脚通过外部方式电平转换为5 V。按照SENT协议(SAE J2716标准)第6.3.1节的建议在SENT输出电路中提供了EMC滤波器。数据按下降沿到下降沿测量,每个脉冲的持续时间与系统时钟周期数相关。可通过测量SYNC脉冲来确定系统时钟速率。SYNC脉冲在每个数据包开始时发送。要了解更多详情,请参见“SENT接口”部分。
电路描述
本应用中用到: ADuC7060/ ADuC7061的下列特性:
- 内置PGA的24位∑-△型主ADC。PGA的增益在本应用的软件中设置为32。主ADC在热电偶信号采样与RTD电压信号采样之间连续切换。
- 如果用RTD测量冷结温度,可编程激励电流源会驱动受控电流流过RTD。双通道电流源可在0μA至2μA范围内以200μA阶跃配置。本例使用200μA设置,以便将RTD自热效应引起的误差降至最小。
- 如果用ADT7311测量冷结温度,将在主机模式下使用SPI接口来连接ADT7311从机。
- ADuC7060/ ADuC7061中ADC的内置1.2 V基准电压源。内部基准电压源精度高,适合测量热电偶电压。
- ADuC7060/ ADuC7061中ADC的外部基准电压源。为了测量RTD电阻,我们采用比率式设置,将一个外部基准电阻(RREF)连接在外部VREF+和VREF−引脚上。
- AD8628 单电源运算放大器用于缓冲RREF至ADC的高阻抗基准电压。
- OP193是用于替代AD8628的另一可选择型号。
- 用于将热电偶共模电压设为地以上850 mV的DAC。
- ARM7TDMI®内核。功能强大的16/32位ARM7内核集成了32 kB闪存和SRAM存储器,用来运行用户代码,可配置并控制ADC、通过RTD处理ADC转换,以及控制SPI接口的通信。
- 定时器1和数字输出引脚用于产生SENT输出信号。
- 用于抑制ESD、电快速瞬变(EFT)和电涌瞬变(最高23kV)的可选PESDLIN保护二极管。
- 按照SAE J2716标准(SENT协议)第6.3.1节的建议在SENT输出端提供了EMC滤波器。
- 两个外部开关用来强制该器件进入闪存引导模式。使S1处于低电平,同时切换S2,ADuC7060/ADuC7061将进入引导模式,而不是正常的用户模式。在引导模式下,通过UART接口可以对内部闪存重新编程。
热电偶和RTD产生的信号均非常小,因此需要使用PGA来放大这些信号。ADuC7060/ADuC7061的辅助ADC不含PGA,因此二者均连接到主ADC,二者之间的切换通过软件完成。
本应用使用的热电偶为T型(copperconstantan),其温度范围为−200°C至+350°C,灵敏度约为40μV/°C,这意味着ADC在双极性模式和32倍PGA增益设置下可以覆盖热电偶的整个温度范围。
RTD用于冷结补偿。本电路使用的是100Ω 铂RTD,型号为Enercorp PCS 1.1503.1。它采用0805表贴封装,温度变化率为0.385Ω /°C。
注意,基准电阻RREF应为精密5.6 kΩ (±0.1%)电阻。
SENT接口
SENT接口是一种单引脚单向(传感器至主机)时间调制信号,主要用于在汽车系统中使分布式传感器与主机CPU接口。
SENT的主要要求包括以下几点:
- 必须有0 V至5 V的信号摆幅,且带有EMC滤波。
- 用于SENT信号的时钟必须具备±20%的精度。
- SENT输出电路必须足够稳定,以耐受对地短路和电源电压短路。
关联的源代码使用ADuC7061的P0.4数字引脚作为SENT输出引脚。所用数据包格式为单传感器数据包格式,详见SAE J2716标准(SENT协议)文档的第A.4节。可修改源代码(尤其是SENT.h和Sent.c文件),来支持其它数据包格式。整体温度结果以/°C格式通过数据半字节1至数据半字节3返回。总而言之,返回的输出数据包为
- 同步脉冲的56个时钟周期
- 状态脉冲(7个周期至15个周期)
- 数据半字节1(温度结果的Bit 11至Bit 8)
- 数据半字节2(温度结果的Bit 7至Bit 4)
- 数据半字节3(温度结果的Bit 3至Bit 0)
- 数据半字节4(计数器的Bit 7至Bit 4)
- 数据半字节5(计数器的Bit 3至Bit 0)
- 数据半字节6(与半字节1相反)
图2为数据包示例。
该电路必须构建在具有较大面积接地层的多层印刷电路板(PCB)上。为实现最佳性能,必须采用适当的布局、接地和去耦技术(请参见指南MT-031“实现数据转换器的接地并解开AGND和DGND的谜团”、 指南MT-101“去耦技术”以及ADuC7060/ ADuC7061评估板布局)。
代码说明
定时器1用于控制SENT输出引脚P0.4。根据热电偶的ADC结果和冷结温度计算出温度结果后,SENT数据包结构SENT_PACKET将更新,并且定时器1会启动。该结构的域会在P0.4引脚上逐个输出,如图2所示。数据包的第一级是同步序列。主机根据此脉冲确定时钟周期,并据此确定后续半字节值。
要获得温度读数,应测量热电偶和RTD的温度。RTD温度通过一个查找表转换为其等效热电偶电压。将这两个电压相加,便可得到热电偶电压的绝对值。
首先,测量热电偶两条线之间的电压(V1)。然后,测量RTD电压并通过查找表将其转换为温度。接着,将此温度转换为其等效热电偶电压(V2)。然后,将V1和V2相加,以得出整体热电偶电压,接着将此值转换为最终的温度测量结果。
最后,采用分段线性方案来计算最终的温度值。固定数量的电压各自对应的温度存储在一个数组中,其间的值则利用相邻点的线性插值法计算。图3给出了使用理想热电偶电压时的算法误差。图4显示了使用ADuC7060/ADuC7061上的ADC0引脚测量整个热电偶工作范围内的52个热电偶电压时获得的误差。最差情况的总误差小于1°C。
图3. 通过分段线性逼近法利用52个校准点和理想测量值计算时的误差
RTD温度是运用查找表计算出来的,并且对RTD的运用方式与对热电偶一样。注意,描述RTD温度与电阻关系的多项式与描述热电偶的多项式不同。
设计支持包中的源代码是利用KEILμVision V3.90生成的。
欲了解有关线性化和实现RTD最佳性能的详细信息,请参考 应用笔记AN-0970“利用ADuC706x微控制器实现RTD接口和线性化”。
常见变化
可不使用外部RTD而改用 ADT7311 温度传感器来测量冷结温度。
使用ADT7311的源代码随附于设计支持包中的软件包:www.analog.com/CN0281-DesignSupport
需要一个额外的外部稳压器来为ADT7311供电。该电路中用到了ADP7102,但也可使用ADP120。
如果微控制器上需要更多GPIO引脚,则可选择采用48引脚LFCSP或48引脚LQFP封装的ADuC7060。请注意,ADuC7060/ADuC7061可通过标准JTAG接口进行编程或调试。
使用外部基准电阻作为RTD测量的基准源时,建议以单位增益模式使用运算放大器来对VREF+引脚的输入进行缓冲。这是为了确保进入VREF+引脚的输入泄漏电流不会有损于测量精度。图9中的OP193就是针对此目的。图1显示了额定工作温度范围为−40°C至+150°C的AD8628。
对于更宽的温度范围,可以使用不同的热电偶,例如J型热电偶。为使冷结补偿误差最小,可以让一个热敏电阻与实际的冷结接触,而不是将其放在PCB上。
针对冷结温度测量,可以用一个外部数字温度传感器来代替RTD和外部基准电阻。例如,ADT7311可以通过I2C接口连接到ADuC7060/ADuC7061。
有关冷结补偿的更多信息,请参阅ADI公司的《传感器信号调理》第7章“温度传感器”。
电路评估与测试
评估SENT接口输出时,利用数字示波器和逻辑分析仪。测试时间仅为1个SENT时钟周期(100μs),这是SENT标准允许的最大值。这项实施方案的限制因素包括以下几点:
- 定时器FIQ中断延迟的变化。ARM7的中断延迟最高可达45个CPU时钟。CPU时钟频率为10.24 MHz时,此延迟最高可达4.4μs。最小值为5个CPU时钟(0.5μs)。当ARM7内核正在执行LDMIA或STMIA(从存储器加载或向其中存储多个值)时,延迟状况最差。选择“Split Load and StoreMultiple(独立加载和存储多项)”编译器选项即可最大限度地避免此问题,具体方法见图5。
- ADuC7060/ ADuC7061 上的10.24 MHz振荡器在最差情况下的精度为±3%,工作温度范围为−40°C至+125°C。
尽管存在这些限制,但选择1个SENT时钟周期(100μs)时,这种实施方案仍完全符合SENT规范的±20%时序精度要求。
图1中的SENT输出上考虑到了EMC滤波器。为此滤波器选择值(R1、C1、C2),以满足目标发射器输出波形,如图6所示,从而降低因SENT输出而造成的EMC辐射。
这里只对此滤波器做了有限测试;因此,忽略了该输出滤波器的电阻和电容值,如图1所示(R1、C1和C2)。
为了进一步测试和评估该电路,这里单独评估了热电偶测量和RTD测量。
热电偶测量测试
基本测试设置如图7所示。使用了两种方法来评估该电路的性能。首先使用连接到电路板的热电偶来测量冰桶的温度,然后测量沸水的温度。
使用Wavetek 4808多功能校准仪来充分评估误差,如图3和图4所示。这种模式下,校准仪代替热电偶作为电压源,如图7所示。为了评估T型热电偶的整个范围,利用校准仪设置T型热电偶−200°C至+350°C的正负温度范围之间52个点的等效热电偶电压(T型热电偶请参见ITS-90表)。
为了评估查找算法的精度,将−200°C至+350°C温度范围内每隔+1°C的温度所对应的551个电压读数传递到温度计算函数中。针对线性方法和分段线性逼近法计算得到误差,如图3和图4所示。
RTD测量测试
为了评估RTD电路和线性化源代码,以精确的可调电阻源代替了电路板上的RTD。所用的仪器是1433-Z十进制电阻。测试的RTD值范围是90Ω到140Ω,代表−25°C到+114°C的RTD温度范围。
图8显示了RTD测试的误差结果,图9则显示了设置电路。
讨论
样片申请及购买
样片
产品 |
描述 |
可提供样片的 |
AD8628 | 零漂移、单电源RRIO运算放大器 | AD8628ARTZ-REEL7 AD8628ARZ AD8628AUJZ-REEL7 AD8628WARTZ-R7 AD8628WARZ-R7 AD8628WAUJZ-R7 |
ADUC7060 | 低功耗、精密模拟微控制器、双通道Σ-Δ型ADC、Flash/EE、ARM7TDMI | ADUC7060BCPZ32 ADUC7060BSTZ32 |
ADUC7061 | 低功耗、精密模拟微控制器、双通道Σ-Δ型ADC,Flash/EE存储器,ARM7TDMI内核 | ADUC7061BCPZ32 |
ADT7311 | 汽车应用、±0.5°C精度的16位数字SPI温度传感器 | ADT7311WTRZ |
ADP7102 | 20 V、300 mA低噪声CMOS LDO | ADP7102ACPZ-1.5-R7 ADP7102ACPZ-1.8-R7 ADP7102ACPZ-2.5-R7 ADP7102ACPZ-3.0-R7 ADP7102ACPZ-3.3-R7 ADP7102ACPZ-5.0-R7 ADP7102ACPZ-9.0-R7 ADP7102ACPZ-R7 ADP7102ARDZ-1.5-R7 ADP7102ARDZ-1.8-R7 ADP7102ARDZ-2.5-R7 ADP7102ARDZ-3.0-R7 ADP7102ARDZ-3.3-R7 ADP7102ARDZ-5.0-R7 ADP7102ARDZ-9.0-R7 ADP7102ARDZ-R7 |