用CPLD器件及VHDL語言實現(xiàn)電梯控制系統(tǒng)
從程序中可以看到,若第3層用戶發(fā)送上升/下降請求。則電梯處于等待狀態(tài);若第3層用戶沒有發(fā)送上升/下降請求,且4~16層的用戶發(fā)送上升,下降請求,或者1.2層的用戶沒有發(fā)送任何請求,則電梯處于上升狀態(tài);反之,電梯處于下降狀態(tài)。
程序設(shè)計中采用方向優(yōu)先原則,即若電梯處于上升狀態(tài),即使有1,2層用戶發(fā)出上升/下降請求,電梯也不響應(yīng),而繼續(xù)上升,直到響應(yīng)完所有4~16層用戶的請求后,再下降;反之,若電梯處于下降狀態(tài),即使4~16用戶發(fā)出上升/下降請求,電梯也不響應(yīng),繼續(xù)下降,直到響應(yīng)完所有用戶的請求后再上升。
(4)P4進程該進程主要完成電梯運行樓層計數(shù)及提前/延遲關(guān)門控制。
4 VHDL源程序的仿真
系統(tǒng)程序編寫完畢后,在MAX+pluslI軟件環(huán)境下對其編譯仿真。其仿真試驗結(jié)果如圖4所示。
圖4中,輸入信號為:UPIN,ST_CH,RUN_STOP,DOWNIN,DELAY,CLOSE和CLKIN;輸出信號為:ST_OUT, RUN_WAIT,LAMP,DIRECT,DIR,LIFTOR和WAI_T。當時鐘上升沿到來時,若WAI_T=0,則它的下一狀態(tài)為6;因 DELAY信號始終為低電平,故WAI_T依次自減1計數(shù)。RUN_WAIT是WAI_T和0的并置運算,故其值和WAI_T相同。
當時鐘上升沿到來時,DIR進行加1計數(shù),且當DIR=0XF時,DIR的下一狀態(tài)值為0。與此同時,DIR加1并賦值給DIRECT。
當LAMP為低電平時,電梯處于等待狀態(tài),故LIFTOR保持其原值不變保持0和3不變;當LAMP為高電平時,電梯處于運行狀態(tài),因UPIN始終為高電平,DOWNIN始終為低電平,故當RUN_STOP為高電平時,電梯只能處于上升狀態(tài),故LIFFOR進行自加1計數(shù),同時,LIFTOR加1賦值給 ST_OUT。
5 硬件實驗
在MAx+plusII軟件編譯完后,采用EPM7128SLC84-6器件下載VHDL源程序,進行硬件試驗。
其下載步驟為:首先,指定采用可編程器件EPM7128SLC84-6;其次,依據(jù)輸入、輸出端口指定與之對應(yīng)的引腳;然后,使用Pof2Jed軟件將編譯后的下載文件*.Pof。轉(zhuǎn)換成*.Jed文件;最后,使用Atmel ISP軟件將轉(zhuǎn)換后的*.Jed文件轉(zhuǎn)換成*.Chn文件。
硬件系統(tǒng)試驗表明,輸出信號的顯示與軟件仿真結(jié)果完全相符,達到設(shè)計要求。
6 結(jié)論
該系統(tǒng)軟件設(shè)計中,成功編譯并仿真VHDL源程序,且對仿真圖進行合理分析。在硬件實驗過程中,對VHDL源程序進行成功下載,所得實驗結(jié)果與軟件仿真結(jié)果完全相符,從而證明電梯運行控制器的設(shè)計滿足系統(tǒng)功能要求。
評論