基于VHDL的四层电梯控制器

上传人:飞*** 文档编号:30491162 上传时间:2018-01-29 格式:DOC 页数:26 大小:330KB
返回 下载 相关 举报
基于VHDL的四层电梯控制器_第1页
第1页 / 共26页
基于VHDL的四层电梯控制器_第2页
第2页 / 共26页
基于VHDL的四层电梯控制器_第3页
第3页 / 共26页
基于VHDL的四层电梯控制器_第4页
第4页 / 共26页
基于VHDL的四层电梯控制器_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《基于VHDL的四层电梯控制器》由会员分享,可在线阅读,更多相关《基于VHDL的四层电梯控制器(26页珍藏版)》请在金锄头文库上搜索。

1、1四层电梯控制器姓名:徐志聪学号:030902529指导老师:赵彦敏2电梯控制器的功能模块如图 2.1 所示,包括主控制器、分控制器、楼层选择器、状态显示器、译码器和楼层显示器。乘客在电梯中选择所要到达的楼层,通过主控制器的处理,电梯开始运行,状态显示器显示电梯的运行状态,电梯所在楼层数通过译码器译码从而在楼层显示器中显示。分控制器把有效的请求传给主控制器进行处理,同时显示电梯的运行状态和电梯所在楼层数。由于分控制器相对简单很多,所以主控制器是核心部分。3状态显示器主控制器楼层选择器分控制器 译码器 楼层显示器图 2.1 电梯控制器原理图4外部按键请求信号寄存器状态寄存器内部软件执行机构外部硬

2、件执行机构图 2.2 总流程图初始化判定电梯运行方向是否有请求?等待电梯运行楼层检测否电梯停止目标层与本层是否同层?是是否目标层?开门延时关门是否停止运行?是否是否是否停止图 2.3 电梯控制主流程图第二节 电梯控制器的流程图5第三章 三层电梯控制器的具体设计本设计尝试用硬件描述语言 VHDL 来实现对三层电梯的控制,源程序经A1tera 公司的 MAX+plus II 软件仿真,保证了设计的正确性。使用 VHDL 进行电梯控制器的设计,主要就是对电梯软件部分的设计,使用 VHDL 中的逻辑关系建立电梯的升降模式,开门,关门达到动作,而外部器件的硬件设备基本上保持不变。使用 VHDL 硬件描述

3、语言设计电梯控制器可以为电梯实现智能控制奠定基础。第一节 三层电梯控制器实现的功能及运行规则电梯一层入口处设有上升请求开关,二层入口处设有上、下请求开关, 1三层入口处设有下降请求开关,电梯内部设有顾客到达楼层的停站请求开关。每层电梯入口处设有位置指示装置及电梯运行模式 (上升或下降)指示 2装置。电梯初始状态为一层开门状态。 3电梯每秒上升(下降)一层楼。 4电梯到达需要停止的楼层,经过 1 秒电梯门打开,开门指示灯亮,开门 54 秒后,电梯门关闭(开门指示灯灭),电梯继续运行,直至执行完最后一个请求信号后停留在当前层。电梯需要寄存器来记忆电梯内外所有请求,并按照电梯运行规则按顺序 6响应,

4、每个请求信号保留至执行后消除。电梯的运行规则:当电梯处于上升模式时,只响应比电梯所在位置高的 7上楼请求信号和停站请求信号,由下而上逐个执行,直到最后一个上楼请求执行完毕;如果高层有下楼请求,则直接上升到有下楼请求的最高层,然后进入下降模式。当电梯处于下降模式时则与上升模式相反。6第二节 三层电梯控制器的综合设计一、三层电梯控制器的设计思路电梯控制器设计两个进程相互配合,状态机进程作为主要进程,信号灯控制进程作为辅助进程。根据电梯的实际工作情况,可以为状态机设置十个状态,它们分别是“电梯停在一层”“开门”“关门”“开门等待第一秒”“开门等待第二秒”“开门等待第三秒”“开门等待第四秒”“上升”“

5、下降”和“停止”。由于电梯每秒上升或下降一层,则可以用周期为 1s 的信号来作为电梯状态转换的触发时钟。状态机进程中的很多判断条件是以信号灯控制进程产生的信号灯信号为依据,而信号灯控制进程中信号灯的熄灭又是由状态机进程中传出的信号来控制。三层电梯控制器的设计主要是对实体和结构体的设计,它的 VHDL 描述模块流程如图 3.1 所示:元件库的说明定义实体结构体端口状态机进程信号灯控制进程结束按键信号灯图 3.1 三层电梯控制器的 VHDL 描述模块流程二、实体设计实体设计即是对端口名、端口模式及数据类型的说明。首先考虑输入端口,一个异步复位端口“reset” ,用于当电梯出现非正常情况时回到初始

