EDA電梯控制器課程設(shè)計報告_第1頁
EDA電梯控制器課程設(shè)計報告_第2頁
EDA電梯控制器課程設(shè)計報告_第3頁
EDA電梯控制器課程設(shè)計報告_第4頁
EDA電梯控制器課程設(shè)計報告_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、成 績 評 定 表學(xué)生姓名田剛林班級學(xué)號1003030426專 業(yè)電子信息工程課程設(shè)計題目電梯控制器評語組長簽字:成績?nèi)掌?20 年 月 日課程設(shè)計任務(wù)書學(xué) 院信息科學(xué)與工程學(xué)院專 業(yè)電子信息工程學(xué)生姓名田剛林班級學(xué)號1003030426課程設(shè)計題目 電梯控制器實踐教學(xué)要求與任務(wù): 利用EDA設(shè)計方法設(shè)計電梯控制器,設(shè)計平臺采用MAXPLUSII或QUARTUS,設(shè)計語言采用VHDL,具體功能如下(1) 每層電梯入口處設(shè)有上下請求開關(guān)(2) 設(shè)有電梯所處位置指示裝置及電梯運行模式(上升或下降)指示裝置(3) 電梯到達有停站請求的樓層后,經(jīng)過1S電梯門打開,開門指示燈亮,開門4S后,電梯門關(guān)閉(

2、開門指示燈滅),電梯繼續(xù)運行,并能響應(yīng)提前關(guān)門延時關(guān)門.(4)能記憶電梯內(nèi)外的所有請求信號,并按照電梯運行規(guī)則次序響應(yīng),每個請求信號保留至執(zhí)行后消除。(5)電梯初始狀態(tài)為一層開門.(6)具有超載報警和故障報警的功能.工作計劃與進度安排:課程設(shè)計時間為10天(2周) 1、調(diào)研、查資料1天。 2、總體方案設(shè)計2天。 3、代碼設(shè)計與調(diào)試5天。 4、撰寫報告1天。 5、驗收1天。指導(dǎo)教師: 201 年 月 日專業(yè)負責(zé)人:201 年 月 日學(xué)院教學(xué)副院長:201 年 月 日 摘要隨著EDA技術(shù)發(fā)展和應(yīng)用領(lǐng)域的擴大與深入,EDA技術(shù)在電子信息、通訊、自動控制及計算機應(yīng)用等領(lǐng)域的重要性突出。隨著技術(shù)市場與人

3、才市場對EDA的需求不斷提高,產(chǎn)品的市場需求和技術(shù)市場的要求也必然會反映到教學(xué)領(lǐng)域和科研領(lǐng)域中來。因此學(xué)好EDA技術(shù)對我們有很大的益處。電梯行業(yè)也隨著科技的發(fā)展,不斷地出現(xiàn)在人們生活的各個場所,因此,對電梯控制器的設(shè)計是一個很實用的例子,對我們掌握EDA技術(shù)的應(yīng)用也有很大的幫助。 關(guān)鍵詞:EDA技術(shù) 電子信息 通信 自動控制 目錄1、 設(shè)計要求概述.1 1.1 設(shè)計要求.1 1.2 總體設(shè)計思路.1 1.3 具體設(shè)計思路.2 2、功能模塊整體結(jié)構(gòu)設(shè)計.2 2.1 電梯控制器功能.2 2.2 電梯控制器設(shè)計.3 3、各模塊詳細設(shè)計.3 3.1底層模塊設(shè)計.3 3.2 頂層模塊設(shè)計.64、 邏輯仿

4、真與時序仿真的實現(xiàn).12 4.1 底層設(shè)計模塊的方針及參數(shù)設(shè)置.12 4.2 電梯分層控制模塊的仿真及參數(shù)設(shè)置.13 4.3電梯主控制器仿真波形.155、設(shè)計結(jié)論.15 5.1 設(shè)計功能實現(xiàn)情況.15 5.2 設(shè)計心得.16 6、參考文獻 .1717 / 22文檔可自由編輯打印1 電梯控制器的設(shè)計要求與設(shè)計思路 1.1 設(shè)計要求十層電梯控制器的功能電梯控制器是控制電梯按顧客要求自動上下的裝置。設(shè)計要求如下:(1)每層電梯入口處設(shè)有上下請求開關(guān),電梯內(nèi)設(shè)有顧客到達層次的停站請求開關(guān)。(2)設(shè)有電梯入口處位置指示裝置及電梯運行模式(上升或下降)指示裝置。(3)電梯每秒升(降)一層樓(4)電梯到達有

