摘要:溫度測量在現代電子設備中是極其普遍和重要的環節,PT100以良好的線性和精度被工程師廣泛用于各種產品設計中。針對PT100在數字采集的應用,本文圍繞激勵、采集方式和軟件計算詳細描述了設計思路。
關鍵詞: C51;PT100;溫度測量;AD7705
中圖分類號:TP212文獻標識碼:A文章編號:1009-3044(2009)27-7803-02
1 概述
PT100廣泛用于各種產品、設備之中,其結構一般是用鉑絲在陶瓷等絕緣支架上繞制而成,PT100與熱電偶不同,屬于無源傳感器,需要額外的激勵來產生電信號輸出。
PT100的激勵設計必須小心謹慎,激勵電流會產生自熱,回路導線和接插件的接觸電阻的影響還是不能忽略的;雖然PT100的線性度很好,二次項系數在許多高精度測量環境中還是不能忽略。鑒于現在電路設計中數字電路的適用規模在不斷擴大,模擬和數字電路經常無法有效的分開設計,這種混合電路設計對模擬部分,尤其是地線的拓撲結構,都提出了較高的要求。
鑒于以上特點,筆者在設計該類電路中的設計原則是:簡單!環節越少越好,能數字處理的就不用電路實現,這樣就避免了電路設計、調測的難度,也降低了因器件的個體差異帶來的離散性。以下內容就傳感器的激勵、采樣方式和布線進行探討。
2 原理分析
在現在電磁干擾大部分都很嚴重的條件下,電流激勵方式由于其很好的抗干擾性能而被普遍采用。交流和直流激勵源都能很好的滿足激勵的要求,在滿足設計要求的前提下,加上數字濾波等技術處理,直流激勵完全能滿足大部分產品的技術要求。
傳感器信號的采集是通過ADC來量化實現的,如果ADC的基準和激勵源共用同一個基準,轉換過程采用和基準無關的比率工作方式,將會大大提高轉換精度和準確度。由于公用基準源,若傳感器測量的變量沒有改變,則ADC的數字輸出量就不受激勵源(基準源)的波動而變化,也沒有非比率工作方式的需要兩個高精度基準的定標問題。比率工作方式允許利用系統的模擬電源進行調理和量化,可以獲得與電源穩定性無關的高精度測量,現在許多SOC芯片上ADC的并沒有單獨的基準,比率工作方式就能讓這類芯片同樣獲得較高的測量精度。因此,工程師在設計高精度、高分辨率的數據采集系統時,要牢記在有條件的場合下優先采用比率工作方式。
熱電偶的布線方式有2-3-4線三種方式供選擇使用,,在合理選擇性價比的情況下,減小回路分布電阻對結果測量誤差是布線方式基本的選擇依據。其中四線方式主要是依靠差分放大器的高阻抗輸入來實現高精度測量的目的,
導線和芯片已經不是決定傳感器價格主要因素,因此如果利用有高阻輸入的差分的放大器或AD轉換芯片,4線是值得推薦的方式。
3 電路設計
根據以上各種情況的分析,筆者采用價格相對便宜的AD7705來實現PT100的采集電路設計(如圖一)。在AD7705的設計方案中,PT100的線性修正是用軟件來實現的,圖中可以清楚的看到ADC的基準和兩路信號分別是來自激勵電流在R4和兩個PT100上形成的壓降,整個ADC側的輸入都是高阻特性,傳感器回路的分布電阻對測量結果影響極小。
電源系統是5V供電,首先是確定溫度范圍:粗略估算要測量的范圍是0℃-250℃,PT100的最大阻值將近200歐姆,內部放大器的增益設定為32,則R4阻值要大于32x200=6.4K歐姆,選用常用阻值整定為6.8K;激勵電流控制在0.5mA左右,對于該5V系統就要求回路電阻約10K左右,因此選用常用阻值3.3K;AD7715的基準和采樣端都是高阻輸入,為選擇阻容參數提供了更大的自由度,可以根據采樣率的要求靈活選用。整個電路設計就這么估算就能完成,余下的事情就是如何用軟件采集和計算對應的溫度了。
4 軟件設計
我們先從計算公式入手分析軟件的具體內容(下面主要分析0℃以上的計算):
鉑熱電阻的溫度特性.在0~200℃范圍內
Rt=R0*(1+A*t+B*t2) (1)
其中 令f(t)=(1+A*t+B*t2);A=3.90802E-3; B=-5.802E-7。
AD采樣中的電阻計算公式為:
Rt=[Rref*(ADC/ADCmax)]/GAIN(2)
其中: Rref是 圖一中的標準電阻R4;
GAIN是AD7715內部的放大器增益設定32;
ADC是模數轉換結果;ADCmax是其最大值。
以上兩個公式聯立得到:
R0*f(t)=[Rref*(ADC/ADCmax)]/GAIN;
我們把常量集中在一起:
f(t)=[Rref/(ADCmax*GAIN*R0)]*ADC;
令Pconst=[Rref/(ADCmax*GAIN*R0)],得到:
f(t)=Pconst*ADC(3)
根據公式3可以清晰看到只有一個需要定標的常量參數,這個常量參數是隨標準電阻和PT100的個體差異而變化的,在實際軟件設計里,需要對該常數做修正用于定標。
余下的工作就是求解公式3這個方程,但是單片機求解這個方程還是很浪費資源的,這里采用近似的方法計算的:如圖二所示,在某點溫度t0附近,因為二次項B值較小,而且遠離頂點位置,在小范圍的鄰域內兩條線基本上可以近似為平行線,ABCD基本上就是一個平行四邊形。通過AD采樣并計算可以得到阻值Pt100在t時刻的Ft,顯然兩條線同樣的Ft分別對應溫度t1和t0;兩條平行線在t1這個溫度點上對應的阻值Ft差距是BC線段的長度,比較f1(t)和f2(t)得知BC=|B*t1^2|,根據平行四邊形的特點,DA=BC,因此Ft1=Ft0+|B*t1^2|,從圖2可以看出再次利用f1(t)就可以計算得到近似的真實值t;
根據以上分析,我們用C語言實現溫度的計算,以下是基于C51實現的計算實例:
#define PCONST (6800.0/(65535*32*100.0))
#define ACONST (3.90802E-3)//A
#define BCONST(5.802E-7) //B
extern unsigned int AdcVal;//ADC采集結果
Float PConst=PCONST;//如定標,則修正這個變量
float Get_tmp(unsigned int AdcVal){
float tmp,t1,Ft0,Ft1;//圖二中的t,t1,Rt,Rt1
Ft0=PConst*AdcVal;//計算當前采集的阻值結果
t1=(Ft0-1)/ACONST;//計算圖二中的t1
Ft1=Ft0+BCONST*t1*t1;//計算圖二中的Rt1
tmp=(Ft1-1)/ACONST;//得到近似的t
return tmp;//返回當前溫度
}
軟件和電路一樣的簡潔,100℃處的計算誤差也僅有0.03℃,滿足大部分技術要求。
5 結束語
實驗測試結果表明,整個電路達到0.1℃的穩定精度,達到了設計目的,電路、軟件都簡單明了,采用此方法的溫度控制系統已經在多處設計中應用,同樣的電路和軟件也適用與其他阻值的鉑電阻,該電路和軟件的設計思路希望能給硬件工程師做些有益的參考。
參考文獻:
[1 ] 李廣第,朱月秀,王秀山. 單片機基礎[M].北京:北京航空航天出版社,2003:11-112.