《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 業(yè)界動(dòng)態(tài) > 基于FPGA的自動(dòng)門(mén)控制系統(tǒng)設(shè)計(jì)

基于FPGA的自動(dòng)門(mén)控制系統(tǒng)設(shè)計(jì)

2008-05-07
作者:裴亞男1, 高彥麗1, 孟艷花2

  摘 要: 介紹了基于FPGA和MC33033的自動(dòng)門(mén)" title="自動(dòng)門(mén)">自動(dòng)門(mén)控制系統(tǒng)的設(shè)計(jì)。系統(tǒng)包括三大部分:邏輯運(yùn)算電路、電機(jī)控制" title="電機(jī)控制">電機(jī)控制電路和系統(tǒng)主控制器,能夠?qū)崿F(xiàn)自動(dòng)門(mén)的遠(yuǎn)距離遙控、遇阻暫停、正反運(yùn)行分別調(diào)速等功能。該系統(tǒng)的特點(diǎn)是簡(jiǎn)單、可靠、開(kāi)發(fā)成本低。文中給出了實(shí)驗(yàn)結(jié)果。
  關(guān)鍵詞: 自動(dòng)門(mén) VHDL FPGA 電機(jī)控制


  隨著經(jīng)濟(jì)的發(fā)展和人們生活水平的提高,自動(dòng)門(mén)的方便、安全、節(jié)能以及低噪音等特點(diǎn)使其應(yīng)用越來(lái)越廣泛,現(xiàn)為許多賓館、超市、百貨大樓等現(xiàn)代化建筑所必備。經(jīng)過(guò)對(duì)自動(dòng)門(mén)市場(chǎng)和用戶的調(diào)查分析后發(fā)現(xiàn),歐美國(guó)家的產(chǎn)品功能繁多,性能可靠,但這些產(chǎn)品的價(jià)格普遍偏高,操作復(fù)雜,而國(guó)內(nèi)生產(chǎn)的產(chǎn)品往往性能不穩(wěn)定,故障率高,需要頻繁的維護(hù),增加了運(yùn)營(yíng)成本[1~2]。
  因此,設(shè)計(jì)一操作方便、運(yùn)行穩(wěn)定可靠、成本低的自動(dòng)門(mén)的控制系統(tǒng)具有一定的市場(chǎng)。本文設(shè)計(jì)的自動(dòng)門(mén)控制系統(tǒng)為了達(dá)到上述目的,采用了如下設(shè)計(jì)方案:采用按鈕、無(wú)線遙控、紅外感應(yīng)三種驅(qū)動(dòng)方式,既可自動(dòng)控制又可人工控制,操作簡(jiǎn)單并且適用范圍廣;采用EDA技術(shù)設(shè)計(jì)主控制器的狀態(tài)轉(zhuǎn)換,可軟件診錯(cuò);采用自動(dòng)復(fù)位以及電機(jī)專(zhuān)用控制芯片來(lái)保證系統(tǒng)的可靠運(yùn)行。由于設(shè)計(jì)采用了EDA技術(shù)的VHDL設(shè)計(jì)而非傳統(tǒng)的單片機(jī)設(shè)計(jì),是一種自上向下的設(shè)計(jì)方法,使得系統(tǒng)的開(kāi)發(fā)周期短、成本降低。下文將詳細(xì)介紹系統(tǒng)各個(gè)部分的設(shè)計(jì)[3]。
1 系統(tǒng)分析
  系統(tǒng)總框圖如圖1所示,通過(guò)按鈕、無(wú)線遙控、紅外感應(yīng)三種驅(qū)動(dòng)方式實(shí)現(xiàn)自動(dòng)門(mén)的開(kāi)、關(guān)、停,且按鈕優(yōu)先級(jí)別最高。紅外感應(yīng)使用hp2100cdc型全自動(dòng)人體紅外感應(yīng)開(kāi)關(guān),有人來(lái)時(shí)自動(dòng)門(mén)開(kāi)。還可以通過(guò)人工控制方式使用按鍵與遙控器來(lái)控制自動(dòng)門(mén)的開(kāi)、關(guān)、停。無(wú)線遙控器選用CY29-5A 型器件,其有效控制范圍在150米以?xún)?nèi)。控制信號(hào)" title="控制信號(hào)">控制信號(hào)邏輯運(yùn)算電路用來(lái)處理三種控制方式的優(yōu)先級(jí)別,以防系統(tǒng)混亂;自動(dòng)門(mén)主控制器電路用一片F(xiàn)PGA,根據(jù)驅(qū)動(dòng)信號(hào)以及位置和遇阻外部信號(hào)來(lái)完成對(duì)門(mén)運(yùn)行狀態(tài)的轉(zhuǎn)換控制;電機(jī)控制電路則根據(jù)主控制器發(fā)出的正反轉(zhuǎn)以及??刂菩盘?hào)來(lái)控制電機(jī)的開(kāi)、關(guān)、停以及實(shí)現(xiàn)自動(dòng)門(mén)正反運(yùn)行的分別調(diào)速。


  設(shè)計(jì)重點(diǎn)為控制信號(hào)處理電路、電機(jī)控制電路、自動(dòng)門(mén)主控制器電路。
