溫度傳感器MAX31820在氣體渦輪流量計中的應用
0 、引言:氣體渦輪流量計是新一代的智能型速度式流量儀表,具有精度高、重復性好、量程范圍寬、體積小、結(jié)構(gòu)比較簡單、運動部件少等優(yōu)點。圖 1 為氣體渦輪流量計的傳感器結(jié)構(gòu)圖。由圖可見,當氣體通過管道時,沖擊置于流體中的葉輪,對葉輪產(chǎn)生驅(qū)動力矩,使葉輪克服摩擦力矩和流體阻力矩而旋轉(zhuǎn),在一定的流量范圍內(nèi),葉輪的旋轉(zhuǎn)頻率與氣體流速成正比。由此,氣體流速可通過測量葉輪的旋轉(zhuǎn)頻率得到,從而可以計算得到通過管道的氣體的體積流量。但是由于氣體是由大量雜亂無章運動著的分子組成的,分子間的距離較大,隨著溫度或壓力的變化,分子間距會發(fā)生變化,其體積與壓力成反比,與溫度成正比。因此,當被測氣體的溫度和壓力發(fā)生變化時,是無法計量和比較氣體的體積流量的,需要將其統(tǒng)一轉(zhuǎn)換為標準狀態(tài)下的體積流量。
1、氣體渦輪流量計的溫度補償:
渦輪流量計直接測量的是工作狀態(tài)下的實際體積流量,標準狀態(tài)和工作狀態(tài)下的體積流量將通過式(1)進行轉(zhuǎn)換。
(1)式中 q Vn、q V——分別為標準狀態(tài)和工作狀態(tài)下的體積流量,m3/h p、T、Z——分別為工作狀態(tài)下壓力
圖 1 渦輪流量計結(jié)構(gòu)
(Pa),熱力學溫度(K)和氣體壓縮系數(shù) pn、Tn、Zn——分別為標準狀態(tài)下壓力(Pa),熱力學溫度(K)和氣體壓縮系數(shù)這里需要指出,由于被測氣體所處狀態(tài)壓力較低,且溫度大大高于臨界溫度(指氣體轉(zhuǎn)變?yōu)橐簯B(tài)的溫度),因此可以不考慮由于工作狀態(tài)變化而引起的氣體壓縮系數(shù)的變化,按理想氣體計,這時氣體壓縮系數(shù)取為 1。為了能夠?qū)⒐ぷ鳡顟B(tài)下的實際體積流量轉(zhuǎn)換為標準狀態(tài)下的體積流量,除了需要測量工作狀態(tài)下的壓力外還需要測量工作狀態(tài)下被測氣體的熱力學溫度,從而完成氣體禍輪流量計的壓力補償和溫度補償。
2、溫度補償電路設計:
2.1、溫度傳感器的選擇:
按照輸出形式分類,溫度傳感器分為模擬量輸出型和數(shù)字量輸出型。數(shù)字量輸出型溫度傳感器集感溫元件、測量電路、A/D 轉(zhuǎn)換電路于一體,輸出的是溫度對應二進制數(shù)值。和模擬量輸出型溫度傳感器相比,數(shù)字量輸出型溫度傳感器測量電路簡單、性能穩(wěn)定、可靠性強、抗干擾能力強、成本低?;跀?shù)字量輸出型溫度傳感器的以上優(yōu)點,氣體渦輪流量計選用數(shù)字量輸出型溫度傳感器作為溫度補償用傳感器。由于被測氣體的溫度低于 100℃,選用MAX31820 即可滿足要求。
MAX31820 是一種環(huán)境溫度傳感器,主要特性如下:
1)MAX31820 采用一根總線進行通信。
2)每個 MAX31820 芯片有一個的 64 位序列號,該序列號存儲在 ROM 中??稍试S多個MAX31820 芯片通過一根數(shù)據(jù)總線與主控制器進行數(shù)據(jù)通信,從而使得分布式溫度檢測應用得以簡化。
3)不需要外部器件。
4)該芯片的電源可由數(shù)據(jù)線本身提供,可節(jié)省外部電源。
5)測量溫度范圍從 -55℃ +125℃,等效的華氏溫度范圍是 -67。F +257。F。
6)測溫度在 +10℃ +45℃范圍時,測量精度為 ±0.5℃。
7)該芯片的核心功能是數(shù)字量輸出。溫度傳感器的分辨率是用戶可配置的,9 位、10 位、11位、12 位,相應的溫度增量分別為 0.5℃、0.25℃、0.125℃、0.0625℃。
8)750ms 內(nèi)能夠?qū)囟绒D(zhuǎn)換成 12 位數(shù)字量。
9)用戶可定義的非易失性報警設置。
10)告警搜索命令識別和尋址溫度在編定的極限之外的器件(溫度告警情況)。
2.2、溫度補償電路:
MAX31820 采用單總線和主控制器進行通信。 MAX31820 的單線端口是一個開漏端口,使用時需要接上拉電阻(大約 5kΩ)。這樣,總線空閑時,保持高電平。該氣體渦輪流量計的主控制器選用的是型號為 MSP430F147 的 16 位單片機。圖 2 為MSP430F147 和 MAX31820 的接口電路。
圖 2 MSP430F147 和 MAX31820 的接口電路
3、 溫度補償?shù)能浖O計:
MSP430F147 和 MAX31820 通 過 單 總 線 進 行數(shù)據(jù)傳輸,首先要進行初始化操作。初始化時序包含有主控制器 MSP430F147 向從機 MAX31820發(fā) 送 的 復 位 脈 沖, 之 后 是 MAX31820 返 回 的應 答 脈 沖。MAX31820 返 回 的 應 答 脈 沖 能 夠 讓MSP430F147 知道 MAX31820 是否已經(jīng)準備好。
溫度補償程序如下所示。// 變量定義 //char error=0; // MAX31820 初始化錯誤標志int temperature=0; // 讀取的 MAX 31820 溫度值float temper=0.0; // 轉(zhuǎn)換后的檢測溫度值char temp_low=0; // 讀取的 MAX 31820 溫度值的低 8 位
char temp_high=0; | // 讀取的 MAX 31820 溫度值 | Delay(60); | |
的高 8 位 | } | ||
// 溫度檢測函數(shù) // | //MSP430F147 向 MAX31820 寫數(shù)據(jù)函數(shù) // | ||
void gettemp(void) | void write_ max31820 (char n) | ||
{ | {char i; | ||
init_ max31820(); | for(i=0;i<8;i++) | ||
if(error==1) | {P3DIR|=BIT4; | ||
{ | P3OUT&=~BIT4; | ||
init_ max31820(); | _NOP(); | ||
} | _NOP(); | ||
write_ max31820(0xCC); | if((n&0x01)==0x01) | ||
write_ max31820(0x44); | {P3OUT|=BIT4;} | ||
P3DIR|=BIT4; | else {P3OUT&=~BIT4;} | ||
P3OUT|=BIT4; | n=n>>1; | ||
Delay(60000); | Delay(4); | ||
init_ max31820(); | P3OUT|=BIT4; | ||
if(error==1) | _NOP(); | ||
{ | } | ||
init_ max31820(); | } | ||
} | //MSP430F147 讀取 MAX31820 存儲器中溫度值函 | ||
write_ max31820(0xCC); | 數(shù) // | ||
write_ max31820(0xBE);; | char read_max31820(void) | ||
read_ max31820(); | { | ||
temp_low= read_ max31820(); | char i; | ||
temp_high= read_ max31820(); | char temp; | ||
} | for(i=0;i<8;i++) | ||
//MAX31820 初始化函數(shù) // | { | ||
void init_max31820(void) | temp=temp>>1; | ||
{ | P3DIR|=BIT4; | ||
P3DIR|=BIT4; | P3OUT&=~BIT4; | ||
P3OUT&=~BIT4; | _NOP(); | ||
Delay(65); | P3OUT|=BIT4; | ||
P3OUT|=BIT4; | _NOP(); | ||
Delay(8); | _NOP(); | ||
P3DIR&=~BIT4; | _NOP(); | ||
if((P3IN&BIT4)==BIT4) | _NOP(); | ||
{error=1; | _NOP(); | ||
P3DIR|=BIT4; | P3DIR&=~BIT4; | ||
} | if((P3IN&BIT4)==0) | ||
else | {temp=temp&0x7f;} | ||
{error=0; | else | ||
P3DIR|=BIT4; | {temp=temp|0x80;} | ||
P3OUT|=BIT4; | Delay(4); | ||
} | P3DIR|=BIT4; |
// 利用數(shù)據(jù)處理函數(shù) //
void readtemp(void)
{
temperature=temp_high&0x0f; temperature=temperature<<8; temperature=temperature|temp_low; temper=temperature>>4;
}
存放在變量 temper 中的溫度值為工作狀態(tài)下氣體的熱力學溫度,將其代入式(1),再將用壓力傳感器測得的工作狀態(tài)下的壓力代入式(1),即可得到標準狀態(tài)下的體積流量。
P3OUT|=BIT4;
}
return temp;
}
// 延時函數(shù) //
void Delay(unsigned int nValue)
{
while(nValue–) {};
}
4、溫度值的處理:
MAX31820 輸出的溫度數(shù)字量已經(jīng)被校準成攝氏溫度。溫度數(shù)字量為 16 位,其中包括符號位,符號位為 0 表示溫度值為正,符號位為 1 表示溫度值為負。如果設置的是 12 位的分辨率,寄存器中的所有位包含有效數(shù)據(jù)。如果設置的是 11 位的分辨率,第 0 位是無定義的。如果設置的是 10 位的分辨率,第 1 位和第 0 位是無定義的。如果設置的是 9 位的分辨率,第 0、1、2 位是無定義的。
溫度寄存器的格式如表 1、表 2 所示。
表 1 | 高 8 位字節(jié)格式 | ||||||
BIT15 | BIT14 | BIT13 | BIT12 | BIT11 | BIT10 | BIT9 | BIT8 |
S | S | S | S | S | 26 | 25 | 24 |
表 2 低 8 位字節(jié)格式 |
5、結(jié)論:
氣體渦輪流量計采用 MAX31820 檢測工作狀態(tài)下的氣體溫度,用軟件實現(xiàn)溫度自動補償。試驗證明實驗樣機實現(xiàn)了系統(tǒng)要求的主要技術(shù)指標。