a一级爱做片免费观看欧美,久久国产一区二区,日本一二三区免费,久草视频手机在线观看

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 基于FPGA的三相PWM發生器

基于FPGA的三相PWM發生器

作者: 時間:2017-06-05 來源:網絡 收藏

隨著現代工業的要求和微電子技術的進步,交流傳動已經迅速地從模擬控制轉向數字控制,其中PWM技術與方法是其核心內容。但數字化PWM電路一直是設計中的難點,除了集成三相的80C196MC、TMS320F240等微處理器外,均采用中小規模集成電路設計三相PWM,這是非常復雜的,往往使電路復雜、可靠性差。本文介紹了一種用單片大規模實現的三相,它具有三相脈沖中心對稱、PWM周期和死區時間可編程等特點,且性能優異、靈活性和可靠性高。

本文引用地址:http://www.j9360.com/article/201706/349201.htm

1 基本原理

  本設計的目的是產生的PWM信號波形。圖1是用實現的PWM部分設計框圖,它主要由脈寬寄存器、緩沖寄存器、周期寄存器、死區寄存器、死區發生器、數值比較器、控制邏輯等幾部分構成。脈寬寄存器,決定三相PWM信號的脈寬;緩沖寄存器,實現對脈寬數據的雙緩沖;周期寄存器,決定PWM的斬波周期;死區寄存器,決定上下橋臂的死區時間。脈寬寄存器在每個開關周期中由微處理器更新一次,其輸出數據經緩沖以后與基準計數器進行數值比較,得到三相PWM信號PA、PB、PC。再經過死區電路處理,最后產生6個中心對稱的PWM驅動信號,驅動的6個功率器件。PWM算法可采用SPWM(正弦PWM)或者SVPWM(空間矢量PWM)。

中的基準計數器,用來產生類似模擬電路中的三角波基準,是一個最小計數值為0、最大計數值為周期寄存器中保存的數值、計數方向交替變化的可逆計數器。基準計數器單元在最大計數值時產生一個同步信號SYN,當它有效時將三個脈寬寄存器的數據存入各自的緩沖寄存器,實現雙緩沖,使三個脈寬寄存器在SYN無效時可依次由微處理器更新而不影響最終的三相同步關系。同時基準計數器單元產生一個方向信號DIR,可作為微處理器的外部中斷源(邊緣觸發方式),在PWM開關周期的起始點產生中斷。

  微處理器軟件設計較簡單,在初始化階段設置好周期寄存器、死區寄存器,以后只需在PWM中斷服務程序中將計算好的三相脈寬數據分別送到各自的脈寬寄存器,然后退出中斷服務程序,等待控制器在SYN脈沖控制下將三個脈寬寄存器的數據鎖存到各自的緩沖寄存器中。在下一個PWM周期中輸出相應的脈沖,同時中斷被觸發,便開始了下一個PWM中斷服務程序。程序要求PWM中斷服務程序運行時間小于PWM周期,由此決定了PWM最高運行頻率。圖2為PWM波形圖。

2 內部設計

  以A相為例,基準計數器由加減計數器構成。加計數和減計數交替執行,計數周期由周期寄存器決定,DIR指示計數方向,同步信號SYN用來加載A相緩沖器。PA是緩沖器與基準計數器的數值比較結果,死區發生器由死區計數器和一些組合邏輯組成,使同相的上下橋臂驅動信號錯開一個死區時間,防止功率器件短路。死區時間由死區寄存器決定,最后輸出A相上下橋臂驅動信號AH和AL。

  死區計數器采用飽和計數器,飽和計數器的特性類似于電容的充放電過程,規則為:

  (1)當輸入為0時,如果計數值等于0,則計數值保持不變,否則作減1計數;

  (2)當輸入為1時,如果計數值等于max,則計數值保持不變,否則作加1計數;

  (3)當輸入為1且死區計數器數值為max時,

  AL=0,AH=1,上橋臂導通;

  (4)當輸入為0且死區計數器數值為0時,AL=1,AH=0,下橋臂導通;

  (5)當死區計數器數值在0~max之間時,AL=0,

  AH=0,上下橋臂都截止,形成死區。

其中,max等于死區寄存器的數值。

周期寄存器和脈寬寄存器為14位,死區寄存器為8位,在20MHz時鐘下,開關頻率為610Hz~10MHz, 死區時間為0~12.8μs,脈沖分辨率為50ns。

FPGA采用VHDL硬件描述語言進行設計,下面給出死區發生器的VHDL設計:

entity dead is

port(clk,px:in std_logic;

xh,xl:out std_logic;

dead_time:in std_logic_vector(7 downto 0);

q:inout std_logic_vector(7 downto 0));

end dead;

architecture dead of dead is

  begin

  process(clk)

  begin

  if (clk'EVENT and clk=′1′) then

if ((px=′1′) and (q/=dead_time)) then

q=q+1;

  elsif ((px=′0′) and (q/=″00000000″)) then

  q=q-1;

end if;

if ((px=′1′) and (q=dead_time)) then

xh=′1′;

else

xh=′0′;

end if;

if ((px=′0′) and (q=″00000000″)) then

xl=′1′;

else

xl=′0′;

end if;

end if;

end process;

end dead;

3 試驗與結論

  FPGA采用ACTEL公司反熔絲工藝的42MX16, 應用在所研制的交流主軸驅動器中,圖3是其6個基極驅動信號波形。在實際應用中,除PWM外,在同一片FPGA中還設計了光電編碼器計數單元、輸入脈沖計數器、I/O接口、保護電路、譯碼器等全部外圍數字邏輯電路,它與DSP、A/D芯片和接口電路構成非常簡潔的交流電機驅動器的控制部分。采用FGPA構成三相的方案,具有低成本、高靈活性、高集成度、高可靠性等優點。



評論


相關推薦

技術專區

關閉