第九章 EDA电梯控制器的设计与分析.ppt

上传人:韩长文 文档编号:5030467 上传时间:2020-01-29 格式:PPT 页数:53 大小:598KB
返回 下载 相关 举报
第九章 EDA电梯控制器的设计与分析.ppt_第1页
第1页 / 共53页
第九章 EDA电梯控制器的设计与分析.ppt_第2页
第2页 / 共53页
第九章 EDA电梯控制器的设计与分析.ppt_第3页
第3页 / 共53页
第九章 EDA电梯控制器的设计与分析.ppt_第4页
第4页 / 共53页
第九章 EDA电梯控制器的设计与分析.ppt_第5页
第5页 / 共53页
点击查看更多>>
资源描述

《第九章 EDA电梯控制器的设计与分析.ppt》由会员分享,可在线阅读,更多相关《第九章 EDA电梯控制器的设计与分析.ppt(53页珍藏版)》请在三一文库上搜索。

1、第9章 电梯控制器的设计与分析,9.1 系统设计要求 9.2 系统设计方案 9.3 主要VHDL源程序 9.4 系统仿真/硬件验证 9.5 设计技巧分析 9.6 系统扩展思路,9.1 系统设计要求,随着社会的发展,电梯的使用越来越普遍,已从原来只在商业大厦、宾馆使用,过渡到在办公楼、居民楼等场所使用,并且对电梯功能的要求也不断提高,相应地其控制方式也在不停地发生变化。对于电梯的控制,传统的方法是使用继电器接触器控制系统进行控制,随着技术的不断发展,微型计算机在电梯控制上的应用日益广泛,现在已进入全微机化控制的时代。,电梯的微机化控制主要有以下几种形式: PLC控制; 单板机控制; 单片机控制;

2、 单微机控制; 多微机控制; 人工智能控制。随着EDA技术的快速发展,CPLD/FPGA已广泛应用于电子设计与控制的各个方面。本设计就是使用一片CPLD/FPGA来实现对电梯的控制的。,9.2 系统设计方案,根据系统设计要求,并考虑到系统的可验证性,整个系统的输入输出接口设计如图9.1所示:系统工作用2 Hz基准时钟信号CLKIN,楼层上升请求键UPIN,楼层下降请求键DOWNIN,楼层选择键入键ST_CH,提前关门输入键CLOSE,延迟关门输入键DELAY,电梯运行的开关键RUN_STOP,电梯运行或停止指示键LAMP,电梯运行或等待时间指示键RUN_WAIT,电梯所在楼层指示数码管ST_O

3、UT,楼层选择指示数码管DIRECT。,图9.1 电梯控制器DTKZQ的输入输出接口图,电梯的控制状态包括运行状态、停止状态及等待状态,其中运行状态又包含向上状态和向下状态。主要动作有开、关门,停靠和启动。乘客可通过键入开、关门按钮,呼唤按钮,指定楼层按钮等来控制电梯的行与停。 据此,整个电梯控制器DTKZQ应包括如下几个组成部分: 时序输出及楼选计数器; 电梯服务请求处理器; 电梯升降控制器; 上升及下降寄存器; 电梯次态生成器。该电梯控制器设计的关键是确定上升及下降寄存器的置位与复位。整个系统的内部组成结构图如图9.2所示。,图9.2 电梯控制器的内部组成结构图,9.3 主要VHDL源程序

4、,-DTKZQ.VHD LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; ENTITY DTKZQ IS,PORT(CLKIN:IN STD_LOGIC; -2 Hz时钟输入信号 UPIN:IN STD_LOGIC; -楼层上升请求键 DOWNIN:IN STD_LOGIC; -楼层下降请求键 ST_CH:IN STD_LOGIC; -结合DIRECT完成楼层选择的键入 CLOSE:IN STD_LOGIC; -提前关门输入键 DEL

5、AY:IN STD_LOGIC; -延迟关门输入键 RUN_STOP:IN STD_LOGIC; -电梯运行的开关键 LAMP:OUT STD_LOGIC; -电梯运行或停止指示键,RUN_WAIT:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); -结合LAMP指示电梯运行或等待时间 ST_OUT:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); -电梯所在楼层指示数码管 DIRECT:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); -楼层选择指示数码管 END ENTITY DTKZQ; ARCHITECTURE ART OF DTK

6、ZQ IS,SIGNAL UR,DR:STD_LOGIC_VECTOR(16 DOWNTO 1); -上升或下降楼层请求寄存器 SIGNAL DIR,LIFTOR:STD_LOGIC_VECTOR(3 DOWNTO 0); -楼选指示及楼层数计数器 SIGNAL WAI_T:STD_LOGIC_VECTOR(2 DOWNTO 0); -运行或等待计数器 SIGNAL DIVID,HAND:STD_LOGIC; -时钟2分频和楼选复位变量 SIGNAL LADD:STD_LOGIC_VECTOR(1 DOWNTO 0); -电梯运行状态变量 SIGNAL CLOSEX,DELAYX,LAMP0:

7、STD_LOGIC; -提前关门及延迟变量,BEGIN -内部信号值的输出 DIRECT=DIR+1; ST_OUT=LIFTOR+1; RUN_WAIT=0,HAND=WAI_T(2)AND (NOT WAI_T(1)AND WAI_T(0); CLOSEX=CLOSE AND (NOT LADD(1); DELAYX=DELAY AND (NOT LADD(1); -分频及楼选信号产生进程 P1:PROCESS(CLKIN) BEGIN,IF (CLKINEVENT AND CLKIN=1) THEN DIVID=NOT DIVID; IF (DIR=“1111“) THEN DIR=“0

8、000“; ELSE DIR=DIR+1; END IF; END IF; END PROCESS;,-楼层请求寄存器的置位与复位进程 P2:PROCESS(UR, DR, UPIN, DOWNIN, ST_CH, LIFTOR, WAI_T, RUN_STOP, HAND) VARIABLE NUM,T:INTEGER RANGE 0 TO 15 ; BEGIN NUM:=CONV_INTEGER(LIFTOR)+1; T:=CONV_INTEGER(DIR)+1; IF (RUN_STOP=1) THEN,IF (TNUM)AND (ST_CH=1)OR (UPIN=1)THEN CASE

9、 T IS WHEN 1 = UR(1) UR(2) UR(3) UR(4) UR(5) UR(6) UR(7) UR(8)=1;,WHEN 9 = UR(9) UR(10) UR(11) UR(12) UR(13) UR(14) UR(15) UR(16)NULL; END CASE;,ELSIF (HAND=1)THEN CASE NUM IS WHEN 1 = UR(1) UR(2) UR(3) UR(4) UR(5) UR(6) UR(7) UR(8) UR(9)=0;,WHEN 10 = UR(10) UR(11) UR(12) UR(13) UR(14) UR(15) UR(16)

10、NULL; END CASE; END IF;,IF (T DR(1) DR(2) DR(3) DR(4) DR(5) DR(6) DR(7) DR(8) DR(9)=1;,WHEN 10 = DR(10) DR(11) DR(12) DR(13) DR(14) DR(15) DR(16)NULL; END CASE; ELSIF (HAND=1) THEN CASE NUM IS,WHEN 1 = DR(1) DR(2) DR(3) DR(4) DR(5) DR(6) DR(7) DR(8) DR(9) DR(10)=0;,WHEN 11 = DR(11) DR(12) DR(13) DR(

11、14) DR(15) DR(16)NULL; END CASE; END IF;,ELSE UR=“0000000000000000“; DR=“0000000000000000“; END IF; END PROCESS; -电梯运行次态的控制进程 P3:PROCESS(UR,DR,LIFTOR,LADD,WAI_T,RUN_STOP),BEGIN IF (RUN_STOP=1) THEN IF (WAI_T=“110“) THEN IF (UR OR DR)=“0000000000000000“) THEN LADD(1)=0; -初始状态 ELSE CASE LIFTOR IS,WHEN

12、 “0000“=IF (UR(1)OR DR(1)0) THEN LADD(1)IF (UR(2)OR DR(2)0) THEN LADD(1)=0; -等待状态 ELSIF ( LADD(0)=1)AND (UR(16 DOWNTO 3),OR DR(16 DOWNTO 3)“00000000000000“) OR(UR(1)OR DR(1)=0) THEN LADD =“11“; -上升状态 ELSE LADD=“10“; -下降状态 END IF;,WHEN “0010“=IF (UR(3) OR DR(3)0) THEN LADD(1)“0000000000000“) OR(UR(2

13、DOWNTO 1) OR DR(2 DOWNTO 1)=“00“) THEN LADD=“11“; ELSE LADD=“10“; END IF;,WHEN “0011“=IF (UR(4) OR DR(4)0) THEN LADD(1)“000000000000“) OR(UR(3 DOWNTO 1) OR DR(3 DOWNTO 1)=“000“) THEN LADD=“11“; ELSE LADD=“10“; END IF;,WHEN “0100“=IF (UR(5) OR DR(5)0) THEN LADD(1)“00000000000“) OR(UR(4 DOWNTO 1) OR D

14、R(4 DOWNTO 1)=“0000“) THEN LADD=“11“; ELSE LADD=“10“; END IF;,WHEN “0101“=IF (UR(6) OR DR(6)0) THEN LADD(1)“0000000000“ ) OR(UR(5 DOWNTO 1) OR DR(5 DOWNTO 1)=“00000“) THEN LADD=“11“; ELSE LADD=“10“; END IF;,WHEN “0110“=IF (UR(7) OR DR(7)0) THEN LADD(1)“000000000“) OR(UR(6 DOWNTO 1) OR DR(6 DOWNTO 1)

15、=“000000“) THEN LADD=“11“; ELSE LADD=“10“; END IF;,WHEN “0111“=IF (UR(8) OR DR(8)0) THEN LADD(1)“00000000“ ) OR(UR(7 DOWNTO 1) OR DR(7 DOWNTO 1)=“0000000“) THEN LADD=“11“; ELSE LADD=“10“; END IF;,WHEN “1000“=IF (UR(9) OR DR(9)0) THEN LADD(1)“0000000“ ) OR(UR(8 DOWNTO 1) OR DR(8 DOWNTO 1)=“00000000“)