2 邏輯運(yùn)算電路設(shè)計(jì)
  由于本自動(dòng)門(mén)系統(tǒng)的驅(qū)動(dòng)信號(hào)較多,為了避免這些信號(hào)之間在某些情況下出現(xiàn)矛盾,在三種驅(qū)動(dòng)方式同時(shí)發(fā)出信號(hào)時(shí),需要設(shè)定其優(yōu)先級(jí)別??刂菩盘?hào)邏輯運(yùn)算電路主要完成將按鈕、無(wú)線遙控和紅外感應(yīng)三種驅(qū)動(dòng)信號(hào)在處理好優(yōu)先級(jí)條件下轉(zhuǎn)換成三個(gè)控制信號(hào)(開(kāi)、關(guān)、停)。其優(yōu)先級(jí)由高到低可以按照實(shí)際情況設(shè)定為:按扭、無(wú)線遙控、紅外感應(yīng)。列出其真值表,即可求得開(kāi)、關(guān)、停的邏輯關(guān)系,或直接在FPGA中編程實(shí)現(xiàn)。
3 電機(jī)控制電路設(shè)計(jì)
  為了保證電機(jī)的控制簡(jiǎn)便可靠,設(shè)計(jì)中使用了電機(jī)專(zhuān)用控制芯片MC33033。該芯片是MOTOROLA公司生產(chǎn)的一種高性能直流電機(jī)控制器,可對(duì)直流電機(jī)速度進(jìn)行開(kāi)環(huán)和閉環(huán)控制,亦可分別對(duì)電機(jī)正反轉(zhuǎn)進(jìn)行調(diào)速。MC33033是第二代無(wú)刷直流電機(jī)控制器的典型芯片,該芯片內(nèi)含轉(zhuǎn)子位置譯碼器,并可為傳感器工作提供帶有溫度補(bǔ)償?shù)膮⒖蓟鶞?zhǔn)電壓。MC33033的另一個(gè)特點(diǎn)是內(nèi)含三個(gè)集電極開(kāi)路的頂部驅(qū)動(dòng)器和為MOSFET驅(qū)動(dòng)電源而設(shè)計(jì)的三個(gè)高電流推拉式底部驅(qū)動(dòng)器,并具有電機(jī)過(guò)流檢測(cè)和保護(hù)功能。此外,MC33033還具有如下特點(diǎn):
  (1) 具有10~30V的寬電源電壓范圍;
  (2) 具有欠壓鎖定功能;
  (3) 可提供6.25V帶有溫度補(bǔ)償?shù)幕鶞?zhǔn)電壓源;
  (4) 帶有為閉環(huán)控制提供的誤差放大器;
  (5) 與MC33033組合可控制三相橋式高電流驅(qū)動(dòng)器;
  (6) 具有周期—周期電流限制功能;
  (7) 具有熱開(kāi)關(guān)斷功能;
  (8) 可在60°/120°或120°/240°的傳感器相位中任選;
  (9) 亦可控制H橋式有刷直流電機(jī)。
  利用MC33033也可以設(shè)計(jì)出直流有刷電機(jī)的速度控制電路。圖2為MC33033用于控制有刷電機(jī)的典型電路。如果在傳感器的輸入端加上某個(gè)輸入碼,如100,則當(dāng)控制器的正轉(zhuǎn)/反轉(zhuǎn)引腳為邏輯1時(shí),輸入碼使左上角Q和右下角Q產(chǎn)生驅(qū)動(dòng);當(dāng)控制器的正轉(zhuǎn)反轉(zhuǎn)為邏輯0時(shí),輸入碼使右上角Q和左下角Q產(chǎn)生驅(qū)動(dòng)。


  在通常情況下,控制器在PWM頻率為25kHz時(shí)就能正常工作,電機(jī)速度的控制可以通過(guò)調(diào)節(jié)誤差放大器的同相輸入電壓來(lái)實(shí)現(xiàn),同時(shí)它也為PWM提供基準(zhǔn)和限幅電平。周期電流限制(3A電機(jī)電流)是由電阻R到地之間的100mV門(mén)限電壓來(lái)完成的。過(guò)流保護(hù)電路能夠防止電機(jī)啟動(dòng)和改變轉(zhuǎn)向時(shí)損壞器件,可以保證整個(gè)電路的安全[4~6]
  MC33033應(yīng)用到自動(dòng)門(mén)的電機(jī)控制原理如圖3所示。將邏輯運(yùn)算電路得出的停止、正轉(zhuǎn)、反轉(zhuǎn)作為三個(gè)輸入信號(hào),其中,優(yōu)先級(jí)高低順序是停止、正轉(zhuǎn)、反轉(zhuǎn)(正常情況下三個(gè)信號(hào)中有且僅有一個(gè)有效)。正轉(zhuǎn)和反轉(zhuǎn)信號(hào)經(jīng)過(guò)邏輯門(mén)接入MC33033的3端,如果該端為高電平" title="高電平">高電平時(shí),MC33033將使AT輸出高電平,開(kāi)關(guān)Q1導(dǎo)通" title="導(dǎo)通">導(dǎo)通,同時(shí)CB端輸出PWM調(diào)制波形,開(kāi)關(guān)Q4相應(yīng)地動(dòng)作,從而實(shí)現(xiàn)電機(jī)正轉(zhuǎn)并進(jìn)行速度調(diào)整;反之,MC33033將使AB輸出高電平,開(kāi)關(guān)Q2導(dǎo)通,同時(shí)CT端輸出PWM調(diào)制波形,開(kāi)關(guān)Q3相應(yīng)地動(dòng)作,從而實(shí)現(xiàn)電機(jī)反轉(zhuǎn)并進(jìn)行速度調(diào)整。低電平時(shí),停止信號(hào)接入到MC33033的19端(使能端),如果它為高電平時(shí),芯片將停止正常工作,此時(shí)就能實(shí)現(xiàn)電機(jī)的停轉(zhuǎn)。這就是電機(jī)部分如何實(shí)現(xiàn)電機(jī)正轉(zhuǎn)、反轉(zhuǎn)、停止以及正反轉(zhuǎn)分別調(diào)速的原理。


  下面將具體分析電路是如何實(shí)現(xiàn)調(diào)速的。當(dāng)電機(jī)控制部分被輸入正轉(zhuǎn)信號(hào)時(shí),在MC33033芯片的3端為高電平信號(hào),U2A光電隔離不會(huì)導(dǎo)通,U2B光電隔離可以導(dǎo)通,此時(shí)L2發(fā)光二極管會(huì)發(fā)光,表示正轉(zhuǎn),高電平將通過(guò)RP2、二級(jí)管D2進(jìn)入到MC33033的9端,其電壓可以通過(guò)滑動(dòng)變阻器RP2來(lái)調(diào)整,而MC33033的9端是振蕩波,將會(huì)利用PWM原理對(duì)8與9進(jìn)行比較來(lái)控制Q4的輸出脈沖波形,從而調(diào)整電動(dòng)機(jī)正轉(zhuǎn)時(shí)的端電壓,實(shí)現(xiàn)電機(jī)正轉(zhuǎn)調(diào)速。當(dāng)電機(jī)控制部分被輸入反轉(zhuǎn)信號(hào)時(shí),MC33033芯片的3端是低電平信號(hào),在經(jīng)過(guò)4011與非門(mén)后得出高電平,U2A光電隔離可以導(dǎo)通,U2B光電隔離不會(huì)導(dǎo)通,此時(shí),L1發(fā)光二極管會(huì)發(fā)光,表示反轉(zhuǎn),高電平將通過(guò)RP1、二級(jí)管D1進(jìn)入到MC33033的9端,其電壓可以通過(guò)滑動(dòng)變阻器RP2來(lái)調(diào)整,控制Q3的輸出脈沖,從而調(diào)整電動(dòng)機(jī)反轉(zhuǎn)時(shí)的端電壓,實(shí)現(xiàn)電機(jī)反轉(zhuǎn)調(diào)速。
