胡亞琦, 胡翔宇, 牛 寶
(1. 蘭州交通大學(xué) 電子與信息工程學(xué)院, 甘肅 蘭州 730070; 2. 廈門大學(xué) 數(shù)學(xué)科學(xué)學(xué)院, 福建 廈門 361005)
脈沖寬度調(diào)制(Pulse Width Modulation,PWM,簡稱脈寬調(diào)制)是利用微處理器的數(shù)字書出來對模擬電路進行控制的一種非常有效的技術(shù)[1]。用現(xiàn)場可編程門陣列(Field Programmable Gate Array, FPGA)產(chǎn)生PWM波形,只需FPGA內(nèi)部資源就可實現(xiàn)用數(shù)字比較器代替模擬比較器,與模擬控制相比,省去了外接D/A轉(zhuǎn)換器和模擬比較器。FPGA外部連線很少,電路更加簡單,便于控制。PWM是從處理器到被控系統(tǒng)信號都是數(shù)字形式的,無需進行數(shù)模轉(zhuǎn)換,讓信號保持為數(shù)字形式可將噪聲影響降到最小[2]。又由于PWM采用了橋式驅(qū)動電路,開關(guān)管始終處于截止和飽和兩種狀態(tài),因此具有功耗小、效率高的優(yōu)點[3]。
用FPGA產(chǎn)生PWM波形,只需要FPGA內(nèi)部資源就可以實現(xiàn),如數(shù)字比較器、鋸齒波發(fā)生器等均為FPGA內(nèi)部資源,我們只要直接調(diào)用就可以[4]。外部端口U_D、EN1、Z/F、START接在鍵盤電路上;CLK2和CLK0接在外部時鐘電路上,所用到的時鐘頻率為100和50 MHz,如圖 1 所示。
以設(shè)定值計數(shù)器設(shè)置PWM的占空比。當U/D=1時,輸入CLK2,使設(shè)定值計數(shù)器的輸出值增加, PWM的占空比增加,電機轉(zhuǎn)速加快;當U/D=0時,輸入CLK2,使設(shè)定值計數(shù)器的輸出值減小,PWM的占空比減小,電機轉(zhuǎn)速變慢[5]。在CLK0的作用下,鋸齒波計數(shù)器輸出周期性線性增加的鋸齒波。當計數(shù)值小于設(shè)定值時,數(shù)字比較器輸出高電平;當計數(shù)值大于設(shè)定值時,數(shù)字比較器輸出低電平,由此產(chǎn)生周期性的PWM波形。
旋轉(zhuǎn)方向控制電路控制直流電動機轉(zhuǎn)向和啟/停,該電路由兩個2選1的多路選擇器組成,Z/F鍵控制選擇PWM波形是從正端Z進入H橋,還是從負端F進入H橋,以控制電機的旋轉(zhuǎn)方向。當Z/F=1時,PWM輸出波形從正端Z進入H橋,電機正轉(zhuǎn);當 Z/F =0時,PWM輸出波形從負端F進入H橋,電機反轉(zhuǎn)[6]。
Start鍵通過“與”門控制PWM輸出,實現(xiàn)對電機的工作停止/控制。當START=1時,與門打開,允許電機工作[7];當START=0時,與門關(guān)閉,電機停止轉(zhuǎn)動。H橋電路由大功率晶體管組成,PWM輸出波形通過方向控制電路送到 H 橋, 經(jīng)功率放大以后對直流電機實現(xiàn)四象限運行,并由EN1信號控制是否允許變速。
PWM控制電路由細分計數(shù)器和脈寬計數(shù)器所組成,CNT5是一個5位二進制計數(shù)器,作脈寬計數(shù)器[8]。脈寬計數(shù)器在CLK5的激勵下輸出從0開始的逐漸增大的鋸齒波。兩路數(shù)值同時加在數(shù)字比較器上,當脈寬計數(shù)器輸出值小于DECD輸出的規(guī)定值時,比較器輸出低電平;當脈寬計數(shù)器輸出值大于DECD輸出的規(guī)定值時,比較器輸出高電平。改變DECD的輸出值,就等于改變PWM輸出信號的占空比[9]。
(1) 旋轉(zhuǎn)控制模塊的VHDL程序。
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY CNT5 IS
PORT(CLK:IN STD_LOGIC;
AA:OUT STD_LOGIC_VECTOR(4 DOWNTO 1));
END CNT5;
ARCHITECTURE behav OF CNT5 IS
SIGNAL CQI:STD_LOGIC_VECTOR(4 DOWNTO 1);
BEGIN
PROCESS(CLK)
BEGIN
IF CLK'EVENT AND CLK='1'then CQI<=CQI+1;END IF;
END PROCESS;
AA<=CQI(4 DOWNTO 1);
END behav;
圖2為旋轉(zhuǎn)控制模塊的實體電路。
圖2 旋轉(zhuǎn)控制模塊的實體電路
(2) 仿真波形。如圖3所示。
圖3 旋轉(zhuǎn)控制模塊仿真波形
如圖4所示。
(1) 8路比較器程序
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY COMPARATOT8 IS
PORT(a,b:IN STD_LOGIC_VECTOR(7 DOWNTO 0);
y:OUT STD_LOGIC);
END ENTITY;
ARCHITECTURE FUNC OF COMPARATOT8 IS
BEGIN
PROCESS (a,b)
BEGIN
IF(a>b)THEN y<='1';
ELSE y<='0';
END IF;
END PROCESS;
END FUNC;
(2) 仿真波形。如圖5所示。
圖5 比較器仿真波形
四進制計數(shù)器如圖6所示。
Clk為輸入信號,可以輸入一個時鐘信號,AA[4..1]為輸出信號,給定輸入信號后可以輸出一個四位信號[10]。
(1) 四進制計數(shù)器。
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY CNT5 IS
PORT(CLK:IN STD_LOGIC;
AA:OUT STD_LOGIC_VECTOR(4 DOWNTO 1));
END CNT5;
ARCHITECTURE behav OF CNT5 IS
SIGNAL CQI:STD_LOGIC_VECTOR(4 DOWNTO 1);
BEGIN
PROCESS(CLK)
BEGIN
IF CLK'EVENT AND CLK='1'then CQI<=CQI+1;END IF;
END PROCESS;
AA<=CQI(4 DOWNTO 1);
END BEHAV;
利用計數(shù)器和旋轉(zhuǎn)控制模塊產(chǎn)生的信號在比較器的比較作用下產(chǎn)生輸入信號PWM波形,用2個選擇器組成Z/F橋選擇電路實現(xiàn)對電機旋轉(zhuǎn)方向的控制,當Z_F選擇開關(guān)輸入信號為高電平時,Z橋輸出PWM波形信號,當Z_F選擇開關(guān)輸入信號為低電平時,H橋輸出PWM波形信號[11],見圖7。
(1) 當Z/F端輸入低電平時,F(xiàn)端輸出PWM波形,電機正轉(zhuǎn)[12],見圖8。
圖8 輸入低電平
(2) 當Z/F輸入高電平時,Z端輸出PWM波形,電機反轉(zhuǎn)。
通過圖3~9的仿真波形分析可知,本設(shè)計中的各項功能能夠很好的實現(xiàn)。在時鐘脈沖的作用下,計數(shù)器能按照事先設(shè)定好的規(guī)則進行計數(shù)。CNT5是四進制計數(shù)器,改變設(shè)定值的大小就可以改變PWM波形的大小,也就是完成了電機的調(diào)速[13]。Z_F是電機的方向按鍵,選擇PWM波形的進入方向,當其為1時,電機正轉(zhuǎn);反之,反轉(zhuǎn)。至于電機的控制,是在它的輸入端加上兩個與門來控制電機的啟動與停止。其具體的操作如下:
圖9 輸入高電平后的仿真結(jié)果
當按下Z_F鍵時,電機正轉(zhuǎn)(見圖7),松開鍵時,電機反轉(zhuǎn)(見圖8)。通過按鍵D_STP的閉合與斷開可以改變DECD的值(見圖3)從而改變直流電機的PWM占空比,達到改變直流電機速度的目的[14]。
本設(shè)計采用VHDL(Very-High-Speed Integrated Circuit Itard ware Description Language)設(shè)計FPGA 脈寬調(diào)制控制方案, 計算機仿真和對直流電機控制的結(jié)果表明,該電路能有效地產(chǎn)生PWM 控制信號控制電機的轉(zhuǎn)速, 控制精度由FPGA 中的數(shù)字比較器決定[15]。在本設(shè)計中,采用的數(shù)字比較器為4 b, 若增加數(shù)字比較器的位數(shù), 就可以提高電機轉(zhuǎn)速的控制精度。
電路中省去了D/A 轉(zhuǎn)換器使電路變得更加簡潔, 同時也降低控制器的成本。FPGA 內(nèi)部采用狀態(tài)機結(jié)構(gòu), 遇到干擾時, 能很快從異常狀態(tài)轉(zhuǎn)入正常工作狀態(tài), 保證了控制系統(tǒng)具有高的可靠性。從以上的仿真中可以看出,基于FPGA的直流電機的控制能夠達到很好的預(yù)期效果。
FPGA中的數(shù)字PWM控制與一般模擬PWM控制不同,用FPGA產(chǎn)生PWM波形,只需FPGA內(nèi)部資源就可實現(xiàn)。設(shè)計直流電機PWM驅(qū)動電路,用FPGA產(chǎn)生波形,用VHDL語言編寫程序,實現(xiàn)了對直流電機的轉(zhuǎn)向的控制。設(shè)計中用一旋轉(zhuǎn)控制模塊與一四進制計數(shù)器在比較器作用下產(chǎn)生PWM波形,用2個選擇器組成H橋電路,在Z/F開關(guān)的控制作用下,通過H橋?qū)崿F(xiàn)了對電機的轉(zhuǎn)向的控制。
[1] 潘 松,黃繼業(yè).EDA技術(shù)實用教程[M].北京:北京科學(xué)出版社,2002:145-146.
[2] 杜 玉.基于FPGA直流電機的伺服系統(tǒng)的設(shè)計[D].呼和浩特:內(nèi)蒙古大學(xué),2005.
[3] 崔建明.電工電子EDA技術(shù)[M].北京:高等教育出版社,2006:23-26.
[4] 徐 進.基于FGPA的PWM機床電力拖動系統(tǒng)的研究[J].北京理工大學(xué)學(xué)報,2004(3):34-37.
XU Jin.Study on electric traction system PWM machine tool based on FPGA[J].Journal of Beijing Institute of Technology,2004(3):34-37.
[5] 甘 歷.VHDL應(yīng)用與開發(fā)實踐[M].北京:北京科學(xué)出版社, 2003:93-97.
[6] 張淑驊.基于FPGA的交通燈的VHDL設(shè)計[J].電力與能源,2007(19):478-479.
ZHANG Shu-hua.Traffic lights of VHDL design based on FPGA[J].Electric power and energy,2007(19):478-479.
[7] 褚振勇,翁木云.FPGA設(shè)計及應(yīng)用[M].西安:西安電子科技大學(xué)出版社,2002:122-140.
[8] 冒建亮,葉 樺,張舒哲.基于FPGA的變頻控制系統(tǒng)的實現(xiàn)[Z].南京:東南大學(xué),2012(A1):25-30.
MAO Jian-liang,YE Hua,ZHANG Shu-zhe. Of the frequency conversion control system based on FPGA implementation[Z].Nanjing:Southeast University,2012(A1):25-30.
[9] 萬 林,唐厚君,賀 超,等.基于ARM與FPGA的嵌入式開放性運動控制器的設(shè)計與開發(fā)[J].上海交通大學(xué)學(xué)報,2011(3):59-61.
WAN Lin,TANG hou-jun,HE Chao,etal.Based On ARM and FPGA embedded open movement controller design and development[J].Shanghai:Shanghai Jiaotong University,2011(3):59-61.
[10] GAO J.Multiphase fuzzy control under hybrid traffic flow of single intersection[C]∥Intelligent Transportation Systems,Washington:2003:1329-1333.
[11] HAN Xi, LI Zhe-ying, WANG Shu-ying.Stepper Motor Subdivided Control System Based on SOPC Technology[J]. Computational Intelligence and Design, 2009(1):497-500.
[12] WANG Jian-zhuang,CHEN You-ping,XIE Jing-ming. System structure for FPGA-based SOPC design using hard tasks[C]∥Industrial Informatics,2008. INDIN 2008. 6th IEEE International Conference on,2008: 1154-1159.
[13] 李濤濤,何漢武,胡兆勇,等.模擬PLC仿真系統(tǒng)中兼容PMW文件的研究和設(shè)計[J].制造業(yè)自動化,2013(8):102-104.
LI Tao-tao,HE Han-wu,HU Zhao-yong,etal.Simulated PLC simulation system research and design of the compatible PMW file in[J].Journal of Manufacturing Automation,2013(8):102-104.
[14] 文 暢.基于FPGA/CPLD和VHDL語言的交通燈控制系統(tǒng)設(shè)計[J].電腦知識與技術(shù),2007(3):1605-1618.
WEN Chang.Based on FPGA/CPLD and VHDL language of traffic light control system design[J].Computer Knowledge and Technology,2007(3):1605-1618.
[15] 張紅潤.FPGA/CPLD應(yīng)用設(shè)計[M].北京:北京航空航天大學(xué)出版社,2009:158-170.