吳東艷,韓喜春,高旭東
(黑龍江工程學(xué)院 電氣與信息工程學(xué)院,黑龍江 哈爾濱150050)
溫度測(cè)量在工農(nóng)業(yè)生產(chǎn)、醫(yī)學(xué)、環(huán)境、國(guó)防和科研等領(lǐng)域廣泛應(yīng)用,高精度溫度測(cè)量一般采用鉑電阻溫度傳感器。由于鉑電阻溫度傳感器具有一定的非線性,使得溫度測(cè)量的精度受到限制。研制精度高、造價(jià)低、功能強(qiáng)、使用便捷的溫度測(cè)量?jī)x一直是人們追求的目標(biāo)。隨著半導(dǎo)體技術(shù)和微處理器技術(shù)的發(fā)展,已經(jīng)有許多模擬與數(shù)字混合處理器可以完成此項(xiàng)任務(wù)。本設(shè)計(jì)采用Cypress公司生產(chǎn)的PSOC系列芯片進(jìn)行高精度鉑電阻溫度測(cè)量。PSOC(Programmable System on Chip)作為一款新的嵌入式系統(tǒng)設(shè)計(jì)平臺(tái),它在原8051核和ARM Cortex-M3核的基礎(chǔ)上,在芯片的PLD實(shí)現(xiàn)可配置的固件元件提供給用戶,使設(shè)計(jì)人員根據(jù)項(xiàng)目需求靈活選擇可配置外設(shè)與微處理器自動(dòng)連接。利用PSOC提供的模擬和數(shù)字資源,設(shè)計(jì)者也可以自己定制需要的特殊元件。PSOC集成開發(fā)環(huán)境帶有100個(gè)左右的嵌入式設(shè)計(jì)中常有的外圍器件,能夠滿足大多數(shù)項(xiàng)目需求。特別是它提供的高精度模擬和模擬數(shù)字混合外設(shè)元件,是該器件的主要特色。采用PSOC高精度溫度測(cè)量系統(tǒng)結(jié)構(gòu)如圖1所示。只使用PSOC5單芯片,就可以完成30多路溫度測(cè)量[1-2](受芯片引腳限制)。
圖1 PSOC溫度測(cè)量系統(tǒng)結(jié)構(gòu)
PSOC鉑電阻溫度測(cè)量的原理如圖2所示。PSOC原理圖設(shè)計(jì)非常方便,在工作空間瀏覽器中打開TopDesign.cysch文件,在元件庫(kù)中選擇元件放置到畫布,然后進(jìn)行元件參數(shù)配置,需要連線的與其它器件連線,有些器件不需要連線。畫完原理圖后,打開文件*.cydwr進(jìn)行引腳鎖定(分配引腳)。RTD元件的4個(gè)引腳連接到4線制連接的鉑電阻溫度傳感器的接線端子。本設(shè)計(jì)進(jìn)行9路溫度檢測(cè)(模擬開關(guān)序號(hào)0~8),其中第10路作為測(cè)量基準(zhǔn)(模擬開關(guān)序號(hào)9),校準(zhǔn)電阻為100Ω。要測(cè)量某一路溫度時(shí),例如序號(hào)為2,設(shè)置電流型數(shù)字到模擬轉(zhuǎn)換器IDAC電流輸出為0,控制器通過向兩個(gè)模擬開關(guān)送入9,使模擬多路開關(guān)CurrentMux與基準(zhǔn)電阻接通,基準(zhǔn)電阻兩端的輸出電壓通過模擬開關(guān)ADCMUX與可編程增益放大器PGA_1和PGA_2組成的差動(dòng)放大器相連進(jìn)行兩倍放大,PGA_3增益設(shè)置為3,PGA_4的增益設(shè)置為5,這樣總的增益為30。ADC內(nèi)的PGA增益為1,電壓信號(hào)輸入到ADC后,測(cè)得基準(zhǔn)電阻在零電流時(shí)的電壓值。將兩個(gè)模擬開關(guān)切換到序號(hào)為2,測(cè)得該路RTD在零電流時(shí)的電壓值。再將IDAC設(shè)置電流為100μA,分別測(cè)量出基準(zhǔn)電阻和RTD的對(duì)應(yīng)電壓值。用RTD測(cè)得的兩個(gè)電壓差值除以基準(zhǔn)電阻的兩個(gè)電壓差值,就得出在該溫度下RTD的電阻值。把RTD電阻值帶入PSOC系統(tǒng)提供的高階多項(xiàng)式就可以計(jì)算出對(duì)應(yīng)的溫度值。PSOC中的RTD是一個(gè)虛擬元件,它提供了RTD在PSOC中的配置、高階多項(xiàng)式的系數(shù)和溫度計(jì)算API函數(shù),它的4個(gè)引腳分別與外部真實(shí)的4線鉑電阻RTD相連??删幊谭糯笃鱌GA用于對(duì)RTD輸出電壓信號(hào)放大,可根據(jù)溫度測(cè)量范圍在運(yùn)行時(shí)修改放大器增益。圖中的液晶顯示屏LCD元件用于本地顯示測(cè)量結(jié)果,配置參數(shù)選擇缺省值。通用串行接口元件UART經(jīng)過Tx和Rx引腳連接到外部的RS485芯片用于與上位機(jī)進(jìn)行通信。
圖2 鉑電阻溫度測(cè)量固件原理
PSOC的固件元件應(yīng)用起來很靈活,大多數(shù)元件都有一些配置參數(shù),這些參數(shù)可以在設(shè)計(jì)時(shí)配置,也可以在程序運(yùn)行時(shí)修改配置,下面介紹幾個(gè)元件的配置方法和參數(shù)。
RTD的參數(shù)配置如圖3所示。設(shè)置最低溫度為-60℃,最高溫度為500℃,選擇多項(xiàng)式為4階。
CurrentMux和ADCMUX是同一種類模擬開關(guān)器件。它只有兩個(gè)參數(shù),模擬通道Channels,取值范圍為0~31,選擇9;開關(guān)類型 MuxType,可以取值單端Single或差分Differential,選擇差分。
IDAC配置見圖4。IDAC是8位電流輸出型DAC,IDAC電流極性選擇為正Positive(流出),電流范圍為255μA,速度為高速,數(shù)據(jù)源為CPU或DMA,選通模式為寄存器寫。
圖4 IDAC的屬性配置
ADC的配置見圖5。PSOC5具有兩個(gè)12位SAR和1個(gè)8~20位DelSig型ADC。本設(shè)計(jì)采用DelSig型ADC。這個(gè)ADC具有4個(gè)可以單獨(dú)運(yùn)行的配置,本設(shè)計(jì)只使用Config 1。轉(zhuǎn)換模式選擇多采樣,分辨率選擇20位,轉(zhuǎn)換率選擇30,輸入模式選擇差分,輸入范圍選擇±1.024V,緩沖放大增益選擇1,參考電壓為1.024V。
圖5 ADC的屬性配置
PGA的配置如圖6所示。PGA的增益可以在1~50之間選擇設(shè)置值,功率設(shè)置為高功率,參考設(shè)置為接地。
圖6 PGA的屬性配置
本設(shè)計(jì)的鉑電阻RTD[3]為Pt100,采用4線制電阻比較測(cè)量法。根據(jù)IEC 60751標(biāo)準(zhǔn),工業(yè)級(jí)RTD的測(cè)溫范圍一般為-200~850℃:
當(dāng)T>0時(shí),
當(dāng)T<0時(shí),
在溫度大于0℃和小于0℃兩個(gè)測(cè)量范圍內(nèi),根據(jù)溫度與電阻值的對(duì)應(yīng)關(guān)系,利用Matlab或其它數(shù)學(xué)工具,采用曲線擬合的方法,計(jì)算出溫度隨電阻值變化的溫度大于0和小于0兩個(gè)多項(xiàng)式。多項(xiàng)式階數(shù)越高,計(jì)算出的溫度越精確。采用5階多項(xiàng)式,精度可以達(dá)到0.002℃,但是需要更多的CPU執(zhí)行周期。如果在全量程-200~850℃范圍內(nèi)達(dá)到0.002℃的精度,采用1個(gè)多項(xiàng)式擬合,需要10階以上的多項(xiàng)式,計(jì)算量很大。
在一般的4線 RTD測(cè)量中,Rt=Vt/It,要求所使用的電流源和ADC具有很低的失調(diào)和非線性,這很難做到,所以直接進(jìn)行測(cè)量得不到高精度。采用參考電阻的方法可以克服上述難題[4-5]。參考電阻法(見圖2)使測(cè)量誤差只依賴于參考電阻(精度取0.1%或0.01%的電阻)的精度。IDAC產(chǎn)生的恒定電流流過參考電阻(圖2中為R_1)產(chǎn)生參考電壓Vref,通過Rt產(chǎn)生電壓Vt,則RTD電阻值為Rt=Vt/Vref。消除失調(diào)誤差采用的是相關(guān)雙采樣法(correlated double sampling,CDS),計(jì)算電阻的方程為
式中:Rt為測(cè)量出的RTD阻值,Vt和Vref為恒定電流時(shí)Rt和Rref兩端的電壓,V0為ADC輸入為0時(shí)(IDAC=0時(shí))測(cè)量的電壓值,Rref為參考電阻。從式(3)可以看出,IDAC產(chǎn)生的失調(diào)電流對(duì)測(cè)量不產(chǎn)生影響。參考電阻的精度決定了Rt的測(cè)量精度,選擇合適阻值的高精度參考電阻要根據(jù)IDAC設(shè)置的電流值、IDAC的等效內(nèi)阻,Rt在全量程范圍內(nèi)的阻值變化。電流值選的較大,可能在電阻中產(chǎn)生熱噪聲,使電阻值發(fā)生變化影響測(cè)量精度,這里選擇電流值為100μA。參考電阻選擇100Ω,這樣Vref大約為10mV。Rt在整個(gè)量程最大值大約350Ω,Vt大約為35mV。每度大約產(chǎn)生40μV電壓變化。ADC的分辨率為20位,基準(zhǔn)電壓為1.024V,得出1.024LSB/μV。選 擇 PGA 總 的 增 益 為G=1 024mV/35mV=29,ADC的增益為1,得出每度引起大約40LSB變化,能夠保證誤差在0.025℃以內(nèi)。
通過以上分析和設(shè)置,就可開始進(jìn)行軟件設(shè)計(jì)了。PSOC的溫度測(cè)量軟件流程如圖7所示。PSOC的突出特點(diǎn)就是軟件設(shè)計(jì)簡(jiǎn)單,根本不需要知道使用的元件的構(gòu)成,只需要知道一些參數(shù)即可通過系統(tǒng)提供的API函數(shù)實(shí)現(xiàn)對(duì)元件的控制。一般的程序只需要編寫兩類函數(shù):中斷函數(shù)和main函數(shù)。設(shè)計(jì)好原理圖后,就可以通過編譯在工作空間瀏覽器中生成各個(gè)元件的C語言文件和頭文件。如果元件可以產(chǎn)生中斷,在C語言文件中就會(huì)產(chǎn)生中斷程序框架,只要在這個(gè)中斷子程序框架內(nèi)的放置代碼提示信息位置輸入你的中斷程序代碼即可[6]。在main函數(shù)中根據(jù)你的任務(wù)流程圖編寫出整個(gè)項(xiàng)目的控制源代碼,在代碼中調(diào)用了許多系統(tǒng)生成的API函數(shù)實(shí)現(xiàn)對(duì)元件的控制,中斷和一些元件需要運(yùn)行與元件相關(guān)的API函數(shù)啟動(dòng),例如ADC的啟動(dòng)函數(shù)為 ADC_Start()。
圖7 PSOC的溫度測(cè)量流程
RTD(如RTD_3)編譯后生成的 RTD_3.h中包含計(jì)算電阻值的多項(xiàng)式的系數(shù)和溫度測(cè)量上下限的定義如下:
#define RTD_2_M(jìn)in_Temp -60
#define RTD_2_M(jìn)ax_Temp 500
#define RTD_2_a0 0
#define RTD_2_a1 1.188 836E-09
#define RTD_2_a2 1.639 674E-07
#define RTD_2_a3 0.000 853 651 1
#define RTD_2_a4 2.378 062
#define RTD_2_a5 -246.624 2
#define RTD_2_b0 0
#define RTD_2_b1 3.682 02E-08
#define RTD_2_b2 -1.592 382E-05
#define RTD_2_b3 0.003 534 13
#define RTD_2_b4 2.182 261
#define RTD_2_b5 -241.325 6
其中a,b為多項(xiàng)式系數(shù)。RTD_3.c中包含計(jì)算溫度值得API函數(shù)如下:
float RTD_3_RtoT(float Res)
{
float Temp;
if(Res>100)
{
Temp= ((((RTD_3_a0 * Res+ RTD_3_a1)*Res+ RTD_3_a2)*Res+ RTD_3_a3)*Res+ RTD_3_a4)* Res+ RTD_3_a5;
}
else
{
Temp= ((((RTD_3_b0* Res+ RTD_3_b1)*Res+ RTD_3_b2)*Res+ RTD_3_b3)*Res+ RTD_3_b4)* Res+ RTD_3_b5;
}
return Temp;
}
完成PSOC溫度測(cè)量設(shè)計(jì)后,受實(shí)驗(yàn)條件限制,只在室內(nèi)用水和0.1℃精度的水銀溫度計(jì)在10~70℃溫度范圍進(jìn)行了測(cè)試,實(shí)測(cè)溫度中小數(shù)點(diǎn)后第2位數(shù)字為不準(zhǔn)確的讀數(shù)結(jié)果。測(cè)試結(jié)果如表1所示。在測(cè)試范圍內(nèi),誤差不超過0.2℃。
通過實(shí)例驗(yàn)證,基于PSOC的RTD測(cè)量具有測(cè)量精度高,單一核心器件完成整個(gè)設(shè)計(jì),與其他方案比較具有明顯的優(yōu)勢(shì)。在Creator圖形化集成開發(fā)環(huán)境支持下,利用PSOC開發(fā)計(jì)量設(shè)備,具有集成度高、造價(jià)低、開發(fā)周期短和可靠性高等特點(diǎn)。PSOC是嵌入式設(shè)計(jì)中很有發(fā)展前途的混合信號(hào)處理器,值得在工農(nóng)業(yè)生產(chǎn)、教育和國(guó)防科技等領(lǐng)域推廣應(yīng)用。
表1 溫度測(cè)試數(shù)據(jù) ℃
[1]Cypress Semiconductor.PSoC Development kit Guide[EB/OL].http://china.cypress.com/?ID=38240@113.Feb,2011.
[2]何賓.可編程片上系統(tǒng)PSoC設(shè)計(jì)指南[M].北京:化學(xué)工業(yè)出版社,2011.
[3]Praveen Sekar.Temperature Measurement with RTDs[EB/OL].http://www.cypress.com/?rID=57546.Feb,2012.
[4]許卓,楊雷,何志偉.AD7715在多通道熱電阻精密測(cè)量中的應(yīng)用[J].電測(cè)與儀表,2010,47(12):16-19.
[5]吳茂成.高精度寬范圍恒流源設(shè)計(jì)[J].電測(cè)與儀表,2011,48(1):64-66.
[6]韓喜春,高旭東,張春燕.基于PSOC的通用計(jì)數(shù)器設(shè)計(jì)[J].黑龍江工程學(xué)院學(xué)報(bào):自然科學(xué)版,2011,25(3):48-52.