4 基于FPGA的自動(dòng)門(mén)主控制電路
  用VHDL進(jìn)行電子系統(tǒng)設(shè)計(jì)的優(yōu)點(diǎn)是設(shè)計(jì)者可以專(zhuān)心致力于其功能的實(shí)現(xiàn),而不需要對(duì)不影響功能的但與工藝有關(guān)的因素花費(fèi)過(guò)多的時(shí)間和精力。因此本設(shè)計(jì)采用VHDL語(yǔ)言的狀態(tài)機(jī)設(shè)計(jì)法進(jìn)行設(shè)計(jì),通過(guò)編譯、仿真、綜合、配置,最終在FPGA上實(shí)現(xiàn)邏輯功能[7]。
4.1 系統(tǒng)狀態(tài)圖
  根據(jù)VHDL狀態(tài)機(jī)設(shè)計(jì)方法,首先畫(huà)出自動(dòng)門(mén)控制器的狀態(tài)圖。分析自動(dòng)門(mén)的運(yùn)行過(guò)程可知:門(mén)開(kāi)始處于閉合狀態(tài)即0位置,有開(kāi)信號(hào)則開(kāi)門(mén),開(kāi)關(guān)門(mén)過(guò)程中如遇到阻力則暫停一段時(shí)間,然后自動(dòng)繼續(xù)原來(lái)的開(kāi)關(guān)門(mén)動(dòng)作。門(mén)在運(yùn)行過(guò)程中遇到停信號(hào)以及0位置則停遇到底位置信號(hào)則暫停一段時(shí)間,然后自動(dòng)執(zhí)行關(guān)門(mén)動(dòng)作。系統(tǒng)狀態(tài)圖如圖4所示。其中:x1、x2、x3分別表示開(kāi)、關(guān)、停控制信號(hào);x4表示門(mén)在運(yùn)行過(guò)程中遇到障礙時(shí)傳感器發(fā)出的信號(hào);x5表示門(mén)完全閉合,即運(yùn)行到0位置時(shí)傳感器發(fā)出的信號(hào);x6表示門(mén)完全打開(kāi),即運(yùn)行到底位置時(shí)傳感器發(fā)出的信號(hào)。


  COUT為控制器內(nèi)部的定計(jì)時(shí)控制信號(hào)(這里假定
  三個(gè)暫停狀態(tài)的暫停時(shí)間一樣)。
  s0表示電動(dòng)門(mén)處于零位置時(shí)的狀態(tài),此時(shí)電動(dòng)門(mén)處于關(guān)閉的位置;
  s1表示電動(dòng)門(mén)開(kāi)的狀態(tài)、電機(jī)正轉(zhuǎn)的情況;
  s2表示電動(dòng)門(mén)關(guān)的狀態(tài)、電機(jī)反轉(zhuǎn)的情況;
  s3表示電動(dòng)門(mén)停止時(shí)的狀態(tài),此時(shí)要求電機(jī)停止轉(zhuǎn)動(dòng);
  s4表示電動(dòng)門(mén)處于底位置時(shí)的狀態(tài),此時(shí)電動(dòng)門(mén)處于開(kāi)的臨界位置;
  s5表示在反轉(zhuǎn)過(guò)程中電動(dòng)門(mén)在遇到障礙時(shí)的暫停狀態(tài);
  s6表示在正轉(zhuǎn)過(guò)程中電動(dòng)門(mén)在遇到障礙時(shí)的暫停狀態(tài)。
  Z1、Z2、Z3分別表示控制器發(fā)給電機(jī)控制電路的開(kāi)、關(guān)、??刂菩盘?hào)。