5、停站請求的樓層,經(jīng)過1秒電梯門打開,開門指示燈亮,開門4秒后,電梯門關(guān)閉(開門指示燈滅),電梯繼續(xù)進行,直至執(zhí)行完最后一個請求信號后停留在當前層。(5)能記憶電梯內(nèi)外所有請求,并按照電梯運行規(guī)則按順序響應(yīng),每個請求信號保留至執(zhí)行后消除。(6)電梯運行規(guī)則當電梯處于上升模式時,只響應(yīng)比電梯所在位置高的上樓請求信號,由下而上逐個執(zhí)行,直到最后一個上樓請求執(zhí)行完畢;如果高層有下樓請求,則直接升到有下樓請求的最高樓層,然后進入下降模式。當電梯處于下降模式時則與上升模式相反,只響應(yīng)比電梯所在位置低的下樓請求信號,由下而下逐個執(zhí)行,直到最后一個下樓請求執(zhí)行完畢;如果低層有上樓請求,則直接降到有上樓請求的最

6、低樓層,然后進入上升模式。(7)電梯初始狀態(tài)為一層開門狀態(tài) 1.2 總體設(shè)計思路實驗?zāi)M生活中電梯運動控制,電梯總共十層,最簡單的控制思想如下:(1)采集用戶呼叫樓層,并放入相應(yīng)的記憶單元中。(2)不考慮電梯轎廂所在樓層。若有用戶呼叫,電梯上行直到達到用戶呼叫最大層,再下行直到到達最低層,由此構(gòu)成一次行程。(3)每完成一次行程,檢測是否所用用戶呼叫均已響應(yīng)完畢。如果沒有,電梯繼續(xù)運行,直到響應(yīng)完所有用戶呼叫。否則,電梯停止運行。其中用戶請求包括外部請求和內(nèi)部請求。有外部升降請求信號需點亮相應(yīng)的外部請求指示燈,內(nèi)部升降請求信號同外呼。(4)根據(jù)電梯所在樓層,七段數(shù)碼管顯示樓層數(shù)。(5)根據(jù)用戶運

7、行方向,點亮相應(yīng)升降指示燈。(6)當電梯運行到有相應(yīng)外部呼叫或內(nèi)部呼叫樓層時,電梯停止運行,滅掉相應(yīng)的呼叫顯示燈,電梯開關(guān)門后,繼續(xù)運行。 1.3 具體設(shè)計思路電梯控制可以通過多種方法進行設(shè)計,其中采用狀態(tài)機來實現(xiàn),思路比較清晰??梢詫㈦娞莸却拿棵腌娨约伴_門,關(guān)門都看成一個獨立的狀態(tài)。由于電梯又是每秒上升或下降一層,所以就可以通過一個統(tǒng)一的一秒為周期的時鐘來觸發(fā)狀態(tài)機。根據(jù)電梯的實際工作情況,可以把狀態(tài)機設(shè)置10個狀態(tài),分別是“電梯停留在1層”,“開門”,“關(guān)門”,“開門等待第一秒”,“開門等待第二秒”,“開門等待第三秒”,“開門等待第四秒”,“上升”,“下降”和“停止”狀態(tài)。各個狀態(tài)之間的

8、轉(zhuǎn)換條件可以由上面的設(shè)計要求所決定。2. 功能模塊整體結(jié)構(gòu)設(shè)計 2.1 電梯控制器功能本電梯控制器分為主控制器和分控制器。主控制器是電梯內(nèi)部的控制器,每個樓層有一個分控制器。主控制器的功能:(1)完成10個樓層多用戶的載客服務(wù)控制。(2)電梯運行時顯示電梯的運行方向和所在的樓層。(3)當電梯到達選擇的樓層時,電梯自動開門。(4)具有提前關(guān)電梯門和延時關(guān)電梯門的功能。(5)響應(yīng)分控制器的有效請求,如果到達有請求的樓層,電梯自動開門。分控制器的功能:(1)顯示電梯的運行狀態(tài)和所在的樓層。(2)顯示乘客的上升和下降請求。分控制器的有效請求原則:(1)電梯處于等待狀態(tài)時,上升和下降請求都響應(yīng)。(2)電

