楊 浩,沈曄超,徐冠軍
(安徽機(jī)電職業(yè)技術(shù)學(xué)院,安徽 蕪湖 241002)
隨著新一代便攜產(chǎn)品和嵌入式系統(tǒng)的不斷發(fā)展,電子產(chǎn)品在性能上要求更安全可靠,在體積上則日趨小型化[1]。開關(guān)電源高頻化可以大大減小DC/DC變換器無源元件的體積,數(shù)字控制相比較傳統(tǒng)的模擬控制可以實現(xiàn)復(fù)雜的控制策略,提高了系統(tǒng)的可靠性和靈活性[2]。然而,開關(guān)電源高頻化帶來的一個問題,即數(shù)字控制精度問題日趨突出顯現(xiàn)。高分辨率DPWM控制器受到了越來越多的關(guān)注。隨即一些DPWM生成方法被提出,如抖動法、Δ-Σ法、時鐘移相法等。這些方法大多將DPWM的分辨率提高到了ns級別。但隨著開關(guān)電源頻率的增加以及系統(tǒng)對開關(guān)電源輸出電壓精度的要求的提高,DPWM的精度必須向著更高級別提升,高分辨率DPWM控制器受到了越來越多的關(guān)注[3]。
數(shù)字脈寬調(diào)制器[4]的結(jié)構(gòu)如圖1所示,由加法器延遲模塊、低精度DPWM模塊以及SR觸發(fā)器模塊等組成[5],其中加法器延遲模塊為數(shù)字脈寬調(diào)制器的核心部分。15位的占空比輸入信號被分成兩部分,6位MSB和9位的LSB[6],分別作為低精度DPWM模塊的輸入信號和加法器延遲模塊的輸入信號[7]。下面對各個環(huán)節(jié)的功能分別進(jìn)行介紹。
圖1 數(shù)字脈寬調(diào)制器結(jié)構(gòu)圖
1.1.1計數(shù)器
本設(shè)計采用Verilog HDL編程方式實現(xiàn)[8],對于輸入時鐘信號,只需一個50 MHz的系統(tǒng)時鐘信號即可?;诒驹O(shè)計使用的是高頻的系統(tǒng)時鐘[9],一點細(xì)微的誤差都會在比較過程中導(dǎo)致錯誤的發(fā)生。在一個同步電路里,所有信號跟隨同一個時鐘,在二進(jìn)制數(shù)由10000111到10001000的計數(shù)過程中,同時會有四個二進(jìn)制數(shù)值發(fā)生改變,比較器可能因為通信延遲而認(rèn)為計數(shù)值是由0000到1111之間變化而造成誤差,從而影響計數(shù)的精度[10]。此時,若能避免電平觸發(fā),讓比較器只在時鐘信號上升沿到來的時候進(jìn)行邊沿觸發(fā),即可解決傳播延遲問題。本設(shè)計采用了格雷碼計數(shù)器,有效地解決了多個數(shù)字同時變化可能帶來的信號傳輸延遲[11]。
1.1.2比較器模塊
此模塊主要由2個比較器組成,比較器A的功能是將“6位MSB占空比輸入值”與計數(shù)器A的實時計數(shù)值進(jìn)行比較,輸出一個低精度脈寬信號與加法器延遲單元的輸出信號進(jìn)行邏輯與運算[12]。
比較器B是將“開關(guān)頻率設(shè)定值”與格雷碼計數(shù)器B輸出的計數(shù)值進(jìn)行比較,輸出另一路脈寬信號作為SR鎖存器的輸入信號。與此同時,比較器B輸出信號的上升沿被用作格雷碼計數(shù)器B的重置信號以及加法器延遲單元的系統(tǒng)時鐘信號[13]。
開關(guān)頻率設(shè)定值是根據(jù)系統(tǒng)使用的時鐘設(shè)定所需的開關(guān)頻率,設(shè)定值在開環(huán)時是固定的,在閉環(huán)時則根據(jù)反饋信號進(jìn)行修正[14]。例如系統(tǒng)時鐘為50 MHz要求的系統(tǒng)開關(guān)頻率為1 MHz時,此數(shù)值設(shè)定為50。具體的公式可以寫為:
(1)
其中,fclk為時鐘頻率、fswith為開關(guān)頻率、n為開關(guān)頻率設(shè)定值如圖2所示。
圖2 低精度脈寬調(diào)制模塊系統(tǒng)框圖
此環(huán)節(jié)為“加法器進(jìn)位延遲”實現(xiàn)的具體環(huán)節(jié),是本設(shè)計的核心部分,由它來為系統(tǒng)提供ps級的脈寬調(diào)制信號。高精度延遲線的具體實現(xiàn)方式將在下面進(jìn)行詳細(xì)介紹。
輸出模塊主要由SR鎖存器構(gòu)成,它的功能是將兩路已經(jīng)處理過的脈寬信號進(jìn)行合成,用高精度加法器延遲模塊對低精度DPWM信號進(jìn)行二次細(xì)分,用來提高DPWM的精度,最終得到的高精度脈沖寬度調(diào)制信號輸出,是整個系統(tǒng)實現(xiàn)高精度脈寬調(diào)制的最后環(huán)節(jié)[15]。
時鐘信號在FPGA內(nèi)部的邏輯器件之間的傳遞延遲分為門延遲和連線延遲兩種。門延遲指的是信號在邏輯器件自身內(nèi)部傳遞過程中產(chǎn)生的電路延遲,門延遲是固定延遲,而連線延遲則是指信號在連接兩個邏輯器件之間的連線上傳遞時帶來的時間延遲如圖3所示。
圖3 FPGA內(nèi)部邏輯器件延遲
加法器進(jìn)位延遲DPWM設(shè)計的核心思想在于,利用FPGA內(nèi)部邏輯器件——加法器,在進(jìn)位時所產(chǎn)生的門延遲,對低精度PWM信號進(jìn)行二次細(xì)分,從而得到高精度的DPWM信號。為了方便理解加法器進(jìn)位延遲原理,用6位LSB代替9位LSB輸入,加法器進(jìn)位延遲模塊的原理如圖4所示。
圖4 加法器進(jìn)位延遲原理圖
首先,用低精度PWM模塊的輸出信號作為加法器延遲線模塊的開始信號,復(fù)加到26=32個與門的輸入端,與門的另一個輸入為6位LSB經(jīng)移位寄存器譯碼后輸出的32位數(shù)字信號(其中,只有1位為1,其余全為0)。將移位寄存器的32位輸出信號按位分別和開始信號進(jìn)行邏輯與運算,32個與門的輸出分別作為32個全加器的一路輸入,全加器的另一路輸入全部置1。即只有當(dāng)與門輸出高電平時,對應(yīng)的全加器才會產(chǎn)生進(jìn)位輸出,使其進(jìn)位位Co=1。
當(dāng)某個全加器產(chǎn)生第一個進(jìn)位位時,會直接導(dǎo)致下一個全加器的輸出信號S產(chǎn)生一個進(jìn)位延遲,至此后面的每一個全加器在計算過程中都會產(chǎn)生進(jìn)位,進(jìn)而產(chǎn)生一個進(jìn)位延遲。具體從哪個全加器開始產(chǎn)生進(jìn)位輸出,是由LSB的數(shù)值決定。例如二進(jìn)制LSB是000 011,譯碼后的數(shù)字信號為(00000000000000000000000000001000),即會產(chǎn)生3個進(jìn)位延遲。圖5中,寄存器輸出0001000,當(dāng)開始信號變?yōu)楦唠娖綍r,8路全加器的輸入輸出對應(yīng)表如表1所示。
表1 8路全加器輸入輸出對應(yīng)表
在將程序下載到芯片之前,要對適配生成的結(jié)果進(jìn)行仿真測試。圖5是高精度DPWM發(fā)生器的時序仿真波形。
其中,act是系統(tǒng)的使能信號;clkin是時鐘信號,頻率為28MHz;reset是復(fù)位信號;select-value是15位占空比輸入信號,圖中select-value的值是000000111111111;pwm-out為高精度DPWM發(fā)生器輸出信號波形如表2所示。
圖5 高精度脈寬調(diào)制輸出時序仿真波形
表2 ps級脈寬調(diào)制內(nèi)部資源利用情況
根據(jù)仿真實驗結(jié)果,FPGA內(nèi)部的加法器的一個進(jìn)位延遲時間約為70ps。仿真后將此DPWM設(shè)計方法在Altera公司DE2-70型FPGA數(shù)字平臺上進(jìn)行了實驗驗證,并與傳統(tǒng)的計數(shù)比較法生成DPWM方案進(jìn)行數(shù)據(jù)分析比較如表3所示。在輸入占空比信號分別為110111011000011和110111011010010時,在數(shù)字平臺輸出端得到的波形如圖6所示。在實際電路中,因為存在一定的硬件延遲,實測一個加法器進(jìn)位延遲時間為86ps。
(a)
(b)圖6 高精度DPWM波形
表3 兩種DPWM生成方案對比
本文提出了一種高精度數(shù)字脈寬控制方案在FPGA上的實現(xiàn)方法,詳細(xì)分析了系統(tǒng)中的移位寄存器和加法器進(jìn)位延遲原理,并提出了有效的實現(xiàn)方法,建立了一套在高開關(guān)頻率條件下高精度DPWM控制信號產(chǎn)生的解決方案。最后,通過仿真和硬件實驗對所提出的方案進(jìn)行了驗證,并與傳統(tǒng)的DPWM生成方案進(jìn)行了對比。