引 言
直流穩(wěn)壓電源是一種比較常見的電子設(shè)備,一直被廣泛地應(yīng)用在電子電路、實驗教學(xué)、科學(xué)研究等諸多領(lǐng)域。近年來,嵌入式技術(shù)發(fā)展極為迅速,出現(xiàn)了以單片機、嵌入式ARM 為核心的高集成度處理器,并在自動化、通信等領(lǐng)域得到了廣泛應(yīng)用。電源行業(yè)也開始采用內(nèi)部集成資源豐富的嵌入式控制器來實現(xiàn)數(shù)字穩(wěn)壓電源的控制系統(tǒng)。數(shù)字穩(wěn)壓電源是用脈寬調(diào)制波(PWM)來控制MOS管等開關(guān)器件的開通和關(guān)閉,從而實現(xiàn)電壓電流的穩(wěn)定輸出。數(shù)字穩(wěn)壓電源還具備自診斷功能,能實現(xiàn)過壓過流保護(hù)、故障警告等。
相比之前的模擬電源,數(shù)字穩(wěn)壓電源大大減少了在模擬電源中常見的誤差、老化、溫度漂移、非線性不易補償?shù)戎T多問題,提高了電源的靈活性和適應(yīng)性。將SAMSUNG公司的嵌入式ARM 處理器S3C2440芯片應(yīng)用到實驗室測試系統(tǒng)數(shù)字穩(wěn)壓電源的設(shè)計中,采用C語言和匯編語言,實現(xiàn)一種以嵌入式ARM 處理器為核心,具備PID控制器以及觸摸屏等功能的測試系統(tǒng)數(shù)字穩(wěn)壓電源控制系統(tǒng)。
1 測試系統(tǒng)數(shù)字穩(wěn)壓電源組成及工作原理
數(shù)字穩(wěn)壓電源由主控制器、PWM 穩(wěn)壓電路、電壓電流取樣電路、PID控制器、觸摸屏組成,系統(tǒng)原理框圖如圖1所示。
圖1 系統(tǒng)原理框圖
本電源對輸出的電壓電流信號進(jìn)行采樣,進(jìn)行PID控制,最后輸出PWM 驅(qū)動波形調(diào)節(jié)輸出電壓。輸出電壓提供給芯片測試平臺,供其測試芯片時使用。
前端交流電源輸入到整流模塊,經(jīng)整流濾波后輸出平穩(wěn)的直流電壓。該直流電壓直接輸出至IGBT模塊。
高精度A/D轉(zhuǎn)換器將后端輸出的電壓電流信號由模擬信號量變?yōu)閿?shù)字量供給S3C2440進(jìn)行數(shù)字PID運算,經(jīng)過PID 控制器運算后,由S3C2440輸出PWM 至IGBT,從而構(gòu)成一個閉環(huán)控制系統(tǒng),控制電壓電流穩(wěn)定輸出,從而實現(xiàn)數(shù)字穩(wěn)壓電源設(shè)計,提供給芯片測試系統(tǒng)使用。ARM 控制器通過觸摸屏實現(xiàn)人機交互界面,在觸摸屏上設(shè)置參數(shù)和顯示信息。
2 硬件設(shè)計
2.1 ARM 控制系統(tǒng)組成
鑒于PID運算和PWM 波輸出模塊要求高,通過考查,選擇SAMSUNG公司的S3C2440,這是一款32位基于ARM920T內(nèi)核的CPU,擁有高達(dá)400MHz的頻率,完全能滿足PID控制器運算的實時性要求;16位的定時器,可實現(xiàn)精度高達(dá)0.03μs的PWM 脈沖波,并且有防死區(qū)功能;24個外部中斷源,完全可以滿足對系統(tǒng)外部故障信息進(jìn)行實時響應(yīng);內(nèi)部嵌入LCD控制器,并擁有DMA通道,使得電壓電流值能夠?qū)崟r顯示在LCD上,還可以通過觸摸屏設(shè)計一些所需的參數(shù);多達(dá)140個通用I/O口,可以方便地擴(kuò)展外部接口和設(shè)備;擁有8通道多路復(fù)用ADC,10位的數(shù)字編碼,高達(dá)500kSPS轉(zhuǎn)換率,滿足了測試系統(tǒng)所需的A/D轉(zhuǎn)換精度。
2.2 PWM 穩(wěn)壓電路設(shè)計
脈沖寬度調(diào)制(Pulse Width Modulation,PWM)原理是PWM 調(diào)制信號對半導(dǎo)體功率開關(guān)器件的導(dǎo)通和關(guān)斷進(jìn)行控制,使輸出端得到一些列幅值相等而寬度不相等的脈沖,經(jīng)過處理后得到穩(wěn)定的直流電壓輸出。
PWM 調(diào)制信號由ARM 主控制器根據(jù)設(shè)定的電壓值,按一定的規(guī)則對各脈沖寬度進(jìn)行調(diào)制后給出脈沖信號。
PWM 穩(wěn)壓電路如圖2所示。
圖2 PWM 穩(wěn)壓電路
半導(dǎo)體功率開關(guān)器件其開關(guān)轉(zhuǎn)換速度的快慢直接影響電源的轉(zhuǎn)換效率和負(fù)載能力,本系統(tǒng)PWM 穩(wěn)壓電路中,驅(qū)動電路由電阻、電容、晶體管和場效應(yīng)管組成,MOSFET是電壓單極性金屬氧化硅場效應(yīng)晶體管,所需驅(qū)動功率很小,容易驅(qū)動。MOSFET的輸入阻抗很高,其導(dǎo)通和關(guān)斷就相當(dāng)于輸入電容充放電過程。根據(jù)所選器件的參數(shù),計算出滿足的條件,保證驅(qū)動電路提供足夠大的過充電流,實現(xiàn)MOSFET 快速、可靠的開關(guān)。
3 軟件設(shè)計
采用S3C2440為核心處理器,其豐富的片上資源和優(yōu)秀的運算速度,保證了系統(tǒng)的實時性,編寫軟件主要以C語言進(jìn)行驅(qū)動和應(yīng)用程序的開發(fā),其大容量存儲器,完全能滿足系統(tǒng)程序的數(shù)據(jù)存儲。
該測試系統(tǒng)中ARM 處理器所要實現(xiàn)的主要功能和軟件實現(xiàn)方法如下。
3.1 PWM 波產(chǎn)生
PWM 用于對電路中IGBT 的驅(qū)動。根據(jù)輸出采樣,設(shè)定和調(diào)整定時器配置寄存器TCFGn 和定時器n計數(shù)緩存寄存器TCNTBn中的值來改變輸出PWM 波的周期和脈沖寬度。修改TCNTBn的值可以控制PWM 波的占空比增加或減少1,PWM 輸出占空比增加或者減少千分之一,可以達(dá)到千分之一的控制精度。
3.2 監(jiān)控和保護(hù)系統(tǒng)
為了使數(shù)字穩(wěn)壓電源能夠可靠、安全地為測試系統(tǒng)提供電壓,該系統(tǒng)設(shè)置了監(jiān)控和保護(hù)系統(tǒng),主要用于過流保護(hù)和過壓保護(hù)等,ARM 處理器對電壓和電流采用雙重檢測,當(dāng)電壓電流超出所設(shè)定的危險值范圍時,聲光報警,并啟動保護(hù)電路。
3.3 PID控制算法
PID控制器由比例、積分、微分控制器組合,將測量的受控對象(在本系統(tǒng)中為電壓電流值)與設(shè)定值相比較,用這個誤差來調(diào)節(jié)系統(tǒng)的響應(yīng),以達(dá)到動態(tài)實時的控制過程。
在數(shù)字穩(wěn)壓電源PID控制系統(tǒng)中,使用比例環(huán)節(jié)控制電壓電流的輸出與輸入誤差信號成比例改變,但是這里會存在一個穩(wěn)態(tài)誤差,即實際值與給定值間存在的偏差,因此需要引入積分環(huán)節(jié)來消除穩(wěn)態(tài)誤差以提高系統(tǒng)精度。但由于電源系統(tǒng)在導(dǎo)通、關(guān)斷時,產(chǎn)生積分積累,會引起電壓電流超調(diào),甚至?xí)霈F(xiàn)震蕩。為了減小這方面的影響,設(shè)定給定一個誤差值范圍,當(dāng)電壓電流與設(shè)定工作值的誤差小于這一給定值時,采用積分環(huán)節(jié)去消除系統(tǒng)比例環(huán)節(jié)產(chǎn)生的穩(wěn)態(tài)誤差。PID控制算法設(shè)定閾值ε,當(dāng)|e(k)|>ε時,采用PD控制環(huán)節(jié),減少超調(diào)量,使系統(tǒng)有較快的響應(yīng);當(dāng)|e(k)|《ε時,采用PID控制,以保證電壓電流精度和穩(wěn)定度。在電壓達(dá)到千分之一精度范圍后,需要加入積分環(huán)節(jié),以完成電源開機時迅速穩(wěn)定的輸出。PID算法流程圖如圖3所示。
圖3 PID控制算法流程圖
PID控制算法程序采用結(jié)構(gòu)體定義:
struct PID{
unsigned int SetPoint; //設(shè)定目標(biāo)Desired Value
unsigned int Proportion; //比例常數(shù)Proportional Const
unsigned int Integral; //積分常數(shù)Integral Const
unsigned int Derivative; //微分常數(shù)Derivative Const
unsigned int LastError; //Error[-1]
unsigned int PrevError; //Error[-2]
unsigned int SumError; //Sums of Errors
}spid;
在PID控制算法中,經(jīng)過不斷與給定值進(jìn)行比較,動態(tài)控制電壓電流輸出的穩(wěn)定,同時確保電壓電流輸出的精度。
PID控制算法程序如下:
unsigned int PIDCalc(struct PID *pp,unsigned int Next-Point)
{
unsigned int dError,Error;
Error=pp->SetPoint-NextPoint; //偏差
pp->SumError+= Error; //積分
dError=pp->LastError-pp->PrevError; //當(dāng)前微分
pp->PrevError=pp->LastError;
pp->LastError= Error;
return(pp->Proportion* Error //比例
+pp->Integral*pp->SumError //積分項
+pp->Derivative*dError); //微分項
}
測試系統(tǒng)的整體程序流程圖如圖4所示。
圖4 主程序流程圖
本文所設(shè)計的測試系統(tǒng)數(shù)字穩(wěn)壓電源能夠滿足芯片測試所需的電源要求。圖5為輸出的一路電壓。由圖可知,所輸出的電壓穩(wěn)定。
圖5 輸出電壓波形圖
4 結(jié) 語
本文設(shè)計的穩(wěn)壓電源提供的電壓穩(wěn)定可靠,系統(tǒng)運行也非常穩(wěn)定。由于可擴(kuò)展的I/O 非常多,可以同時為多個芯片提供各種所需的穩(wěn)壓電源電壓值。該系統(tǒng)不僅能夠用在實驗室芯片測試工作中,而且可以通過軟件編程的方法,修改一些控制程序,使所設(shè)計的穩(wěn)壓電源作為智能電子產(chǎn)品性能測試的電源電壓,這樣提高了設(shè)備的使用效率,有著不錯的應(yīng)用前景。