两种不同成份的导体(称为热电偶丝材或热电极)两端接合成回路,当接合点的温度不同时,在回路中就会产生电动势,这种现象称为热电效应,而这种电动势称为...
代码的校准部分 - 采用Cortex-M3的12位4-20mA环路供电型热电偶测量系统
代码的校准部分
可调整编译器#define值(calibrateADC1和calibrateDAC),以使能或禁用ADC和DAC的校准程序。
要校准ADC或DAC,接口板(USB-SWD/UART)必须连接至 J1和PC上的USB端口。可使用“超级终端”等COM端口查看程序来查看校准菜单并逐步执行校准程序。
校准ADC时,源代码会提示用户将零电平和满量程电压连接至AIN2和AIN3。注意,AIN2是正输入端。完成校准程序后,ADC1INTGN和ADC1OF寄存器的新校准值就会存储到内部闪存中。
校准DAC时,应通过精确的电流表连接VLOOP+输出端。 DAC校准程序的第一部分校准DAC以设置4 mA输出,第二部分则校准DAC以设置20 mA输出。用于设置4 mA和20 mA 输出的DAC代码会存储到闪存中。针对最终的4 mA和20 mA 设置在AIN9处测得的电压也会记录下来并存储到闪存中。由于在AIN9处的电压与流经RLOOP的电流线性相关,因此这些值会用于计算DAC的调整因子。这种闭环方案意味着,可以使用片内24位∑-△型型ADC进行微调而消除DAC和基于晶体管的电路上的所有线性误差。
UART配置为波特率9600、8数据位、无极性、无流量控制。如果本电路直接与PC相连,则可使用“超级终端”等通信端口查看程序来查看该程序发送给UART的结果,如图5 所示。
要输入校准程序所需的字符,请在查看终端中键入所需字符,然后ADuCM360 UART端口就会收到该字符。
图5. 校准DAC时的“超级终端”输出
代码的温度测量部分
要获得温度读数,应测量热电偶和RTD的温度。RTD温度通过一个查找表转换为其等效热电偶电压(T型热电偶请参见ISE, Inc.的ITS-90表)。将这两个电压相加,便可得到热电偶电压的绝对值。
首先,测量热电偶两条线之间的电压(V1)。测量RTD电压并通过查找表转换为温度,然后再将此温度转换为其等效热电偶电压(V2)。然后,将V1和V2相加,以得出整体热电偶电压,接着将此值转换为最终的温度测量结果。
对热电偶而言,固定数量的电压所对应的温度会存储在一个数组中。其间的温度值利用相邻点的线性插值法计算。
图6显示了使用 ADuCM360上的ADC1测量整个热电偶工作范围内的52个热电偶电压时获得的误差。最差情况的总误差小于1°C。
图6. 通过分段线性逼近法利用ADuCM360/ADuCM361所测52个校准点时的误差
RTD温度是运用查找表计算出来的,并且对RTD的运用方式与对热电偶一样。注意,描述RTD温度与电阻关系的多项式与描述热电偶的多项式不同。
有关线性化和实现RTD最佳性能的详细信息,请参考 应用笔记AN-0970“利用ADuC706x微控制器实现RTD接口和线性化”。
代码的温度至电流输出部分
测得最终温度后,将DAC输出电压设置为适当的值,以便在RLOOP上产生所需的电流。输入温度范围应该是−200°C 至+350°C。代码针对−200°C和+350°C设置的输出电流分别是4 mA和20 mA。代码实施的是闭环方案,如图7所示,其中AIN9上的反馈电压通过ADC0测量,然后此值用于补偿 DAC输出设置。FineTuneDAC(void)函数执行此项校正。
为获得最佳结果,应在开始该电路的性能测试前校准 DAC。
图7. 闭环控制4 mA至20 mA的DAC输出
出于调试目的,以下字符串会在正常工作期间发送至 UART(见图8)。
图8. 用于调试的UART字符串
常见变化
对于标准UART至RS-232接口,可以用 ADM3202等器件代替FT232R收发器,前者需采用3 V电源供电。对于更宽的温度范围,可以使用不同的热电偶,例如J型热电偶。为使冷结补偿误差最小,可以让一个热敏电阻与实际的冷结接触,而不是将其放在PCB上。
针对冷结温度测量,可以用一个外部数字温度传感器来代替RTD和外部基准电阻。例如, ADT7410 可以通过I2C接口连接到ADuCM360。
有关冷结补偿的更多详情,请参考ADI公司的《传感器信号调理》第7章“温度传感器”。
如果USB连接器与本电路之间需要隔离,则必须增加 ADuM3160/ ADuM4160 隔离器件。
相关文章
发表评论