摘 要: 介紹了基于FPGA和MC33033的自動門" title="自動門">自動門控制系統(tǒng)的設(shè)計。系統(tǒng)包括三大部分:邏輯運算電路、電機控制" title="電機控制">電機控制電路和系統(tǒng)主控制器,能夠?qū)崿F(xiàn)自動門的遠距離遙控、遇阻暫停、正反運行分別調(diào)速等功能。該系統(tǒng)的特點是簡單、可靠、開發(fā)成本低。文中給出了實驗結(jié)果。
關(guān)鍵詞: 自動門 VHDL FPGA 電機控制
隨著經(jīng)濟的發(fā)展和人們生活水平的提高,自動門的方便、安全、節(jié)能以及低噪音等特點使其應(yīng)用越來越廣泛,現(xiàn)為許多賓館、超市、百貨大樓等現(xiàn)代化建筑所必備。經(jīng)過對自動門市場和用戶的調(diào)查分析后發(fā)現(xiàn),歐美國家的產(chǎn)品功能繁多,性能可靠,但這些產(chǎn)品的價格普遍偏高,操作復雜,而國內(nèi)生產(chǎn)的產(chǎn)品往往性能不穩(wěn)定,故障率高,需要頻繁的維護,增加了運營成本[1~2]。
因此,設(shè)計一操作方便、運行穩(wěn)定可靠、成本低的自動門的控制系統(tǒng)具有一定的市場。本文設(shè)計的自動門控制系統(tǒng)為了達到上述目的,采用了如下設(shè)計方案:采用按鈕、無線遙控、紅外感應(yīng)三種驅(qū)動方式,既可自動控制又可人工控制,操作簡單并且適用范圍廣;采用EDA技術(shù)設(shè)計主控制器的狀態(tài)轉(zhuǎn)換,可軟件診錯;采用自動復位以及電機專用控制芯片來保證系統(tǒng)的可靠運行。由于設(shè)計采用了EDA技術(shù)的VHDL設(shè)計而非傳統(tǒng)的單片機設(shè)計,是一種自上向下的設(shè)計方法,使得系統(tǒng)的開發(fā)周期短、成本降低。下文將詳細介紹系統(tǒng)各個部分的設(shè)計[3]。
1 系統(tǒng)分析
系統(tǒng)總框圖如圖1所示,通過按鈕、無線遙控、紅外感應(yīng)三種驅(qū)動方式實現(xiàn)自動門的開、關(guān)、停,且按鈕優(yōu)先級別最高。紅外感應(yīng)使用hp2100cdc型全自動人體紅外感應(yīng)開關(guān),有人來時自動門開。還可以通過人工控制方式使用按鍵與遙控器來控制自動門的開、關(guān)、停。無線遙控器選用CY29-5A 型器件,其有效控制范圍在150米以內(nèi)。控制信號" title="控制信號">控制信號邏輯運算電路用來處理三種控制方式的優(yōu)先級別,以防系統(tǒng)混亂;自動門主控制器電路用一片F(xiàn)PGA,根據(jù)驅(qū)動信號以及位置和遇阻外部信號來完成對門運行狀態(tài)的轉(zhuǎn)換控制;電機控制電路則根據(jù)主控制器發(fā)出的正反轉(zhuǎn)以及停控制信號來控制電機的開、關(guān)、停以及實現(xiàn)自動門正反運行的分別調(diào)速。
設(shè)計重點為控制信號處理電路、電機控制電路、自動門主控制器電路。
2 邏輯運算電路設(shè)計
由于本自動門系統(tǒng)的驅(qū)動信號較多,為了避免這些信號之間在某些情況下出現(xiàn)矛盾,在三種驅(qū)動方式同時發(fā)出信號時,需要設(shè)定其優(yōu)先級別。控制信號邏輯運算電路主要完成將按鈕、無線遙控和紅外感應(yīng)三種驅(qū)動信號在處理好優(yōu)先級條件下轉(zhuǎn)換成三個控制信號(開、關(guān)、停)。其優(yōu)先級由高到低可以按照實際情況設(shè)定為:按扭、無線遙控、紅外感應(yīng)。列出其真值表,即可求得開、關(guān)、停的邏輯關(guān)系,或直接在FPGA中編程實現(xiàn)。
3 電機控制電路設(shè)計
為了保證電機的控制簡便可靠,設(shè)計中使用了電機專用控制芯片MC33033。該芯片是MOTOROLA公司生產(chǎn)的一種高性能直流電機控制器,可對直流電機速度進行開環(huán)和閉環(huán)控制,亦可分別對電機正反轉(zhuǎn)進行調(diào)速。MC33033是第二代無刷直流電機控制器的典型芯片,該芯片內(nèi)含轉(zhuǎn)子位置譯碼器,并可為傳感器工作提供帶有溫度補償?shù)膮⒖蓟鶞孰妷骸C33033的另一個特點是內(nèi)含三個集電極開路的頂部驅(qū)動器和為MOSFET驅(qū)動電源而設(shè)計的三個高電流推拉式底部驅(qū)動器,并具有電機過流檢測和保護功能。此外,MC33033還具有如下特點:
(1) 具有10~30V的寬電源電壓范圍;
(2) 具有欠壓鎖定功能;
(3) 可提供6.25V帶有溫度補償?shù)幕鶞孰妷涸矗?BR> (4) 帶有為閉環(huán)控制提供的誤差放大器;
(5) 與MC33033組合可控制三相橋式高電流驅(qū)動器;
(6) 具有周期—周期電流限制功能;
(7) 具有熱開關(guān)斷功能;
(8) 可在60°/120°或120°/240°的傳感器相位中任選;
(9) 亦可控制H橋式有刷直流電機。
利用MC33033也可以設(shè)計出直流有刷電機的速度控制電路。圖2為MC33033用于控制有刷電機的典型電路。如果在傳感器的輸入端加上某個輸入碼,如100,則當控制器的正轉(zhuǎn)/反轉(zhuǎn)引腳為邏輯1時,輸入碼使左上角Q和右下角Q產(chǎn)生驅(qū)動;當控制器的正轉(zhuǎn)反轉(zhuǎn)為邏輯0時,輸入碼使右上角Q和左下角Q產(chǎn)生驅(qū)動。
在通常情況下,控制器在PWM頻率為25kHz時就能正常工作,電機速度的控制可以通過調(diào)節(jié)誤差放大器的同相輸入電壓來實現(xiàn),同時它也為PWM提供基準和限幅電平。周期電流限制(3A電機電流)是由電阻R到地之間的100mV門限電壓來完成的。過流保護電路能夠防止電機啟動和改變轉(zhuǎn)向時損壞器件,可以保證整個電路的安全[4~6]。
MC33033應(yīng)用到自動門的電機控制原理如圖3所示。將邏輯運算電路得出的停止、正轉(zhuǎn)、反轉(zhuǎn)作為三個輸入信號,其中,優(yōu)先級高低順序是停止、正轉(zhuǎn)、反轉(zhuǎn)(正常情況下三個信號中有且僅有一個有效)。正轉(zhuǎn)和反轉(zhuǎn)信號經(jīng)過邏輯門接入MC33033的3端,如果該端為高電平" title="高電平">高電平時,MC33033將使AT輸出高電平,開關(guān)Q1導通" title="導通">導通,同時CB端輸出PWM調(diào)制波形,開關(guān)Q4相應(yīng)地動作,從而實現(xiàn)電機正轉(zhuǎn)并進行速度調(diào)整;反之,MC33033將使AB輸出高電平,開關(guān)Q2導通,同時CT端輸出PWM調(diào)制波形,開關(guān)Q3相應(yīng)地動作,從而實現(xiàn)電機反轉(zhuǎn)并進行速度調(diào)整。低電平時,停止信號接入到MC33033的19端(使能端),如果它為高電平時,芯片將停止正常工作,此時就能實現(xiàn)電機的停轉(zhuǎn)。這就是電機部分如何實現(xiàn)電機正轉(zhuǎn)、反轉(zhuǎn)、停止以及正反轉(zhuǎn)分別調(diào)速的原理。
下面將具體分析電路是如何實現(xiàn)調(diào)速的。當電機控制部分被輸入正轉(zhuǎn)信號時,在MC33033芯片的3端為高電平信號,U2A光電隔離不會導通,U2B光電隔離可以導通,此時L2發(fā)光二極管會發(fā)光,表示正轉(zhuǎn),高電平將通過RP2、二級管D2進入到MC33033的9端,其電壓可以通過滑動變阻器RP2來調(diào)整,而MC33033的9端是振蕩波,將會利用PWM原理對8與9進行比較來控制Q4的輸出脈沖波形,從而調(diào)整電動機正轉(zhuǎn)時的端電壓,實現(xiàn)電機正轉(zhuǎn)調(diào)速。當電機控制部分被輸入反轉(zhuǎn)信號時,MC33033芯片的3端是低電平信號,在經(jīng)過4011與非門后得出高電平,U2A光電隔離可以導通,U2B光電隔離不會導通,此時,L1發(fā)光二極管會發(fā)光,表示反轉(zhuǎn),高電平將通過RP1、二級管D1進入到MC33033的9端,其電壓可以通過滑動變阻器RP2來調(diào)整,控制Q3的輸出脈沖,從而調(diào)整電動機反轉(zhuǎn)時的端電壓,實現(xiàn)電機反轉(zhuǎn)調(diào)速。
4 基于FPGA的自動門主控制電路
用VHDL進行電子系統(tǒng)設(shè)計的優(yōu)點是設(shè)計者可以專心致力于其功能的實現(xiàn),而不需要對不影響功能的但與工藝有關(guān)的因素花費過多的時間和精力。因此本設(shè)計采用VHDL語言的狀態(tài)機設(shè)計法進行設(shè)計,通過編譯、仿真、綜合、配置,最終在FPGA上實現(xiàn)邏輯功能[7]。
4.1 系統(tǒng)狀態(tài)圖
根據(jù)VHDL狀態(tài)機設(shè)計方法,首先畫出自動門控制器的狀態(tài)圖。分析自動門的運行過程可知:門開始處于閉合狀態(tài)即0位置,有開信號則開門,開關(guān)門過程中如遇到阻力則暫停一段時間,然后自動繼續(xù)原來的開關(guān)門動作。門在運行過程中遇到停信號以及0位置則停遇到底位置信號則暫停一段時間,然后自動執(zhí)行關(guān)門動作。系統(tǒng)狀態(tài)圖如圖4所示。其中:x1、x2、x3分別表示開、關(guān)、停控制信號;x4表示門在運行過程中遇到障礙時傳感器發(fā)出的信號;x5表示門完全閉合,即運行到0位置時傳感器發(fā)出的信號;x6表示門完全打開,即運行到底位置時傳感器發(fā)出的信號。
COUT為控制器內(nèi)部的定計時控制信號(這里假定
三個暫停狀態(tài)的暫停時間一樣)。
s0表示電動門處于零位置時的狀態(tài),此時電動門處于關(guān)閉的位置;
s1表示電動門開的狀態(tài)、電機正轉(zhuǎn)的情況;
s2表示電動門關(guān)的狀態(tài)、電機反轉(zhuǎn)的情況;
s3表示電動門停止時的狀態(tài),此時要求電機停止轉(zhuǎn)動;
s4表示電動門處于底位置時的狀態(tài),此時電動門處于開的臨界位置;
s5表示在反轉(zhuǎn)過程中電動門在遇到障礙時的暫停狀態(tài);
s6表示在正轉(zhuǎn)過程中電動門在遇到障礙時的暫停狀態(tài)。
Z1、Z2、Z3分別表示控制器發(fā)給電機控制電路的開、關(guān)、停控制信號。
4.2 自動門控制器的VHDL 設(shè)計
由狀態(tài)圖可以看出,本系統(tǒng)屬于MOORE 型有限狀態(tài)機設(shè)計,本文采用雙進程符號化的VHDL有限狀態(tài)機設(shè)計方法。分析狀態(tài)圖可以得出系統(tǒng)輸入輸出端口,如圖5所示。
(1) VHDL的實體描述:
ENTITY autodoor IS
PORT (
clk、reset: IN STD_LOGIC;——時鐘、系統(tǒng)復位信號;
x1、x2、x3、x4、x5、x6:OUT STD_LOGIC;——開、關(guān)、停、障礙、0位置、底位置
comb_outputs : OUT STD_LOGIC_VECTOR (1 TO 3);
——comb_outputs(1) 對應(yīng) Z1;
——comb_outputs(2) 對應(yīng)Z2;
——comb_outputs(3) 對應(yīng)Z3;
ten: OUT STD_LOGIC);——為了觀測暫停信號
END autodoor;
?? (2)主控時序進程
REG: PROCESS (reset,clk)
BEGIN
IF reset = ′1′ THEN current_state<=s0;
ELSIF clk=′1′ AND clk′EVENT THEN
current_state <= next_state;
END IF;
END PROCESS;
(3)主控組合進程部分程序
COM: PROCESS(current_state,x1,x2,x3,x4,x5,x6)
BEGIN
CASE current_state IS
WHEN s0 => comb_outputs<= '001';
en<=′0′; ——電動門在零位置狀態(tài)
IF x1=′1′ THEN next_state<=s1;
ELSE next_state<=s0;
END IF;
——表明只有當電動門在獲得正轉(zhuǎn)信號時,才會改變狀態(tài)(轉(zhuǎn)入s1狀態(tài)),即電動門開的狀態(tài)、電機正轉(zhuǎn)的情況
(4) 定時程序略
4.3 時序仿真波形
把設(shè)計的VHDL程序編譯,在MAX+PLUSⅡ下的仿真波形如圖6、圖7所示。
?
由仿真波形可以看出:在清零信號reset為高電平時,電路會回到原來的初始狀態(tài),即s0狀態(tài)。先給電路一個清零信號后,電路處于s0狀態(tài),comb_outputs=1(Z3=1表示電機停止),此時,如圖6中所示給它一個x1正轉(zhuǎn)信號,在遇到脈沖為上升沿時,由下面兩行輸出可知comb_outputs=4(Z1=1表示電機正轉(zhuǎn)),電路將進入s1狀態(tài)(即電動門開,電機正轉(zhuǎn));之后又給了x2反轉(zhuǎn)信號,同樣可以看到comb_outputs=2(Z2=1表示電機反轉(zhuǎn)),電路進入了s2狀態(tài)(即電動門關(guān),電機反轉(zhuǎn));后給一個x3停止信號,同樣可以看到comb_outputs =1(Z3=1表示電機停止),電路進入了s3狀態(tài)(即電動門停止運行);如在電機正轉(zhuǎn)的情況下,給x4信號(電動機在遇到障礙時的信號),電機將進入停止狀態(tài),此時電動門的狀態(tài)是s5(即在正轉(zhuǎn)過程中電動門在遇到障礙時的暫停狀態(tài)),此時,再看ten信號的波形、計數(shù)信號q狀態(tài),ten信號由低電平向高電平轉(zhuǎn)變,計數(shù)信號由原來的0不斷地加1直到15為止,又進入到此暫停狀態(tài)的開始狀態(tài)(s1狀態(tài))。因此設(shè)計完全滿足控制時序要求。
參考文獻
1 徐慶繼.西門子LOGO!在自動門控制系統(tǒng)中的應(yīng)用[J]. 現(xiàn)代技能開發(fā),2003;(12):110~111
2 姚衛(wèi)豐.基于PLC控制的自動門系統(tǒng)[J].自動化與儀表,2002;(6):64~65
3 陳小蘭,肖 化.基于PIC單片機的自動門控制器設(shè)計[J].華南師范大學學報(自然科學版),2001;(1):68~70
4 吳紅星, 張千帆, 寇寶泉. 電機控制集成電路的選用第六講:無刷直流電動機控制芯片MC33033的選用[J].微電機,1999;(6):42~43
5 孫中禹,楊友社.直流電機控制器MC33033及其應(yīng)用電路[J]. 國外電子元器件,2000;(5):19~22
6 吳玉香.無刷直流電機在自動門控制中的應(yīng)用.微特電機[J],2002;(4):37~38
7 潘 松, 黃繼業(yè).EDA技術(shù)實用教程[M].北京:科學出版社,2002