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