4.2 自動(dòng)門(mén)控制器的VHDL 設(shè)計(jì)
  由狀態(tài)圖可以看出,本系統(tǒng)屬于MOORE 型有限狀態(tài)機(jī)設(shè)計(jì),本文采用雙進(jìn)程符號(hào)化的VHDL有限狀態(tài)機(jī)設(shè)計(jì)方法。分析狀態(tài)圖可以得出系統(tǒng)輸入輸出端口,如圖5所示。


  (1) VHDL的實(shí)體描述:
  ENTITY autodoor IS
  PORT (
  clk、reset: IN STD_LOGIC;——時(shí)鐘、系統(tǒng)復(fù)位信號(hào);
  x1、x2、x3、x4、x5、x6:OUT STD_LOGIC;——開(kāi)、關(guān)、停、障礙、0位置、底位置
  comb_outputs : OUT STD_LOGIC_VECTOR (1 TO 3);
  ——comb_outputs(1) 對(duì)應(yīng) Z1;
  ——comb_outputs(2) 對(duì)應(yīng)Z2;
  ——comb_outputs(3) 對(duì)應(yīng)Z3;
  ten: OUT STD_LOGIC);——為了觀測(cè)暫停信號(hào)
  END autodoor;
?? (2)主控時(shí)序進(jìn)程
  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)主控組合進(jìn)程部分程序
  COM: PROCESS(current_state,x1,x2,x3,x4,x5,x6)
    BEGIN
      CASE current_state IS
        WHEN s0 => comb_outputs<= '001';
        en<=′0′; ——電動(dòng)門(mén)在零位置狀態(tài)
    IF x1=′1′ THEN next_state<=s1;
    ELSE next_state<=s0;
    END IF;
  ——表明只有當(dāng)電動(dòng)門(mén)在獲得正轉(zhuǎn)信號(hào)時(shí),才會(huì)改變狀態(tài)(轉(zhuǎn)入s1狀態(tài)),即電動(dòng)門(mén)開(kāi)的狀態(tài)、電機(jī)正轉(zhuǎn)的情況
  (4) 定時(shí)程序略
