王金龍,王安敏,趙 經(jīng),劉世超
(青島科技大學機電學院機械電子工程實驗室,山東 青島 266061)
基于ARM和ADS1248高精度測溫裝置的設計
王金龍,王安敏,趙 經(jīng),劉世超
(青島科技大學機電學院機械電子工程實驗室,山東 青島 266061)
為了實現(xiàn)醫(yī)療制冷柜在超低溫環(huán)境中對關(guān)鍵部位溫度參數(shù)的高精度采集,設計了一種多路高精度測溫裝置。裝置基于高精度測溫專用A/D芯片ADS1248設計,選取具有高效哈佛結(jié)構(gòu)的STM32系列單片機作為控制核心,以Pt100鉑電阻作為溫度傳感器,使用四線制測量方法,在外部參考電壓測量法中采用了一個高精度參考電阻,使Pt100的精確度得以提高。選用了24位的ADS1248集成芯片,包括PGA放大器、恒流源等,在滿足較高的分辨率同時簡化了裝置,提高了效率。通過查表差值法和牛頓迭代法相結(jié)合的方法優(yōu)化了Pt100的非線性特性,提高了其精度,并將溫度參數(shù)存入Flash儲存器。測試結(jié)果表明,在30~300 ℃溫度范圍內(nèi),本裝置精度達到±0.01 ℃,能夠滿足醫(yī)療器械在超低溫控制中的精度要求。
智能控制; 嵌入式系統(tǒng); A/D轉(zhuǎn)換; 測溫裝置; 四線制測量; 鉑電阻
隨著計算機與信息技術(shù)的深度融合,具有智能控制、高精度、高可靠性及較好實效性的溫度控制系統(tǒng)已被廣泛應用到工業(yè)控制、農(nóng)業(yè)生產(chǎn)、軍事技術(shù)、航天和航空等各個領域,各個領域控制技術(shù)的進步又促進了嵌入式微控制技術(shù)的發(fā)展。同樣,溫度控制系統(tǒng)應用在醫(yī)療器械等一些特殊領域時,對測溫控制提出了更高的精度要求。
以STM32系列單片機為控制核心,以PT100鉑電阻為溫度傳感器,并以ADS1248芯片為基礎,設計了一種新的高精度測溫裝置。該裝置具有精度高、穩(wěn)定性高、實際效果好、魯棒性強等優(yōu)點。因此,在醫(yī)療領域,該測溫裝置能夠廣泛地應用在人體器官或疫苗倉儲運輸及其監(jiān)控中。
1.1 系統(tǒng)總體設計
系統(tǒng)以STM32F103ZET6微處理器為核心,該測溫硬件部分包括STM32F103ZET6單片機、PT100鉑電阻溫度傳感器、恒流源電路、信號調(diào)理電路、ADS1248 A/D轉(zhuǎn)換模塊、Flash儲存器模塊。在測溫電路中,測溫傳感器是Pt100鉑電阻溫,它將外界的溫度信號轉(zhuǎn)換成電壓模擬信號,經(jīng)過信號調(diào)理電路傳到ADS1248 A/D轉(zhuǎn)化芯片;將模擬信號轉(zhuǎn)換為數(shù)字信號,并送入STM32微控制器。STM32主控模塊讀取 ADS1248 輸出的數(shù)字溫度信號,對其進行數(shù)據(jù)處理運算,并將處理結(jié)果存入SD卡中;與此同時,把數(shù)據(jù)上傳到計算機機上,以實時監(jiān)控其結(jié)果。MCU通過 I/O口模擬SPI 協(xié)議,實現(xiàn)與 ADS1248和Flash儲存器通信。
系統(tǒng)設計原理框圖如圖1所示。
圖1 系統(tǒng)設計原理框圖
1.2 鉑電阻測溫原理
鉑電阻溫度傳感器的原理是金屬鉑(Pt)的溫度變化對應特定電阻值。根據(jù)這一物理特性所制成的鉑電阻溫度傳感器,只需測定其電阻值就可以計算出其所測對象的溫度。鉑電阻的阻值與溫度值之間呈非線性關(guān)系。鉑電阻Pt100測量溫度范圍最低可達-200 ℃,最高可達850 ℃,常用鉑電阻溫度傳感器在0 ℃時的對應電阻值為100 Ω,它的電阻值隨著溫度的增長而均勻增長,電阻的變化率為0.385 1 Ω/℃。鉑電阻溫度傳感器以其精度高、穩(wěn)定性好、高效可靠、響應迅速等優(yōu)點而被廣泛應用于工業(yè)測溫系統(tǒng)以及各種標準溫度計的計量和校準。按照IEC 751國際標準,現(xiàn)在常用的Pt100是以溫度系數(shù)為標準統(tǒng)一設計的鉑電阻[1]。 根據(jù)鉑電阻溫度特性,當鉑電阻溫度傳感器工作在-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為常系數(shù)。當TCR=0.003 851時,系數(shù)值A=3.908 3×10-3、B=-5.775×10-7、C=-4.183×10-12。
1.3 Pt100四線制測阻值原理
一般而言,傳統(tǒng)的方法采用Pt100(二線制方法或是三線制方法)測試溫度時,忽略了導線上的等效電阻勢,導線上等效的電阻將產(chǎn)生一定的干擾影響。當被測試電阻值極其微小時,在測溫系統(tǒng)產(chǎn)生的誤差是顯而易見的。
精密控制不允許存在較大的誤差。本設計采用四線制測電阻的方法,能夠完全消除導線電阻引起的誤差。測試電路原理圖如圖2所示。
圖2 測試電路原理圖
當裝置采用四線制方法測量電阻時,在導線1和導線4的A點、B點提供恒定電流,則A、B兩端產(chǎn)生的壓降一定包括了導線1和導線2上的等效電阻壓降。此時,不測量導線1和導線4的A、B兩端壓降,而是測量導線2和導線3的m、n兩端壓降。只要數(shù)字電壓表輸入較高的阻抗,電流幾乎不流過電壓表。四線制測溫方法[2]消除了導線2和導線3上等效電阻的壓降,從而精確測出恒流源經(jīng)過Pt100時產(chǎn)生的真實壓降,并計算得出電阻值Rt。
2.1 MCU測溫電路設計
主控芯片采用意法半導體公司的32位超低功耗STM32F103ZET6處理器,STM32系列使用了ARM先進架構(gòu)的Corter-M3內(nèi)核,采用哈佛(Harvard)體系結(jié)構(gòu)[3]。哈佛結(jié)構(gòu)是一種將程序指令存儲和數(shù)據(jù)存儲分開的存儲器結(jié)構(gòu),是一種并行體系結(jié)構(gòu)。程序存儲器和數(shù)據(jù)存儲器相互獨立,每個存儲器獨立編址、獨立訪問。與2個存儲器相對應的是系統(tǒng)中的4套總線,提高了數(shù)據(jù)的執(zhí)行速度。
STM32F103系列芯片集成度高,內(nèi)核工作頻率最高為72 MHz,可以進行單周期乘法和硬件除法,有144個引腳、 64 KB靜態(tài)隨機存取存儲器、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溫度傳感器溫度電壓信號轉(zhuǎn)換成數(shù)字信號,STM32主控器通過SPI串行外設接口與ADS1248連接并對收到數(shù)據(jù)進行計算處理。Pt100溫度傳感器接線端子Pt1.1、Pt1.2、Pt1.3通過外部參考電阻分別接到ADS1248的5號管腳、12號管腳、11號管腳,Pt1.4接到ADS1248的20號管腳。
2.2 A/D轉(zhuǎn)換器ADS1248
TI的ADS1248是一款高度集成的24位精密數(shù)模轉(zhuǎn)換芯片,提供了完整的前端解決電路設計,集成了低噪聲可編程增益放大器(programmable gain amplifier,PGA),具有精密Delta-Sigma ADC振蕩器輸入切換器的單周期數(shù)字濾波器(輸入多路復用器),提供2個恒流電源[5]。ADS1248的可編程增益放大器可以將微弱的模擬信號放大128倍,數(shù)字過濾器可以對干擾信號進行過濾,提高了其測量的精確度,因此廣泛應用于熱電偶、RTD等傳感器。
醫(yī)療冷凍柜要求溫度傳感器的溫度范圍為-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 恒流源驅(qū)動電路
該系統(tǒng)將四線制測溫方法應用在恒流源驅(qū)動鉑電阻溫度傳感器上,ADS1248的2個恒流源可以外接在Pt100的2根線上,用于驅(qū)動鉑電阻溫度傳感器,所選參考電壓為Rrel兩端的電壓。在ADS1248的外部器件中,Rrel選用的是高精度、低溫漂的精密電阻,參考壓的輸入管腳位REFP0和REFN0,參考電壓值為:
Urel=2×IDAC×Rrel
2.4 儲存電路
Flash儲存器選用SAMSUNG公司的NAND型 K9WBG08U1M芯片,其芯片架構(gòu)為4 GB×8,儲存容量為32 Gb,工作電壓為2.7~3.6 V,傳輸速率為25 ns,具有儲存量密度高、功耗小、掉電數(shù)據(jù)不丟失、可靠性高等特點。SD卡與STM32的通信有2種模式,即SD模式和SPI 模式,可根據(jù)讀寫數(shù)據(jù)速度的要求,設定不同工作模式[6-7]。該溫度傳感器采集數(shù)據(jù)的工作量并不大,因此,將SD卡置于SPI模式下,并且采用I/O 口模擬 SPI 協(xié)議來實現(xiàn)。SD卡電路如圖3所示。
圖3 SD卡電路圖
3.1 高精度測溫優(yōu)化
為了提高Pt100測試溫度的精確度,在軟件方面,采取查表差值法和牛頓迭代法相結(jié)合的方案,對數(shù)據(jù)進行高精度測溫優(yōu)化[8]。先用查表插值法求出初值tn,再用牛頓迭代法計算出精確值tn+1。
①利用查表插值法計算出近似溫度值。
使用京賽億凌科技有限公司的鉑電阻溫度傳感器,在-200~+300 ℃的范圍內(nèi),以1 ℃為間隔進行分段,可分得501個小區(qū)間,記為501個小段。在每個區(qū)域段內(nèi)進行線性化處理,采用最小二乘擬合確定每段區(qū)域的直線方程,每個段點的阻值組成一個表格。
根據(jù)溫度電阻分度表,將表格儲存在STM32控制芯片的ROM,從而建立了溫度值T[i]和電阻值R[i]的對應關(guān)系。插值示意圖如圖4所示。
圖4 插值示意圖
溫度初值Tn的計算公式為:
(6)
②利用牛頓迭代法計算出優(yōu)化溫度值。
鉑電阻工作溫度在-200~0 ℃時,Pt100 傳感器阻值與溫度的關(guān)系如式(1)所示。式(1)是關(guān)于溫度的四次方程直接公式(卡爾達諾公式),而且求解非常復雜,有效值需要開立方運算,計算量非常大。
當工作溫度在 0~850 ℃時,Pt100 傳感器電阻值與溫度的關(guān)系如式(2)所示,進而求出如式(7)所示的關(guān)系式。
(7)
式中:A=3.908 3×10-3;B=-5.775×10-7;C=-4.183×10-12;Rt為測得的實際電阻值;R0為初始電阻值。
在步驟①中,利用查表插值法計算出近似溫度,由圖4可以看出橫坐標電阻值和縱坐標溫度關(guān)系呈現(xiàn)出一條直線,即絕對的線性關(guān)系。但從式(1)為四次方多項式、式(2)為二次方多項式可以看出,鉑電阻的阻值與實際溫度的關(guān)系不是絕對的線性關(guān)系。假如利用式(7)開平方運算計算實際溫度,計算復雜且效率低,需要計算定點數(shù)開平方運算或是開立方運算。牛頓迭代法可以解決這些復雜運算[9],常見的有簡化牛頓迭代法、牛頓迭代下山法、Nowton-like法、弦位法等[10]。首先利用查表插值法計算出近似溫度值,然后代入相應的牛頓迭代公式,反復校正這個相似值以滿足迭代精度,即可以得出優(yōu)化溫度值。
當工作溫度在-200~0 ℃時,利用牛頓迭代下山法求解其優(yōu)化值。
定義函數(shù)1:
f(t)=Rt-R0[1+At+Bt2+C(t-100)t3]
(8)
對函數(shù)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。公式經(jīng)過反復迭代,使f′(t*)≠0,即t*是單根的情況,f″(t)存在并連續(xù),從而有界。只要t足夠靠近t*,|f(t)|就足夠靠近0。選取適當?shù)南律揭蜃樱淠康氖鞘箌f(Xk+1)|<|f(Xk)|成立。這種通過非線性方法轉(zhuǎn)換成線性方法求解未知數(shù)的方法稱為牛頓迭代下山法。
當工作溫度在 0~850 ℃時,利用一般牛頓迭代法求解。
定義函數(shù)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 調(diào)試特性很好,具有良好的智能化控制特性,在完成系統(tǒng)初始化之后馬上進入低功耗模式。初始化主要有:設定處理器硬件頻率為72 MHz,系統(tǒng)時鐘頻率為72 MHz,AHB總線頻率為 72 MHz,APB1、APB2總線頻率為 72 MHz;GPIO 端口初始化配置,設置 STM32 與主控板通信的 SPI1接口和與 ADS1248 通信的 SPI2 接口為普通 I/O 模式;DAM初始化,即對系統(tǒng)中斷、看門狗、SPI 接口等進行初始化。這里的低功耗模式選擇待機模式:電壓調(diào)節(jié)器關(guān)閉,整個1.8 V區(qū)域斷電;CM3處理器停止運行,CM3的內(nèi)部外設停止運行;STM32的PLL、HSE、HSI被關(guān)斷;SRAM和寄存器內(nèi)的內(nèi)容丟失;備份寄存器的內(nèi)容保存。單片機用定時器中斷來啟動CPU。先對MCU、單元接口、線路等進行電路連接檢測,如果檢查不正常,在上位機上顯示故障報警信息;如果檢查正常,直接進行A/D轉(zhuǎn)換。然后進入 ADC中斷,在中斷中利用查表插值法求得初值,進而用牛頓的迭代法優(yōu)化溫度精確度。至此,一次采集完成,在上位機上顯示溫度,并將溫度數(shù)據(jù)儲存入SD卡以便于以后檢查。 主程序流程如圖5所示。
圖5 主程序流程圖
在完成硬件和軟件設計的基礎上,把溫度傳感器部分放進高精度的密閉試驗槽中,在30~300 ℃的范圍內(nèi),制定了10個參考點,設定試驗槽溫度每隔 30 ℃變化。當試驗槽的溫度穩(wěn)定在一定的有效區(qū)間時,進行溫度測試試驗,起始值為30 ℃。當試驗箱的電阻值改變時,箱內(nèi)的標稱溫度也發(fā)生了改變。鉑電阻測溫結(jié)果及誤差如表1所示。
表1中的實測數(shù)據(jù)表明,所設計的Pt100溫度傳感器系統(tǒng)具有良好的穩(wěn)定性和魯棒性。該裝置的測量精度能夠達到±0.01 ℃,可實現(xiàn)高精度測溫,同時也證明了查表差值和牛頓迭代相結(jié)合的有效性。這表明該測溫裝置適用于測溫精度要求較高的工作環(huán)境。
表1 鉑電阻測溫結(jié)果及誤差
該高精度測溫裝置是一種基于ADS1248的高精度Pt100測溫系統(tǒng),并且采用四線制測溫方法。理論分析和實際測溫試驗結(jié)果表明:選用的STM32系列單片機電路簡單可靠,并且可將測溫數(shù)據(jù)儲存在Flash儲存器。在算法方面,采取查表差值法和牛頓迭代法相結(jié)合的方案對數(shù)據(jù)優(yōu)化精確度。該裝置不僅廣泛適用于超低溫制冷柜溫測、溫控制,而且可應用于在惡劣環(huán)境中的石油井下高精度測溫以及導彈或飛行器在工作過程中的關(guān)鍵部件溫度測試。該高精度溫度測量系統(tǒng)在工業(yè)、農(nóng)業(yè)和航空航天領域有更廣闊的應用前景。
[1] 劉培基,王安敏.機械工程測試技術(shù)[M].北京:機械工程出版社,2007.
[2] 張樹青.基于ADS1248高精度測溫裝置設計[J].自動化儀表,2013,34(4):249-252.
[3] 陳志旺.STM32嵌入式微控制器快速上手[M].2版.北京:電子工業(yè)出版社,2014.
[4] 王曉丹,孟令軍.多通道高精度測溫存儲系統(tǒng)的研究[D].太原:中北大學,2015.
[5] Texas Instruments Inc.MSP430F20X3 Mixed Signal Microcontroller Datasheet[EB/OL].[2006-06-09].http//www.ti.com.
[6] 童靜.基于MCF51QE128的SD卡接口設計[J].單片機與嵌入式系統(tǒng)應用,2009(12):49-52.
[7] 劉智勇,陳鵬飛,宿磊,等.基于STM32芯片的U盤/SD 卡文件傳輸技術(shù)研究[J].現(xiàn)代電子技術(shù),2014,37(18):107-109.
[8] 李加超,孟令軍.基ARM 的高精度測溫系統(tǒng)設計與實現(xiàn)[J].自動化與儀表,2014(10):16-19.
[9] 張小鳴,李永新.基于牛頓迭代法的高精度快速開方算法[J].電力自動化設備,2008,28(3):75-77.
[10]王丹,齊文雅.用改進的截距牛頓法解關(guān)于甲醇合成反應平衡常數(shù)的非線性方程組[J].新鄉(xiāng)學院學報,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—),男,在讀碩士研究生,主要從事機電系統(tǒng)計算機控制、機電一體化方向的研究。 E-mail:978601153@qq.com。 王安敏(通信作者),男,博士,教授,主要從事機電一體化、機電系統(tǒng)計算機控制及計算機輔肋測試技術(shù)(CAT)的研究。 E-mail: 1049775677@qq.com。
TH811;TP212
A
10.16086/j.cnki.issn1000-0380.201708017
修改稿收到日期:2017-03-16