9、梯處于上升狀態(tài)時,有上升請求的分控制器所在樓層數(shù)大于電梯所在的樓層數(shù)。(3)電梯處于下降狀態(tài)時,有下降請求的分控制器所在樓層數(shù)小于電梯所在的樓層數(shù)。2.2 電梯控制器設(shè)計控制器的功能模塊如圖2.1所示,包括主控制器、分控制器、樓層選擇器、狀態(tài)顯示器、譯碼器和樓層顯示器。乘客在電梯中選擇所要到達的樓層,通過主控制器的處理,電梯開始運行,狀態(tài)顯示器顯示電梯的運行狀態(tài),電梯所在的樓層數(shù)通過譯碼器譯碼從而在樓層顯示器中顯示。分控制器把有效的請求傳給主控的樓層數(shù)。由于分控制器相對簡單很多,所以主控制器是核心部分。狀態(tài)顯示器主控制器分控制器譯碼器電梯位置顯示器樓層選擇器圖2.1 控制器的功能模塊圖3. 各

10、模塊詳細設(shè)計 3.1底層模塊設(shè)計及參數(shù)設(shè)置電梯控制計時模塊的源程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity counter isport(clk,reset,clr,en:in std_logic; q:out integer range 0 to 8);end;architecture art of counter issignal temp:integer range 0 to 8;beginprocess(c

11、lk,reset,clr,en)beginif(clr=1)then temp=0;elsif(rising_edge(clk)then if(reset=1)then temp=5; elsif(en=1)then if temp=5 then temp=temp; else temp=temp+1; end if; end if; end if; end process; q=temp;end art;電梯每層的分控制器源程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use iee

12、e.std_logic_arith.all;entity layercontrol isport(clk,switch,upkey,downkey,opendoor:in std_logic;qin: in std_logic_vector(10 downto 1);ur,dr:out std_logic;disp1:out std_logic_vector(3 downto 0);end;architecture art of layercontrol isconstant id:std_logic_vector(10 downto 1):=0000001000;signal upkey_d

13、ata:std_logic;signal downkey_data:std_logic;signal opendoor1:std_logic;signal opendoor2:std_logic;signal req_opendoor:std_logic;signal req_upr:std_logic;signal req_downr:std_logic;signal disp:std_logic_vector(3 downto 0);beginprocess(clk)begin if rising_edge(clk)thenupkey_data=upkey; downkey_data=do

14、wnkey;opendoor2=opendoor1;opendoor1=opendoor; end if;end process;req_opendoor=(opendoor1 and not(opendoor2);process(switch,clk)begin if(switch=0)thenreq_upr=0;req_downr=0; elsif(rising_edge(clk)then if(req_opendoor=1 and qin=id)then req_upr=0; req_downr=0; elsif(upkey=1 and upkey_data=0)then req_upr

15、=1; elsif(downkey=1 and downkey_data=0)then req_downr=1; end if; end if; end process;ur=req_upr;dr=req_downr; with qin select disp=0001 when 0000000001, 0010 when 0000000010, 0011 when 0000000100, 0100 when 0000001000, 0101 when 0000010000, 0110 when 0000100000, 0111 when 0001000000, 1000 when 00100

16、00000, 1001 when 0100000000, 1010 when 1000000000, 0000 when others;disp1=disp;end art;3.2頂層模塊設(shè)計10層全自動電梯控制器頂層模塊源程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity elevator10 is port(clk:in std_logic; -時鐘信號 switch:in std_logic; -電梯電源開關(guān),高電

17、平時電梯正常工作 close:in std_logic; -強制關(guān)門信號,高電平時電梯門立即關(guān)閉delay:in std_logic; -延時信號sel:in std_logic_vector(10 downto 1); -樓層選擇信號 uplift:in std_logic_vector(10 downto 1); -電梯上升請求輸入信號 downlift:in std_logic_vector(10 downto 1); -電梯下降請求輸入信號 qout:out std_logic_vector(10 downto 1); -電梯狀態(tài)顯示輸出信號 opendoor:out std_logi

18、c); -強制開門信號end;architecture art of elevator10 iscomponent counterport(clk,reset,clr,en:in std_logic; q:out integer range 0 to 8);end component;type state_type is(up,m_up,down,m_down,stop,pause);signal state:state_type; -電梯的各種狀態(tài)signal clk1:std_logic; -1Hz時鐘信號signal clk4:std_logic; -4Hz時鐘信號signal req_

19、up:std_logic; -上升請求信號signal req_down:std_logic; -下降請求信號signal runen:std_logic; -電梯運行使能signal runclr:std_logic; -電梯運行復(fù)位signal stopen0:std_logic; -電梯停止使能signal stopen1:std_logic;signal stopclr:std_logic; -電梯停止復(fù)位signal req_upr:std_logic_vector(10 downto 1); -上升請求寄存器信號signal req_downr:std_logic_vector(1

20、0 downto 1); -下降請求寄存器信號signal position:std_logic_vector(10 downto 1); -電梯當前位置信號signal uplift_data:std_logic_vector(10 downto 1); -上升樓層數(shù)據(jù)顯示信號signal downlift_data:std_logic_vector(10 downto 1); -下降樓層數(shù)據(jù)顯示信號signal sel_data:std_logic_vector(10 downto 1); -選擇樓層數(shù)據(jù)顯示信號signal runtime: integer range 0 to 8; -

21、電梯運行時間signal opentime:integer range 0 to 8; -電梯開門時間signal openagain:std_logic; -電梯再次開門信號signal voidreset:std_logic; -電梯超載復(fù)位信號beginqout=position;p0:process(clk) variable cnt0:integer range 0 to 4; begin if rising_edge(clk)then if cnt0=4 then clk4=1;cnt0:=0; else clk4=0;cnt0:=cnt0+1; end if; end if;en

22、d process;p1:process(clk4) variable cnt1:integer range 0 to 3; begin if rising_edge(clk4)then if cnt1=3 then clk1=1;cnt1:=0; else clk1=0;cnt1:=cnt1+1; end if; end if;end process;p2:process(switch,clk,uplift,downlift) begin if rising_edge(clk)then uplift_data=uplift; downlift_data=downlift; sel_data=

23、sel; if state=pause then req_upr=req_upr and not(position); req_downruplift)then req_downrdownlift)then req_downr=(req_downr or downlift); elsif(uplift/=uplift_data and req_down/=1 and positionuplift)then req_upr=(req_upr or uplift); elsif(downlift/=downlift_data and req_down/=1 and positiondownlift

24、)then req_upr=(req_upr or downlift); elsif(sel/=sel_data)then if(selposition and req_up/=1)then req_downrposition and req_down/=1)then req_upr=(req_upr or sel); end if; end if; elsif(state=up or state=m_up)then if(uplift/=uplift_data and req_down/=1 and positionuplift)then req_uprdownlift)then req_d