4.3 時(shí)序仿真波形
  把設(shè)計(jì)的VHDL程序編譯,在MAX+PLUSⅡ下的仿真波形如圖6、圖7所示。

?


  由仿真波形可以看出:在清零信號(hào)reset為高電平時(shí),電路會(huì)回到原來(lái)的初始狀態(tài),即s0狀態(tài)。先給電路一個(gè)清零信號(hào)后,電路處于s0狀態(tài),comb_outputs=1(Z3=1表示電機(jī)停止),此時(shí),如圖6中所示給它一個(gè)x1正轉(zhuǎn)信號(hào),在遇到脈沖為上升沿時(shí),由下面兩行輸出可知comb_outputs=4(Z1=1表示電機(jī)正轉(zhuǎn)),電路將進(jìn)入s1狀態(tài)(即電動(dòng)門(mén)開(kāi),電機(jī)正轉(zhuǎn));之后又給了x2反轉(zhuǎn)信號(hào),同樣可以看到comb_outputs=2(Z2=1表示電機(jī)反轉(zhuǎn)),電路進(jìn)入了s2狀態(tài)(即電動(dòng)門(mén)關(guān),電機(jī)反轉(zhuǎn));后給一個(gè)x3停止信號(hào),同樣可以看到comb_outputs =1(Z3=1表示電機(jī)停止),電路進(jìn)入了s3狀態(tài)(即電動(dòng)門(mén)停止運(yùn)行);如在電機(jī)正轉(zhuǎn)的情況下,給x4信號(hào)(電動(dòng)機(jī)在遇到障礙時(shí)的信號(hào)),電機(jī)將進(jìn)入停止?fàn)顟B(tài),此時(shí)電動(dòng)門(mén)的狀態(tài)是s5(即在正轉(zhuǎn)過(guò)程中電動(dòng)門(mén)在遇到障礙時(shí)的暫停狀態(tài)),此時(shí),再看ten信號(hào)的波形、計(jì)數(shù)信號(hào)q狀態(tài),ten信號(hào)由低電平向高電平轉(zhuǎn)變,計(jì)數(shù)信號(hào)由原來(lái)的0不斷地加1直到15為止,又進(jìn)入到此暫停狀態(tài)的開(kāi)始狀態(tài)(s1狀態(tài))。因此設(shè)計(jì)完全滿足控制時(shí)序要求。
參考文獻(xiàn)
1 徐慶繼.西門(mén)子LOGO!在自動(dòng)門(mén)控制系統(tǒng)中的應(yīng)用[J]. 現(xiàn)代技能開(kāi)發(fā),2003;(12):110~111
2 姚衛(wèi)豐.基于PLC控制的自動(dòng)門(mén)系統(tǒng)[J].自動(dòng)化與儀表,2002;(6):64~65
3 陳小蘭,肖 化.基于PIC單片機(jī)的自動(dòng)門(mén)控制器設(shè)計(jì)[J].華南師范大學(xué)學(xué)報(bào)(自然科學(xué)版),2001;(1):68~70
4 吳紅星, 張千帆, 寇寶泉. 電機(jī)控制集成電路的選用第六講:無(wú)刷直流電動(dòng)機(jī)控制芯片MC33033的選用[J].微電機(jī),1999;(6):42~43
5 孫中禹,楊友社.直流電機(jī)控制器MC33033及其應(yīng)用電路[J]. 國(guó)外電子元器件,2000;(5):19~22
6 吳玉香.無(wú)刷直流電機(jī)在自動(dòng)門(mén)控制中的應(yīng)用.微特電機(jī)[J],2002;(4):37~38
7 潘 松, 黃繼業(yè).EDA技術(shù)實(shí)用教程[M].北京:科學(xué)出版社,2002

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。