基于FPGA的電梯控制器系統(tǒng)設(shè)計
c. 電梯控制器模塊和指示模塊:該模塊根據(jù)各層按鈕被按下的情況,控制電梯運行,并設(shè)置指示燈。模塊定義如下:
module Lift_cONtrol(
keyclk, //處理按鍵時鐘
liftclk, //電梯運行控制時鐘
reset, //電梯復(fù)位按鈕,復(fù)位后電梯停在一樓;
stop_r, //電梯內(nèi)各層按鍵信息
up_r, //電梯外各層向上按鍵信息
down_r, //電梯外各層向下按鍵信息
position, //當(dāng)前樓層位置,每1位代表1層,當(dāng)相應(yīng)的位置1時表示電梯運行至該層;
stoplight, //內(nèi)部各層按鈕指示燈,每1位代表1層,當(dāng)相應(yīng)位置1時表示指示該層指示燈亮;
uplight, //除頂層外各層外部按鈕指示燈,每1位代表1層,當(dāng)相應(yīng)位置1時表示該層up燈亮;
downlight, //除首層外各層外部按鈕指示燈,每1位代表1層,當(dāng)相應(yīng)的位置1時表示該層的down指示燈亮;
doorlight); //用于開門指示燈,為1表示開門,為0表示關(guān)門
d. 顯示模塊:該模塊用于譯碼顯示當(dāng)前電梯所在樓層,模塊定義如下:
module Display(liftclk,position,disp);
2.2 模塊設(shè)計與實現(xiàn)
對于分頻器模塊、按鍵請求模塊、電梯控制器模塊和指示模塊和顯示模塊這四個模塊,電梯控制器模塊和指示模塊涉及到電梯各種運行情況的處理,其算法是最復(fù)雜的,也是最容易出錯的。本文采用使用有限狀態(tài)機來設(shè)計該模塊,具體的算法描述如下。
將電梯運行定義為7個狀態(tài),具體的狀態(tài)定義如下:
S0:onfloor1,表示在樓層1;
S1:dooropen_up,上升過程中,電梯開門5s;
S2:doorclose_up,上升過程中,電梯關(guān)門;
S3:up_lift,表示電梯上升一層;
S4:dooropen_down,下降過程中,電梯開門5s;
S5:doorclose_down,下降過程中,電梯關(guān)門;
S6:down_lift,表示電梯下降一層。
評論