25、ownr=(req_downr or downlift); end if; end if; end if;end process; req_up=1 when req_upr/=0000000000 else 0; req_down=1 when req_downr/=0000000000else 0;p3:process(switch,clk) begin if(switch=0)then state=stop;opendoor=0;openagainstate if(opentime=0 and openagain=0 and (req_up=1or req_down=1) or(upli

26、ft/=uplift_data and position=uplift) or(downlift/=downlift_data and position=downlift)then opendoor=1;stopclr=0;stopen1=1; end if; if(opentime=3 or (openagain=1 and (req_up=1 or req_down=1)then if(req_up=1)then state=up;opendoor=0;stopen1=0;stopclr=1;openagain=0; elsif(req_down=1)then state=down;ope

27、ndoor=0;stopen1=0;stopclr=1;openagain=0; else state=pause;opendoor=0;stopen1=0;stopclr=1;openagain if(runtime=4)then runen=0;runclr=1; if(position=(req_upr and position)then state=pause; else state=m_up; end if; else runclr=0;runen state if(runtime=4)then runen=0;runclr=1; if(position=(req_downr and

28、 position)then state=pause; else state=m_down; end if; else runclr=0;runenstate=down; end case; end if;end process;p4:process(switch,clk4,delay) begin if(switch=0)then position=0000000001; -電梯電源低電平時,電梯停在第一層 elsif(rising_edge(clk4)then stopen0=(not(delay)and stopen1); if(runtime=3) then if(state=up)then position=(position(9 downto 1)&0); elsif(state=down)thenposition=(0&position(10 downto 2); end if; end if; end if;end process;voidresetclk4,reset=voidreset,clr=runclr,en=runen,q=runtime);door_time:counter por

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論