《EDA电梯控制器设计》由会员分享,可在线阅读,更多相关《EDA电梯控制器设计(15页珍藏版)》请在金锄头文库上搜索。
1、 EDA技术综合课程设 计课 程: EDA技术综合课程设计 题 目: 电梯控制器 所属院系:电气工程学院专业班级:自控1304班 姓 名:王军学 号:1317014092 指导老师:张立众 完成地点: 陕西理工学院 目录1.设计任务 22.可选器材 23.设计框图 24. 设计思路 45. 引脚分配 56程序清单 97.主控模块仿真 168.问题及改进 179.总结及感受 1810.参考文献 19一.设计任务1、 设计一个三层的电梯控制器。2、 用数码管显示电梯所在的楼层号,电梯初始化后状态在第一层楼。3、 每层电梯外都有上下楼请求开关,电梯内部有到各楼层的请求开关及紧急故障开关;用数码管显示
2、上行或下行状态,用发光二极管显示是否有紧急情况。4、 电梯每秒升(降)一层,电梯到达有停站请求的楼层后,经1秒电梯开门,开门指示灯亮,开门4秒后指示灯灭,关门,电梯继续运行。5、 当电梯被锁定或发生紧急情况后,电梯停止运行,直到解除锁定或紧急故障后才可以从停止时的状态继续运行。6、 当电梯处于上升状态时,只响应比电梯所在位置高的上楼请求信号,直到最后一个上楼请求执行完毕,再进入下降模式;同理,电梯处于下降状态时,只响应比电梯所在位置低的下楼请求信号,直到最后一个下楼请求执行完毕,再进入上升模式。二.可选器件1. 计算机组成/ISP实验箱一台(含电源)2. 电源线一根FPGA/CPLD下载板一块
3、(或多块,可选)(其中下载版选择以下型号Cyclone EP1C6Q240C8)3. 并行口下载电缆一根4. 电压表棒一付5. 实验指导书一份6. 配套集成电路芯片若干三.设计框图系统主要分为:主控制模块control,包含状态机,控制电梯的运行及状态转换;消抖模块unshake,消除开关电路的抖动现象,确保逻辑的正确性;显示模块display,内含译码功能,配合控制器显示电梯的工作状态。模块框图见图1,总体框图详见图2。图1 各模块框图 图2 系统总体框图四.设计思路1.对于电梯控制逻辑的实现,主要是控制模块control,故下面主要介绍控制模块control的设计思想。 控制模块contr
4、ol有一个进程k1,其中又设置了一个计数变量cnt,范围为12000000。计数变量cnt其实是起到分频器的作用,产生了一个1Hz的时钟,在cnt计数2000000次的时间内(即1s),运行控制电梯升降、停留的程序,这些部分相当于以1Hz的时钟触发; 而系统主频时钟2MHz作为触发时钟不断检测用户是否有请求输入,或者电梯是否有异常情况。对于一、二、三层信号,分别由flag1、flag2、flag3和clear1、clear2、clear3两套标志为来控制输入请求是否有效,是否应该对标志位清零。2.主要规则是: 当一层(upone、one)、二层(uptwo、downtwo、two)或三层(do
5、wnthree、three)的输入信号有效时,相应标志位flag1、flag2、flag3置1,表明该层有请求。 当一层(upone、one)、二层(uptwo、downtwo、two)或三层(downthree、three)的输入信号无效时,相应标志位clear1、clear2、clear3置1,表明相应得到达楼层请求已经在上一个时钟沿完成;同时对应的标志位flag1、flag2、flag3置1,表明相应楼层无请求。 updown信号值为 1时表明电梯处于上升状态,为0时处于下降状态。 程序有两个信号表示电梯的状态:一是位置状态,二是运行状态。position表明电梯的位置状态,是一个取值1
6、3的整数 ,分别表示电梯处于第一、二、三层;state表示电梯的运行状态,使枚举数据类型,共10个值,分别是:-states为电梯所处的各个状态-up1表示电梯正在从第1层上升-up2表示电梯正在从第2层上升-down1表示电梯正在向第1层下降-down2表示电梯正在向第2层下降-stop表示电梯停止在某一层上-dw1表示电梯开门的第一秒-dw2表示电梯开门的第二秒-dw3表示电梯开门的第三秒-dw4表示电梯开门的第四秒,判断电梯的下一个状态-dw5表示当电梯处于上升或下降状态时,如果没有相应的上升或下降请求信号,则转入 dw5状态,使其不再在上升或下降状态停留,而响应其它信号程序利用case
7、语句实现这10个状态间的相互转移。五.引脚分配详见下图状态流程图1、顶层流程图解超载报警是是否否故障报警从二层上行状态停止状态从一层上行状态向一层下降状态判断当前楼层和运动状态初始化,电梯停在一楼清除故障警报是否是否存在故障清除故障是否超载综合所有指令,判断下一运动状态具体判断条件见下面每层楼框图。开锁向二层下降状态开门前3秒(空闲状态)开门第4秒(判断状态)空闲响应状态2、以下是较具体的状态转化图一楼当前层请求进入停止状态上行请求无有继续等待从一层上升状态有无进入停止状态向一层下降状态从二层上升状态二楼当前层请求下行请求无有继续等待有无前一状态为上升前一状态为下降上行请求有停止状态当前层请求
8、从二层上升状态无有上行请求有无向一层下降状态有下行请求无当前层门外上行请求当前层门外下行请求有有无无三楼当前层请求进入停止状态下行请求无有继续等待向二层下降状态有无六.程序清单消抖模块(程序分两栏排版)library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; use ieee.std_logic_arith.all; entity unshake is port(clk:in std_logic; -时钟,10HZ; key:in std_logic; -开关信号; keyout:out std_lo
9、gic); -消抖之后的开关信号end;architecture a of unshake is signal cp :std_logic;signal jsp:integer range 0 to 3;beginprocess(clk)beginif(clkevent and clk=1)thenif key=1 thenif jsp=3 thenjsp=jsp;elsejsp=jsp+1;end if;if jsp=1 thencp=1;elsecp=0;end if; elsejsp=0;end if;end if;keyout=cp;end process;end;显示模块(程序分两栏
10、排版)library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; use ieee.std_logic_arith.all; entity display isport(clk: in std_logic; light: in integer range 1 to 3; serout: out std_logic_vector(6 downto 0);end;architecture a of display issignal disp : std_logic_vector(6 downto 0);be
11、ginprocess(clk)beginif(clkevent and clk=1)thenif light =1 thendisp=1001111;elsif light=2 thendisp=0010010;elsif light=3 then disp=0000110;end if;end if;end process;serout=disp;end;主控模块library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; use ieee.std_logic_arith.all; -*entity c
12、ontrol is port(upone,uptwo,downtwo,downthree : in std_logic;-电梯外乘客的请求信号 one,two,three : in std_logic;-电梯内乘客的请求上或下至几层楼的信号 reset: in std_logic; -复位初始化开关 over,emergency,lock:in std_logic;-超重、紧急停运和上锁信号 clk: in std_logic; -时钟信2MHz alarm,ovelight,locklight : out std_logic;-故障、超重及锁定提示灯 p : out integer range 1 to 3; -电梯当前位置 lightup,lightdown : out std_logic_vector(6 downto 0); -lightup显示u则电梯在上升模式, -lightdown显示d则电梯在下降模式; arrive: o