摘 要:介紹了基于VHDL語言設計的電梯控制器,并進行了電路綜合和仿真。該控制器遵循方向優先的原則,提供16個樓層多用戶的載客服務并指示電梯的運行情況。
關鍵詞:VHDL;控制器;EDA;電梯
現代硬件設計運用EDA(Electronic DesignAutomation)技術采用并行工程和“自頂向下”的設計方法,從系統設計入手,在頂層進行層次劃分和結構設計,在功能模塊一級進行仿真、糾錯,并用VHDL,VerilogHDL等硬件描述語言對高層次的系統行為進行描述,在系統一級進行驗證,用邏輯綜合優化工具生成門級邏輯電路的網表,其對應的物理實現可以是印刷電路板或專用集成電路。
VHDL(Very High Speed Integrated CircuitHardware Description Language)即超高速集成電路硬件描述語言,主要用于描述數字系統的行為、結構、功能和接口。本文采用VHDL語言來設計實用電梯控制器,其代碼具有良好的可讀性和易理解性,源程序經Xilinx公司的Foundation軟件仿真,目標器件選用FPGA器件。
1 電梯控制器的功能
本電梯控制器分為主控制器和分控制器。主控制器是電梯內部的控制器,每個樓層有一個分控制器。主控制器的功能:
1)完成16個樓層多用戶的載客服務控制。
2)電梯運行時顯示電梯的運行方向和所在的樓層。
3)當電梯到達選擇的樓層時,電梯自動開門。
4)具有提前關電梯門和延時關電梯門的功能。
5)響應分控制器的有效請求,如果到達有請求的樓層,電梯自動開門。
分控制器的功能:
1)顯示電梯的運行狀態和所在的樓層。
2)顯示乘客的上升和下降請求。
分控制器的有效請求原則:
1)電梯處于等待狀態時,上升和下降請求都響應。
2)電梯處于上升狀態時,有上升請求的分控制器所在樓層數大于電梯所在的樓層數。
3)電梯處于下降狀態時,有下降請求的分控制器所在樓層數小于電梯所在的樓層數。
2 控制器的設計
控制器的功能模塊如圖1所示,包括主控制器、分控制器、樓層選擇器、狀態顯示器、譯碼器和樓層顯示器。乘客在電梯中選擇所要到達的樓層,通過主控制器的處理,電梯開始運行,狀態顯示器顯示電梯的運行狀態,電梯所在的樓層數通過譯碼器譯碼從而在樓層顯示器中顯示。分控制器把有效的請求傳給主控的樓層數。由于分控制器相對簡單很多,所以主控制器是核心部分。
主控制器系統由VHDL語言實現,其輸入輸出端口定義如下:
結構體分為3個進程,分別完成寄存器的置位復位、電梯運行狀態判斷、時序電路及電梯運行樓層變化和響應提前延時請求。程序中定義了以下幾個信號:urr(16 b上升寄存器),drr(16 b的下降寄存器),ur(上升寄存器各位相或),dr(下降寄存器各位相或),let(判斷狀態的使能信號),輸出端口qout,lamp的內部信號lift,ladd,時序內部信號time。
樓層請求寄存器的復位和置位 如果乘客進入電梯后所選的樓層大于所在的樓層,而且電梯處于上升或者是ladd為“01”的等待狀態,則給上升請求寄存器urr相應的位置位。當電梯運行到所在的樓層,在time等于“110”時給該位復位。如果有多個請求則urr相應的位都置位。下降請求寄存器drr原理相似。寄存器urr和drr的各位相或后得到的ur和dr信號作為狀態變化的條件信號。
電梯運行狀態的判斷 分為3個狀態:waitt,upper,down。狀態圖如圖2所示。
當電梯開關switch為“0”時,為等待狀態,狀態指示信號ladd為“00”,switch為“1”時,time為“101”而且使能信號let有效時,進行狀態確定。沒有上升下降請求時也為等待狀態,狀態信號ladd為 “01”;上升狀態時狀態信號ladd為“11”;下降狀態時狀態信號為“10”。
時序電路及電梯運行時樓層變化和提前延時關門功能:根據ladd狀態對所到達的樓層數信號lift做相應的增減。電梯在time信號跳變到“110”時關門,此時設置使能信號let為“1”,當time信號跳變到“010”時,如果電梯狀態信號ladd為“11”而且使能信號let有效時,電梯層數指示器就增加,如果電梯達到了所選擇的樓層,則使能信號復位,電梯門打開。下降原理類似。當電梯處于上升狀態時,如果有上升請求的分控制器所在的樓層數大于電梯所在的樓層數,當電梯運行到相應的樓層數時,電梯開門,讓有請求的乘客進入電梯。分控制器下降請求的原理類似。如果提前開門有效,則等待時間縮短,如果延時信號有效,則等待時間加長。
3 仿真結果
該控制器由VHDL語言實現,在Foundation中進行仿真,仿真結果如圖3所示。電梯在1樓(dir=“0000”)時處于等待狀態,有2個乘客進入電梯,一個到2樓(dir=“0001”),一個到4樓(dir=“0011”),則urr的第2位和第4位置位,urr為“000A”,lamp變成“11”,電梯轉為上升狀態。當電梯到達2樓時,urr的第2位復位變成“0008”,電梯門自動打開,后有提前關門的請求,電梯關門開始運行。電梯到達4樓后urr第4位復位為“0000”,電梯開門讓乘客出去。從圖3可見實現了電梯控制器的設計。
4 結 語
用VHDL硬件描述語言的形式來進行數字系統的設計方便靈活,利用EDA軟件進行編譯優化仿真極大地減少了電路設計時間和可能發生的錯誤,降低了開發成本,這種設計方法必將在未來的數字系統設計中發揮越來越重要的作用。
參考文獻
1]徐志軍,徐光輝.CPLD/FPGA的開發和應用[M].北京:電子工業出版社,2002.
2]曾繁泰,陳美金.VHDL程序設計[M].北京:清華大學出版社,2001.