6、状态;在电梯外部,一层入口处设有上升请求端,二层入口处设有上升和下降请求端,三7层入口处设有下降请求端;在电梯内部,应设有各层停站请求端口;一个电梯时钟输入端口,它提供周期为 1s 的时钟信号,用作电梯状态转换的触发时钟;还有一个频率很高的按键时钟输入端口。其次考虑输出端口,当有各层上升或下降请求时,各层入口处应该有端口显示请求是否被响应,有请求时端口输出逻辑1,被执行后则恢复成逻辑0;同样的,电梯内部也应有各层停站请求是否被响应的指示端口;一个开关门指示端口,当门开着时,它为逻辑1,门关着时,则为逻辑0;还需要端口来显示电梯所处的位置和模式(上升或下降)。三、结构体设计在结构体中,首先说明了

7、状态机设置的十个状态,分别是:电梯停在 1 层(stopon1)、开门 (dooropen)、关门(doorclose)、开门等待第 1 秒(doorwait1)、开门等待第 2 秒(doorwait2 )、开门等待第 3 秒(doorwait3)、开门等待第 4 秒(doorwait4)、上升(up)、下降(down)和停止(stop )。在结构体最前端用如下的定义语句,来定义状态机。type lift_state is(stopon1,dooropen,doorclose,doorwait1,doorwait2,doorwait3,doorwait4,up,down,stop);接着描述电

8、梯内部功能实现,在结构体中设计了两个进程,一个状态机进程(ctrlift) ,它是以 reset 和 liftclk 作为敏感信号,控制电梯的状态转移;另外一个是信号灯控制进程(ctrlight) ,它是以 reset 和 buttonclk 作为敏感信号,控制寄存信号的逻辑值。在状态机进程中,电梯关门后根据信号灯的情况,来决定下一个状态是上升、下降还是停止;在信号灯控制进程中,由于使用了专门的频率较高的按键时钟,所以使得按键的灵敏度大,但是时钟频率不能过高,否则容易使按键过于灵敏,而信号灯的熄灭是由状态机进程中传出 clearup 和cleardn 信号来控制。四、VHDL 源代码语法的简单

9、说明8本程序设计调用了 ieee 库,ieee 库是 VHDL 设计中最为常用的库,它包 1含有 ieee 标准的程序包和其他一些支持工业标准的程序包。本设计采用 std-logic-1164、std-logic-unsigned、std-logic-arith 程序包。以关键词 entity 引导,end entity threelift 结尾的部分是程序的实体部分。 2VHDL 的实体描述了电路器件的外部情况,本设计定义了关于三层电梯控制器用到的各类时钟、异步复位按键、信号灯指示端口、电梯的请求端口。它描述了端口模式主要有 in、buffer、out,以及各端口信号的数据类型主要有 std

10、-logic、std-logic-vector 、integer。(3)以关键词 architecture 引导,end architecture one 结尾的语句部分是结构体部分,结构体描述电路器件的内部逻辑功能。五、VHDL 源代码library IEEE; -库的说明use IEEE.std_logic_1164.all; -程序包的说明use IEEE.std_logic_unsigned.all;use IEEE.std_logic_arith.all; -(arith)entity fourlift is -实体名称 fourliftport(clk1:in std_logic;

11、 -按键读取时钟信号clk2:in std_logic; -led_7 数码管显示扫描时钟信号reset:in std_logic; -异步复位端口close:in std_logic; -关门请求f1upbutton:in std_logic; -一层上升请求端口f2upbutton:in std_logic; -二层上升请求端口f2dnbutton:in std_logic; -二层下降请求端口f3dnbutton:in std_logic; -三层下降请求端口f3upbutton:in std_logic; -三层上升请求端口f4dnbutton:in std_logic; -四层下降请

12、求端口stop1button:in std_logic; -一层停站请求端口9stop2button:in std_logic; -二层停站请求端口stop3button:in std_logic; -三层停站请求端口 stop4button:in std_logic; -四层停站请求端口stair:buffer integer range 1 to 4; -电梯位置信号udsig:buffer std_logic; -电梯运行模式(上升 1 或下降 0fuplight,fdnlight,stoplight:buffer std_logic_vector(4 downto 1); -上升、下降

13、、停站请求寄存信号doorlight:out std_logic; -开门状态 (1为开门状态)dout:out std_logic_vector(6 downto 0); - 数码管显示楼层段码s:out std_logic_vector(2 downto 0); -数码管显示楼层位码end entity fourlift;architecture chi of fourlift is -结构体type lift_state is -定义十个状态(stop_on_1,door_open,door_close,door_wait1,door_wait2,door_wait3,door_wait

14、4,up,down,stop);signal state:lift_state;signal clr_up:std_logic; -上升和停站请求清除信号signal clr_dn:std_logic; -下降和停站请求清除信号signal q:std_logic_vector(3 downto 0); -分频进程中需要的信号signal buttonclk,liftclk:std_logic; -分频后的电梯时钟和按键读取控制时钟beginclklift:process(clk1) -分频产生电梯控制时钟 liftclk 和按键读取控制时钟buttonclkbegin if (clk1event and clk1=1) then if q=1111 then qdoorlightclr_upif(close=1) then stateif(close=1) then statestate -关门,判定电梯下一个运行方式doorlight -电梯处于上升状态16stair -电梯处在下降状态stair1 and (stoplight(position)=1 and fdnlight(position)=1) thenstate state

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号