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