基于FSM的電梯控制系統(tǒng)的設計與實現(xiàn)
2.2.2程序設計
在構造體的設計中www.cechina.cn,設計了兩個進程相互配合,一個是狀態(tài)機進程,另外一個是信號燈控制進程。狀態(tài)機進程中的很多判斷條件是以信號燈進程產生的信號燈信號為依據的,而信號燈進程中信號燈的熄滅又是由狀態(tài)機進程中傳出來的“up(上升)”和“down(下降)”信號來控制的。
在狀態(tài)機進程中,在電梯處于上升狀態(tài)時,通過對信號燈來判斷,決定下一個狀態(tài)是繼續(xù)上升還是停止;在電梯下降狀態(tài)中www.cechina.cn,也是通過對信號燈的判斷,決定下一個狀態(tài)時繼續(xù)下降還是停止;在電梯停止狀態(tài)中,判斷是最為復雜的,通過對信號燈的判斷,決定電梯是上升、下降還是停止。
在信號燈控制進程中,由于使用了專用的按鍵時鐘,頻率較高,所以使得按鍵的靈敏度增大,但是時鐘頻率不能過高,否則容易使按鍵過于靈敏,按鍵后產生的點亮的信號燈(邏輯值為‘1’)用于作為狀態(tài)機進程的判斷條件,而up和down信號邏輯‘1’使得相應的信號燈熄滅。
2.3顯示模塊的設計
采用動態(tài)顯示模式,循環(huán)點亮三個數碼管,在掃描頻率大于人眼睛的視覺暫留頻率(24HZ)以上,就可以達到點亮單個七段數碼管顯示器,卻能像有3個數碼管同時點亮的視覺效果。
將樓層上升、下降以及樓層停止的信號用七段數碼管顯示出來,電梯上升、下降、停止輸出的信號用3位二進制數表示,通過七段譯碼器將電梯狀態(tài)控制器輸出的3位二進制數譯碼為七段數碼管的輸入所需要的7位二進制數。最簡的真值表如表2.3所示.相應的譯碼程序以及多路選擇顯示程序從略。
2.4分頻器的設計
分頻器是將輸入的4MHZ信號分頻為1Hz的信號,提供給狀態(tài)機作為輸入信號,另外分頻器分頻到4000HZ給動態(tài)顯示模塊以及按鍵模塊作為掃描信號。根據設計的需要設計了三個分頻器。
2.5 輸入端口設計
在狀態(tài)機的設計中www.cechina.cn,針對CPLD的容量,以三層電梯運行為例,定義了8個按鍵輸入端。分別是:(1) 異步置位按鍵、(2)1層上升請求按鍵、(3) 2層上升請求按鍵、(4) 2層下降請求按鍵、(5) 3層下降請求按鍵 、(6)電梯1層停止請求按鍵、(7)電梯2層停止請求按鍵、(8)電梯3層停止請求按鍵。
3 設計結果及分析
3.1 電梯狀態(tài)控制器的Synplify綜合
使用Synplify pro對用VHDL語言編制的有限狀態(tài)機的狀態(tài)變化控制程序進行綜合,經過綜合之后的“RTL”(寄存器傳輸級)方式的電路原理圖如圖2所示。
圖2 Synplify pro 綜合后的狀態(tài)轉移圖
3.2 仿真
綜合編譯完成后,值reset信號高電平有效,置為0,選擇liftclk時鐘信號為1HZ、buttonclk信號時鐘為4000HZ。配置適當的輸入信號,得到如圖3的仿真結果。
原先電梯停留在第一層,電梯外第三層有下降請求,電梯上升到三層,乘客進入電梯以后要求下降一層,此時,電梯二層有下降請求,接著又有上升請求,電梯首先在第二層停留,然后下降到一層,隨后再在響應第二層上升請求,上升到二層,乘客進入電梯以后要求上升到三層,所以電梯最后停留的位置是三層。
圖3 三層電梯的仿真波形圖四
3.3 實驗結果
在完整的系統(tǒng)設計中使用 Max+Plus II完成VHDL描述和原理圖的層次設計。在底層設計中,用VHDL分別實現(xiàn)每一個模塊的功能,將每個模塊生成可供Max+Plus II調用的器件符號,再將這些器件符號連接在一起構成整個系統(tǒng)原理圖,如圖4所示。
評論