新聞中心

        EEPW首頁 > EDA/PCB > 基于C8051的軟開關用移相PWM的實現

        基于C8051的軟開關用移相PWM的實現

        ——
        作者:四川大學 陸冬良 張代潤 時間:2007-11-20 來源:21IC中國電子網 收藏

          摘要:通過C8051單片機的可編程計數器列陣PCA來實現用移相PWM觸發脈沖,實驗結果表明通過此法產生的PWM波調試方便,運行可靠,可應用于多種電路中。

          關鍵詞

        0 引言

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

        1 C805lF系列單片機可編程計數器陣列PCA簡介

            圖1為PCA原理框圖,以C8051F040為例,PCA包含1個專用的16位計數器/定時器和6個16位捕捉/比較模塊。從圖1中可見,16位PCA專用計數器/定時器的時基信號可有多種選擇,可通過配置相關的系統控制器的特殊功能寄存器(SFR)來實現。每個捕捉/比較模塊有自己的I/O線CEXn,可通過配制交叉開關寄存器(XBR。)將每個模塊的I/O線連接到端口I/0;每個模塊都可配制為獨立工作,有4種工作方式:邊沿觸發捕捉方式、軟件定時器比較方式、高速輸出和脈寬調制器。本文中產生多路占空比不等的移相PWM是使用了捕捉/比較模塊的高速輸出工作方式,其原理如圖2所示。

            PCAOL和PCAOH分別為系統16位PCA計數器/定時器的低8位和高8位,PCAOCPLn和PCAOCPHn分別為捕捉/比較模塊寄存器低8位和高8位。在高速輸出方式下,配制模塊工作方式的寄存器PCA0CPM值如圖2中所示。當系統PCA計數器/定時器與模塊寄存器值發生匹配時,模塊的CEXn引腳上的邏輯電平將發生變化,如果將相應模塊的I/0線CEXn連接到端口I/0,單片機相應端口輸出電平即發生變化,這就可實現PWM脈沖的高、低電平輸出。每個模塊的工作是單獨進行的,需要的CPU干預較少,這就可同時輸出多路PWM。

            控制寄存器PCAOCN中,CF是當PCA計數器/定時器溢出時,由硬件置位,如CF中斷被允許則此時CPU轉向CF中斷服務程序,該位只能由軟件清零。CR置1是允許PCA計數器/定時器工作,置O是禁止。CCF0~CCF5是模塊捕捉比較標志,當匹配發生時,該位由硬件置位,如CCF中斷被允許則此時CPU轉向相應CCF中斷服務程序,該位只能由軟件清零。

            可見要產生多路移相PWM,可允許多個捕捉/比較模塊同時工作,當發生匹配即電平轉換時,允許CPU轉向CCF中斷服務程序,在中斷服務程序中,將相應的數值偏移量與寄存器PCAOCPLn和PCAOCPHn值相加,這一數值偏移量便決定了下一次匹配的時間,PWM的高、低電平脈寬便由各自相應的數值偏移量決定。

        2 軟件系統設計及編程語言的選擇

            系統主程序框圖如圖3所示。

            在針對具體電路應用時,須加入主開關管PWM觸發脈沖調節子程序,根據輸出電壓采樣反饋來調節其占空比以保證輸出電壓穩定。在選擇編程語言時,同時用C51和匯編語言來產生2路移相PWM,并作了比較。比較如下:設定開關頻率為20kHz,主開關管觸發脈沖占空比為50%,輔助管為20%并滯后于主開關管2lμs開通。進入CCF中斷服務程序后,CPU進行捕捉/比較模塊寄存器偏移量計算時,以模塊0計算主開關管高電壓脈寬偏移量為例,C51語句為:

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

            編譯后的語句執行過程為:
            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//計算結果返回寄存器

            直接使用匯編語言實現相同功能時,匯編語句為
            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

            編譯后的語句執行過程為
            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

            通過比較中斷服務程序處理過程可見,C51的執行過程中有些地址只是作為數據存取的中轉,另外,還有大量的堆棧操作未在文中給出,這增加了CPU處理CCF中斷的時鐘周期,如果幾個中斷優先級相同的CCF中斷發生的時間間隔過短,就會造成程序跑飛。使用匯編語言編程,在單片機時鐘頻率為24.5MHz時,其中斷服務程序最少用時約為35個時鐘周期,而C51用時大概為其2倍。因此,用匯編語言編程可實現的PWM頻率和移相范圍都要高于C5l。

        3 實驗結果

            1)針對主、輔開關管均實現軟開關的新型Boost ZCT—PWM電路[圖4(a)]需要的兩路移相PWM觸發脈沖,用C8051單片機產生了所需觸發脈沖[圖4(b)],并對此Boost電路作了實驗。單片機端口J/0為低電平有效,故圖4(b)所示是經非門反相后的信號。實驗電路參數:Vin=24V,Vo=48V,輸出功率100W,Lf=5mH,L1=4μH,La=6μH,Ca=1μF,Cf200μF。實驗結果如圖5所示。


            從圖5實驗結果可見,主、輔開關管均實現了零電流開通和關斷,表明單片機產生的移相PWM觸發脈沖能保證電路實現預期的全軟開關效果。

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

            從以上實驗結果可見,所產生的PWM脈沖波形頻率和相移精確度高,波形理想。

        4 結語

            通過C805l單片機的可編程計數器列陣PCA產生移相PWM脈沖,可根據實際應用所需產生相應脈沖路數,頻率高,移相范圍廣,精確可靠,可應用于多種軟開關實驗或者實際電路中。

        pwm相關文章:pwm原理




        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 永新县| 桦川县| 喜德县| 航空| 元江| 南城县| 丰都县| 宜兰市| 无锡市| 闽侯县| 扶沟县| 昌宁县| 中卫市| 通渭县| 剑川县| 达日县| 民勤县| 巫溪县| 阳信县| 噶尔县| 澄迈县| 嘉善县| 青川县| 琼海市| 永川市| 阳西县| 来凤县| 阳曲县| 绍兴县| 华阴市| 古田县| 巴彦淖尔市| 峡江县| 宜川县| 大石桥市| 忻城县| 西安市| 台州市| 确山县| 来凤县| 瑞昌市|