佛山華芯微特科技有限公司 陳炳成
基于FPGA的直流無刷電機控制器的設計與實現
佛山華芯微特科技有限公司 陳炳成
傳統的直流無刷電機速度控制是通過MCU軟件編程實現,其響應速度不快,占用資源較多,且難以快速實現復雜算法控制。本文提出一個基于FPGA的六步直流無刷電機速度控制的硬件實現方案,該方案利用硬件對直流無刷電機進行控制,能夠快速靈活地實現直流無刷電機的啟停、加速、減速、正反轉、剎車、轉速檢測等動作,同時編寫的直流無刷電機控制器IP核能夠進行移植和復用,作為SOC芯片的功能模塊。直流無刷電機控制器采用Verilog HDL語言進行編寫,IP核在Modelsim 6.5g上通過功能仿真,并且在XUPV5-LX110T FPGA開發板上通過硬件測試,實現結果表明方案的可行性。
FPGA;直流無刷電機控制;六步;Verilog
隨著當前能源的日益短缺,節能減排已成為我國的一個基本國策,降低生活和工業能耗也成為所有人共同努力的目標。直流無刷電機因其扭矩轉速特性好、動態響應快、高效能等優點,逐漸被社會大眾所接受,并廣泛應用于日常生活用具、白色家電、汽車工業、航空、消費電子、醫學電子、工業自動化裝置和儀表等領域。
2.1 BLDCM控制器概述
設計的有霍爾六步BLDCM控制器包括三部分:光電編碼器信號處理模塊AB4F、PWM脈寬調制模塊PWM_CTRL以及直流無刷電機換相控制模塊BLDCM_CTRL。工作原理為:電機光電編碼器的輸出信號A、B和Z經過光電編碼器信號處理模塊的處理,得到電機的轉向信號DIR、AB的四倍頻脈沖以及電機的轉速;電機霍爾傳感器的輸出信號U、V、W以及得到的電機轉向值DIR輸入到電機換相控制模塊,得到電機的換相序列;電機的換相序列和PWM脈寬調制模塊輸出的與速度相關的脈沖信號進行結合處理,最終輸出控制3相功率開關的6個PWM控制信號。
2.2 光電編碼器信號處理模塊原理
模塊對光電編碼器兩相輸出A、B信號進行4倍頻及電機轉向提取,并計算倍頻脈沖值及電機實時轉速值。編碼器輸出為三相脈沖信號A、B和Z,其中A、B為相位相差90°的信號,A超前B表示電機正轉,A滯后B表示電機反轉,根據A、B間的相位關系可以判斷電機轉向。為了保證光電編碼器的測速精度,一般要求對AB信號進行4倍頻處理。AB信號4倍頻的最簡單方法是對AB信號進行取沿運算,即在一個A、B信號周期內捕捉4個沿(兩個上升沿兩個下降沿),如圖1所示,從而在一個AB信號周期內產生4個脈沖,實現AB信號的4倍頻。

圖1 AB信號及取沿運算
2.3 PWM脈寬調制模塊原理
直流無刷電機的調速需要脈寬調制電路來實現。由換相控制邏輯電路輸出的換相信號的頻率與電機的轉速有關,還與電機的磙鋼極對數有關,無論何種情況下,換相控制信號的頻率都遠遠低于PWM信號的頻率。因此,可以把PWM信號和換相控制信號通過邏輯“與”的辦法合成在一起,通過調節PWM信號的占空比,來調節電動機的定子電樞電壓,從而實現調速。圖2為PWM調制信號的產生原理圖,其中T為PWM周期,H為三角波的最大值。通過設置H1值,即可輸出與H1相關的脈沖OUT1。

圖2 PWM調制示意圖
2.4 BLDCM換相控制模塊原理
換相控制模塊是控制器的核心模塊。直流無刷電機的轉動是根據霍爾位置傳感器采集輸出的U、V和W三相轉子位置信號,導通三相全橋逆變電路相應功率晶體管,使電流依次流經電機線圈繞組產生順時針(逆時針)旋轉磁場,并與轉子磁鐵發生電磁效應,驅動電機正轉/反轉實現,導通信號是由換相控制模塊處理輸出。圖3為霍爾位置傳感器輸出的三相位置信號U、U和W。U、V和W編碼可產生8種輸出狀態組合,加上正反向各一組,一共有16種輸出狀態組合。由于霍爾位置傳感器一個周期(360°)輸出6個代碼組合(分別為101、100、110、010、011、001),因此有4組代碼(包括1000,0000,1111,0111)為無效代碼,輸出均為111000,上下臂功率晶體管沒有串聯導通。其余情況均有一組管串聯導通。

圖3 霍爾位置傳感器輸出的三相位置信號U、V、W
3.1 光電編碼器信號處理模塊實現
光電編碼器信號處理模塊具體實現:在時鐘的上升沿對AB信號狀態進行檢測,實現AB信號4倍頻及轉向信號提取。假設AB信號在當前時鐘上升沿到來前狀態為prestate,當前狀態為state,則由AB信號組成的8種狀態轉換(prestate->state),包括00->10、10->11、11->01、01->00、00->01、01->11、11->10及10->00,可以判斷當前電機的轉向,并在每個狀態轉換時刻(即A、B信號的每個沿)產生cp四倍頻脈沖。

圖4 光電編碼器信號處理模塊仿真波形

圖5 BLDCM換相驅動輸出功能仿真波形
3.2 PWM脈寬調制模塊實現
PWM調制采用加減計數比較法實現。加減循環計數器從零開始加1計數直到最大值H,然后再減1計數直到零,循環產生周期為T的三角波。設定一個數值H1,與循環計數器的計數值比較。當循環計數器的計數值大于H1時輸出低電平,計數值小于H1時輸出高電平,反復循環,模塊輸出與H1相關的PWM調制信號。
3.3 BLDCM換相控制模塊實現
三相轉子位置信號U、V和W編碼可產生8種輸出狀態組合,加上正反向各一組,一共有16種輸出狀態組合,組合可通過設計組合譯碼器實現。
六步BLDCM控制器IP核在Modelsim 6.5g上通過功能仿真,以下為功能仿真波形圖。
4.1 光電編碼器信號處理模塊功能仿真
圖4為光電編碼器信號處理模塊仿真波形。
4.2 BLDCM換相控制模塊功能仿真
圖5為BLDCM換相驅動輸出功能仿真波形。
目前六步BLDCM控制器IP核已經在XUPV5-LX110T FPGA開發板上通過硬件測試,并且將作為功能模塊應用于SOC芯片設計。實踐證明,基于FPGA的BLDCM控制器能夠克服MCU軟件編程響應速度不快,占用資源較多,且難以快速實現復雜算法控制的缺點,可應用性強。
[1]徐德鴻.電子電子系統建模與控制[M].北京:機械工業出版社,2005.
[2]周淵深.交直流調速系統與MATLAB仿真[M].北京:中國電力出版社,2007.
[3]洪乃剛.電子電子、電機控制系統的建模與仿真[M].北京:機械工業出版社,2010.
[4]夏宇聞.Verilog數字系統設計教程[M].北京:北京航空航天大學出版社,2003.
[5]吳繼華,王誠.設計與驗證Verilog HDL[M].北京:人民郵電出版社,2006.
陳炳成(1983—),碩士,現供職于佛山華芯微特科技有限公司,主要研究方向:嵌入式系統新技術及SOC芯片設計技術。