新聞中心

EEPW首頁(yè) > EDA/PCB > 基于C8051的軟開(kāi)關(guān)用移相PWM的實(shí)現(xiàn)

基于C8051的軟開(kāi)關(guān)用移相PWM的實(shí)現(xiàn)

——
作者:四川大學(xué) 陸冬良 張代潤(rùn) 時(shí)間:2007-11-20 來(lái)源:21IC中國(guó)電子網(wǎng) 收藏

  摘要:通過(guò)C8051單片機(jī)的可編程計(jì)數(shù)器列陣PCA來(lái)實(shí)現(xiàn)用移相PWM觸發(fā)脈沖,實(shí)驗(yàn)結(jié)果表明通過(guò)此法產(chǎn)生的PWM波調(diào)試方便,運(yùn)行可靠,可應(yīng)用于多種電路中。

  關(guān)鍵詞
;

0 引言

    軟開(kāi)關(guān)技術(shù)近年來(lái)已經(jīng)得到了深入,廣泛的研究并且發(fā)展迅速。但在各種軟開(kāi)關(guān)電路中,使開(kāi)關(guān)管實(shí)現(xiàn)軟開(kāi)關(guān)的觸發(fā)脈沖比較特殊:例如在典型的Boost ZCT—PWM電路[1]中,主開(kāi)關(guān)管的觸發(fā)脈沖超前于輔助開(kāi)關(guān)管的觸發(fā)脈沖,兩者雖然頻率相同,但占空比不同。在實(shí)驗(yàn)中發(fā)現(xiàn),利用Cvgnal公司的C8051F系列單片機(jī)可以方便地產(chǎn)生此種軟開(kāi)關(guān)用的、多路占空比不等的移相PWM脈沖。

1 C805lF系列單片機(jī)可編程計(jì)數(shù)器陣列PCA簡(jiǎn)介

    圖1為PCA原理框圖,以C8051F040為例,PCA包含1個(gè)專(zhuān)用的16位計(jì)數(shù)器/定時(shí)器和6個(gè)16位捕捉/比較模塊。從圖1中可見(jiàn),16位PCA專(zhuān)用計(jì)數(shù)器/定時(shí)器的時(shí)基信號(hào)可有多種選擇,可通過(guò)配置相關(guān)的系統(tǒng)控制器的特殊功能寄存器(SFR)來(lái)實(shí)現(xiàn)。每個(gè)捕捉/比較模塊有自己的I/O線CEXn,可通過(guò)配制交叉開(kāi)關(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ù)程序,該位只能由軟件清零。

    可見(jiàn)要產(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ì)及編程語(yǔ)言的選擇

    系統(tǒng)主程序框圖如圖3所示。

    在針對(duì)具體電路應(yīng)用時(shí),須加入主開(kāi)關(guān)管PWM觸發(fā)脈沖調(diào)節(jié)子程序,根據(jù)輸出電壓采樣反饋來(lái)調(diào)節(jié)其占空比以保證輸出電壓穩(wěn)定。在選擇編程語(yǔ)言時(shí),同時(shí)用C51和匯編語(yǔ)言來(lái)產(chǎn)生2路移相PWM,并作了比較。比較如下:設(shè)定開(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)行捕捉/比較模塊寄存器偏移量計(jì)算時(shí),以模塊0計(jì)算主開(kāi)關(guān)管高電壓脈寬偏移量為例,C51語(yǔ)句為:

    tempI=(PCA0CPH0《8)lPCA0CPLO;//取寄存器當(dāng)前值
    temp1+=0x0271: //上升沿,加上高電壓脈寬
    PCA0CPLO=(0Xff&(temp1);
    PCAOCPH0=[0xff&(temp》8)];//計(jì)算結(jié)果返回寄存器

    編譯后的語(yǔ)句執(zhí)行過(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//以上取害存器當(dāng)前值,并加上高電壓脈寬計(jì)算
    MOV     OCH,A
    MOV     A,0DH
    MOV     FBH,A
    M0V     A,OCH
    MOV     FCH,A//計(jì)算結(jié)果返回寄存器

    直接使用匯編語(yǔ)言實(shí)現(xiàn)相同功能時(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ǔ)句執(zhí)行過(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的執(zhí)行過(guò)程中有些地址只是作為數(shù)據(jù)存取的中轉(zhuǎn),另外,還有大量的堆棧操作未在文中給出,這增加了CPU處理CCF中斷的時(shí)鐘周期,如果幾個(gè)中斷優(yōu)先級(jí)相同的CCF中斷發(fā)生的時(shí)間間隔過(guò)短,就會(huì)造成程序跑飛。使用匯編語(yǔ)言編程,在單片機(jī)時(shí)鐘頻率為24.5MHz時(shí),其中斷服務(wù)程序最少用時(shí)約為35個(gè)時(shí)鐘周期,而C51用時(shí)大概為其2倍。因此,用匯編語(yǔ)言編程可實(shí)現(xiàn)的PWM頻率和移相范圍都要高于C5l。

3 實(shí)驗(yàn)結(jié)果

    1)針對(duì)主、輔開(kāi)關(guān)管均實(shí)現(xiàn)軟開(kāi)關(guān)的新型Boost ZCT—PWM電路[圖4(a)]需要的兩路移相PWM觸發(fā)脈沖,用C8051單片機(jī)產(chǎn)生了所需觸發(fā)脈沖[圖4(b)],并對(duì)此Boost電路作了實(shí)驗(yàn)。單片機(jī)端口J/0為低電平有效,故圖4(b)所示是經(jīng)非門(mén)反相后的信號(hào)。實(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é)果可見(jiàn),主、輔開(kāi)關(guān)管均實(shí)現(xiàn)了零電流開(kāi)通和關(guān)斷,表明單片機(jī)產(chǎn)生的移相PWM觸發(fā)脈沖能保證電路實(shí)現(xiàn)預(yù)期的全軟開(kāi)關(guān)效果。

    2)專(zhuān)用移相控制芯片如UC3879,在軟開(kāi)關(guān)全橋PWM變換器(如圖6所示)中有很廣泛的應(yīng)用。本實(shí)驗(yàn)實(shí)現(xiàn)單片機(jī)輸出4路PWM脈沖,頻率為50kHz,每路占空比為40%,同一橋臂開(kāi)關(guān)管死區(qū)時(shí)間設(shè)定為2μs,橋臂S1、S4為一組,S2、S3為一組,實(shí)驗(yàn)結(jié)果如圖7所示。

    從以上實(shí)驗(yàn)結(jié)果可見(jiàn),所產(chǎn)生的PWM脈沖波形頻率和相移精確度高,波形理想。

4 結(jié)語(yǔ)

    通過(guò)C805l單片機(jī)的可編程計(jì)數(shù)器列陣PCA產(chǎn)生移相PWM脈沖,可根據(jù)實(shí)際應(yīng)用所需產(chǎn)生相應(yīng)脈沖路數(shù),頻率高,移相范圍廣,精確可靠,可應(yīng)用于多種軟開(kāi)關(guān)實(shí)驗(yàn)或者實(shí)際電路中。

pwm相關(guān)文章:pwm原理




評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