張志霞,陳宇軒,劉艷昌
(1.河南科技學院,河南 新鄉(xiāng) 453003;2.電子科技大學,四川 成都 610054)
基于FPGA的電梯控制系統(tǒng)設計與實現(xiàn)
張志霞1,陳宇軒2,劉艷昌1
(1.河南科技學院,河南 新鄉(xiāng) 453003;2.電子科技大學,四川 成都 610054)
針對傳統(tǒng)單片機、PLC等方式設計的電梯控制系統(tǒng)外圍電路復雜、性能不穩(wěn)等缺點,提出一種基于FPGA的電梯控制系統(tǒng)的設計與實現(xiàn)方案.系統(tǒng)采用Altera公司的Cyclone II系列FPGA芯片EP2C8Q208C8作為主控芯片,利用自頂向下的模塊化編程思想和Verilog HDL編程語言設計了一個6層電梯控制系統(tǒng).經(jīng)軟件仿真和硬件實現(xiàn),結果表明該控制系統(tǒng)能夠滿足設計要求,并能擴展到多層電梯,具有很強的適應性和實用性.
FPGA;電梯控制系統(tǒng);Verilog HDL;控制模塊
針對傳統(tǒng)電梯控制系統(tǒng)中的PLC、單板機、單片機、單微機、多微機和人工智能等控制方式存在電路設計復雜、芯片使用多、出現(xiàn)問題不易查找、功能擴展困難、設計不靈活、效率低等問題[1-2],使用FPGA器件作為主控制器芯片,利用自頂向下的模塊化編程思想和verilog HDL編程語言設計了一個6層電梯控制系統(tǒng).該系統(tǒng)具有信號處理速度快、設計靈活、維護方便、升級容易、可在線編程、開發(fā)周期短、設計成本低等優(yōu)點.另外,若對電梯控制模塊和按鍵模塊程序稍加修改,則系統(tǒng)可實現(xiàn)任意樓層的電梯控制.
1.1 系統(tǒng)功能要求
系統(tǒng)實現(xiàn)的功能要求如下:
(1)各層電梯外部設有上升下降請求按鍵,電梯內(nèi)部設有乘客所要到達1~6層樓的數(shù)字按鍵,電梯內(nèi)外所在樓層數(shù)分別用一位數(shù)碼管來顯示,電梯運行狀態(tài)分別用一塊5×7點陣來表示.
(2)能夠存儲并指示電梯內(nèi)外所有請求信號,并按照方向優(yōu)先原則到達離電梯最近的樓層后,消除該請求信號,該層指示燈點亮,延遲1 s后,開門指示燈點亮電梯門自動打開,門開后等待5 s開門指示燈熄滅電梯門自動關閉,繼續(xù)執(zhí)行后面樓層請求信號.
(3)電梯停止后再啟動運行規(guī)則為:首先考慮正在運行方向上是否有請求,有則繼續(xù)運行,其次考慮反方向上是否有請求,有則轉向運行,若都沒有請求信號,則電梯停到當前樓層,處于等待狀態(tài).
(4)電梯具有超載報警和故障提示功能.
1.2 系統(tǒng)結構設計
由于FPGA處理速度快,具有靜態(tài)可重復編程和動態(tài)在系統(tǒng)重構的特性,使得硬件的功能可以像軟件一樣通過編程來修改[3-5],所以本文電梯控制器的硬件設計主要由FPGA控制器、各輸入信號檢測電路、各輸出信號控制電路、顯示驅動電路和其他電路組成.系統(tǒng)硬件結構如圖1所示.
圖1 系統(tǒng)結構Fig.1 System structure
控制器設計使用Altera公司Cyclone II系列的EP2C8Q208C芯片,以Quartus II為軟件開發(fā)平臺[6-7],采用自上而下的設計方法,并運用Verilog HDL語言對各底層模塊進行設計,實現(xiàn)了以軟件替代硬件的模塊化設計思想,以便程序的維護和升級.
2.1 底層各模塊設計與實現(xiàn)
控制器底層模塊主要由分頻模塊、電梯控制模塊、按鍵消抖模塊、按鍵處理模塊、數(shù)碼管驅動模塊和點陣驅動模塊等組成.
2.1.1 分頻模塊設計 分頻模塊的主要功能是把系統(tǒng)輸入的50 MHz的時鐘信號經(jīng)分頻后變?yōu)? Hz的脈沖信號,作為控制模塊的狀態(tài)轉移時鐘信號.在Quartus II環(huán)境下,利用Verilog HDL語言編程,實現(xiàn)分頻功能,并生成目標文件,編譯驗證其正確性,然后生成分頻模塊的元件符號.創(chuàng)建的分頻模塊電路符號如圖2所示.
圖2 分頻模塊電路符號Fig.2 Frequency module circuit symbol
2.1.2 控制模塊設計 由于電梯控制模塊是該控制系統(tǒng)的核心,主要實現(xiàn)對各存儲信號進行比較、判斷,對電梯運行情況進行處理來驅動系統(tǒng)的各狀態(tài)流轉,并控制其輸出顯示.所以系統(tǒng)采用有限狀態(tài)機來設計電梯控制器,此算法簡單,編程思路清晰,具體狀態(tài)定義如下:
S0:WAIT表示等待狀態(tài),電梯處于運行停止后的某一樓層;
S1:UP表示上升狀態(tài),電梯處于上升過程;
S2:UPSTOP表示上升停止狀態(tài),電梯處于有效請求樓層并停止;
S3:OPENDOOR表示開門狀態(tài),電梯執(zhí)行到某一樓層停止后處于開門狀態(tài);
S4:CLOSEDOOR表示關門狀態(tài),電梯開門5 s后,自動關門;
S5:DOWN表示下降狀態(tài),電梯處于下降過程;
S6:DOWNSTOP表示下降停止狀態(tài),電梯處于有效請求樓層并停止.
各狀態(tài)在滿足一定條件下轉換,其狀態(tài)轉化如圖3所示.
圖3 電梯控制器狀態(tài)轉換Fig.3 State chart of elevator controller
圖3中的狀態(tài)轉換條件如表1所示.
表1 電梯控制器狀態(tài)轉換條件Tab.1 State change condition of elevator controller
表1中,up_all可以實時地對各個向上請求信號合并,由于6樓為頂層,故將向上請求信號第6位置0.down_all可以實時地對各個向下請求信號合并,由于1樓為低層,故將向下請求信號第1位置0.request_all可以將各??空埱笮盘枌崟r地合并.
根據(jù)上述算法,在Quartus II環(huán)境下,利用Verilog HDL語言編程,實現(xiàn)電梯控制功能,并生成目標文件,編譯驗證其正確性,然后生成電梯控制模塊的元件符號.創(chuàng)建的電梯控制模塊電路符號如圖4所示.
圖4 電梯控制模塊電路符號Fig.4 Elevator control module circuit symbol
圖4中clk為各狀態(tài)轉移時鐘1 Hz;cp_50 M為全局時鐘50 MHz;reset為復位信號,低電平有效,使當前樓層停在第一層且處于等待狀態(tài);forbid為電梯強制禁止運行信號,高電平有效;call_up_1~5分別為電梯外部1~5樓上升請求信號按鍵,高電平有效,因為總共6層,所以6樓不設上升請求信號按鍵;call_down_2~6分別電梯外部2~6樓下降請求信號按鍵,高電平有效,因為沒有負樓層,所以1樓不設下降請求信號按鍵;request_1~6分別為電梯內(nèi)部1~6樓的??空埱笮盘柊存I;LiftState[6..0]為電梯7種輸出狀態(tài);Pos[5..0]為輸出當前電梯所在樓層;updn為電梯上升和下降狀態(tài),高電平為上升,低電平為下降;JT_Flag[2..0]為點陣圖形控制信號輸出,其中取值3'b000~3'b100分別代表電梯等待狀態(tài)時箭頭圖形滅、電梯上升及上升停止狀態(tài)時箭頭圖形向上且滾動、電梯下降及下降停止狀態(tài)時箭頭圖形朝下且滾動、電梯在上升狀態(tài)開門時箭頭向上且靜止、電梯在下降狀態(tài)開門時箭頭朝下且靜止;DoorFlag為電梯開、關門控制信號,其中“1”代表開門,“0”代表關門.
2.1.3 按鍵消抖模塊設計 由于電梯的請求信號是通過按鍵產(chǎn)生,但是在按鍵請求的過程中會存在物理抖動現(xiàn)象,因此,本系統(tǒng)設計了按鍵消抖模塊.在Quartus II環(huán)境下創(chuàng)建的按鍵消抖模塊的電路符號如圖5所示.其中clk為50MHz,keyin1~keyin6為電梯內(nèi)部1~6層按鍵,key_out1~key_out6為經(jīng)軟件消抖處理的輸出信號.
圖5 按鍵消抖模塊電路符號Fig.5 Press-key shaking disappears module circuit symbol
2.1.4 按鍵處理模塊設計該模塊主要實現(xiàn)對電梯各請求信號進行存儲、并按照方向優(yōu)先、循環(huán)執(zhí)行的原則,在各請求信號中提取離電梯下一站最近的請求信號并輸出.其中keyin1~keyin6為電梯內(nèi)部1~6層按鍵經(jīng)消抖處理后的輸出信號,其對應按鍵的高電平有效;keyout1~keyout6為對應請求信號經(jīng)過算法處理后的輸出信號,高電平代表有請求,低電平代表無請求;up_down_kongzhi為電梯上升和下降運行狀態(tài)控制信號,1代表上升,0代表下降.圖6為Quartus II環(huán)境下創(chuàng)建的按鍵處理模塊電路符號.
圖6 按鍵處理模塊電路符號Fig.6 Press-key processing module circuit symbol
2.1.5 數(shù)碼管驅動模塊設計 該模塊用來驅動數(shù)碼管顯示當前樓層數(shù).Quartus II環(huán)境下創(chuàng)建的數(shù)碼管驅動模塊電路符號如圖7所示.其中a位數(shù)碼管位選信號,b[6..0]數(shù)碼管段選信號.
圖7 數(shù)碼管驅動模塊電路符號Fig.7 Nixie tube the driver module circuit symbol
2.1.6 點陣驅動模塊設計 該模塊采用5*7點陣,用來對電梯當前運行狀態(tài)進行顯示.Quartus II環(huán)境下創(chuàng)建的點陣驅動模塊電路符號如圖8所示.其中,JT_Flag[2..0]為點陣圖形控制輸入信號;hang[6..0]為點陣的行選信號輸出;lie[4..0]為點陣的列選信號輸出.
圖8 點陣驅動模塊電路符號Fig.7 Dot-Matrix the driver module circuit symbol
2.2 頂層電路設計與實現(xiàn)
2.2.1 頂層電路設計 將上文所創(chuàng)建的各底層模塊添加到原理圖中,并對各個端口標記網(wǎng)絡連接符,即可實現(xiàn)頂層電路設計原理圖,如圖9所示.
圖9 電梯控制系統(tǒng)頂層電路設計Fig.9 Top-level circuit design of elevator control system
2.2.2 頂層電路軟件仿真 對系統(tǒng)設計的電梯控制系統(tǒng)的頂層電路以10 ps代替1 s進行仿真,并假設每樓層間運行時間為1 s,電梯的初始狀態(tài)為處于1樓關門等待狀態(tài),要求當電梯外部同時出現(xiàn)5樓和6樓的下樓按鍵請求信號時,電梯控制器根據(jù)方向優(yōu)先和循環(huán)執(zhí)行原則,先上升到最高請求層6樓并執(zhí)行上升后停1s開門、開門后等待5s、關門后等1s,然后反向下降到5樓后,執(zhí)行停1 s開門、開門后等待5 s、關門后等1 s繼續(xù)下降,最終回到目標層1樓.仿真波形如圖10所示.由仿真波形圖10可以看出,電梯輸出樓層pos[5..0]、電梯狀態(tài)LiftState[6..0]、電梯運行方向標致輸出JT_Flag[2..0]、電梯門開、關門狀態(tài)DoorFlag和電梯上升、下降狀態(tài)updn的變化及運行完全協(xié)調(diào)一致,驗證系統(tǒng)設計的正確性.
圖10 電梯控制系統(tǒng)程序仿真Fig.10 Procedure simulation chart of elevator control system
2.2.3 頂層電路硬件驗證 將頂層電路設計文件通過JTAG模式下載到ASK2CB型FPGA開發(fā)板的核心芯片EP2C8Q208C8中,經(jīng)過多次各樓層按鍵請求實驗,整個系統(tǒng)運行正常,性能良好.
圖11 電梯控制系統(tǒng)的硬件實現(xiàn)Fig.11 Hardware Implementation of elevator control system
圖11為電梯控制系統(tǒng)獲得4樓發(fā)出向下請求信號后,電梯處于該層開門等待狀態(tài)時的硬件實現(xiàn)圖.圖中數(shù)碼管顯示為4表明電梯位于第4層,點陣圖標箭頭向下且被靜止點亮表明電梯處于下降且等待狀態(tài),上面的第一個LED燈點亮表示電梯處于開門狀態(tài).
本文設計了一個6層電梯控制系統(tǒng).該系統(tǒng)采用方向優(yōu)先控制方式,能有效縮短響應時間,提高用戶請求率.軟件仿真和硬件驗證表明,電梯控制系統(tǒng)能夠較好地控制電梯完成6層樓的載客服務,可靠性高,只要稍加修改采集模塊和主控器模塊中的參數(shù)配置就可實現(xiàn)任意樓層的電梯控制.系統(tǒng)可拓展性好、靈活性強、工作效率高、體積小、成本低,具有廣闊的應用前景.
[1] 張漢杰.現(xiàn)代電梯控制技術[M].哈爾濱:哈爾濱工業(yè)大學出版社,2006.
[2] 劉巖飛.基于Altera FPGA/CPLD的電子系統(tǒng)設計與工程實踐[M].北京:人民郵電出版社,2009.
[3] 華清遠見嵌入式培訓中心.FPGA應用開發(fā)入門與典型實例[M].北京:人民郵電出版社,2008:148-160.
[4] 高迎慧,侯忠霞,楊成林.基于FPGA的自動升降電梯控制器設計[J].遼寧工程技術大學學報,2007,25(2):242-244.
[5] 田紅光.FPGA在電梯控制系統(tǒng)中的應用[J].微型機與應用,2011,30(24):15-17.
[6] 夏宇聞.Verilog數(shù)字系統(tǒng)設計教程[M].2版.北京:北京航空航天大學出版社,2008.
[7] 羅杰.Verilog HDL與數(shù)字ASIC設計基礎[M].武漢:華中科技大學出版社,2008:188-196.
(責任編輯:盧奇)
Design and implementation of elevator control systembased on FPGA
Zhang Zhixia1,Chen Yuxuan2,Liu Yanchang1
(1.Henan Institute of Science and Technology,Xinxiang 453003,China;2.University of Electronic Science and Technology of China,Chengdu 610054,China)
A newFPGA-based elevator control systemwas designed and implemented in order to overcome the defects of traditional single-chip microcomputer,PLC-based control mode,such as the complexity of peripheral circuit and the instability of the performance.Using the FPGA chip EP2C8Q208C8 in Cyclone II series of Altera company as the main control chip,the systemdesigned a six-floor-elevator control systemwith the modular design method,and the Verilog HDL hardware description language.The software simulation and hardware implemention showed that the control systemcan meet the design requirements,and could extend to multi-floors elevator,and also has strong adaptability and practicality.
FPGA;elevator control system;Verilog HDL;control module
TP386
A
1008-7516(2014)03-0065-07
10.3969/j.issn.1008-7516.2014.03.015
2014-04-20
張志霞(1982-),女,河南平頂山人,碩士,助教.主要從事智能信號和圖像處理技術研究.