基于ARM和ADS1248高精度测温装置的设计

2017-08-30 18:28王金龙王安敏刘世超
自动化仪表 2017年8期
关键词:迭代法电阻值阻值

王金龙,王安敏,赵 经,刘世超

(青岛科技大学机电学院机械电子工程实验室,山东 青岛 266061)

基于ARM和ADS1248高精度测温装置的设计

王金龙,王安敏,赵 经,刘世超

(青岛科技大学机电学院机械电子工程实验室,山东 青岛 266061)

为了实现医疗制冷柜在超低温环境中对关键部位温度参数的高精度采集,设计了一种多路高精度测温装置。装置基于高精度测温专用A/D芯片ADS1248设计,选取具有高效哈佛结构的STM32系列单片机作为控制核心,以Pt100铂电阻作为温度传感器,使用四线制测量方法,在外部参考电压测量法中采用了一个高精度参考电阻,使Pt100的精确度得以提高。选用了24位的ADS1248集成芯片,包括PGA放大器、恒流源等,在满足较高的分辨率同时简化了装置,提高了效率。通过查表差值法和牛顿迭代法相结合的方法优化了Pt100的非线性特性,提高了其精度,并将温度参数存入Flash储存器。测试结果表明,在30~300 ℃温度范围内,本装置精度达到±0.01 ℃,能够满足医疗器械在超低温控制中的精度要求。

智能控制; 嵌入式系统; A/D转换; 测温装置; 四线制测量; 铂电阻

0 引言

随着计算机与信息技术的深度融合,具有智能控制、高精度、高可靠性及较好实效性的温度控制系统已被广泛应用到工业控制、农业生产、军事技术、航天和航空等各个领域,各个领域控制技术的进步又促进了嵌入式微控制技术的发展。同样,温度控制系统应用在医疗器械等一些特殊领域时,对测温控制提出了更高的精度要求。

以STM32系列单片机为控制核心,以PT100铂电阻为温度传感器,并以ADS1248芯片为基础,设计了一种新的高精度测温装置。该装置具有精度高、稳定性高、实际效果好、鲁棒性强等优点。因此,在医疗领域,该测温装置能够广泛地应用在人体器官或疫苗仓储运输及其监控中。

1 总体方案设计及原理

1.1 系统总体设计

系统以STM32F103ZET6微处理器为核心,该测温硬件部分包括STM32F103ZET6单片机、PT100铂电阻温度传感器、恒流源电路、信号调理电路、ADS1248 A/D转换模块、Flash储存器模块。在测温电路中,测温传感器是Pt100铂电阻温,它将外界的温度信号转换成电压模拟信号,经过信号调理电路传到ADS1248 A/D转化芯片;将模拟信号转换为数字信号,并送入STM32微控制器。STM32主控模块读取 ADS1248 输出的数字温度信号,对其进行数据处理运算,并将处理结果存入SD卡中;与此同时,把数据上传到计算机机上,以实时监控其结果。MCU通过 I/O口模拟SPI 协议,实现与 ADS1248和Flash储存器通信。

系统设计原理框图如图1所示。

图1 系统设计原理框图

1.2 铂电阻测温原理

铂电阻温度传感器的原理是金属铂(Pt)的温度变化对应特定电阻值。根据这一物理特性所制成的铂电阻温度传感器,只需测定其电阻值就可以计算出其所测对象的温度。铂电阻的阻值与温度值之间呈非线性关系。铂电阻Pt100测量温度范围最低可达-200 ℃,最高可达850 ℃,常用铂电阻温度传感器在0 ℃时的对应电阻值为100 Ω,它的电阻值随着温度的增长而均匀增长,电阻的变化率为0.385 1 Ω/℃。铂电阻温度传感器以其精度高、稳定性好、高效可靠、响应迅速等优点而被广泛应用于工业测温系统以及各种标准温度计的计量和校准。按照IEC 751国际标准,现在常用的Pt100是以温度系数为标准统一设计的铂电阻[1]。 根据铂电阻温度特性,当铂电阻温度传感器工作在-200~0 ℃时,有:

