基于CS5550的工業(yè)測量儀表設(shè)計(jì)
如圖6所示,rx為待測電阻,溈流經(jīng)rx的電流,所產(chǎn)生的壓降為u,由歐姆定律得到式(1)、(2)。本文引用地址:http://m.butianyuan.cn/article/195507.htm
整理后得式(3),其中V,R為未知數(shù),u是由本系統(tǒng)測得的數(shù)據(jù)。通過連接精密電阻箱來取代待測電阻,取定rx兩個(gè)值,如100Ω和400Ω。代入式(3),解方程組可得V和R的校準(zhǔn)值,并存入EEPROM中作為系統(tǒng)參數(shù)。
經(jīng)校準(zhǔn)后便可根據(jù)式(4)精確地計(jì)算出待測電阻rx的值。
2.2 計(jì)算與變換模塊
經(jīng)校準(zhǔn)和初始化后,CS5550進(jìn)入測量階段,通過最新獲得的N個(gè)瞬時(shí)測量值計(jì)算出轉(zhuǎn)換有效值后,以滿量程的相對百分比方式提供所有的測量結(jié)果。其中通道1具有可編程放大器增益選擇,當(dāng)工作在增益為10的情況下,如果測量結(jié)果低于10%,則系統(tǒng)將其增益切換成增益為50;反之,當(dāng)工作在增益為50的情況下,如果測量結(jié)果高于90%,則系統(tǒng)將其增益切換成10。這樣不僅測量的信號(hào)范圍寬,而且提高了系統(tǒng)測量的精確性。
從CS5550讀取測量結(jié)果轉(zhuǎn)化成相對百分比后,乘上相應(yīng)的滿量程值就可以得出實(shí)際測得的電壓值u,如果輸入的是電流值,則除以系統(tǒng)參數(shù)r即為所測得的電流值,如果是測量輸入電阻,則根據(jù)式(4)計(jì)算所測得的電阻值。
得到相應(yīng)測量信號(hào)的實(shí)際值后需再進(jìn)一步地變換。如熱電偶輸入的是電壓信號(hào),需變換成相對應(yīng)的溫度信號(hào),而且電壓一溫度之問不是線性的變換關(guān)系。變換方法可以采用多項(xiàng)式曲線擬合方法或者小區(qū)間線性化處理方法。
本系統(tǒng)可進(jìn)行十幾種的信號(hào)變換,真正做到一表多用,下面介紹信號(hào)變換切換的C語言實(shí)現(xiàn)方法,這是通過函數(shù)指針來實(shí)現(xiàn)的。首先聲明函數(shù)指針,
typedef float,(*convert_t)(float val);
然后定義該函數(shù)指針的一個(gè)變量,
convert_tconvert:
下面是一些信號(hào)變換的函數(shù)原形聲明,函數(shù)中的參數(shù)是測量的電壓值,函數(shù)返回的是變換后的值,
float lkConvert(float val): //熱電偶K級(jí)
float lsConveit(float val)://熱電偶S級(jí)
float Pt100Convert(float val)://熱電阻Pt100
float Cu50Conveit(float val): //熱電阻Cu50
信號(hào)變換切換方法示例如下,
SWitch(opNum){
case 1: //熱電偶K級(jí)
convert=lkConvert:
break:
……
}
確定了信號(hào)變換函數(shù),最后是函數(shù)調(diào)用,舉例如下,
unsigned long temp;
float result;
//從CS5550中讀取通道1數(shù)據(jù)
temp=read(Ox16);
//轉(zhuǎn)換成百分比
result=temp/(float)0x0l000000;
//乘上滿量程值
result*=fullScale;
//執(zhí)行信號(hào)變換
result=convert(result);
這樣result變量就是傳感器對應(yīng)的信號(hào)值,如溫度。
3 結(jié)束語
本系統(tǒng)使用CS5550進(jìn)行硬件核心電路設(shè)計(jì),性價(jià)比極高,使用簡單的配置實(shí)現(xiàn)一表多用,體積小、集成度高、運(yùn)行可靠,有很好的推廣價(jià)值。
評論