引言
現(xiàn)代工業(yè)測(cè)量?jī)x表以單片機(jī)為核心,具有數(shù)字顯示、開關(guān)量輸出、超限報(bào)警和通信等功能。用于測(cè)量各類工業(yè)現(xiàn)場(chǎng)的檢測(cè)信號(hào),是工業(yè)控制自動(dòng)化必不可少的重要檢測(cè)和控制裝置。廣泛應(yīng)用于電力、化工、冶金等部門。
隨著元件生產(chǎn)工藝、自動(dòng)化水平的提高,對(duì)測(cè)量裝置的要求越來越高。為實(shí)現(xiàn)低漂移、高穩(wěn)定、高分辨率,使用了CS5550 A/D轉(zhuǎn)換器。本系統(tǒng)通過簡(jiǎn)單的跳線,實(shí)現(xiàn)了單一儀表對(duì)電壓、電流、電阻等各信號(hào)的采集,通過強(qiáng)大的程序?qū)崿F(xiàn)各種信號(hào)的變換,真正達(dá)到了一表多用的智能型儀表。
儀表各種輸入信號(hào)經(jīng)跳線選擇,切換測(cè)量電路后直接送入CS5550 A/D轉(zhuǎn)換器,轉(zhuǎn)換成數(shù)字量送入CPU處理,輸入信號(hào)經(jīng)線性化、冷端補(bǔ)償、外線電阻補(bǔ)償?shù)冗\(yùn)算后,得到測(cè)量值送LED顯示或經(jīng)RS-232傳給上位機(jī)或其它控制器,同時(shí)與用戶設(shè)定的報(bào)警值進(jìn)行比較,從而驅(qū)動(dòng)繼電器報(bào)警輸出。
系統(tǒng)結(jié)構(gòu)如圖1所示,測(cè)量電路與A/D轉(zhuǎn)換的模擬電路部分是系統(tǒng)設(shè)計(jì)的關(guān)鍵,直接影響到測(cè)量結(jié)果的精確程度。軟件的核心部分是將采集到的數(shù)字信號(hào)量轉(zhuǎn)換成準(zhǔn)確測(cè)量結(jié)果,如將熱電偶的微弱電壓信號(hào)轉(zhuǎn)換成對(duì)應(yīng)的溫度值。
1.1 A/D轉(zhuǎn)換電路
本系統(tǒng)的A/D轉(zhuǎn)換采用Cirrus Logic公司的兩通道、低成本Delta-Sigma模數(shù)轉(zhuǎn)換器CS5550芯片,是一種便于設(shè)計(jì)、性價(jià)比高的小體積高集成解決方案。
CS5550集放大器、A/D轉(zhuǎn)換器、數(shù)字濾波器、基準(zhǔn)電壓電路和雙向串口于一身。具有方便的片上偏移和增益校準(zhǔn)功能,通過串口可重新設(shè)置完成初始化,可直接輸出精確測(cè)量結(jié)果。它是一個(gè)雙通道解決方案。
CS5550的模擬電源與數(shù)字電源分開提供,模擬電源部分使用了RC低通濾波電路,增強(qiáng)了系統(tǒng)的穩(wěn)定性。使用片上提供的基準(zhǔn)電壓源,簡(jiǎn)化電路設(shè)計(jì)。通過 SPI接口與單片機(jī)進(jìn)行通信。CS5550的外圍參考電路如圖2所示。
1.2 測(cè)量電路
測(cè)量電路如圖3所示,信號(hào)輸入接在接線端子上,通過跳線選擇輸入信號(hào)的測(cè)量電路。這里,跳線可以使用模擬開關(guān)替代,通過單片機(jī)控制進(jìn)行切換。
當(dāng)跳線1、2短接時(shí),測(cè)量輸入電壓信號(hào),可接熱電偶的信號(hào)輸入。
當(dāng)跳線5、6短接時(shí),測(cè)量輸入電流信號(hào),電流經(jīng)過精密電阻r產(chǎn)生壓降,這樣只需知道電阻r的阻值,便可測(cè)得電流值,可接0~10mA、4~20mA標(biāo)準(zhǔn)信號(hào)。
當(dāng)跳線3、4短接時(shí),測(cè)量輸入電阻信號(hào)。電阻測(cè)量法可以采用恒流源法,它既可以消除引線電阻的影響,輸出電壓又不存在非線性,但是造價(jià)比較昂貴。
本系統(tǒng)采用三線式電阻測(cè)量法,如圖3中虛線部分為測(cè)量電阻的兩根信號(hào)線,電阻接地線為第三根線。因?yàn)橐€通常采用的是同種材料、同等長(zhǎng)度,所以引線上電阻產(chǎn)生的壓降、溫度漂移相互抵消。通過LM336提供穩(wěn)定的基準(zhǔn)電壓源,消除電源不穩(wěn)定對(duì)電阻測(cè)量的影響。這種方案成本低、測(cè)量準(zhǔn)確、穩(wěn)定。
1.3 鍵盤和LED顯示
本系統(tǒng)提供四個(gè)按鍵,接在單片機(jī)的P1.0~P1.3上,其功能分別為”菜單”、”+”、”一”、”確定”。按鍵信息通過定時(shí)掃描進(jìn)行讀取,具有軟件去抖動(dòng),提高穩(wěn)定性。通過按鍵對(duì)系統(tǒng)進(jìn)行控制,執(zhí)行校準(zhǔn)、設(shè)定值、信號(hào)變換類型的切換等。LED顯示通過定時(shí)中斷來進(jìn)行實(shí)時(shí)掃描,無(wú)閃爍,通過緩沖區(qū)機(jī)制存取,數(shù)據(jù)變化時(shí)只需更新緩沖區(qū)即可。
1.4 EEPROM存儲(chǔ)系統(tǒng)
EEPROM用于產(chǎn)品出廠時(shí),系統(tǒng)校準(zhǔn)參數(shù)永久保存,這樣系統(tǒng)上電工作時(shí),首先從EEPROM中讀取系統(tǒng)的參數(shù)數(shù)據(jù)。在系統(tǒng)運(yùn)行長(zhǎng)時(shí)間后,系統(tǒng)參數(shù)可進(jìn)行重新校準(zhǔn),確保測(cè)量的精確性。
1.5 RS-232通信接口
RS-232是系統(tǒng)與上位機(jī)或其它控制器的通信接口。通過RS-232可實(shí)時(shí)地輸出測(cè)量數(shù)據(jù)或報(bào)警信號(hào)數(shù)據(jù),作為其它控制器的輸入,并可通過RS-232 對(duì)運(yùn)行模式進(jìn)行設(shè)定,為工業(yè)控制自動(dòng)化和組態(tài)提供了方便。
1.6 開關(guān)量輸出電路
該電路作為控制器向外輸出信號(hào)之用。利用鍵盤將最高、最低設(shè)定值置入內(nèi)存,并保存到EEPROM中長(zhǎng)久保存。儀表隨時(shí)比較采樣值和設(shè)定值,并把比較結(jié)果以開關(guān)量方式輸出,達(dá)到控制外設(shè)的目的。開關(guān)量輸出電路由光電耦合電路和輸出繼電器組成,如圖4所示。
2 軟件設(shè)計(jì)
軟件部分采用模塊化編碼,主要模塊有:系統(tǒng)參數(shù)校準(zhǔn)模塊、數(shù)據(jù)計(jì)算與變換模塊、鍵盤和LED顯示模塊、CS5550操作模塊、93C46 EEPROM存儲(chǔ)模塊、RS-232通信模塊、開關(guān)量輸出控制模塊等。軟件系統(tǒng)的總體流程如圖5所示。
系統(tǒng)開機(jī)后,首先進(jìn)行初始化,將校準(zhǔn)過的系統(tǒng)參數(shù)從EEPROM中載入,對(duì)I/O、A/D等進(jìn)行初始化。接下來進(jìn)入程序主循環(huán),執(zhí)行鍵盤掃描,當(dāng)有按鍵按下時(shí),進(jìn)行按鍵處理,根據(jù)按鍵組合,進(jìn)行CS5550參數(shù)校準(zhǔn)、測(cè)量電路校準(zhǔn)、信號(hào)變換類型的切換或參數(shù)值設(shè)定等。若無(wú)按鍵按下,則對(duì)輸入信號(hào)采樣,計(jì)算,并根據(jù)設(shè)定的變換類型進(jìn)行數(shù)據(jù)變換后得到信號(hào)的測(cè)量值,然后刷新顯示緩沖區(qū),更新顯示。得到的測(cè)量值再與開關(guān)量的高低設(shè)定值比較,輸出設(shè)定的相應(yīng)電平,達(dá)到控制的目的。最后如有通信要求,執(zhí)行相應(yīng)的子程序后回到循環(huán)起點(diǎn)。
2.1 校準(zhǔn)模塊
首先短接圖3測(cè)量電路中跳線1、2,輸入相應(yīng)的基準(zhǔn)信號(hào),進(jìn)行CS5550的偏移和增益系數(shù)校準(zhǔn)。然后短接跳線5、6,輸入標(biāo)準(zhǔn)電流i后,如取10mA,讀取實(shí)際的測(cè)量值,即電阻r上的壓降Ur,則r的阻值為Ur/i,并將該結(jié)果保存到EEPROM中作為系統(tǒng)參數(shù)之一。最后,短接跳線3、4,下面詳細(xì)介紹電阻測(cè)量電路中參數(shù)V,R的校準(zhǔn),待測(cè)電阻rx的計(jì)算,其等效電路如圖6 所示。
如圖6所示,rx為待測(cè)電阻,溈流經(jīng)rx的電流,所產(chǎn)生的壓降為u,由歐姆定律得到式(1)、(2)。
整理后得式(3),其中V,R為未知數(shù),u是由本系統(tǒng)測(cè)得的數(shù)據(jù)。通過連接精密電阻箱來取代待測(cè)電阻,取定rx兩個(gè)值,如100Ω和400Ω。代入式 (3),解方程組可得V和R的校準(zhǔn)值,并存入EEPROM中作為系統(tǒng)參數(shù)。
經(jīng)校準(zhǔn)后便可根據(jù)式(4)精確地計(jì)算出待測(cè)電阻rx的值。
2.2 計(jì)算與變換模塊
經(jīng)校準(zhǔn)和初始化后,CS5550進(jìn)入測(cè)量階段,通過最新獲得的N個(gè)瞬時(shí)測(cè)量值計(jì)算出轉(zhuǎn)換有效值后,以滿量程的相對(duì)百分比方式提供所有的測(cè)量結(jié)果。其中通道 1具有可編程放大器增益選擇,當(dāng)工作在增益為10的情況下,如果測(cè)量結(jié)果低于10%,則系統(tǒng)將其增益切換成增益為50;反之,當(dāng)工作在增益為50的情況下,如果測(cè)量結(jié)果高于90%,則系統(tǒng)將其增益切換成10。這樣不僅測(cè)量的信號(hào)范圍寬,而且提高了系統(tǒng)測(cè)量的精確性。
從CS5550讀取測(cè)量結(jié)果轉(zhuǎn)化成相對(duì)百分比后,乘上相應(yīng)的滿量程值就可以得出實(shí)際測(cè)得的電壓值u,如果輸入的是電流值,則除以系統(tǒng)參數(shù)r即為所測(cè)得的電流值,如果是測(cè)量輸入電阻,則根據(jù)式(4)計(jì)算所測(cè)得的電阻值。
得到相應(yīng)測(cè)量信號(hào)的實(shí)際值后需再進(jìn)一步地變換。如熱電偶輸入的是電壓信號(hào),需變換成相對(duì)應(yīng)的溫度信號(hào),而且電壓一溫度之問不是線性的變換關(guān)系。變換方法可以采用多項(xiàng)式曲線擬合方法或者小區(qū)間線性化處理方法。
本系統(tǒng)可進(jìn)行十幾種的信號(hào)變換,真正做到一表多用,下面介紹信號(hào)變換切換的C語(yǔ)言實(shí)現(xiàn)方法,這是通過函數(shù)指針來實(shí)現(xiàn)的。首先聲明函數(shù)指針,
typedef float,(*convert_t)(float val);
然后定義該函數(shù)指針的一個(gè)變量,
convert_tconvert:
下面是一些信號(hào)變換的函數(shù)原形聲明,函數(shù)中的參數(shù)是測(cè)量的電壓值,函數(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變量就是傳感器對(duì)應(yīng)的信號(hào)值,如溫度。
3 結(jié)束語(yǔ)
本系統(tǒng)使用CS5550進(jìn)行硬件核心電路設(shè)計(jì),性價(jià)比極高,使用簡(jiǎn)單的配置實(shí)現(xiàn)一表多用,體積小、集成度高、運(yùn)行可靠,有很好的推廣價(jià)值。
責(zé)任編輯:gt
-
led
+關(guān)注
關(guān)注
240文章
23062瀏覽量
657050 -
芯片
+關(guān)注
關(guān)注
452文章
50206瀏覽量
420867 -
模數(shù)轉(zhuǎn)換器
+關(guān)注
關(guān)注
26文章
3099瀏覽量
126699
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論