Rt=R0[1+At+Bt2+C(t-100)t3]

(1)

当铂电阻温度传感器工作在 0~850 ℃时,C=0,有:

Rt=R0(1+At+Bt2)

(2)

式中:Rt为Pt 100在t℃时的阻值;R0为其在0 ℃时的阻值;A、B、C为常系数。当TCR=0.003 851时,系数值A=3.908 3×10-3、B=-5.775×10-7、C=-4.183×10-12。

1.3 Pt100四线制测阻值原理

一般而言,传统的方法采用Pt100(二线制方法或是三线制方法)测试温度时,忽略了导线上的等效电阻势,导线上等效的电阻将产生一定的干扰影响。当被测试电阻值极其微小时,在测温系统产生的误差是显而易见的。

精密控制不允许存在较大的误差。本设计采用四线制测电阻的方法,能够完全消除导线电阻引起的误差。测试电路原理图如图2所示。

图2 测试电路原理图

当装置采用四线制方法测量电阻时,在导线1和导线4的A点、B点提供恒定电流,则A、B两端产生的压降一定包括了导线1和导线2上的等效电阻压降。此时,不测量导线1和导线4的A、B两端压降,而是测量导线2和导线3的m、n两端压降。只要数字电压表输入较高的阻抗,电流几乎不流过电压表。四线制测温方法[2]消除了导线2和导线3上等效电阻的压降,从而精确测出恒流源经过Pt100时产生的真实压降,并计算得出电阻值Rt。

2 硬件电路设计

2.1 MCU测温电路设计

主控芯片采用意法半导体公司的32位超低功耗STM32F103ZET6处理器,STM32系列使用了ARM先进架构的Corter-M3内核,采用哈佛(Harvard)体系结构[3]。哈佛结构是一种将程序指令存储和数据存储分开的存储器结构,是一种并行体系结构。程序存储器和数据存储器相互独立,每个存储器独立编址、独立访问。与2个存储器相对应的是系统中的4套总线,提高了数据的执行速度。

STM32F103系列芯片集成度高,内核工作频率最高为72 MHz,可以进行单周期乘法和硬件除法,有144个引脚、 64 KB静态随机存取存储器、512 KB FLASH、2个基本定时器、4个通道定时器、2个高级定时器、3个SPI、2个I2C、5个串口、1个CAN、3个12位DAC、1个SDIO接口、1个FSMC接口以及112个通用I/O口以及其他丰富的外设资源[4]。ADS1248将Pt100温度传感器温度电压信号转换成数字信号,STM32主控器通过SPI串行外设接口与ADS1248连接并对收到数据进行计算处理。Pt100温度传感器接线端子Pt1.1、Pt1.2、Pt1.3通过外部参考电阻分别接到ADS1248的5号管脚、12号管脚、11号管脚,Pt1.4接到ADS1248的20号管脚。

2.2 A/D转换器ADS1248

TI的ADS1248是一款高度集成的24位精密数模转换芯片,提供了完整的前端解决电路设计,集成了低噪声可编程增益放大器(programmable gain amplifier,PGA),具有精密Delta-Sigma ADC振荡器输入切换器的单周期数字滤波器(输入多路复用器),提供2个恒流电源[5]。ADS1248的可编程增益放大器可以将微弱的模拟信号放大128倍,数字过滤器可以对干扰信号进行过滤,提高了其测量的精确度,因此广泛应用于热电偶、RTD等传感器。

医疗冷冻柜要求温度传感器的温度范围为-150~+60 ℃,Pt100的温度与电阻值表对应的阻值范围为39.72 ~123.24 Ω。外部参考电压为:

(3)

(4)

因此,Pt100选择恒流源的大小为1 mA,即参考电阻值为820 Ω。温度值为50 ℃,对应阻值为123.24 Ω时,Pt100的分压值达到最大,为:

