<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于FPGA的自治型SPWM波形發(fā)生器的設(shè)計(jì)

          基于FPGA的自治型SPWM波形發(fā)生器的設(shè)計(jì)

          ——
          作者:高淼 同向前 袁薇 時(shí)間:2005-10-13 來(lái)源:電子產(chǎn)品世界 收藏

              正弦脈寬調(diào)制()技術(shù)在以電壓源逆變電路為核心的電力電子裝置中有著廣泛的應(yīng)用,如何產(chǎn)生脈沖序列及其實(shí)現(xiàn)手段是PWM技術(shù)的關(guān)鍵。利用模擬比較法,對(duì)三角載波與正弦調(diào)制波進(jìn)行比較,即可產(chǎn)生脈沖;利用數(shù)字算法和定時(shí)邏輯,也可產(chǎn)生SPWM脈沖[5]。目前已有多種微處理器芯片(如80C196MC、TMS320F240等)本身集成有數(shù)字化PWM發(fā)生電路[3]。模擬方法簡(jiǎn)單直觀,但與數(shù)字控制器接口不便,難以滿(mǎn)足復(fù)雜要求;數(shù)字方法結(jié)構(gòu)靈活,尤其是微處理器內(nèi)置了PWM發(fā)生器的,使用更加方便。通常狀況下,微處理器通過(guò)定時(shí)中斷服務(wù)程序產(chǎn)生SPWM脈沖,在每個(gè)載波周期必須進(jìn)行中斷處理,對(duì)處理速度要求較高,從而也限制了載波頻率進(jìn)一步的提高,同時(shí)微處理器的處理任務(wù)也更加繁重。文獻(xiàn)[1]指出,微處理器中不確定的中斷響應(yīng)會(huì)導(dǎo)致PWM脈沖的相位抖動(dòng)。

              FPGA以其可靠性高、功耗低、保密性強(qiáng)等特點(diǎn),在電子產(chǎn)品設(shè)計(jì)中得到廣泛的應(yīng)用。文獻(xiàn)[1]~[5]也論述了FPGA或CPLD在PWM脈沖產(chǎn)生時(shí)刻的計(jì)算仍由微處理器來(lái)完成,實(shí)際上微處理器的任務(wù)仍然繁重。作者針對(duì)靜止補(bǔ)償器(STATCOM)對(duì)SPWM脈沖發(fā)生器的特定要求,采用Altera公司的FLEX10K10芯片開(kāi)發(fā)了一種專(zhuān)用SPWM波形發(fā)生器,微處理器只需在必要時(shí)改變逆變器PWM調(diào)制深度 即可,其余工作全由FPGA完成,從而大大減輕了CPU的負(fù)擔(dān)。

          SPWM發(fā)生原理

              針對(duì)靜止補(bǔ)償器的電路結(jié)構(gòu),要求SPWM發(fā)生器可以發(fā)出三相六路PWM脈沖信號(hào),脈沖寬度應(yīng)根據(jù)微處理器輸出的調(diào)制深度來(lái)調(diào)節(jié)。SPWM脈沖產(chǎn)生方法采用三角載波與正弦調(diào)制波比較的傳統(tǒng)方法,但是三角載波、正弦調(diào)制波和比較邏輯等均采用基于FPGA的數(shù)字化方法來(lái)實(shí)現(xiàn)。該SPWM發(fā)生器的內(nèi)部邏輯結(jié)構(gòu)??偩€接口邏輯單元首先接收來(lái)自微處理器的調(diào)制深度信號(hào)并鎖存,正弦調(diào)制波產(chǎn)生電路在同步信號(hào)作用下從正弦函數(shù)表讀取標(biāo)準(zhǔn)正弦信號(hào)幅值,與調(diào)制深度 相乘,得出正弦調(diào)制信號(hào)幅值。三角載波發(fā)生電路在同步信號(hào)作用下,通過(guò)可逆計(jì)數(shù)器,發(fā)出三角載波幅值。正弦調(diào)制波幅值與三角載波幅值進(jìn)行比較,就可以產(chǎn)生出SPWM脈沖信號(hào)。

          邏輯設(shè)計(jì)

              SPWM脈沖發(fā)生器由微處理器總線接口電路、三角載波產(chǎn)生電路、正弦調(diào)制波產(chǎn)生電路、正弦函數(shù)表和比較控制電路等邏輯功能模塊組成。

          總線接口單元

              總線接口電路如圖2所示的微處理器接口電路部分。其中D0~D7為數(shù)據(jù)總線,芯片選擇信號(hào)為CS,寫(xiě)信號(hào)為WR,總線地址選擇信號(hào)為A0~A2。微處理器接口電路主要用于FPGA芯片接收來(lái)自微處理器的調(diào)制深度信號(hào) 。

          三角載波發(fā)生器

              利用可逆計(jì)數(shù)器對(duì)系統(tǒng)時(shí)鐘進(jìn)行計(jì)數(shù)。計(jì)數(shù)器先執(zhí)行加法,從0計(jì)數(shù)到255,再執(zhí)行減法計(jì)數(shù)從255到0,從而實(shí)現(xiàn)三角載波。三角載波的峰峰值為255。

          正弦調(diào)制波發(fā)生器

              FPGA芯片只能綜合一些簡(jiǎn)單的加、減、乘、除等算術(shù)邏輯,要其實(shí)現(xiàn)正弦函數(shù)的計(jì)算非常不經(jīng)濟(jì),正弦調(diào)制波的產(chǎn)生通過(guò)查正弦函數(shù)表來(lái)完成。在FPGA芯片內(nèi)部開(kāi)辟一塊ROM區(qū)域,將離散時(shí)間正弦波幅值存入其中。在需要時(shí),按照相位與地址一一對(duì)應(yīng)的關(guān)系從表中依次讀出即可。

              由于FPGA芯片的硬件資源有限,如何有效的利用資源成為非常關(guān)鍵的一點(diǎn)。考慮到正弦的周期性與對(duì)稱(chēng)性,因此在ROM表中只需存正弦函數(shù)frac{ }{2}周期的波形數(shù)據(jù)即可。在本設(shè)計(jì)中,一個(gè)正弦波周期內(nèi)共采樣2048個(gè)點(diǎn),相位分辯率為0.176 ,而實(shí)際在ROM表中只需存512個(gè)采樣點(diǎn),這樣大大減少了芯片硬件資源的消耗。

          正弦調(diào)制波幅值的調(diào)節(jié)

              PWM脈沖發(fā)生器必須根據(jù)正弦調(diào)制波幅值的大小來(lái)調(diào)整PWM脈沖的寬度。在本設(shè)計(jì)中,由于三角載波峰值固定,正弦調(diào)制波幅值僅由調(diào)制深度決定。FPGA芯片通過(guò)總線接口從微處理器接收到調(diào)制深度 信號(hào),再利用乘法器對(duì)從正弦函數(shù)表中取出的正弦幅值進(jìn)行調(diào)制深度加權(quán)調(diào)整。設(shè)調(diào)制深度為,當(dāng)前時(shí)刻正弦幅值為Sin_Data, 利用下式得出正弦調(diào)制波幅值Data為:
           
              Data=( *Sin_Data)/255 取值范圍[0~1]

              本設(shè)計(jì)采用雙極性調(diào)制方式,而三角載波的取值范圍為0~255,其中位線值為127,故實(shí)際產(chǎn)生的正弦調(diào)制波幅值按照下列公式進(jìn)行調(diào)整,其中Adjust為調(diào)整后的正弦調(diào)制波數(shù)據(jù)。

              Adjust =127+Data { 2 k < Data<(2k+1) } k=0.1.2......N
              Adjust =127-Data {(2k+1) <Data<(2k+2) } k=0.1.2......N

          三相正弦信號(hào)的產(chǎn)生

              針對(duì)靜止補(bǔ)償器主電路,需要產(chǎn)生出三個(gè)相位彼此互差120 的SPWM脈沖信號(hào)。而通過(guò)一個(gè)正弦函數(shù)表來(lái)發(fā)出三相正弦信號(hào),不僅需要考慮三個(gè)正弦信號(hào)的起始相位,而且需要三個(gè)可逆計(jì)數(shù)器分別來(lái)控制查找正弦函數(shù)表。例如,在本設(shè)計(jì)中產(chǎn)生三個(gè)初相位為零,相位互差120 的三相正弦信號(hào)。如圖3所示,A相首先從正弦函數(shù)表的地址0 開(kāi)始累加讀起,當(dāng)讀到地址90 處,再?gòu)牡刂?0 處累減讀到地址0 處,這樣在A相可逆計(jì)數(shù)器的控制下,就可以得到周期為的單向半波正弦信號(hào);C相首先從正弦函數(shù)表的地址60 開(kāi)始遞減讀起,當(dāng)讀到地址0 處,再?gòu)牡刂? 處遞增讀到地址90 處,然后從地址90 處遞減讀到地址0 處,這樣在C相可逆計(jì)數(shù)器的控制下,就可以得到周期為、初相位滯后A相60 的單向半波正弦信號(hào);同理,B相從正弦函數(shù)表的地址60 開(kāi)始累加讀起,在B相可逆計(jì)數(shù)器的控制下,就可以得到周期為 、初相位滯后C相60 的單向半波正弦信號(hào)。這樣,通過(guò)一個(gè)frac{ }{2}周期的正弦函數(shù)表,就可以發(fā)出三個(gè)相位互差60 、周期為 的單向半波正弦信號(hào)。然后,查出的數(shù)據(jù)經(jīng)過(guò)正弦調(diào)制波幅值調(diào)節(jié),使輸出的三個(gè)單向半波正弦幅值滿(mǎn)足設(shè)計(jì)的幅值調(diào)節(jié)要求后,再與三角載波進(jìn)行比較,就可以得出三個(gè)相位互差120 的SPWM脈沖信號(hào)。
           
              由于三相正弦信號(hào)的產(chǎn)生在整個(gè)系統(tǒng)設(shè)計(jì)中非常關(guān)鍵,下面給出VHDL設(shè)計(jì)的主要程序。

              process(clk)
              variable m :integer range 511 downto 0
              begin
              if clk'event and clk='1'then ;產(chǎn)生A相地址
              if SAdir='1' then ;SAdir為A相可逆計(jì)數(shù)器的標(biāo)志位,當(dāng)為"1"計(jì)數(shù)器遞增
              m:=1+m
              else m:=m-1; 當(dāng)SAdir="0",計(jì)數(shù)器遞減
              end if
              A_Address<=m; A_Address為A相對(duì)應(yīng)查找內(nèi)部ROM表的地址值
              end if
              end process
              process(clk)
              variable m, n :integer range 511 downto 0
              begin
              if clk'event and clk='1'then; 產(chǎn)生C相地址
              if SCdir='0' then
              m:=m+1;
              else n:=n-1;m:=341+n; C相首先從60 處開(kāi)始遞減產(chǎn)生查表地址
              end if;
              C_ Address<=m;
              end process;
              process(clk)
              variable m, n :integer range 511 downto 0 ;
              begin
              if clk'event and clk='1'then ;產(chǎn)生B相地址
              if SBCdir='1' then
              n:=n+1;m:=341+n;保證B相首先從60 處開(kāi)始遞增產(chǎn)生查表地址
              else m:=m-1;
              end if;
              B_ Address <=m;
              end if;
              end process;
              process(Div_clk,AA,BB,CC,input)
              begin
              if Div_clk'event and Div_clk='1' then ;Div_clk為clk的分頻時(shí)鐘
              if AA='1' then ;AA為A相查表控制位,當(dāng)為"1" 時(shí),從ROM中取正弦值,
              q<= A_ Address ; q為ROM表對(duì)應(yīng)正弦值的地址入口
              A_Data <= *ROM_Data; 為輸入的調(diào)制深度,ROM_Data為ROM正弦表的正弦值
              PA<=A_Data(14 downto 8); 除法運(yùn)算,舍取最低8位實(shí)現(xiàn)
              elsif BB='1' then;AA為A相查表控制位,當(dāng)為"1" 時(shí),從ROM中取正弦值,
              q<= B_ Address; PB<=B_Data(14 downto 8); B_Data <= *ROM_Data;
              elsif CC='1' then
              q<= C_ Address ; PC<=C_Data(14 downto 8); C_Data <= *ROM_Data;
              end if; end if;
              end process;
              process(clk,flagA)
              begin
              if clk'event and clk='1' then
              if flagA='1' then ;flagA為 A相同步信號(hào)控制位,flagA='1' 表示當(dāng)前A相正弦--波處于正半周期
              A_Adjust <=PA+"1111111" ; 正半周期正弦調(diào)制波幅值調(diào)整
              elsif flagA='0' then ;flagA='1' 表示當(dāng)前A相正弦波處于處于負(fù)半周期
              A_Adjust <="1111111"- PA; 負(fù)半周期調(diào)幅
              end if;
              end if;
              End process;

          系統(tǒng)邏輯與時(shí)序功能仿真

              利用MAX+PlusII的波形仿真功能可以得到芯片輸入輸出仿真圖。Atlera公司的這種軟件非常方便的提供了驗(yàn)證方式。不但提供邏輯輸出的驗(yàn)證,而且提供了時(shí)序的驗(yàn)證,包括芯片內(nèi)部的各點(diǎn)之間的延時(shí),以及競(jìng)爭(zhēng)冒險(xiǎn)現(xiàn)象的出現(xiàn)。

              輸入調(diào)制頻率為50Hz、調(diào)制深度為0.75時(shí)的三相六路SPWM波形,三相彼此相位互差120 。其中AH與AL為A相沒(méi)有加死區(qū)的上橋信號(hào)與下橋信號(hào),后面以此類(lèi)推。flagA、flagB和flagC為三相正弦同步信號(hào),以保證三相六路數(shù)據(jù)嚴(yán)格按相互滯后120 的相位輸出。

              輸入調(diào)制頻率為50Hz、調(diào)制深度為0.25時(shí)的三相六路SPWM波形。可以看到,輸出的六路PWM信號(hào)脈沖寬度有了明顯的改變。

          結(jié)束語(yǔ)

              本文提出了一種利用FPGA產(chǎn)生PWM波的方案,并給出了具體的實(shí)現(xiàn)方法以及相應(yīng)的PWM波發(fā)生框圖。該電路通過(guò)系統(tǒng)可編程芯片實(shí)現(xiàn),用硬件描述語(yǔ)言以及圖形輸入完成了整個(gè)功能模塊的全部設(shè)計(jì)工作,使得觸發(fā)電路更加可靠和穩(wěn)定,為高載波SPWM波形生成提供了一條快速實(shí)現(xiàn)的途徑。如果改變輸入時(shí)鐘的頻率以及相應(yīng)的載波頻率,以此電路為核心,配合相應(yīng)的外部保護(hù)電路與其它邏輯控制電路,完全可以應(yīng)用于逆變系統(tǒng)中。


          參考文獻(xiàn):

          [1]許強(qiáng),等.基于FPGA的三相PWM發(fā)生器[J].電子技術(shù)應(yīng)用,2001,27(1):73~74
          [2]田杰,等.基于FPGA的靜止補(bǔ)償器PWM脈沖發(fā)生器設(shè)計(jì)[J].電力系統(tǒng)自動(dòng)化,2000,24(23):47~49
          [3]Zbigniew Bielewicz,Leszek Debowski.A DSP and FPGA Based Integrated Controller Development Solutions for High Performance Electric Drives.Proceedings of the IEEE International Symposium on Industrial Electronics,Warsaw,Poland,1996,2:679~684
          [4]Shih-Liang Jung,Meng-Yueh Chang.Design and Implementation of a FPGA-Based Control IC for AC-Voltage Regulation.IEEE Transactions on Power Electronics,1999,14(3):522~532
          [5]戴本祁.三相整流器移相觸發(fā)電路的EDA設(shè)計(jì)[J].電力電子技術(shù),2000,34(3):53~54
          [6]侯波亨,等. VHDL硬件描述語(yǔ)言與數(shù)字邏輯電路設(shè)計(jì)[M]. 西安電子科技大學(xué)出版社. 1999



          關(guān)鍵詞: SPWM 嵌入式

          評(píng)論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();