文/陳羽
對(duì)于電壓電流的測(cè)量,若被測(cè)信號(hào)是在小范圍內(nèi)變化,要做到精確測(cè)量并不困難。但當(dāng)被測(cè)信號(hào)在較大范圍內(nèi)變化時(shí),為了保證精度,常用的方式是切換量程。然而在很多時(shí)候,為了做到測(cè)量的實(shí)時(shí)性,不允許采用手動(dòng)換擋形式,因此本文中采用了STM32單片機(jī)技術(shù),根據(jù)被測(cè)信號(hào)的大小,自動(dòng)地選擇合適的增益和衰減,實(shí)現(xiàn)了自動(dòng)量程切換的電壓電流測(cè)量。
圖1:系統(tǒng)組成
本文設(shè)計(jì)的功率測(cè)量直流電壓范圍為0~30V,能自動(dòng)進(jìn)行量程轉(zhuǎn)換。功率測(cè)量的原理方框圖如圖1所示,以STM32作為電路的核心部件,采用軟件編程和硬件相結(jié)合的形式。輸入信號(hào)經(jīng)放大后,由單片機(jī)測(cè)出其大小,從而選擇合適的信號(hào)去控制擋位的選擇,實(shí)現(xiàn)量程自動(dòng)切換功能,單片機(jī)根據(jù)A/D轉(zhuǎn)換的值和擋位情況算出當(dāng)前的電壓和電流,在LCD屏上顯示出來(lái)。
本系統(tǒng)中采用32位的中容量STM32F103作為處理器。STM32F103是基于32位的Cortex—M3內(nèi)核,工作頻率為72MHz。片內(nèi)資源及輸入輸出接口豐富,帶有兩個(gè)12位的ADC、一個(gè)12位的雙通道DAC和11個(gè)16位的計(jì)時(shí)器。
電壓采樣電路如圖2所示。采用同相比例放大電路(MCP602),假設(shè)輸入為Ui,輸出為Uo,得到Uo=(1+R6/R5)Ui,可以得知放大倍數(shù)為3.4倍。
圖2:電壓采樣電路
圖3:電流采樣電路
圖4:主程序設(shè)計(jì)
圖5:AD轉(zhuǎn)換程序
圖6:量程切換程序
同相比例運(yùn)算電路具有高輸入電阻,低輸出電阻的優(yōu)點(diǎn),但因?yàn)榧蛇\(yùn)放有共模輸入,所以為了提高運(yùn)算精度,應(yīng)當(dāng)選用高共模抑制比的集成運(yùn)放。從另一個(gè)角度看,在對(duì)電路進(jìn)行誤差分析時(shí),應(yīng)特別注意共模信號(hào)的影響。
電流采樣電路如圖3所示。采樣電阻串聯(lián)在被測(cè)電路中,毫歐級(jí)電阻R7實(shí)現(xiàn)電流取樣,從而提高測(cè)量精度。電流采樣信號(hào)同樣采用同相比例放大,輸入輸出關(guān)系是Uo=(1+R10/R9)Ui,可以得知放大倍數(shù)為48倍。單片機(jī)測(cè)得運(yùn)放輸出的電壓值,經(jīng)過(guò)計(jì)算,就可得到被測(cè)信號(hào)的電流值。
STM32內(nèi)部的12位ADC模塊,通過(guò)軟件設(shè)置,可以直接測(cè)量運(yùn)放輸出的電壓值。繼電器與精密電阻網(wǎng)絡(luò)構(gòu)成分壓檔位調(diào)整電路,原理框圖如圖2所示。0-30V的被測(cè)電源輸入后,當(dāng)運(yùn)放輸出電壓PA0超過(guò)3V時(shí),PB5輸出高電平;運(yùn)放輸出電壓沒(méi)超過(guò)3V時(shí),PB5輸出低電平,從而控制輸出繼電器,如此實(shí)現(xiàn)自動(dòng)切換量程。
量程自動(dòng)切換功率測(cè)量的程序采用模塊化設(shè)計(jì),用C語(yǔ)言編程。程序由主程序、量程切換子程序、LCD顯示子程序、A/D轉(zhuǎn)換子程序等組成。
上電后程序通過(guò)初始化,進(jìn)入監(jiān)控狀態(tài),顯示待機(jī)界面等待測(cè)量。A/D啟動(dòng)后,首先選擇最大量程對(duì)外部數(shù)據(jù)進(jìn)行采樣計(jì)算并判斷,確定合適的量程。切換量程后再次采樣,記錄得到的數(shù)據(jù),通過(guò)相應(yīng)的計(jì)算,得到測(cè)量的電壓并顯示電壓電流值。系統(tǒng)流程圖如圖4所示。
STM32 內(nèi)部自帶A/D 轉(zhuǎn)換功能,只需調(diào)用固件庫(kù),即可實(shí)現(xiàn) STM32的A/D轉(zhuǎn)換功能。此設(shè)計(jì)采用雙通道模式,用 ADC0采樣輸入電壓,用 ADC1采樣輸入電流。為提高 A/D 轉(zhuǎn)換的精確度,可對(duì)連續(xù)采樣的10 次 AD 轉(zhuǎn)換結(jié)果求取平均值。程序流程圖如圖5所示。
將A/D測(cè)量得到的數(shù)據(jù)與設(shè)置的閾值進(jìn)行比較,若超出閾值,則超出原量程的范圍,則進(jìn)行升擋,直至升到合適的擋位,并根據(jù)此擋位的電路連接情況進(jìn)行數(shù)據(jù)處理,得到相應(yīng)的電壓電流值;若低于所設(shè)值,則進(jìn)行降擋處理,直至降到合適的擋位,并進(jìn)行數(shù)據(jù)處理,得到相應(yīng)的電壓電流值。流程如圖6所示。
借助STM32內(nèi)部自帶的12 位逐次逼近型 A/D 轉(zhuǎn)換功能,完成了對(duì)電源的電流與電壓的測(cè)量,從而設(shè)計(jì)出了一款具有較高分辨率的功率測(cè)量裝置。相比于傳統(tǒng)的機(jī)械換擋測(cè)量,STM32通過(guò)閾值電壓的判斷,自動(dòng)完成量程的切換,具有自動(dòng)測(cè)量的效果。此外,此自動(dòng)測(cè)量裝置具有響應(yīng)速度快,性能穩(wěn)定,在電子測(cè)量領(lǐng)域,尤其是對(duì)微電壓的精確測(cè)量方面,具有很好的實(shí)際應(yīng)用價(jià)值。