Uin max=123.24 Ω×1 mA=123.24 mV

(5)

2.3 恒流源驱动电路

该系统将四线制测温方法应用在恒流源驱动铂电阻温度传感器上,ADS1248的2个恒流源可以外接在Pt100的2根线上,用于驱动铂电阻温度传感器,所选参考电压为Rrel两端的电压。在ADS1248的外部器件中,Rrel选用的是高精度、低温漂的精密电阻,参考压的输入管脚位REFP0和REFN0,参考电压值为:

Urel=2×IDAC×Rrel

2.4 储存电路

Flash储存器选用SAMSUNG公司的NAND型 K9WBG08U1M芯片,其芯片架构为4 GB×8,储存容量为32 Gb,工作电压为2.7~3.6 V,传输速率为25 ns,具有储存量密度高、功耗小、掉电数据不丢失、可靠性高等特点。SD卡与STM32的通信有2种模式,即SD模式和SPI 模式,可根据读写数据速度的要求,设定不同工作模式[6-7]。该温度传感器采集数据的工作量并不大,因此,将SD卡置于SPI模式下,并且采用I/O 口模拟 SPI 协议来实现。SD卡电路如图3所示。

图3 SD卡电路图

3 系统软件设计

3.1 高精度测温优化

为了提高Pt100测试温度的精确度,在软件方面,采取查表差值法和牛顿迭代法相结合的方案,对数据进行高精度测温优化[8]。先用查表插值法求出初值tn,再用牛顿迭代法计算出精确值tn+1。

①利用查表插值法计算出近似温度值。

使用京赛亿凌科技有限公司的铂电阻温度传感器,在-200~+300 ℃的范围内,以1 ℃为间隔进行分段,可分得501个小区间,记为501个小段。在每个区域段内进行线性化处理,采用最小二乘拟合确定每段区域的直线方程,每个段点的阻值组成一个表格。

根据温度电阻分度表,将表格储存在STM32控制芯片的ROM,从而建立了温度值T[i]和电阻值R[i]的对应关系。插值示意图如图4所示。

图4 插值示意图

温度初值Tn的计算公式为:

(6)

②利用牛顿迭代法计算出优化温度值。

铂电阻工作温度在-200~0 ℃时,Pt100 传感器阻值与温度的关系如式(1)所示。式(1)是关于温度的四次方程直接公式(卡尔达诺公式),而且求解非常复杂,有效值需要开立方运算,计算量非常大。

当工作温度在 0~850 ℃时,Pt100 传感器电阻值与温度的关系如式(2)所示,进而求出如式(7)所示的关系式。

(7)

式中:A=3.908 3×10-3;B=-5.775×10-7;C=-4.183×10-12;Rt为测得的实际电阻值;R0为初始电阻值。

在步骤①中,利用查表插值法计算出近似温度,由图4可以看出横坐标电阻值和纵坐标温度关系呈现出一条直线,即绝对的线性关系。但从式(1)为四次方多项式、式(2)为二次方多项式可以看出,铂电阻的阻值与实际温度的关系不是绝对的线性关系。假如利用式(7)开平方运算计算实际温度,计算复杂且效率低,需要计算定点数开平方运算或是开立方运算。牛顿迭代法可以解决这些复杂运算[9],常见的有简化牛顿迭代法、牛顿迭代下山法、Nowton-like法、弦位法等[10]。首先利用查表插值法计算出近似温度值,然后代入相应的牛顿迭代公式,反复校正这个相似值以满足迭代精度,即可以得出优化温度值。

当工作温度在-200~0 ℃时,利用牛顿迭代下山法求解其优化值。

定义函数1:

f(t)=Rt-R0[1+At+Bt2+C(t-100)t3]

(8)

对函数1求导:

f′(t)=-AR0-2BR0t+300R0t2-4CR0t3

(9)

(10)

