基于VHDL的三层电梯控制器的标准设计
- 格式:doc
- 大小:1.43 MB
- 文档页数:31
一.实验题目简易二层电梯控制器模拟真实电梯的运行情况,设计制作一个简易电梯控制器控制二层电梯的运行。
基本要求:1、电梯设有一层、二层外部呼叫按钮和内部一层、二层指定按钮(BTN)。
2、利用数码管显示电梯所在楼层,用LED显示电梯运行状态如上行、下行、开门、关门等。
提高要求:1、点阵显示楼层;2、用点阵显示楼层的上下滚动移出移入表示电梯的上行或下行运行方向3、增加为三层电梯控制器二.设计方案及思路设计思路:根据题目要求,我在程序中设计了需要用到的8个外部按钮:f1up,f2up ,f2dn,f3dn,warning,stop1,stop2,stop3,reset,另外还有相应的显示信号,程序利用状态机实现总体的控制,状态中用到了7个状态:(stopon1,dooropen,doorclose,doorwait,up1,down1,stop),状态的主要转换如下:设定复位后初始状态是stopon1,然后状态跳转到doorclose,在接收到相应的请求信号时,做出判断,若请求信号的楼层大于当前所在的楼层,则程序跳转到up1状态,小于则跳转到down1状态,如果请求信号的楼层与当前楼层相同时,则开门进入dooropen 状态,然后到开门延迟状态doorwait,然后再到doorclose状态,上升和下降的过程中判断电梯是否到达指定的楼层,若到达,则程序进入stop状态,然后到开门->延时->关门,进而做判断。
状态转移图如下:各个状态线表示的内容如下: 1初始化2 初始化后电梯进入工作状态,起始是关门状态3 没有任何信号输入时,电梯始终工作在关门状态4 电梯接收到信号,且请求信号大于当前楼层5 电梯上升后到达指定楼层时停止1161092stopon1 dooropenup1stopdoorwait1doorclosedown1 345876 电梯停止后便开门7 延时等待乘客搭乘电梯或者走出电梯 8 等待时间结束后电梯关门9 电梯接收到信号,且请求信号小于当前楼层 10 电梯下降到指定楼层后停止11 电梯接受的信号与当前楼层相同则开门控制原理图:分块设计:程序中主要分了3个模块:分频模块,状态控制,状态显示,其中状态显示分成了信号灯显示部分和点阵显示部分,因为一开始对点阵的显示比较生疏,所以点阵显示模块是后来才在总的程序中加入的。
VHDL数字系统设计与测试实验报告基于VHDL的电梯控制系统设计一、设计背景及说明随着高层建筑的不断涌现,对电梯的需求也与日俱增,电梯已经成为我们日常生活中不可缺少的部分,稳定可靠性高的电梯系统成为了电梯领域的新需求。
现在基于VHDL硬件描述语言,用FPGA为控制芯片控制完成一个简单的6层楼的电梯控制系统设计。
我们常见的电梯控制系统功能都包括:上升请求、下降请求、电梯门控、楼层显示灯、电梯运动方向显示、超载、报警、电梯内请求信号等。
根据这些常用的信号设计一个电梯系统,实现所要求的功能。
控制方式的选择:1)内部请求优先控制方式内部请求控制方式类似于出租车的工作方式,先将车上的人送至目地,再去载客。
作为通用型电梯应该服务于大多数人,必须考虑电梯对内外请求的响应。
在内部请求优先控制方式中,当电梯外部人的请求和电梯内部人的请求冲突时,外部人的请求信号可能被长时间忽略,因为它不能作为通用型电梯的设计方案。
2)单层层停控制方案单层层停控制方式等同于火车运行方式,遇到站即停止、开门。
这种方案保证所有的人的请求都能得到响应。
然而这样对电梯的效率产生了消极的影响:不必要的等待消耗了大量时间,而且电梯的运作与用户的请求无关,当无请求时电梯也照常跑空车,浪费了大量的电能。
对于用户而言这种控制方式的请求响应时间也不是很快,因而也不是理想的电梯控制设计方案。
3)方向优先控制式方式方案方向优先控制是指电梯运行到某一层楼时,先考虑这一层楼是否有请求:有则停止;无则继续上升或者下降。
停止后再启动时,考虑上方或者下方是否有请求,有则继续前进,无则停止。
检测后方是否有请求,有请求则转向运行,无请求则维持停止状态。
这种运作方式下,电梯对用户的请求相应率为100%,而且响应的时间较短。
方向优先控制方式的效率远远大于单向层层停等控制方式的效率。
而且,方向控制方式下,电梯在维持停止状态的时候可以进入省电模式,又能节省大量的电能。
在本设计中采用方向优先控制方式。
library ieee;use lift isport(clk,reset,up1,up2,down2,down3,stop1,stop2,stop3,checkow:in std_logic; --buttons uplight,downlight,stoplight:buffer std_logic_vector(3 downto 1);udmode:buffer std_logic; --0- 电梯处于上升模式,1-电梯处于下降木模式position:buffer integer range 1 to 3; --电梯位置doorlight: out std_logic; --电梯门开关灯loc: out std_logic_vector(6 downto 0); --显示电梯位置ss: buffer integer range 0 to 3; --电梯所处状态--0--上升--1-下降--2停止out_state: out std_logic_vector(6 downto 0);--电梯所处状态--u--上升d--下降--s-停止overweight_light :out std_logic);--超重提醒灯end lift;architecture aaa of lift istype state_type is(stopon1,dooropen,doorclose,wait1,wait2,wait3,wait4,up,down,stop); signal state:state_type:=stopon1;signal clearup,cleardown,buttclk,liftclk:std_logic;signal q,p:integer range 0 to ;component xianshiport(position: in integer range 0 to 9;segment_7: out std_logic_vector(6 downto 0));end component;component upordownport(ss: in integer range 0 to 2 ;segment_7: out std_logic_vector(6 downto 0));end component;beginprocess(clk)--电梯分频进程1sbeginif reset='1' then q<=0;elsif clk'event and clk='1' thenif q= then liftclk<='1';q<=0;--if q=2 then liftclk<='1';q<=0;else liftclk<='0';q<=q+1;end if;end if;end process;process(clk)----电梯按键分频进程==beginif reset='1' then p<=0;elsif clk'event and clk='1' thenif p=9999999 then buttclk<='1';p<=0;--if p=2 then buttclk<='1';p<=0;else buttclk<='0';p<=p+1;end if;end if;end process;cont:process(reset,liftclk)--电梯状态机variable pos :integer range 3 downto 0;beginif reset='1' thenstate<=stopon1;clearup<='0';cleardown<='0';elsif liftclk='1' and liftclk'event thenif checkow='1' then state<=wait1;elsecase state iswhen stopon1=>doorlight<='1';position<=1;pos:=1;state<=wait1;udmode<='0';when wait1=>if checkow='1' then state<=wait1;overweight_light<='1';else state<=wait2; ss<=2;overweight_light<='0';end if;when wait2=>if checkow='1' then state<=wait1;overweight_light<='1';else clearup<='0';cleardown<='0'; state<=wait3;ss<=2;overweight_light<='0';end if;when wait3=>if checkow='1' then state<=wait1;overweight_light<='1';else state<=wait4;ss<=2;overweight_light<='0';end if;when wait4=>if checkow='1' then state<=wait1;overweight_light<='1';else overweight_light<='0';state<=doorclose;ss<=2;end if;when doorclose=> doorlight<='0';ss<=2;if udmode='0' thenif position=3 thenif stoplight="000" and uplight="000" and downlight="000" thenudmode<='1'; state<=doorclose;elsif downlight(3)='1' or stoplight(3)='1' then state<=dooropen;else udmode<='1'; state<=down;end if;elsif position=2 thenif stoplight="000"and uplight="000" and downlight="000"thenudmode<='0';state<=doorclose;elsif uplight(2)='1' or stoplight(2)='1' then state<=dooropen;elsif stoplight(3)='1'or downlight(3)='1' thenudmode<='0'; state<=up;else udmode<='1';state<=down;end if;elsif position=1 thenif stoplight="000" and uplight="000" and downlight="000"thenudmode<='0'; state<=doorclose;elsif uplight(1)='1' or stoplight(1)='1' then state<=dooropen;else udmode<='0'; state<=up;end if;end if;elsif udmode='1' thenif position=1 thenif stoplight="000" and uplight="000"and downlight="000" thenudmode<='0';state<=doorclose;elsif uplight(1)='1' or stoplight(1)='1' then state<=dooropen;else udmode<='0';state<=up;end if;elsif position=2 thenif stoplight="000" and uplight="000"and downlight="000" thenudmode<='1';state<=doorclose;elsif downlight(2)='1' or stoplight(2)='1' then state<=dooropen;elsif stoplight(1)='1'or uplight(1)='1'thenudmode<='1'; state<=down;else udmode<='0';state<=up;end if;elsif position=3 thenif stoplight="000" and uplight="000"and downlight="000" thenudmode<='1';state<=doorclose;elsif downlight(3)='1' or stoplight(3)='1' then state<=dooropen;else udmode<='1';state<=down;end if;end if;end if;when up=> position<=position+1;pos:=pos+1;ss<=0;if pos=2 and stoplight(2)='0' and uplight(2)='0' and (stoplight(3)='1' or downlight(3)='1') then state<=up;else state<=stop;end if;when down=> position<=position-1;pos:=pos-1;ss<=1;if pos=2 and stoplight(2)='0' and uplight(2)='0' and (stoplight(1)='1' or uplight(1)='1') then state<=down;else state<=stop;end if;when stop=>state<=dooropen;when dooropen=>doorlight<='1';ss<=2;if udmode='0' thenif pos<3 and (stoplight(pos)='1' or uplight(pos)='1') then clearup<='1';else clearup<='1';cleardown<='1';end if;elseif pos>1 and (stoplight(pos)='1' or uplight(pos)='1') then cleardown<='1';else clearup<='1';cleardown<='1';end if;end if;state<=wait1;when others=> state<=stopon1;ss<=2;end case;end if;end if;end process cont;butt:process (reset,buttclk)--按键灯控制进程beginif reset='1' thenstoplight<="000"; uplight<="000"; downlight<="000";elseif buttclk'event and buttclk='1' thenif clearup='1' then--stoplight(position)<='0';uplight(position)<='0';elseif up1='1' then uplight(1)<='1';end if;if up2='1' then uplight(2)<='1';end if;end if;if cleardown='1' then--stoplight(position)<='0';downlight(position)<='0';elseif down2='1' then downlight(2)<='1';end if;if down3='1' then downlight(3)<='1';end if;end if;if clearup='1' or cleardown='1' thenif position=1 then stoplight(1)<='0';if stop2='1' then stoplight(2)<='1' ;end if;if stop3='1' then stoplight(3)<='1' ;end if;elsif position=2 then stoplight(2)<='0';if stop1='1' then stoplight(1)<='1' ;end if;if stop3='1' then stoplight(3)<='1' ;end if;elseif stop1='1' then stoplight(1)<='1' ;end if;if stop2='1' then stoplight(2)<='1' ;end if;end if;end if;end if;end if;end process butt;h1:xianshi port map(position=>position,segment_7=>loc);--数码管显示楼层si:upordown port map(ss=>ss,segment_7=>out_state);--数码管显示状态end aaa;--------------数码管显示楼层--------------library ieee;use xianshi isport(position: in integer range 0 to 9 ;segment_7: out std_logic_vector(6 downto 0));end xianshi;architecture a of xianshi isbeginprocess(position)begincase position iswhen 1=>segment_7<="1111001";when 2=>segment_7<="0100100";when 3=>segment_7<="0110000";when 4=>segment_7<="0011001";when 5=>segment_7<="0010010";when 6=>segment_7<="0000010";when 7=>segment_7<="1111000";when 8=>segment_7<="0000000";when 9=>segment_7<="0010000";when others=>segment_7<="1000000";end case;end process;end a;-------------------数码管显示状态----------------- library ieee;use upordown isport(ss: in integer range 0 to 2 ;segment_7: out std_logic_vector(6 downto 0) );end upordown;architecture a of upordown isbeginprocess(ss)begincase ss iswhen 0=>segment_7<="0011101";when 1=>segment_7<="0100001";when others=>segment_7<="0010010";end case;end process;end a;。
VHDL项目设计“三层电梯控制系统”三层电梯控制系统是一种常见的嵌入式系统,用于控制电梯的运行和停止。
它由三层楼、一台电梯和一组控制器组成,通过控制器对电梯的动作进行控制。
本文将介绍一个基于VHDL的三层电梯控制系统的设计。
首先,我们需要定义系统的输入和输出。
对于一个三层电梯控制系统,输入可以包括三个楼层传感器的信号、电梯内部的按钮信号以及电梯的当前位置。
输出可以包括电梯的运行方向、电梯门的开关状态以及电梯运行的目标楼层。
接下来,我们需要设计电梯运行的逻辑。
电梯可以向上或向下运行,它可以根据当前位置和目标楼层来确定下一步的动作。
例如,如果当前位置在一楼,目标楼层在三楼,电梯应该向上运行。
如果当前位置在三楼,目标楼层在一楼,电梯应该向下运行。
我们可以使用状态机的方法来实现这种逻辑。
在控制器的设计中,我们可以使用三个传感器来检测电梯的位置。
当电梯到达一些楼层时,传感器会发出一个信号,控制器会根据这个信号来更新电梯的当前位置。
控制器还需要检测电梯内部按钮的信号,并根据按钮的输入来确定电梯的目标楼层。
例如,如果电梯内部的按钮被按下,控制器会将目标楼层设置为当前所在楼层。
如果一些楼层的按钮被按下,控制器会将目标楼层设置为该楼层。
最后,我们需要定义电梯门的开关逻辑。
当电梯到达目标楼层时,它的门应该打开,当电梯离开目标楼层时,它的门应该关闭。
可以使用一个门状态变量来跟踪电梯门的状态,并根据电梯的位置和目标楼层来更新该变量。
通过以上的设计,我们可以实现一个基于VHDL的三层电梯控制系统。
这个系统可以根据输入信号来确定电梯的动作,包括电梯的运行方向,电梯门的开关状态以及电梯运行的目标楼层。
这个系统可以实时更新电梯的状态,以实现精确的电梯控制。
综上所述,VHDL项目设计的“三层电梯控制系统”是一个基于嵌入式系统的设计,通过控制器对电梯的运行和停止进行控制。
这个系统的设计包括电梯运行逻辑、控制器的设计以及电梯门的开关逻辑。
EDA 课程设计报告书课题名称 基于VHDL 的三层电梯控制器设计 姓 名学 号 院 系 专 业 指导教师年 月 日※※※※※※※※※ ※※ ※※ ※※级学生EDA 课程设计基于VHDL的三层电梯控制器的设计1设计目的近年来,中国房地产业的快速发展,与之配套的电梯生产制造业也经历了迅猛发展的阶段,电梯产量保持了每年20%以上的增长速度.随着我国经济持续增长、城镇化建设的加速和房地产行业的进一步发展,对电梯的需求越来越大。
估计未来50年中国新增住房面积将达到200亿平方米。
国家规定20米以上高楼就应安装电梯,因此未来电梯最大的市场就是住宅市场。
此外,机场、商场、地铁等大型公共设施建设对自动扶梯、观光电梯等电梯的需求量也十分可观。
电梯作为垂直方向的交通工具,在高层建筑和公共场所已经成为重要的建筑设备而不可或缺。
电梯产业的前景和走势随着社会的需求而悄然发生着改变,除了考虑安全、舒适、豪华装修等要求外,市场对新一代的绿色电梯、节能电梯和智能电梯的需求越来越旺盛。
国内外电梯企业顺应市场需要,加大研发投入,都准备在未来新概念电梯产业发展中占得先机。
随着城市化的高速发展,越来越多的摩天大楼拔地而起。
就摩天大楼的高度而言,不仅受建筑技术上的制约,而且还有电梯升高方面的困惑,因而,在摩天大楼日益完备智能化的趋势中,电梯的智能化也不容忽视。
它不仅是人们上上下下的代步工具,同时,也是摩天大楼智能化的一个重要标志.尽管电梯在摩天大楼中只是—个细节,但电梯智能化程度的高低却决定着它服务质量的优劣.因而,电梯的智能化在一定程度上反映出智能大厦的智能程度。
2设计的主要内容和要求(1)电梯一层入口处设有上升请求开关,二层入口处设有上、下请求开关,三层入口处设有下降请求开关,电梯内部设有顾客到达楼层的停站请求开关.(2)每层电梯入口处设有位置指示装置及电梯运行模式(上升或下降)指示装置。
(3)电梯初始状态为一层开门状态。
(4)电梯每秒上升(下降)一层楼。
基于VHDL三层电梯控制器的设计0 引言电梯控制器是控制电梯按顾客要求自动上下的装置。
本文采用VHDL 语言来设计实用三层电梯控制器,其代码具有良好的可读性和易理解性,源程序经A1tera 公司的MAX+plus II 软件仿真,目标器件选用CPLD 器件。
通过对三层电梯控制器的设计,可以发现本设计有一定的扩展性,而且可以作为更多层电梯控制器实现的基础。
1 三层电梯控制器将实现的功能(1)每层电梯入口处设有上下请求开关,电梯内设有顾客到达层次的停站请求开关。
(2)设有电梯入口处位置指示装置及电梯运行模式(上升或下降)指示装置。
(3)电梯每秒升(降)一层楼。
(4)电梯到达有停站请求的楼层,经过1 秒电梯门打开,开门指示灯亮,开门4 秒后,电梯门关闭(开门指示灯灭),电梯继续进行,直至执行完最后一个请求信号后停留在当前层。
(5)能记忆电梯内外所有请求,并按照电梯运行规则按顺序响应,每个请求信号保留至执行后消除。
(6)电梯运行规则一当电梯处于上升模式时,只响应比电梯所在位置高的上楼请求信号,由下而上逐个执行,直到最后一个上楼请求执行完毕;如果高层有下楼请求,则直接升到由下楼请求的最高层,然后进入下降模式。
当电梯处于下降模式时则与上升模式相反。
(7)电梯初始状态为一层开门状态。
2 设计方案和论证2.1 控制器的设计方案控制器的功能模块如图1 所示,包括主控制器、分控制器、楼层选择器、状态显示器、译码器和楼层显示器。
乘客在电梯中选择所要到达的楼层,通过主控制器的处理,电梯开始运行,状态显示器显示电梯的运行状态,电梯所在楼层数通过译码器译码从而在楼层显示器中显示。
分控制器把有效的请求传给主控制器进行处理,同时显示电梯的运行状态和电梯所在楼层数。
由于分控制器相对简单很多,所以主控制器是核。
三层电梯控制系统一、设计功能与要求电梯控制系统是的设计目标是按照使用者的要求控制电梯的运行。
要求用VHDL设计出三层电梯的控制系统,基本功能要求如下:1、每层电梯入口处设有上、下请求开关,使用者可以根据自身的上下楼需要按下相应按键;电梯内部设有到达楼层按钮,使用者可以选择到达楼层。
2、设有电梯运行模式(上、下)标识和当前所在楼层标识。
3、电梯运行模式等同于普通电梯运行模式,电梯一般按照提出请求的先后顺序进行响应。
程序根据电梯当前位置和使用者所在楼层以及进入电梯后的要求控制运行状态。
4、电梯初始模式为一层关门状态。
二、设计思路本系统的主要输入有电梯外上下控制按钮Button(其中Button(0)表示一楼电梯外上升请求,Button(1)表示二楼电梯外上升请求,Button(2)表示二楼电梯外下降请求,Button(3)表示三楼电梯外下降请求);电梯内到达楼层控制按钮floor(其中floor(0)表示请求到达一层,floor(1)表示请求到达二层,floor(2)表示请求到达三层)。
系统的输出包括电梯位置标识position,表示电梯当前所在楼层;电梯开门关门显示按钮door(当door=1时表示开门,door=0表示关门);电梯当前运行状态按钮up_down(当up_down=1时表示电梯处于上升状态,当up_down=0时表示电梯处于下降状态)。
系统主要通过当前所在楼层以及运行状态、后续请求判断运行方式。
电梯处在第一层时,当它收到二层电梯外上下楼请求、三层电梯外下楼请求、一层电梯内到达二层和三层请求时,电梯会按照指令上升到相应楼层并开门、关门;若收到一层电梯外上楼请求只做开门响应,随后根据使用者进入电梯后请求进行响应;其他请求不响应。
当电梯处在第二层时,若系统收到二层电梯外上下楼请求只做开门响应;若收到三层电梯外下楼或二层电梯内到达三层请求,则做上楼响应、开门;若收到一层电梯外上楼或二层电梯内到达一层请求,则做下楼楼响应并开门;其他请求不响应。
防盗报警器课程设计指导教师学生姓名学号专业教学单位一、摘要本设计运用有限状态机的方法,在结构体最前端首先定义了十个状态;然后在结构体中设计了两个进程,状态机进程作为主要进程,信号灯控制进程作辅助进程。
在状态机进程中,电梯关门后根据信号灯的情况,来决定下一个状态是上升、下降还是停止;在信号灯控制进程中,而信号灯的熄灭是由状态机进程中传出clearup和cleardn信号来控制。
实现了三层电梯的基本功能,电梯的的运行情况完全符合它的运行规则,电梯的位置变化合情合理。
二、设计的基本思路及其设计出发点本设计采用VHDL,源程序经A1tera公司的MAX+plus II软件仿真。
运用有限状态机的设计方法,设计了两个进程相互配合,状态机进程作为主要进程,信号灯控制进程作为辅助进程。
电梯作为垂直方向的交通工具,在高层建筑和公共场所已成为不可或缺的设备。
中国是全球最大的电梯市场,也具有最强的电梯生产能力,但由于缺乏自主知识产权和核心技术,自主品牌占市场的份额很少。
随着社会需求的变化,电梯朝着节能、环保及智能化方向发展。
三、方案原理论述3.1 电梯控制器原理电梯控制器的功能模块如所示,包括主控制器、分控制器、楼层选择器、状态显示器、译码器和楼层显示器。
乘客在电梯中选择所要到达的楼层,通过主控制器的处理,电梯开始运行,状态显示器显示电梯的运行状态,电梯所在楼层数通过译码器译码从而在楼层显示器中显示。
分控制器把有效的请求传给主控制器进行处理,同时显示电梯的运行状态和电梯所在楼层数。
由于分控制器相对简单很多,所以主控制器是核心部分。
图3.1 电梯控制器原理图三层电梯控制器的设计思路电梯控制器设计两个进程相互配合,状态机进程作为主要进程,信号灯控制进程作为辅助进程。
根据电梯的实际工作情况,可以为状态机设置十个状态,它们分别是“电梯停在一层”“开门”“关门”“开门等待第一秒”“开门等待第二秒”“开门等待第三秒”“开门等待第四秒”“上升”“下降”和“停止”。
石家庄经济学院数字逻辑课程设计报告题目电梯控制器的设计姓名 meng hao学号班号 3 班指导老师成绩2011年6月目录1. 课程设计目的····························2.········································································································设计任务3.········································································································开发工具选择·································3. 设计方案······························4.模块描述······························5. VHDL实现······························6. 调试仿真······························7. 课程设计回顾总结·························参考文献······························1. 课程设计目的1) 使学生更好地巩固和加深对基础知识的理解,学会设计中小型数字系统的方法,独立完成调试过程,增强学生理论联系实际的能力,提高学生电路设计和分析的能力。
VHDL数字系统设计与测试实验报告基于VHDL的电梯控制系统设计一、设计背景及说明随着高层建筑的不断涌现,对电梯的需求也与日俱增,电梯已经成为我们日常生活中不可缺少的部分,稳定可靠性高的电梯系统成为了电梯领域的新需求。
现在基于VHDL硬件描述语言,用FPGA为控制芯片控制完成一个简单的6层楼的电梯控制系统设计。
我们常见的电梯控制系统功能都包括:上升请求、下降请求、电梯门控、楼层显示灯、电梯运动方向显示、超载、报警、电梯请求信号等。
根据这些常用的信号设计一个电梯系统,实现所要求的功能。
控制方式的选择:1)部请求优先控制方式部请求控制方式类似于出租车的工作方式,先将车上的人送至目地,再去载客。
作为通用型电梯应该服务于大多数人,必须考虑电梯对外请求的响应。
在部请求优先控制方式中,当电梯外部人的请求和电梯部人的请求冲突时,外部人的请求信号可能被长时间忽略,因为它不能作为通用型电梯的设计方案。
2)单层层停控制方案单层层停控制方式等同于火车运行方式,遇到站即停止、开门。
这种方案保证所有的人的请求都能得到响应。
然而这样对电梯的效率产生了消极的影响:不必要的等待消耗了大量时间,而且电梯的运作与用户的请求无关,当无请求时电梯也照常跑空车,浪费了大量的电能。
对于用户而言这种控制方式的请求响应时间也不是很快,因而也不是理想的电梯控制设计方案。
3)方向优先控制式方式方案方向优先控制是指电梯运行到某一层楼时,先考虑这一层楼是否有请求:有则停止;无则继续上升或者下降。
停止后再启动时,考虑上方或者下方是否有请求,有则继续前进,无则停止。
检测后方是否有请求,有请求则转向运行,无请求则维持停止状态。
这种运作方式下,电梯对用户的请求相应率为100%,而且响应的时间较短。
方向优先控制方式的效率远远大于单向层层停等控制方式的效率。
而且,方向控制方式下,电梯在维持停止状态的时候可以进入省电模式,又能节省大量的电能。
在本设计中采用方向优先控制方式。
广西工学院毕业设计(论文)任务书课题名称电梯控制器的VHDL实现院系电气学院专业电子信息科学与技术班级电科113班学号 ************ ************ 姓名莫中桥李柳指导教师韦艳霞教研室主任梁程华系主任罗文广2014年 9 月 19 日一、课题的主要内容和基本要求采用EDA技术设计一个电梯控制器,要求能控制电梯完成3个楼层的载客服务,并完成以下功能:1、每层均有电梯上下运行请求开关,并可选择乘客要到达的楼层;2、电梯运行遵循方向优先的原则,当电梯上升时,只响应比电梯所在楼层高的上楼请求信号,直到最后一个上楼请求执行完毕,才响应下降请求。
下降时同理。
3、能显示电梯电梯所在楼层、有开关门按键并有声音提示。
二、所需完成的工作1、完成设计的程序编写和编译工作,要求顶层文件采用原理图方法设计;2、完成各个模块的波形仿真和整体硬件调试;3、完成15左右页的论文说明书。
三、主要参考文献、资料1.潘松,黄继业. EDA技术实用教程(第二版)[M]. 北京:北京航空航天大学出版社,19902.刘欲晓,方强,黄宛宁等.EDA技术与VHDL电路开发应用实践[M].北京:电子工业出版社,20093.谭会生,瞿遂春等.EDA技术综合应用实例与分析[M].西安:西安电子科技大学出版社.2004.四、完成期限2014年9月20日前摘要电梯作为垂直方向的交通工具,在高层建筑和公共场所已成为不可或缺的设备。
中国是全球最大的电梯市场,也具有最强的电梯生产能力,但由于缺乏自主知识产权和核心技术,自主品牌占市场的份额很少。
随着社会需求的变化,电梯朝着节能、环保及智能化方向发展。
EDA技术打破了软件和硬件间的壁垒,是计算机的软件技术与硬件实现、设计效率与产品能合二为一,它代表了电子技术和应用技术的发展方向。
VHDL主要用于描述数字系统的接口,结构和功能,它的语法简单易懂,移植性好。
本设计采用VHDL,源程序Altera公司的Quartus II软件仿真。
运用有限状态机的设计方法,设计了两个进程相互配合,状态机进程作为主要进程,信号灯控制进程作为辅助进程。
在主进程中定义了7个状态,分别是“stopon1”“dooropen”“doorclose”“doorwait4”“up”“down”和“stop”,在电梯时钟的触发下,通过当前状态和信号灯信号判定下一状态。
信号灯控制进程中,信号灯存储按键请求情况,它的熄灭是由状态机进程中传出的信号来控制。
关键字:电梯控制器,VHDL,状态机,CPLDABSTRACTElevator has become an indispensable device as a vertical transport in high-rise buildings and public places. China is the world’s largest elevato r market ,and also has the highest lift capacity. But the lack of independent intellectual property rights and core technologies, the market share of own brands account for very little. With the changing of the community’s needs, elevator develop towards energy saving, environmental protection and intelligent.EDA breaks the barriers between hardware and software. Not only the computer software technology and hardware but also the design efficiency and product performance are combined. EDA represents the el ectronic design technology and application technology’s development. VHDL digital system is mainly used to describe the interface, structure and function. Its syntax is easy and transplantable.This design which uses VHDL simulated by Altera’s Quartus II s oftware. I use method named finite state machine which two processes complement each other. The state machine process act as the main process, and the signal control process act as a assistant. Seven states were defined in the main process, namely “stopon1” “dooropen” “doorclose” “doorwait4” “up”“down” and “stop”. Triggered by the lift’s clock, the next state is determined by the current state and the signal. In signal control process, registers keep input value, and lamps black out when the control process, registers keep input value, and lamps black out when the control signal in the main process is high value.Key words: Elevator Controller, VHDL State Machine,CPLD目录第一章绪论……………………………………………………………………第二章总体方案设计…………………………………………………………第一节设计要求…………………………………………………………第二节电梯控制器的总体设计方案第三节电梯上下层运行流程图第四节电梯运行控制流程图第五节三层电梯控制器的设计思路第三章总体设计电路图第一节顶层电路原理图第二节三层电梯控制器的实体设计第三节三层电梯控制器的结构体设计第四节三层电梯控制器VHDL设计第五节选择器件第六节功能模块一、电梯主控制模块二、分频器模块三、译码器模块四、数据选择器模块第四章三层电梯模块仿真第一节电梯控制器控制仿真分析第二节译码器仿真分析第三节数据选择器仿真分析第四节分频器模块仿真分析第五节顶层电路仿真分析第五章设计的扩展性致谢参考文献附录第一章绪论随着社会的发展,电梯的使用越来越普遍,已经从原来只在商业大厦,宾馆使用,过度到在办公楼,居民楼等场所使用,并且对电梯功能的要求也不断提高,相应地其控制方式也在不停地发生变化.对于电梯的控制,传统的方法是使用继电器—接触器控制系统进行控制,随着技术的不断发展,微型计算机在电梯控制上的应用日益广泛,现在已进入全微化控制的时代。
VHDL主要用于描述数字系统的结构,行为,功能和接口。
除了含有许多具有硬件特征的语句外,VHDL的语言形式、描述风格以及语法是十分类似于一般的计算机高级语言。
VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。
在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。
这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。
VHDL具有功能强大的语言结构,可以用简洁明确的源代码来描述复杂的逻辑控制。
它具有多层次的设计描述功能,层层细化,最后可直接生成电路级描述。
VHDL支持同步电路、异步电路和随机电路的设计,这是其他硬件描述语言所不能比拟的。
VHDL还支持各种设计方法,既支持自底向上的设计,又支持自顶向下的设计;既支持模块化设计,又支持层次化设计。
电梯的微机化控制主要有以下几种形式:1.PLC控制 2. 单片机控制 3. 单板机控制 4. 单微机控制 5. 多微机控制 6. 人工智能控制。
随着EDA技术的快速发展,VHDL已广泛应用于电子设计与控制的各个方面,本文采用VHDL语言来设计实用三层电梯控制器,其代码具有良好的可读性和易理解性,源程序经A1tera公司的 Quartus II软件仿真,目标器件选用CPLD器件。
通过对三层电梯控制器的设计,可以发现本设计有一定的扩展性,而且可以作为更多层电梯控制器实现的基础。
第二章总体方案设计第一节设计要求三层电梯控制器将实现的功能:一、每层电梯入口处设有上下请求开关,电梯内设有顾客到达层次的停站请求开关。
二、设有电梯入口处位置指示装置及电梯运行模式(上升或下降)指示装置。
三、电梯每秒升(降)一层楼。
四、电梯到达有停站请求的楼层,经过1秒电梯门打开,开门指示灯亮,开门4秒后,电梯门关闭(开门指示灯灭),电梯继续进行,直至执行完最后一个请求信号后停留在当前层。
五、能记忆电梯内外所有请求,并按照电梯运行规则按顺序响应,每个请求信号保留至执行后消除。
六、电梯运行规则:当电梯处于上升模式时,只响应比电梯所在位置高的上楼请求信号,由下而上逐个执行,直到最后一个上楼请求执行完毕;如果高层有下楼请求,则直接升到由下楼请求的最高层,然后进入下降模式。
当电梯处于下降模式时则与上升模式相反;能显示电梯电梯所在楼层、有开关门按键并有声音提示。
七、电梯初始状态为一层开门状态。
第二节电梯控制器的总体设计方案控制器的功能模块如图2.1所示,包括主控制器、楼层选择器、状态显示器、译码器和楼层显示器。
乘客在电梯中选择所要到达的楼层,通过主控制器的处理,电梯开始运行,状态显示器显示电梯的运行状态,电梯所在楼层数通过译码器译码从而在楼层显示器中显示。
由于其他模块相对简单很多,所以主控制器是核心部分。
图2.1 总体设计方案第三节电梯上下层运行流程图图2.2图2.3第四节电梯运行控制流程图如图2.4:图2.4 电梯运行控制流程图第五节三层电梯控制器的设计思路电梯控制器运用状态机的设计方法,思路比较清晰。