基于C8051的軟開關(guān)用移相PWM的實(shí)現(xiàn)
關(guān)鍵詞:軟開關(guān);移相PWM:C8051
0 引言
軟開關(guān)技術(shù)近年來已經(jīng)得到了深入,廣泛的研究并且發(fā)展迅速。但在各種軟開關(guān)電路中,使開關(guān)管實(shí)現(xiàn)軟開關(guān)的觸發(fā)脈沖比較特殊:例如在典型的Boost ZCT—PWM電路[1]中,主開關(guān)管的觸發(fā)脈沖超前于輔助開關(guān)管的觸發(fā)脈沖,兩者雖然頻率相同,但占空比不同。在實(shí)驗(yàn)中發(fā)現(xiàn),利用Cvgnal公司的C8051F系列單片機(jī)可以方便地產(chǎn)生此種軟開關(guān)用的、多路占空比不等的移相PWM脈沖。
1 C805lF系列單片機(jī)可編程計(jì)數(shù)器陣列PCA簡介
圖1為PCA原理框圖,以C8051F040為例,PCA包含1個(gè)專用的16位計(jì)數(shù)器/定時(shí)器和6個(gè)16位捕捉/比較模塊。從圖1中可見,16位PCA專用計(jì)數(shù)器/定時(shí)器的時(shí)基信號可有多種選擇,可通過配置相關(guān)的系統(tǒng)控制器的特殊功能寄存器(SFR)來實(shí)現(xiàn)。每個(gè)捕捉/比較模塊有自己的I/O線CEXn,可通過配制交叉開關(guān)寄存器(XBR。)將每個(gè)模塊的I/O線連接到端口I/0;每個(gè)模塊都可配制為獨(dú)立工作,有4種工作方式:邊沿觸發(fā)捕捉方式、軟件定時(shí)器比較方式、高速輸出和脈寬調(diào)制器。本文中產(chǎn)生多路占空比不等的移相PWM是使用了捕捉/比較模塊的高速輸出工作方式,其原理如圖2所示。
PCAOL和PCAOH分別為系統(tǒng)16位PCA計(jì)數(shù)器/定時(shí)器的低8位和高8位,PCAOCPLn和PCAOCPHn分別為捕捉/比較模塊寄存器低8位和高8位。在高速輸出方式下,配制模塊工作方式的寄存器PCA0CPM值如圖2中所示。當(dāng)系統(tǒng)PCA計(jì)數(shù)器/定時(shí)器與模塊寄存器值發(fā)生匹配時(shí),模塊的CEXn引腳上的邏輯電平將發(fā)生變化,如果將相應(yīng)模塊的I/0線CEXn連接到端口I/0,單片機(jī)相應(yīng)端口輸出電平即發(fā)生變化,這就可實(shí)現(xiàn)PWM脈沖的高、低電平輸出。每個(gè)模塊的工作是單獨(dú)進(jìn)行的,需要的CPU干預(yù)較少,這就可同時(shí)輸出多路PWM。
控制寄存器PCAOCN中,CF是當(dāng)PCA計(jì)數(shù)器/定時(shí)器溢出時(shí),由硬件置位,如CF中斷被允許則此時(shí)CPU轉(zhuǎn)向CF中斷服務(wù)程序,該位只能由軟件清零。CR置1是允許PCA計(jì)數(shù)器/定時(shí)器工作,置O是禁止。CCF0~CCF5是模塊捕捉比較標(biāo)志,當(dāng)匹配發(fā)生時(shí),該位由硬件置位,如CCF中斷被允許則此時(shí)CPU轉(zhuǎn)向相應(yīng)CCF中斷服務(wù)程序,該位只能由軟件清零。
可見要產(chǎn)生多路移相PWM,可允許多個(gè)捕捉/比較模塊同時(shí)工作,當(dāng)發(fā)生匹配即電平轉(zhuǎn)換時(shí),允許CPU轉(zhuǎn)向CCF中斷服務(wù)程序,在中斷服務(wù)程序中,將相應(yīng)的數(shù)值偏移量與寄存器PCAOCPLn和PCAOCPHn值相加,這一數(shù)值偏移量便決定了下一次匹配的時(shí)間,PWM的高、低電平脈寬便由各自相應(yīng)的數(shù)值偏移量決定。
2 軟件系統(tǒng)設(shè)計(jì)及編程語言的選擇
系統(tǒng)主程序框圖如圖3所示。
在針對具體電路應(yīng)用時(shí),須加入主開關(guān)管PWM觸發(fā)脈沖調(diào)節(jié)子程序,根據(jù)輸出電壓采樣反饋來調(diào)節(jié)其占空比以保證輸出電壓穩(wěn)定。在選擇編程語言時(shí),同時(shí)用C51和匯編語言來產(chǎn)生2路移相PWM,并作了比較。比較如下:設(shè)定開關(guān)頻率為20kHz,主開關(guān)管觸發(fā)脈沖占空比為50%,輔助管為20%并滯后于主開關(guān)管2lμs開通。進(jìn)入CCF中斷服務(wù)程序后,CPU進(jìn)行捕捉/比較模塊寄存器偏移量計(jì)算時(shí),以模塊0計(jì)算主開關(guān)管高電壓脈寬偏移量為例,C51語句為:
tempI=(PCA0CPH0《8)lPCA0CPLO;//取寄存器當(dāng)前值
temp1+=0x0271: //上升沿,加上高電壓脈寬
PCA0CPLO=(0Xff&(temp1);
PCAOCPH0=[0xff&(temp》8)];//計(jì)算結(jié)果返回寄存器
編譯后的語句執(zhí)行過程為:
MOV R7,FCH
MOV A,R7
MOV R3,FBH
MOV 0CH,A
MOV A,R3
MOV 0DH,A
ADD A,#7lH
MOV 0DH,A
MOk A,#02H
ADDC A,OCH//以上取害存器當(dāng)前值,并加上高電壓脈寬計(jì)算
MOV OCH,A
MOV A,0DH
MOV FBH,A
M0V A,OCH
MOV FCH,A//計(jì)算結(jié)果返回寄存器
直接使用匯編語言實(shí)現(xiàn)相同功能時(shí),匯編語句為
mllV A,R0
add A,#071h
mov R0,A
clr A
addc A,Rl
add A,#02h
mov R1,A
mov PCAOCPLO,R0
mov PCAOCPHO,Rl
編譯后的語句執(zhí)行過程為
MOV A,RO
ADD A,#71H
MOV R0,A
CLR A
AkDDC A,Rl
ADD A,#02H
MOV R1,A
MOV FBH,R0
MOV FCH,Rl
通過比較中斷服務(wù)程序處理過程可見,C51的執(zhí)行過程中有些地址只是作為數(shù)據(jù)存取的中轉(zhuǎn),另外,還有大量的堆棧操作未在文中給出,這增加了CPU處理CCF中斷的時(shí)鐘周期,如果幾個(gè)中斷優(yōu)先級相同的CCF中斷發(fā)生的時(shí)間間隔過短,就會造成程序跑飛。使用匯編語言編程,在單片機(jī)時(shí)鐘頻率為24.5MHz時(shí),其中斷服務(wù)程序最少用時(shí)約為35個(gè)時(shí)鐘周期,而C51用時(shí)大概為其2倍。因此,用匯編語言編程可實(shí)現(xiàn)的PWM頻率和移相范圍都要高于C5l。
3 實(shí)驗(yàn)結(jié)果
1)針對主、輔開關(guān)管均實(shí)現(xiàn)軟開關(guān)的新型Boost ZCT—PWM電路[圖4(a)]需要的兩路移相PWM觸發(fā)脈沖,用C8051單片機(jī)產(chǎn)生了所需觸發(fā)脈沖[圖4(b)],并對此Boost電路作了實(shí)驗(yàn)。單片機(jī)端口J/0為低電平有效,故圖4(b)所示是經(jīng)非門反相后的信號。實(shí)驗(yàn)電路參數(shù):Vin=24V,Vo=48V,輸出功率100W,Lf=5mH,L1=4μH,La=6μH,Ca=1μF,Cf200μF。實(shí)驗(yàn)結(jié)果如圖5所示。
從圖5實(shí)驗(yàn)結(jié)果可見,主、輔開關(guān)管均實(shí)現(xiàn)了零電流開通和關(guān)斷,表明單片機(jī)產(chǎn)生的移相PWM觸發(fā)脈沖能保證電路實(shí)現(xiàn)預(yù)期的全軟開關(guān)效果。
2)專用移相控制芯片如UC3879,在軟開關(guān)全橋PWM變換器(如圖6所示)中有很廣泛的應(yīng)用。本實(shí)驗(yàn)實(shí)現(xiàn)單片機(jī)輸出4路PWM脈沖,頻率為50kHz,每路占空比為40%,同一橋臂開關(guān)管死區(qū)時(shí)間設(shè)定為2μs,橋臂S1、S4為一組,S2、S3為一組,實(shí)驗(yàn)結(jié)果如圖7所示。
從以上實(shí)驗(yàn)結(jié)果可見,所產(chǎn)生的PWM脈沖波形頻率和相移精確度高,波形理想。
4 結(jié)語
通過C805l單片機(jī)的可編程計(jì)數(shù)器列陣PCA產(chǎn)生移相PWM脈沖,可根據(jù)實(shí)際應(yīng)用所需產(chǎn)生相應(yīng)脈沖路數(shù),頻率高,移相范圍廣,精確可靠,可應(yīng)用于多種軟開關(guān)實(shí)驗(yàn)或者實(shí)際電路中。