式中:λk为下山因子,一般取值范围为0 ≤λk≤1。通过试选的方法来确定λk,一般λk可试选为1、0.5、0.25、0.125或0.062 5。公式经过反复迭代,使f′(t*)≠0,即t*是单根的情况,f″(t)存在并连续,从而有界。只要t足够靠近t*,|f(t)|就足够靠近0。选取适当的下山因子,其目的是使|f(Xk+1)|<|f(Xk)|成立。这种通过非线性方法转换成线性方法求解未知数的方法称为牛顿迭代下山法。

当工作温度在 0~850 ℃时,利用一般牛顿迭代法求解。

定义函数2:

f(t)=Rt-R0(1+At+Bt2)

(11)

设tn是f(t)=0 精确解附近的一个猜测解,把f(t)在tn处作一阶泰勒展开,即:

f(t)≈f(tn)+f′(tn)(t-tn)

(12)

得到如下近似方程:

f(tn)+f′(tn)(t-tn)=0

(13)

设f′(tn)≠0,则式(6)解为:

(14)

取t′作为原方程新的近似解tn+1,则:

(15)

式(12)又被称为一般牛顿迭代公式。

3.2 主程序流程

STM32系列单片使用C语言编写程序,它的IAR 调试特性很好,具有良好的智能化控制特性,在完成系统初始化之后马上进入低功耗模式。初始化主要有:设定处理器硬件频率为72 MHz,系统时钟频率为72 MHz,AHB总线频率为 72 MHz,APB1、APB2总线频率为 72 MHz;GPIO 端口初始化配置,设置 STM32 与主控板通信的 SPI1接口和与 ADS1248 通信的 SPI2 接口为普通 I/O 模式;DAM初始化,即对系统中断、看门狗、SPI 接口等进行初始化。这里的低功耗模式选择待机模式:电压调节器关闭,整个1.8 V区域断电;CM3处理器停止运行,CM3的内部外设停止运行;STM32的PLL、HSE、HSI被关断;SRAM和寄存器内的内容丢失;备份寄存器的内容保存。单片机用定时器中断来启动CPU。先对MCU、单元接口、线路等进行电路连接检测,如果检查不正常,在上位机上显示故障报警信息;如果检查正常,直接进行A/D转换。然后进入 ADC中断,在中断中利用查表插值法求得初值,进而用牛顿的迭代法优化温度精确度。至此,一次采集完成,在上位机上显示温度,并将温度数据储存入SD卡以便于以后检查。 主程序流程如图5所示。

图5 主程序流程图

4 测温效果分析

在完成硬件和软件设计的基础上,把温度传感器部分放进高精度的密闭试验槽中,在30~300 ℃的范围内,制定了10个参考点,设定试验槽温度每隔 30 ℃变化。当试验槽的温度稳定在一定的有效区间时,进行温度测试试验,起始值为30 ℃。当试验箱的电阻值改变时,箱内的标称温度也发生了改变。铂电阻测温结果及误差如表1所示。

表1中的实测数据表明,所设计的Pt100温度传感器系统具有良好的稳定性和鲁棒性。该装置的测量精度能够达到±0.01 ℃,可实现高精度测温,同时也证明了查表差值和牛顿迭代相结合的有效性。这表明该测温装置适用于测温精度要求较高的工作环境。

表1 铂电阻测温结果及误差

5 结束语

该高精度测温装置是一种基于ADS1248的高精度Pt100测温系统,并且采用四线制测温方法。理论分析和实际测温试验结果表明:选用的STM32系列单片机电路简单可靠,并且可将测温数据储存在Flash储存器。在算法方面,采取查表差值法和牛顿迭代法相结合的方案对数据优化精确度。该装置不仅广泛适用于超低温制冷柜温测、温控制,而且可应用于在恶劣环境中的石油井下高精度测温以及导弹或飞行器在工作过程中的关键部件温度测试。该高精度温度测量系统在工业、农业和航空航天领域有更广阔的应用前景。

