現(xiàn)代工業(yè)測量儀表以單片機為核心,具有數(shù)字顯示、開關(guān)量輸出、超限報警和通信等功能。用于測量各類工業(yè)現(xiàn)場的檢測信號,是工業(yè)控制自動化*的重要檢測和控制裝置。廣泛應(yīng)用于電力、化工、冶金等部門。
隨著元件生產(chǎn)工藝、自動化水平的提高,對測量裝置的要求越來越高。為實現(xiàn)低漂移、高穩(wěn)定、高分辨率,使用了cs5550a/d轉(zhuǎn)換器。本系統(tǒng)通過簡單的跳線,實現(xiàn)了單一儀表對電壓、電流、電阻等各信號的采集,通過強大的程序?qū)崿F(xiàn)各種信號的變換,真正達到了一表多用的智能型儀表。
1、硬件電路設(shè)計
儀表各種輸入信號經(jīng)跳線選擇,切換測量電路后直接送入cs5550a/d轉(zhuǎn)換器,轉(zhuǎn)換成數(shù)字量送入cpu處理,輸入信號經(jīng)線性化、冷端補償、外線電阻補償?shù)冗\算后,得到測量值送led顯示或經(jīng)rs-232傳給上位機或其它控制器,同時與用戶設(shè)定的報警值進行比較,從而驅(qū)動繼電器報警輸出。
系統(tǒng)結(jié)構(gòu)如圖1所示,測量電路與a/d轉(zhuǎn)換的模擬電路部分是系統(tǒng)設(shè)計的關(guān)鍵,直接影響到測量結(jié)果的程度。軟件的核心部分是將采集到的數(shù)字信號量轉(zhuǎn)換成準確測量結(jié)果,如將熱電偶的微弱電壓信號轉(zhuǎn)換成對應(yīng)的溫度值。
1.1a/d轉(zhuǎn)換電路
本系統(tǒng)的a/d轉(zhuǎn)換采用cirruslogic公司的兩通道、低成本delta-sigma模數(shù)轉(zhuǎn)換器cs5550芯片,是一種便于設(shè)計、性價比高的小體積高集成解決方案。
cs5550集放大器、a/d轉(zhuǎn)換器、數(shù)字濾波器、基準電壓電路和雙向串口于一身。具有方便的片上偏移和增益校準功能,通過串口可重新設(shè)置完成初始化,可直接輸出測量結(jié)果。它是一個雙通道解決方案。
cs5550的模擬電源與數(shù)字電源分開提供,模擬電源部分使用了rc低通濾波電路,增強了系統(tǒng)的穩(wěn)定性。使用片上提供的基準電壓源,簡化電路設(shè)計。通過spi接口與單片機進行通信。cs5550的外圍參考電路如圖2所示。
1.2測量電路
測量電路如圖3所示,信號輸入接在接線端子上,通過跳線選擇輸入信號的測量電路。這里,跳線可以使用模擬開關(guān)替代,通過單片機控制進行切換。
當跳線1、2短接時,測量輸入電壓信號,可接熱電偶的信號輸入。
當跳線5、6短接時,測量輸入電流信號,電流經(jīng)過精密電阻r產(chǎn)生壓降,這樣只需知道電阻r的阻值,便可測得電流值,可接0~10ma、4~20ma標準信號。
當跳線3、4短接時,測量輸入電阻信號。電阻測量法可以采用恒流源法,它既可以消除引線電阻的影響,輸出電壓又不存在非線性,但是造價比較昂貴。
本系統(tǒng)采用三線式電阻測量法,如圖3中虛線部分為測量電阻的兩根信號線,電阻接地線為第三根線。因為引線通常采用的是同種材料、同等長度,所以引線上電阻產(chǎn)生的壓降、溫度漂移相互抵消。通過lm336提供穩(wěn)定的基準電壓源,消除電源不穩(wěn)定對電阻測量的影響。這種方案成本低、測量準確、穩(wěn)定。
1.3鍵盤和led顯示
本系統(tǒng)提供四個按鍵,接在單片機的p1.0~p1.3上,其功能分別為”菜單”、”+”、”一”、”確定”。按鍵信息通過定時掃描進行讀取,具有軟件去抖動,提高穩(wěn)定性。通過按鍵對系統(tǒng)進行控制,執(zhí)行校準、設(shè)定值、信號變換類型的切換等。led顯示通過定時中斷來進行實時掃描,無閃爍,通過緩沖區(qū)機制存取,數(shù)據(jù)變化時只需更新緩沖區(qū)即可。
1.4eeprom存儲系統(tǒng)
eeprom用于產(chǎn)品出廠時,系統(tǒng)校準參數(shù)*保存,這樣系統(tǒng)上電工作時,首先從eeprom中讀取系統(tǒng)的參數(shù)數(shù)據(jù)。在系統(tǒng)運行長時間后,系統(tǒng)參數(shù)可進行重新校準,確保測量的性。
1.5rs-232通信接口
rs-232是系統(tǒng)與上位機或其它控制器的通信接口。通過rs-232可實時地輸出測量數(shù)據(jù)或報警信號數(shù)據(jù),作為其它控制器的輸入,并可通過rs-232對運行模式進行設(shè)定,為工業(yè)控制自動化和組態(tài)提供了方便。
1.6開關(guān)量輸出電路
該電路作為控制器向外輸出信號之用。利用鍵盤將zui高、zui低設(shè)定值置入內(nèi)存,并保存到eeprom中長久保存。儀表隨時比較采樣值和設(shè)定值,并把比較結(jié)果以開關(guān)量方式輸出,達到控制外設(shè)的目的。開關(guān)量輸出電路由光電耦合電路和輸出繼電器組成,如圖4所示。
2、軟件設(shè)計
軟件部分采用模塊化編碼,主要模塊有:系統(tǒng)參數(shù)校準模塊、數(shù)據(jù)計算與變換模塊、鍵盤和led顯示模塊、cs5550操作模塊、93c46eeprom存儲模塊、rs-232通信模塊、開關(guān)量輸出控制模塊等。軟件系統(tǒng)的總體流程如圖5所示。
系統(tǒng)開機后,首先進行初始化,將校準過的系統(tǒng)參數(shù)從eeprom中載入,對i/o、a/d等進行初始化。接下來進入程序主循環(huán),執(zhí)行鍵盤掃描,當有按鍵按下時,進行按鍵處理,根據(jù)按鍵組合,進行cs5550參數(shù)校準、測量電路校準、信號變換類型的切換或參數(shù)值設(shè)定等。若無按鍵按下,則對輸入信號采樣,計算,并根據(jù)設(shè)定的變換類型進行數(shù)據(jù)變換后得到信號的測量值,然后刷新顯示緩沖區(qū),更新顯示。得到的測量值再與開關(guān)量的高低設(shè)定值比較,輸出設(shè)定的相應(yīng)電平,達到控制的目的。zui后如有通信要求,執(zhí)行相應(yīng)的子程序后回到循環(huán)起點。
2.1校準模塊
首先短接圖3測量電路中跳線1、2,輸入相應(yīng)的基準信號,進行cs5550的偏移和增益系數(shù)校準。然后短接跳線5、6,輸入標準電流i后,如取10ma,讀取實際的測量值,即電阻r上的壓降ur,則r的阻值為ur/i,并將該結(jié)果保存到eeprom中作為系統(tǒng)參數(shù)之一。zui后,短接跳線3、4,下面詳細介紹電阻測量電路中參數(shù)v,r的校準,待測電阻rx的計算,其等效電路如圖6所示。
如圖6所示,rx為待測電阻,溈流經(jīng)rx的電流,所產(chǎn)生的壓降為u,由歐姆定律得到式(1)、(2)。
整理后得式(3),其中v,r為未知數(shù),u是由本系統(tǒng)測得的數(shù)據(jù)。通過連接精密電阻箱來取代待測電阻,取定rx兩個值,如100ω和400ω。代入式(3),解方程組可得v和r的校準值,并存入eeprom中作為系統(tǒng)參數(shù)。
經(jīng)校準后便可根據(jù)式(4)地計算出待測電阻rx的值。
2.2計算與變換模塊
經(jīng)校準和初始化后,cs5550進入測量階段,通過獲得的n個瞬時測量值計算出轉(zhuǎn)換有效值后,以滿量程的相對百分比方式提供所有的測量結(jié)果。其中通道1具有可編程放大器增益選擇,當工作在增益為10的情況下,如果測量結(jié)果低于10%,則系統(tǒng)將其增益切換成增益為50;反之,當工作在增益為50的情況下,如果測量結(jié)果高于90%,則系統(tǒng)將其增益切換成10。這樣不僅測量的信號范圍寬,而且提高了系統(tǒng)測量的性。
從cs5550讀取測量結(jié)果轉(zhuǎn)化成相對百分比后,乘上相應(yīng)的滿量程值就可以得出實際測得的電壓值u,如果輸入的是電流值,則除以系統(tǒng)參數(shù)r即為所測得的電流值,如果是測量輸入電阻,則根據(jù)式(4)計算所測得的電阻值。
得到相應(yīng)測量信號的實際值后需再進一步地變換。如熱電偶輸入的是電壓信號,需變換成相對應(yīng)的溫度信號,而且電壓一溫度之問不是線性的變換關(guān)系。變換方法可以采用多項式曲線擬合方法或者小區(qū)間線性化處理方法。
本系統(tǒng)可進行十幾種的信號變換,真正做到一表多用,下面介紹信號變換切換的c語言實現(xiàn)方法,這是通過函數(shù)指針來實現(xiàn)的。首先聲明函數(shù)指針,
typedeffloat,(*convert_t)(floatval);
然后定義該函數(shù)指針的一個變量,
convert_tconvert:
下面是一些信號變換的函數(shù)原形聲明,函數(shù)中的參數(shù)是測量的電壓值,函數(shù)返回的是變換后的值,
floatlkconvert(floatval)://熱電偶k級
floatlsconveit(floatval)://熱電偶s級
floatpt100convert(floatval)://熱電阻pt100
floatcu50conveit(floatval)://熱電阻cu50
信號變換切換方法示例如下,
switch(opnum){
case1://熱電偶k級
convert=lkconvert:
break:
……
}
確定了信號變換函數(shù),zui后是函數(shù)調(diào)用,舉例如下,
unsignedlongtemp;
floatresult;
//從cs5550中讀取通道1數(shù)據(jù)
temp=read(ox16);
//轉(zhuǎn)換成百分比
result=temp/(float)0x0l000000;
//乘上滿量程值
result*=fullscale;
//執(zhí)行信號變換
result=convert(result);
這樣result變量就是傳感器對應(yīng)的信號值,如溫度。
3、結(jié)束語
本系統(tǒng)使用cs5550進行硬件核心電路設(shè)計,性價比*,使用簡單的配置實現(xiàn)一表多用,體積小、集成度高、運行可靠,有很好的推廣價值。