直流數(shù)控電流源的設(shè)計(jì)與實(shí)現(xiàn)
直流電流源作為穩(wěn)定電源的分支,在工程技術(shù)和測(cè)量領(lǐng)域中有著重要的實(shí)用價(jià)值,其涉及的應(yīng)用由穩(wěn)定電磁場(chǎng)、校正電流表等擴(kuò)展至激光、超導(dǎo)、現(xiàn)代通信和傳感技術(shù)等領(lǐng)域。基于模擬電路的電流源雖然可以實(shí)現(xiàn)高精度、寬電流范圍輸出,但其結(jié)構(gòu)復(fù)雜, 調(diào)整困難,指示不直觀。隨著單片機(jī)技術(shù)的發(fā)展,數(shù)字控制電流源開(kāi)始出現(xiàn),其以控制靈活、調(diào)節(jié)方便等特點(diǎn)展示了良好的應(yīng)用前景。
一般的恒流電流源往往是電流值固定,或是有限數(shù)值檔的電流值輸出,不便于通用。數(shù)字控制的電流源則通過(guò)單片機(jī)作為核心控制器,通過(guò)鍵盤設(shè)置所需的電流值,電流值取值范圍大,使用方便靈活。
本文將介紹數(shù)字電流源設(shè)計(jì)方案,實(shí)現(xiàn)基于單片機(jī)控制的程控電流源硬件及軟件設(shè)計(jì)。
數(shù)控電流源硬件設(shè)計(jì)
數(shù)字控制電流源可以有多種方案,如基于PWM技術(shù)的開(kāi)關(guān)電源、基于模擬器件的模擬反饋壓控,以及基于微控制器的數(shù)字反饋數(shù)控方案。本設(shè)計(jì)采用基于微處理控制器的數(shù)字控制方案,硬件系統(tǒng)框圖如圖1所示。利用單片機(jī)AT89C51將輸入的控制信號(hào)進(jìn)行處理輸出數(shù)字量,再把輸出的數(shù)字量轉(zhuǎn)換成模擬電壓量,最后把轉(zhuǎn)換后的模擬電壓量進(jìn)行電壓/電流的轉(zhuǎn)換供給負(fù)載。
圖1 硬件電路框圖
1 單片機(jī)控制與顯示電路
直流數(shù)控電流源原理圖如圖2所示??刂齐娐酚葾T89C51、晶振、按鍵等構(gòu)成,包括單片機(jī)時(shí)鐘電路、復(fù)位電路以及按鍵輸入電路。
該電路的工作原理為:AT89C51單片機(jī)通電后復(fù)位,P0和P1口均輸出高電平。當(dāng)按鍵輸入電路給電路輸入控制信號(hào)后,通過(guò)程序控制經(jīng)過(guò)內(nèi)部處理,在P0及P1口輸出處理后的信號(hào)。P0的信號(hào)送至DAC0832的數(shù)字輸入端進(jìn)行數(shù)模轉(zhuǎn)換,P1的輸出信號(hào)送至顯示電路進(jìn)行顯示。
鍵盤作為輸入控制的信號(hào),如圖2所示,總共有8個(gè)按鍵,具體功能為:++鍵用于實(shí)現(xiàn)步進(jìn)加,--鍵用作實(shí)現(xiàn)步進(jìn)減,S1~S4用于實(shí)現(xiàn)從最低位至最高位設(shè)置時(shí)的位選,位選后,由+、-鍵調(diào)節(jié)各位的數(shù)值。
顯示電路用于指示輸出電流的數(shù)值,電路主要由四個(gè)相連的共陽(yáng)極數(shù)碼管和驅(qū)動(dòng)電路組成。AT89C51的P1和P2口連接顯示電路,其中,P1口的8個(gè)引腳用來(lái)控制數(shù)碼管的段碼。用三極管V5~V8組成數(shù)碼管四個(gè)位的驅(qū)動(dòng)電路,再分別與單片機(jī)的P2.4~P2.7相連實(shí)現(xiàn)對(duì)位的控制。
圖2 直流數(shù)控電流源原理圖
2 D/A轉(zhuǎn)換電路
D/A轉(zhuǎn)換電路由數(shù)模轉(zhuǎn)換器DAC0832和運(yùn)放LM324構(gòu)成。DAC0832芯片是一個(gè)8位D/A轉(zhuǎn)換器,有8個(gè)數(shù)碼輸入端,1個(gè)模擬輸出端,能將控制電路輸出的8位二進(jìn)制數(shù)字量轉(zhuǎn)換成模擬量的輸出,送給后級(jí)的V/I轉(zhuǎn)換電路。
運(yùn)放A4輸出電壓為:
(1)
式中,Vref為外接參考電壓,D7~DO為8位輸入數(shù)字量。
當(dāng)輸入數(shù)字量在00000000~11111111之間變化時(shí),其對(duì)應(yīng)的輸出模擬電壓U1在0~-Vref之間,電壓分辨率為:△V=5V/(28-1)=19.6mV。
3 V/I轉(zhuǎn)換電路
V/I轉(zhuǎn)換電路是整個(gè)電流源的關(guān)鍵部分,其電路圖2所示,主要由運(yùn)放LM324和電流擴(kuò)展電路構(gòu)成。運(yùn)放A1構(gòu)成加法器,有U2=-(U1+U5)。三極管V1、V2、V3、V4構(gòu)成電流擴(kuò)展電路,以便有足夠的輸出電流。A2構(gòu)成電壓跟隨器,有U4=U3。A3是反相器,有U5=-U4,則U5=-U3。
電阻RM上的壓降UM為:UM=U2-U3=-(U1-U3)-U3=-U1,則通過(guò)負(fù)載RL的電流I為:I=UM/RM=-U1/RM。
可見(jiàn),輸出電流I僅由電壓U1和電阻RM決定。當(dāng)U1和RM一定時(shí),I保持恒定。U1是由數(shù)模轉(zhuǎn)換器得到,則該恒流源的電流大小由數(shù)字量決定。
軟件編程
圖3 軟件流程圖
軟件流程如圖3所示,程序采用C語(yǔ)言編寫(xiě)。用仿真機(jī)進(jìn)行功能調(diào)試,實(shí)現(xiàn)全部功能,然后把程序?qū)懭階T89C51芯片,固化成功后,便可進(jìn)行獨(dú)立運(yùn)行。
主程序部分代碼。
void main()
{unsigned char Debugging=0;
unsigned char Sampling=0;
while (1)
{ Sampling =P2|0xf0; //采樣鍵盤信號(hào)
if (Sampling!=0xff) //如果有鍵盤按下執(zhí)行下列程序
┇//處理鍵盤程序
┇//顯示程序
┇//電流輸出程序
}}
實(shí)驗(yàn)結(jié)果
測(cè)試結(jié)果表明(見(jiàn)表1),負(fù)載RL阻值在0~5Ω變化時(shí),最大絕對(duì)誤差△I=|測(cè)試電流值-輸出電流值|=10mA;相對(duì)誤差為=絕對(duì)誤差/顯示電流值=1%;
另一測(cè)試結(jié)果表明(見(jiàn)表2),最大紋波系數(shù)=紋波電流值/設(shè)定輸出電流值=1.5%;
表3所示為部分設(shè)定輸出值與實(shí)際測(cè)試值的數(shù)據(jù)對(duì)照。設(shè)定輸出值和測(cè)試值的比較曲線如圖4所示,從圖中可得,步進(jìn)誤差較小,其設(shè)定輸出在0~1000mA時(shí),實(shí)際測(cè)試值為0~990mA,最大絕對(duì)誤差△I=10mA,最大相對(duì)誤差為1%。
圖4 設(shè)定輸出值和測(cè)試值的比較曲線
若電流精度不夠(設(shè)定輸出值與實(shí)際測(cè)試值存在較大誤差)時(shí),可采用12位的D/A,并增加模數(shù)轉(zhuǎn)換采樣電路,將輸出值反饋回單片機(jī),并由單片機(jī)程序?qū)崿F(xiàn)校正。此外,電路中RM可以選用精密電阻以減少誤差。
結(jié)語(yǔ)
本文詳細(xì)介紹了一種基于單片機(jī)控制的直流數(shù)控電流源。該電源由單片機(jī)接收鍵盤的輸入數(shù)據(jù),將設(shè)定的電流值通過(guò)D/A轉(zhuǎn)換器轉(zhuǎn)換為控制電壓,再轉(zhuǎn)換為電流輸出,同時(shí)將設(shè)定電流在數(shù)碼管上顯示。整個(gè)數(shù)控電流源具有很高的性價(jià)比,穩(wěn)態(tài)精度高,控制部分電路簡(jiǎn)明,結(jié)構(gòu)緊湊,工作穩(wěn)定可靠,應(yīng)用前景廣闊。
評(píng)論