[1] 刘培基,王安敏.机械工程测试技术[M].北京:机械工程出版社,2007.

[2] 张树青.基于ADS1248高精度测温装置设计[J].自动化仪表,2013,34(4):249-252.

[3] 陈志旺.STM32嵌入式微控制器快速上手[M].2版.北京:电子工业出版社,2014.

[4] 王晓丹,孟令军.多通道高精度测温存储系统的研究[D].太原:中北大学,2015.

[5] Texas Instruments Inc.MSP430F20X3 Mixed Signal Microcontroller Datasheet[EB/OL].[2006-06-09].http//www.ti.com.

[6] 童静.基于MCF51QE128的SD卡接口设计[J].单片机与嵌入式系统应用,2009(12):49-52.

[7] 刘智勇,陈鹏飞,宿磊,等.基于STM32芯片的U盘/SD 卡文件传输技术研究[J].现代电子技术,2014,37(18):107-109.

[8] 李加超,孟令军.基ARM 的高精度测温系统设计与实现[J].自动化与仪表,2014(10):16-19.

[9] 张小鸣,李永新.基于牛顿迭代法的高精度快速开方算法[J].电力自动化设备,2008,28(3):75-77.

[10]王丹,齐文雅.用改进的截距牛顿法解关于甲醇合成反应平衡常数的非线性方程组[J].新乡学院学报,2015,9(6):7-21.

Design of the High Precision Temperature Measuring Device Based on ARM and ADS1248

WANG Jinlong,WANG Anmin,ZHAO Jing,LIU Shichao

(Mechanical and Electronic Engineering Laboratory of Mechanical and Electrical Engineering College,Qingdao University of Science & Technology,Qingdao 266061,China)

In order to realize the high precision collection of the temperature parameters of the critical parts in the medical refrigeration cabinet under ultra-low temperature environment,a multi-channel high-precision temperature measuring device is designed.The device is designed based on high precision dedicated temperature measurement A/D chip ADS1248;the STM32 series MCU with high efficiency Harvard structure is selected as the control core;the Pt100 platinum resistance is used as the temperature sensor;the four-wire method is used for temperature measurement.In the measurement method of external reference voltage,a high precision reference resistor is used,so that the accuracy of Pt100 can be improved.The 24-bit ADS1248 integrated chip is selected,which includes PGA amplifier,constant current source,etc.,thus the higher resolution is met,while the device is simplified,and the efficiency is enhanced.The nonlinearity of Pt100 is optimized by the combined method of table look up method for difference,and Newton iteration method.Its accuracy is improved.The temperature parameters are stored in Flash memory.Test results show that in the temperature range of 30~300 ℃,the accuracy of the device is up to±0.01 ℃,and it can meet the accuracy requirement of medical facility under ultra-low temperature environment.

Intelligent control; Embedded system; A/D conversion; Temperature measuring device; Four-wire measurement; Platinum resistance

王金龙(1988—),男,在读硕士研究生,主要从事机电系统计算机控制、机电一体化方向的研究。 E-mail:978601153@qq.com。 王安敏(通信作者),男,博士,教授,主要从事机电一体化、机电系统计算机控制及计算机辅肋测试技术(CAT)的研究。 E-mail: 1049775677@qq.com。

TH811;TP212

A

10.16086/j.cnki.issn1000-0380.201708017

修改稿收到日期:2017-03-16

猜你喜欢
迭代法电阻值阻值
导电电极对电阻浆料阻值的影响
求解大型广义绝对值方程的Picard-SS迭代法
迭代法求解一类函数方程的再研究
四线制阻值检测电路实验研究
求解复对称线性系统的CRI变型迭代法
对一道电学实验题的思考
探讨惠斯通电桥的灵敏度与几种因素有关
香樟黄化病对其生长及生理特性的影响
多种迭代法适用范围的思考与新型迭代法
长输管道接地电阻解析