基于FPGA的電梯控制器系統(tǒng)設(shè)計方案
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,表示電梯下降一層。
各狀態(tài)在滿足一定的條件下轉(zhuǎn)換,具體狀態(tài)轉(zhuǎn)換如圖2所示。
圖2 電梯控制器狀態(tài)轉(zhuǎn)換圖
表1 電梯控制器狀態(tài)轉(zhuǎn)換條件
上表中, pos 表示當(dāng)前樓層, up[pos ] 、down[pos]、stop[pos]分別表示當(dāng)前樓層的向上、向下、和停止銨鈕的狀態(tài)。
顯然,上述算法并未對樓層數(shù)作限制,也就是說該算法適合于任意樓層的電梯控制器。
2.3 仿真驗證
本文根據(jù)上述算法,采用Verilog HDL語言在FPGA上實現(xiàn)了一個三層電梯控制器。對于實現(xiàn)來說,三層電梯或者多層電梯的控制器只是Verilog代碼數(shù)量的不同,其算法則完全是本文提出的算法,沒有區(qū)別。本文只所以實現(xiàn)了一個三層電梯控制器,是因為硬件開發(fā)環(huán)境的資源(包括按鈕的數(shù)量、指示燈的數(shù)量)僅滿足三層電梯控制器的驗證。
評論