在某企业开发的加工控制系统中,温度范围是-100℃~600℃,测量误差小于1%。针对本系统所需的温度测量要求,选用了精度高的铂电阻作为温度传感器,模数转换使用 MSP430F149内部的12位分辨率的ADC模块。温度测量系统具有低功耗、结构简单,使用方便,可以扩展成多路温度测量等优点。
1 硬件设计
根据测试系统所要求的测量范围,选用的传感器为铂电阻PT100,PT100的测量范围是-200到850,从PT100的分度表可以计算出线性度为,无法达到测量精度的要求,所以需要一个线性补偿的信号调理电路,线性补偿电路通过采用XTR105芯片,通过温度测量范围匹配电阻,从而达到设计要求。AD 转换用MSP430F149单片机内部12位分辨率的ADC。LCD是2行×16列的字符型液晶显示器。系统的电路框图如图1所示。
1.1 MSP430单片机
MSP430是德州公司新开发的一类具有16位总线的带FLASH的单片机,由于其性价比和集成度高,受到广大技术开发人员的青睐。它采用16位的总线,外设和内存统一编址,寻址范围可达64K,还可以外扩展存储器。具有统一的中断管理,具有丰富的片上外围模块,片内有精密硬件乘法器、两个16位定时器、一个12位的模数转换器、一个看门狗、6路I/O端口、两路USART通信端口、一个比较器、一个DCO内部振荡器和两个外部时钟,支持8M的时钟。对于 FLASH型则有十分方便的开发调试环境,因为器件片内有JTAG调试接口,还有可电擦写的FLASH存储器,因此采用先通过JTAG接口下载程序到 FLASH内,再由JTAG接口控制程序运行、读取片内CPU状态,以及存储器内容信息供设计者调试,整个开发都可以在同一个软件集成环境中进行。这种方式只需要一台PC机和一个JTAG调试器,而不需要专用仿真器和编程器。开发语言有汇编语言和C语言。
1.2 PT100温度传感器
温度是表征物体冷热程度的物理量,它可以通过物体随温度变化的某些特性(如电阻、电压变化等特性)来间接测量,金属铂(Pt)的电阻值随温度变化而变化,并且具有很好的重现性和稳定性,利用铂的此种物理特性制成的传感器称为铂电阻温度传感器,通常使用的铂电阻温度传感器零度阻值为100Ω,电阻变化率为 0.3851Ω/℃。铂电阻温度传感器精度高,稳定性好,应用温度范围广,是中低温区(-200~650℃)***常用的一种温度检测器,不***广泛应用于工业测温,而且被制成各种标准温度计供计量和校准使用。PT100的温度/电阻曲线如图2所示。
按IEC751******标准,温度系数TCR=O.003851,Pt100(R0=100Ω)、Pt1000(R0=1000Ω)为统一设计型铂电阻。TCR=(R100一R0)/(R0×100)。PT100与PT1000的标准阻值如表1所示。
温度/电阻特性公式如下:
-2000 其中Rt在t℃时的电阻值,R0在0℃时的电阻值
1.3 信号调理电路设计
由于铂电阻的温度电阻特性具有线性度不好,在进行线性补偿时选用XTR105,铂电阻线性补偿电路如图3所示。各个电阻的计算公式如下。
其中,RZ=RTD***小测量温度,
RL选用时注意MSP430单片机ADC的参考电压,ADC的参考电压设置为外部电源电压3.3V,采用150的低温漂高精度电阻,RL的电压范围在 0.6V到3V之间,RL可直接接MSP430的模拟信号输入端进行模数转换。线性补偿电路设计中的电阻按照XTR105手册提供的计算方法来确定,其中 RZ为PT100在-100℃时的电阻(60Ω),R2为600摄氏度时的电阻(314Ω),R1=RTD Resistance at(-100+600)/2=194Ω,经过公式计算,RG=581Ω,RLIN1=4.3kΩ。
2 软件设计
在程序设计中使用C语言编程,使用C语言设计将会带来一下几点好处:1:可以大大提高软件开发的工作效率;2:可以提高所设计的程序代码的可靠性、可读性、可移植性;3:设计者可以更多地集中在充分发挥MSP430的功能上。MSP430可以进行多个模拟通道的ADC模数转换,进行ADC模块设置时需要设置通道、参考电压等相关寄存器,由于ADC转换的数值是2进制的,转换值送LCD显示前要使转换值变换成ASCII型数据,程序流程如图3所示。
3 测试结果
完成硬件与软件的设计后,进行系统联试。首先测试ADC的功能模块,测试的方法采用高精度的可变电阻器替代铂电阻PT100的阻值,根据铂电阻PT100 分度表调节对应温度的可变电阻的阻值,从-100℃到600℃区间取15个点,每50℃测试一次,记录AD转换值。温度和转换值进行***小二乘法线性拟合,计算出线性度等测量系统的指标。线性度计算结果为小于1%,测量数据如下:
AD转换功能调试结束后,对AD转换值进行数据处理,使测量值准确地显示在LCD上。