根據(jù)系統(tǒng)設(shè)計要求,并考慮到系統(tǒng)的可驗證性,整個系統(tǒng)的輸入輸出接口設(shè)計如圖1所示:系統(tǒng)工作用2 Hz基準時鐘信號CLKIN,樓層上升請求鍵UPIN,樓層下降請求鍵DOWNIN,樓層選擇鍵入鍵ST_CH,提前關(guān)門輸入鍵CLOSE,延遲關(guān)門輸入鍵DELAY,電梯運行的開關(guān)鍵RUN_STOP,電梯運行或停止指示鍵LAMP,電梯運行或等待時間指示鍵RUN_WAIT,電梯所在樓層指示數(shù)碼管ST_OUT,樓層選擇指示數(shù)碼管DIRECT。
如圖1 電梯控制器DTKZQ的輸入輸出接口圖
電梯的控制狀態(tài)包括運行狀態(tài)、停止狀態(tài)及等待狀態(tài),其中運行狀態(tài)又包含向上狀態(tài)和向下狀態(tài)。主要動作有開、關(guān)門,停靠和啟動。乘客可通過鍵入開、關(guān)門按鈕,呼喚按鈕,指定樓層按鈕等來控制電梯的行與停。
據(jù)此,整個電梯控制器DTKZQ應包括如下幾個組成部分:①時序輸出及樓選計數(shù)器;②靶梯服務請求處理器;③電梯升降控制器;④上升及下降寄存器;⑤電梯次態(tài)生成器。該電梯控制器設(shè)計的關(guān)鍵是確定上升及下降寄存器的置位與復位。整個系統(tǒng)的內(nèi)部組成結(jié)構(gòu)圖如圖2所示。
如圖2 電梯控制器的內(nèi)部組成結(jié)構(gòu)圖
由上面的內(nèi)部組成結(jié)構(gòu)圖可知,系統(tǒng)中的模塊較少,因此我們可采用多進程的方式進行VHDL程序設(shè)計。程序中主要進程有四個(見后述的DTKZQ.VHD):分頻及樓選信號產(chǎn)生進程P1,樓層請求寄存器的置位與復位進程P2,電梯運行的次態(tài)控制進程P3,電梯運行樓層計數(shù)及提前/延遲關(guān)門控制進程M。其中P3是最重要的一個進程,合理判斷電梯的運行次態(tài)是完成本設(shè)計的關(guān)鍵。
Pl進程將CLKIN 2分頻,產(chǎn)生1 Hz的時鐘信號驅(qū)動M進程。Pl進程同時對DIR加1計數(shù),從“0000”計到“1111”。
P2進程通過樓層選擇指示變量DIR、電梯所在樓層變量LIFTOR和輸入信號UPIN,DOWNIN、ST_CH來判斷UR、DR的置位。
P3進程根據(jù)UR/DR的寄存器狀態(tài)和電梯所在樓層變量LIFTOR,當WAI_T=110時,給出電梯的下一個狀態(tài)。LADD為電梯的下一狀態(tài)的指示變量,“11”表示上升,“10”表示下降,“01”或“00”表示等待狀態(tài)。
P4進程由DIVID信號驅(qū)動,它響應CLOSEX,DELAYX信號,完成提前關(guān)門和延時關(guān)門請求,并根據(jù)LADD的狀態(tài)對LIFTOR變量做相應的增減。LIFTOR加1產(chǎn)生ST_OUT輸出信號,LADD(1)則直接輸出給LAMP變量。
來源:ks990次