




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、VHDL數字系統設計與測試實驗報告基于VHDL的電梯控制系統設計一、設計背景及說明隨著高層建筑的不斷涌現,對電梯的需求也與日俱增,電梯已經成為我們日常生活中不可缺少的部分,穩定可靠性高的電梯系統成為了電梯領域的新需求。現在基于VHDL硬件描述語言,用FPGA為控制芯片控制完成一個簡單的6層樓的電梯控制系統設計。我們常見的電梯控制系統功能都包括:上升請求、下降請求、電梯門控、樓層顯示燈、電梯運動方向顯示、超載、報警、電梯內請求信號等。根據這些常用的信號設計一個電梯系統,實現所要求的功能。控制方式的選擇:1) 內部請求優先控制方式內部請求控制方式類似于出租車的工作方式,先將車上的人送至目地,再去載
2、客。作為通用型電梯應該服務于大多數人,必須考慮電梯對內外請求的響應。在內部請求優先控制方式中,當電梯外部人的請求和電梯內部人的請求沖突時,外部人的請求信號可能被長時間忽略,因為它不能作為通用型電梯的設計方案。2) 單層層停控制方案單層層停控制方式等同于火車運行方式,遇到站即停止、開門。這種方案保證所有的人的請求都能得到響應。然而這樣對電梯的效率產生了消極的影響:不必要的等待消耗了大量時間,而且電梯的運作與用戶的請求無關,當無請求時電梯也照常跑空車,浪費了大量的電能。對于用戶而言這種控制方式的請求響應時間也不是很快,因而也不是理想的電梯控制設計方案。3) 方向優先控制式方式方案方向優先控制是指電
3、梯運行到某一層樓時,先考慮這一層樓是否有請求:有則停止;無則繼續上升或者下降。停止后再啟動時,考慮上方或者下方是否有請求,有則繼續前進,無則停止。檢測后方是否有請求,有請求則轉向運行,無請求則維持停止狀態。這種運作方式下,電梯對用戶的請求相應率為100%,而且響應的時間較短。方向優先控制方式的效率遠遠大于單向層層停等控制方式的效率。而且,方向控制方式下,電梯在維持停止狀態的時候可以進入省電模式,又能節省大量的電能。在本設計中采用方向優先控制方式。l 電梯的輸入信號分析電梯的輸入信號分析主要包括外部輸入信號和內部輸入信息的分析。對于電梯外部輸入信號:每一層電梯門外需要有上升請求按鈕和下降請求按鈕
4、,其中一樓電梯門外只有上升請求按鈕,6樓電梯門外只有下降請求按鈕。電梯內部輸入信號包括6個前往樓層按鈕、提前關門按鈕、延時關門按鈕、電梯異常求救按鈕,另外還有超重等警告信號輸入。l 電梯的輸出信號分析:電梯的輸出信號分析也主要包括外部輸出信號和內部輸出信息的分析。對于電梯外部信號包括上升請求按鈕和下降請求按鈕是否被按下指示信號燈、電梯當前所在樓層指示信號、電梯運行方向指示信號。電梯內部輸出信號包括6個前往樓層按鈕是否被按下指示信號、是否超重等告警指示信號、電梯當前所在樓層指示信號、以及電梯運行方向指示信號。l 電梯運行規則分析:當電梯處于上升模式時,只響應比電梯所在位置更高的上樓信號,由下至上
5、依次執行,直到最后一個上樓請求執行完畢,如果高層有下樓請求時,則直接升到有下降請求的最高樓,然后進入下降模式,電梯處于下降模式時,則與上升模式相反。電梯系統框圖如下圖所示:按鍵輸入乘坐電梯者所想要去的樓層,控制電梯門的開關,可編程邏輯芯片接收到信號后進行處理,發送信號給控制電機系統來控制電梯的上升下降等狀態,同時通過LED數碼管顯示所在的樓層,以及電梯的運動狀態。該控制器完成6層電梯的載客服務,而且遵循方向優先原則,并能相應提前關門、延時關門,并且有超載報警和故障報警。同時指示電梯的運行情況以及電梯內外請求信息。二、設計框圖及模塊說明² 設計電梯系統框圖如下圖所示: ² 電
6、梯系統大致包括4個模塊:1) 外部數據采集模塊對外部信號采集、處理要求電梯控制器:實現對外部請求信號的實時、準確采集;準確實時地捕捉達到樓層的信號;有效防止樓層到達信號、外部請求信號的誤判。采用FPGA為系統控制核心,系統時鐘頻率足夠滿足此系統實時采集數據的要求。外部請求信號的輸入形式為按鍵輸入,到達樓層信號來自光敏傳感器,關門中斷信號及超載信號則產生于壓力傳感器。2) 信號存儲模塊電梯控制系統的請求輸入信號有18個(電梯外有6個上升請求和6個下降請求的用戶輸入端口,電梯內有6個請求用戶輸入端口),由于系統對內外請求沒有設置優先級,各樓層的內外請求信號被采集后可先進行運算,再存到存儲器內。要注
7、意的是電梯運行過程中,由于用戶的請求信號的輸入是離散的,而且系統對請求的響應也是離散的,因此請求信號的存儲要新的請求信號不能覆蓋原來的請求信號,只有響應動作完成后才能清除存儲器內對應的請求信號位。3) 基于FPGA的中央處理器模塊中央數據處理模塊是系統的核心,通過對存儲的數據(含請求、到達樓層等信號)進行比較、判斷以驅動系統狀態的流轉。電梯工作過程中共有9種狀態:等待、上升、下降、開門、關門、停止、休眠、超載報警及故障報警狀態。一般情況下電梯的工作始點是第一層,起始狀態是等待狀態,啟動條件是接受上升請求。超載狀態時電梯關門動作取消,同時發出警報,直到警報被清除(看門狗信號有效的條件是一層樓連續
8、發生關門中斷情況超過3次)。本系統由請求信號啟動,運行中每檢測到一個到達樓層信號,再參考原方向信號來決定是否停止,轉向等動作。系統狀態流程圖如下圖所示:4) 信號的輸出、顯示模塊本系統的輸出信號有兩種:一種是電機的升降控制信號(兩位)和開門/關門控制信號;另一種是面向用戶的提示信號(含樓層顯示、方向顯示、已接受請求顯示等)。電機控制信號一般需要兩位,本系統中電機有3種工作狀態:正轉、反轉和停轉狀態。兩位控制信號作為一個三路開關的選通信號,此三路開關選用模擬電子開關。系統的顯示輸出包括數碼管樓層顯示、數碼管請求信號顯示和表征運動方向箭頭指示燈的開關信號。LED七段數碼管顯示部分在前面的作業中已經
9、做了詳細的介紹及說明,在本系統中省略。本系統具有請求信號顯示功能,結合方向顯示,可以減少用戶對同一請求的輸入次數,這樣就延長了電梯按鍵的壽命。三、電梯控制程序設計源代碼及端口說明輸入端口信號說明:clk:時鐘信號,2Hz;clr:清除警報信號,高有效,清除故障報警;c_u1、c_u2、c_u3、c_u4、c_u5:電梯外人的上升請求;c_d2、c_d3、c_d4、c_d5、c_d6:電梯外人的下降請求;deng:關門中斷,用于在需要等待時,讓電梯門一直打開,停止運動;d1、d2、d3、d4、d5、d6:電梯內人的請求信號;full:超載信號,高時表示電梯內的人過多,超載報警;g1、g2、g3、
10、g4、g5、g6:到達樓層信號,數碼管LED將顯示其值;quick:提前關門信號,高有效,當為高時,電梯門馬上關閉;輸出端口信號說明:door1:0:電梯門控信號;led6:0:電梯所在樓層顯示;led_c_u5:0:電梯外人上升請求信號顯示;led_c_d5:0:電梯外人下降請求信號顯示;led_d5:0:電梯內請求信號顯示;alarm:超載警告信號;up:電梯運動狀態顯示,高時表示上升;down:電梯運動狀態顯示,高時表示為下降;ud:電機控制信號,控制電梯的上升下降,“1”表示為上升,“0”表示為下降;wawawa:看門狗報警信號,高時表示故障報警。源代碼如下所示: -library i
11、eee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity dianti is port ( clk : in std_logic; -時鐘信號(頻率為2Hz) full,deng,quick,clr : in std_logic; -超載、關門中斷、提前關門清除報警信號 c_u1,c_u2,c_u3,c_u4,c_u5: in std_logic; -電梯外人的上升請求信號 c_d2,c_d3,c_d4,c_d5,c_d6 : in std_logic;
12、 -電梯外人的下降請求信號 d1,d2,d3,d4,d5,d6 : in std_logic; -電梯內人的請求信號 g1,g2,g3,g4,g5,g6 : in std_logic; -到達樓層信號 door : out std_logic_vector(1 downto 0); -電梯門控制信號 led : out std_logic_vector(6 downto 0); -電梯所在樓層顯示 led_c_u:out std_logic_vector(5 downto 0); -電梯外人上升請求信號顯示 led_c_d:out std_logic_vector(5 downto 0); -
13、電梯外人下降請求信號顯示 led_d : out std_logic_vector(5 downto 0); -電梯內請求信號顯示 wahaha : out std_logic; -看門狗報警信號 ud,alarm : out std_logic; -電梯運動方向顯示,超載警告信號up,down : out std_logic ); -電機控制信號和電梯運動end dianti;architecture behav of dianti issignal d11,d22,d33,d44,d55,d66:std_logic; -電梯內人請求信號寄存信號signal c_u11,c_u22,c_u3
14、3,c_u44,c_u55:std_logic; -電梯外人上升請求信號寄存信號signal c_d22,c_d33,c_d44,c_d55,c_d66:std_logic; -電梯外人下降請求信號寄存信號signal q:integer range 0 to 1; -分頻信號signal q1:integer range 0 to 6; -關門延時計數器 signal q2:integer range 0 to 9; -看門狗計數器signal dd,cc_u,cc_d,dd_cc:std_logic_vector(5 downto 0); -電梯內外請求信號寄存器signal opendo
15、or:std_logic; -開門使能信號signal updown:std_logic; -電梯運動方向信號寄存器signal en_up,en_dw:std_logic; -預備上升、預備下降預操作使能信號begincom:process(clk)beginif clk'event and clk='1' then if clr='1' then q1<=0;q2<=0;wahaha<='0' -清除故障報警 elsif full='1' then alarm<='1' q1&l
16、t;=0; -超載報警if q1>=3 then door<="10" else door<="00" end if; elsif q=1 then q<=0;alarm<='0' if q2=3 then wahaha<='1' -故障報警 else if opendoor='1' then door<="10"q1<=0;q2<=0;up<='0'down<='0' -開門操作 elsi
17、f en_up='1' then -上升預操作 if deng='1' then door<="10"q1<=0;q2<=q2+1; -關門中斷 elsif quick='1' then q1<=3; -提前關門 elsif q1=6 then door<="00"updown<='1'up<='1' -關門完畢,電梯進入上升狀態 elsif q1>=3 then door<="01"q1<=q1
18、+1; -電梯進入關門狀態 else q1<=q1+1;door<="00" -電梯進入等待狀態 end if; elsif en_dw='1' then -下降預操作 if deng='1' then door<="10"q1<=0;q2<=q2+1; elsif quick='1' then q1<=3; elsif q1=6 then door<="00"updown<='0'down<='1'
19、elsif q1>=3 then door<="01"q1<=q1+1; else q1<=q1+1;door<="00" end if; end if; if g1='1' then led<="1001111" -電梯到達1樓,數碼管顯示1 if d11='1' or c_u11='1' then d11<='0' c_u11<='0'opendoor<='1'-有當前層的請求,則電
20、梯進入開門狀態 elsif dd_cc>"000001" then en_up<='1' opendoor<='0' -有上升請求,則電梯進入預備上升狀態 elsif dd_cc="000000" then opendoor<='0' -無請求時,電梯停在1樓待機 end if; elsif g2='1' then led<="0010010" -電梯到達2樓,數碼管顯示2 if updown='1' then -電梯前一運動
21、狀態位上升 if d22='1' or c_u22='1' then d22<='0' c_u22<='0' opendoor<='1' -有當前層的請求,則電梯進入開門狀態 elsif dd_cc>"000011" then en_up<='1' opendoor<='0' -有上升請求,則電梯進入預備上升狀態 elsif dd_cc<"000010" then en_dw<='1
22、9; opendoor<='0' -有下降請求,則電梯進入預備下降狀態 end if; -電梯前一運動狀態為下降 elsif d22='1' or c_d22='1' then d22<='0' c_d22<='0'opendoor<='1' -有當前層的請求,則電梯進入開門狀態 elsif dd_cc<"000010" then en_dw<='1' opendoor<='0' -有下降請求,則電梯進入預
23、備下降狀態 elsif dd_cc>"000011" then en_up<='1' opendoor<='0' -有上升請求,則電梯進入預備上升狀態 end if; elsif g3='1' then led<="0000110" -電梯到達3樓,數碼管顯示3 if updown='1' then if d33='1' or c_u33='1' then d33<='0' c_u33<='0'
24、;opendoor<='1' elsif dd_cc>"000111" then en_up<='1' opendoor<='0' elsif dd_cc<"000100" then en_dw<='1' opendoor<='0' end if; elsif d33='1' or c_d33='1' then d33<='0' c_d33<='0' open
25、door<='1' elsif dd_cc<"000100" then en_dw<='1' opendoor<='0' elsif dd_cc>"000111" then en_up<='1' opendoor<='0' end if; elsif g4='1' then led<="1001100" -電梯到達4樓,數碼管顯示4 if updown='1' then if
26、d44='1' or c_u44='1' then d44<='0' c_u44<='0' opendoor<='1' elsif dd_cc>"001111" then en_up<='1' opendoor<='0' elsif dd_cc<"001000" then en_dw<='1' opendoor<='0' end if; elsif d44=&
27、#39;1' or c_d44='1' then d44<='0' c_d44<='0' opendoor<='1' elsif dd_cc<"001000" then en_dw<='1' opendoor<='0' elsif dd_cc>"001111" then en_up<='1' opendoor<='0' end if; elsif g5='1&
28、#39; then led<="0100100" -電梯到達5樓,數碼管顯示5 if updown='1' then if d55='1' or c_u55='1' then d55<='0' c_u55<='0'opendoor<='1' elsif dd_cc>"011111" then en_up<='1' opendoor<='0' elsif dd_cc<"01
29、0000" then en_dw<='1' opendoor<='0' end if; elsif d55='1' or c_d55='1' then d55<='0' c_d55<='0'opendoor<='1' elsif dd_cc<"010000" then en_dw<='1' opendoor<='0' elsif dd_cc>"011111&q
30、uot; then en_up<='1' opendoor<='0' end if; elsif g6='1' then led<="0100000" -電梯到達6樓,數碼管顯示6 if d66='1' or c_d66='1' then d66<='0' c_d66<='0'opendoor<='1' elsif dd_cc<"100000" then en_dw<='1
31、' opendoor<='0' end if; else en_up<='0'en_dw<='0' -電梯進入上升或下降狀態 end if; end if; else q<=1;alarm<='0' -清除超載報警 if d1='1' or d1='0' then d11<=d1; -對電梯內人請求信號進行檢測和寄存 elsif d2='1' or d2='0' then d22<=d2; elsif d3='
32、1' or d3='0' then d33<=d3; elsif d4='1' or d4='0' then d44<=d4; elsif d5='1' or d5='0' then d55<=d5; elsif d6='1' or d6='0' then d66<=d6; end if; if c_u1='1' or c_u1='0' then c_u11<=c_u1; -對電梯外人上升請求信號進行檢測和寄存 e
33、lsif c_u2='1' or c_u2='0' then c_u22<=c_u2; elsif c_u3='1' or c_u3='0' then c_u33<=c_u3; elsif c_u4='1' or c_u4='0' then c_u44<=c_u4; elsif c_u5='1' or c_u5='0' then c_u55<=c_u5; end if; if c_d2='1' or c_d2='0
34、9; then c_d22<=c_d2; -對電梯外人下降請求信號進行檢測和寄存 elsif c_d3='1' or c_d3='0' then c_d33<=c_d3; elsif c_d4='1' or c_d4='0' then c_d44<=c_d4; elsif c_d5='1' or c_d5='0' then c_d55<=c_d5; elsif c_d6='1' or c_d6='0' then c_d66<=c_d6;
35、end if; dd<=d66&d55&d44&d33&d22&d11; -電梯內人請求信號并置 cc_u<='0'&c_u55&c_u44&c_u33&c_u22&c_u11; -電梯外人上升請求信號并置 cc_d<=c_d66&c_d55&c_d44&c_d33&c_d22&'0' -電梯外人下降請求信號并置 dd_cc<=dd or cc_u or cc_d; -電梯內、外人請求信號進行綜合 end if; ud<=updown; -電梯運動狀態顯示 led_d<=dd; -電梯內人請求信號顯示 led_c_u<=cc_u; -電梯外人上升請求信號顯示 led_c_d<=cc_d; -電梯外人下降請求信號顯示end if; end process; end behav;此次電梯控制系統設計使用的是Altera公司的MAX-II,由下資源使用情況圖可見這款芯片足夠滿足本次設計需求。四、仿真結果及說明假設電梯初始狀態在一樓,此時2、3樓電梯外有人要下樓,4樓電梯外有人要上樓,在此后輸入等待、快速關門、超載等信號,觀察仿真圖得出結論:電梯控制程序仿真全圖注:實
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年項目管理真題模擬試題及答案
- 理財中的法律合規性分析試題及答案
- 證券投資生態變化的典型案例考題及答案
- 高效閱讀材料準備2025年注冊會計師考試試題及答案
- 證券從業資格的核心試題及答案
- 完整注冊會計師考試框架試題及答案
- 針對園藝師考試的個性化備考計劃試題及答案
- 2025年內部審計知識試題及答案
- 農業職業經理人考試難點及解答試題及答案
- 油炸食品制造業中的食品安全與產業鏈協同考核試卷
- 【2025版】人教版一年級數學下冊教學工作計劃(含進度表)
- ISO 37001-2025 反賄賂管理體系要求及使用指南(中文版-雷澤佳譯-2025)
- 《第2課 體驗開源硬件與編程工具應用 主題2 認識microbit加速度傳感器及其應用》參考課件
- 第11課《山地回憶》課件-2024-2025學年統編版語文七年級下冊
- 科學防癌預防先行
- DB4403-T 81-2020 綠化遷移技術規范
- 旅游目的地游客滿意度評價體系-深度研究
- 3.4蛋白質工程的原理和應用課件高二下學期生物人教版選擇性必修3
- 合肥經濟技術開發區公開招聘村(居)社區工作者高頻重點提升(共500題)附帶答案詳解
- 藥物生物活性評價-洞察分析
- 企業能源管理的數字化轉型案例
評論
0/150
提交評論