16、 THEN LADD=“11“; ELSE LADD=“10“; END IF;,WHEN “1001“=IF (UR(10) OR DR(10)0) THEN LADD(1)“000000“ ) OR(UR(9 DOWNTO 1) OR DR(9 DOWNTO 1)=“000000000“) THEN LADD=“11“; ELSE LADD=“10“; END IF;,WHEN “1010“=IF (UR(11) OR DR(11)0) THEN LADD(1)“00000“) OR(UR(10 DOWNTO 1) OR DR(10 DOWNTO 1)=“0000000000“) THEN

17、 LADD=“11“; ELSE LADD=“10“; END IF;,WHEN “1011“=IF (UR(12) OR DR(12)0) THEN LADD(1)“0000“ ) OR(UR(11 DOWNTO 1) OR DR(11 DOWNTO 1)=“00000000000“) THEN LADD=“11“; ELSE LADD=“10“; END IF;,WHEN “1100“=IF (UR(13) OR DR(13)0) THEN LADD(1)“000“ ) OR(UR(12 DOWNTO 1) OR DR(12 DOWNTO 1)=“000000000000“) THEN L

18、ADD=“11“; ELSE LADD=“10“; END IF;,WHEN “1101“=IF (UR(14) OR DR(14)0) THEN LADD(1)“00“ ) OR(UR(13 DOWNTO 1) OR DR(13 DOWNTO 1)=“0000000000000“) THEN LADD=“11“; ELSE LADD=“10“; END IF;,WHEN “1110“=IF (UR(15)OR DR(15)0) THEN LADD(1)0) OR (UR(14 DOWNTO 1) OR DR(14 DOWNTO 1)=“00000000000000“) THEN LADDIF

19、 (UR(16) OR DR(16)0) THEN LADD(1)=0;,ELSE LADDNULL; END CASE; END IF; END IF; ELSE LADD=“00“; END IF; END PROCESS;,-电梯运行楼层计数及提前/延迟关门控制进程 P4:PROCESS(WAI_T,LADD,CLOSEX,DELAYX,DIVID) BEGIN IF (DIVIDEVENT AND DIVID=1) THEN IF (WAI_T=“000“ OR CLOSEX=1) THEN WAI_T=“110“; ELSE IF (DELAYX=0)THEN WAI_T=WAI_T

20、-1; ELSE WAI_T=“010“; END IF;,IF (LADD=“11“) THEN LIFTOR=LIFTOR+1; ELSIF (LADD=“10“) THEN LIFTOR=LIFTOR-1; END IF; END IF; END IF; END PROCESS; END ARCHITECTURE ART;,9.4 系统仿真/硬件验证,9.4.1 系统的有关仿真 电梯控制器DTKZQ的仿真结果如图9.3所示。请读者自己对仿真结果进行分析。,图9.3 电梯控制器DTKZQ的仿真图,9.4.2 系统的硬件验证 请读者根据自己所拥有的EDA实验开发系统的实际情况,直接或稍做变动

21、进行硬件验证。,9.5 设计技巧分析,有关的具体语句如下(详细请见前述的VHDL程序): NUM:=CONV_INTEGER(LIFTOR)+1; T:=CONV_INTEGER(DIR)+1; IF (RUN_STOP=1) THEN IF (TNUM)AND (ST_CH=1)OR (UPIN=1)THEN CASE T IS,WHEN 1 = UR(1) UR(2) UR(3) UR(4) UR(5) UR(6) UR(7)=1;,有关的具体语句如下(详细请见前述的VHDL程序): P3:PROCESS(UR,DR,LIFTOR,LADD,WAI_T,RUN_STOP) BEGIN IF

22、 (RUN_STOP=1) THEN IF (WAI_T=“110“) THEN IF (UR OR DR)=“0000000000000000“) THEN LADD(1)=0; -等待状态 ELSE CASE LIFTOR IS,WHEN “0000“=IF (UR(1)OR DR(1)0) THEN LADD(1)IF (UR(2)OR DR(2)0) THEN LADD(1)=0; -等待状态 ELSIF ( LADD(0)=1)AND (UR(16 DOWNTO 3),OR DR(16 DOWNTO 3)“00000000000000“) OR(UR(1)OR DR(1)=0) THEN LADD =“11“; -上升状态 ELSE LADD=“10“; -下降状态 END IF;,WHEN “0010“=IF (UR(3) OR DR(3)0) THEN LADD(1)“0000000000000“) OR(UR(2 DOWNTO 1) OR DR(2 DOWNTO 1)=“00“) THEN LADD=“11“; ELSE LADD=“10“; END IF;,9.6 系统扩展思路,(1) 设计系统工作的外围电路:系统用方波信号源、直流工作电源、彩灯控制的驱动电路。 (2) 若为课程设计,除要求设计调试程序、外围电路外,还可要求设计制作整个系统,包括PCB的制作。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 研究报告 > 商业贸易


经营许可证编号:宁ICP备18001539号-1