EDA课程设计——电梯控制器(共16页)_第1页
EDA课程设计——电梯控制器(共16页)_第2页
EDA课程设计——电梯控制器(共16页)_第3页
EDA课程设计——电梯控制器(共16页)_第4页
EDA课程设计——电梯控制器(共16页)_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上电子设计自动化(EDA)技术课程设计报告题目:姓 名: 院 系: 专业: 学 号: 指导教师: 完成时间: 年 月 日 目 录一、 课程设计题目、内容与要求 41.1 设计内容 41.2 具体要求 4二、 系统设计 42.1 设计思路 42.2 系统原理(包含:框图等阐述)与设计说明等内容三、系统实现 5注:此部分阐述具体实现,包含主要逻辑单元、模块、源代码等内容四、系统仿真 12五、硬件验证(操作)说明15六、总结 16七、参考书目 17设计题目电梯控制系统设计要求1.电梯入口处设有上下请求开关各1个,电梯内设有乘客到达层次的数字开关。电梯当前所在的楼层位置用一位数

2、码管显示,用一只发光二极管显示开门/关门状态,用发光二极管显示每层的上下请求状态;2.显示电梯当前所处位置和电梯上行下行及开关门状态;3.电梯到达有停靠站请求的楼层后,电梯门就会自动打开门指示灯亮,开门3秒钟后,电梯门自动关闭并继续运行;4.对电梯开门时间可以提前关门(按关门按钮);5.能记忆电梯内外的所有请求信号,并按照电梯运行的规则次第响应,每个请求信号保留至执行后撤除,如到达某层后,上下方均无请求,则电梯停在该层,中止运行。 设计过程(包括:设计方案、上机设计与仿真结果、硬件实验方案及实验结果、收获和体会) 附后成绩评定指导教师评语课程设计等级一、课程设计题目、内容与要求1.1课程设计内

3、容-电梯控制系统采用EDA-VHDL语言建模电梯控制系统,实现电梯的功能需求。在实验操作平台MAXPLUSII和实验箱(主芯片EPM7096LC68-7)上完成系统的仿真。1.2电梯系统控制设计要求(1).每层电梯入口处设有上下请求开关各1个,电梯内设有乘客到达层次的数字开关。电梯当前所在的楼层位置用一位数码管显示,用一只发光二极管显示开门/关门状态,用发光二极管显示每层的上下请求状态;(2).显示电梯当前所处位置和电梯上行下行及开门,关门状态; (3).电梯到达有停靠站请求的楼层后,电梯门就会自动打开门指示灯亮,开门3秒钟后;(4).电梯门自动关闭(开门指示灯灭)电梯继续运行;(5).对电梯

4、开门时间可以提前关门(按关门按钮);(6).能记忆电梯内外的所有请求信号,并按照电梯运行的规则次第响应,每个请求信号保留至执行后撤除,如到达某层后,上下方均无请求,则电梯停在该层,中止运行。 二、系统设计2.1设计思路该设计采用方向优先控制方式方案,方向优先控制是指电梯运行到某一楼层时先考虑这一楼层是否有请求:有 ,则停止;无,则继续前进。停下来后再启动时的步骤:考虑前方上方或下方是否有请求:有,则继续前进;无,则停止;检测后方是否有请求,有请求则转向运行,无请求则维持停止状态。2.2 系统原理(包含:框图等阐述)与设计说明等内容电梯控制器系统由系统时钟,楼层请求,故障清除,关门中断,超载,提

5、前关门,信号存储,状态存储,中央处理器,电梯升降停,门开关停,楼层显示,请求信号显示,超载故障报警部分组成。如图1和如图2所示图2 电梯控制系统电路图三、系统实现(1)外部数据高速采集模块设计有效的对外部信号采集、处理要求电梯控制器对外部请求信号的实时、准确采集准确、实时的捕捉楼层到达信号;有防止楼层到达信号、外部请求信号的误判。(2)信号存储模块电梯控制器的请求输入信号有18个(电梯外有6个上升请求和6个下降请求的用户输入端口,电梯内有6个请求用户输入端口),由于系统对内、外请求没有设置优先级,各楼层的内、外请求信号被采集后可先进行运算,再存到存储器内。(3)基于FPGA的中央处理模块中央数

6、据处理模块是系统的核心,通过对存储的数据(含请求、到达楼层等信号)进行比较、判断以驱动系统状态的流转。电梯工作过程中共有9种状态:等待、上升、下降、开门、关门、停止、休眠、超载报警以及故障报警状态。一般情况下,电梯工作起始点是第一层,起始状态是等待状态,启动条件是收到上升请求。系统的状态流程图如图3所示:- 图3 系统状态流程图(4)源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity dianti is port ( clk

7、 : in std_logic; -时钟信号(频率为2Hz) full,deng,quick,clr : in std_logic;-超载、关门中断、提前关门清除报警信号 c_u1,c_u2,c_u3,c_u4,c_u5: in std_logic; -电梯外人的上升请求信号 c_d2,c_d3,c_d4,c_d5,c_d6 : in std_logic; -电梯外人的下降请求信号 d1,d2,d3,d4,d5,d6 : in std_logic; -电梯内人的请求信号 g1,g2,g3,g4,g5,g6 : in std_logic; -到达楼层信号 door : out std_logic

8、_vector(1 downto 0); -电梯门控制信号 led : out std_logic_vector(6 downto 0); -电梯所在楼层显示 led_c_u:out std_logic_vector(5 downto 0); -电梯外人上升请求信号显示 led_c_d:out std_logic_vector(5 downto 0); -电梯外人下降请求信号显示 led_d : out std_logic_vector(5 downto 0); -电梯内请求信号显示 wahaha : out std_logic; -看门狗报警信号 ud,alarm : out std_log

9、ic; -电梯运动方向显示,超载警告信号up,down : out std_logic ); -电机控制信号和电梯运动end dianti;architecture behav of dianti issignal d11,d22,d33,d44,d55,d66:std_logic; -电梯内人请求信号寄存信号signal c_u11,c_u22,c_u33,c_u44,c_u55:std_logic; -电梯外人上升请求信号寄存信号signal c_d22,c_d33,c_d44,c_d55,c_d66:std_logic; -电梯外人下降请求信号寄存信号signal q:integer r

10、ange 0 to 1; -分频信号signal q1:integer range 0 to 6; -关门延时计数器 signal q2:integer range 0 to 9; -看门狗计数器signal dd,cc_u,cc_d,dd_cc:std_logic_vector(5 downto 0); -电梯内外请求信号寄存器signal opendoor:std_logic; -开门使能信号signal updown:std_logic; -电梯运动方向信号寄存器signal en_up,en_dw:std_logic; -预备上升、预备下降预操作使能信号beginprocess(clk

11、)beginif clk'event and clk='1' then if clr='1' then q1<=0;q2<=0;wahaha<='0' -清除故障报警 elsif full='1' then alarm<='1' q1<=0; -超载报警if q1>=3 then door<="10" else door<="00" end if; elsif q=1 then q<=0;alarm<=

12、9;0' if q2=3 then wahaha<='1' -故障报警 else if opendoor='1' then door<="10"q1<=0;q2<=0;up<='0'down<='0'-开门操作 elsif en_up='1' then -上升预操作 if deng='1' then door<="10"q1<=0;q2<=q2+1; -关门中断 elsif quick='1

13、' then q1<=3; -提前关门 elsif q1=6 then door<="00"updown<='1'up<='1' -关门完毕,电梯进入上升状态 elsif q1>=3 then door<="01"q1<=q1+1; -电梯进入关门状态 else q1<=q1+1;door<="00" -电梯进入等待状态 end if; elsif en_dw='1' then -下降预操作 if deng='1

14、9; then door<="10"q1<=0;q2<=q2+1; elsif quick='1' then q1<=3; elsif q1=6 then door<="00"updown<='0'down<='1' elsif q1>=3 then door<="01"q1<=q1+1; else q1<=q1+1;door<="00" end if; end if; if g1='1&

15、#39; then led<="" -电梯到达1楼,数码管显示1 if d11='1' or c_u11='1' then d11<='0' c_u11<='0'opendoor<='1'-有当前层的请求,则电梯进入开门状态 elsif dd_cc>"" then en_up<='1' opendoor<='0' -有上升请求,则电梯进入预备上升状态 elsif dd_cc="" t

16、hen opendoor<='0' -无请求时,电梯停在1楼待机 end if; elsif g2='1' then led<="" -电梯到达2楼,数码管显示2 if updown='1' then -电梯前一运动状态位上升 if d22='1' or c_u22='1' then d22<='0' c_u22<='0' opendoor<='1' -有当前层的请求,则电梯进入开门状态 elsif dd_cc>

17、"" then en_up<='1' opendoor<='0' -有上升请求,则电梯进入预备上升状态 elsif dd_cc<"" then en_dw<='1' opendoor<='0' -有下降请求,则电梯进入预备下降状态 end if; -电梯前一运动状态为下降 elsif d22='1' or c_d22='1' then d22<='0' c_d22<='0'opendoo

18、r<='1' -有当前层的请求,则电梯进入开门状态 elsif dd_cc<"" then en_dw<='1' opendoor<='0' -有下降请求,则电梯进入预备下降状态 elsif dd_cc>"" then en_up<='1' opendoor<='0' -有上升请求,则电梯进入预备上升状态 end if; elsif g3='1' then led<="" -电梯到达3楼,数码

19、管显示3 if updown='1' then if d33='1' or c_u33='1' then d33<='0' c_u33<='0'opendoor<='1' elsif dd_cc>"" then en_up<='1' opendoor<='0' elsif dd_cc<"" then en_dw<='1' opendoor<='0

20、9; end if; elsif d33='1' or c_d33='1' then d33<='0' c_d33<='0' opendoor<='1' elsif dd_cc<"" then en_dw<='1' opendoor<='0' elsif dd_cc>"" then en_up<='1' opendoor<='0' end if; elsif

21、g4='1' then led<="" -电梯到达4楼,数码管显示4 if updown='1' then if d44='1' or c_u44='1' then d44<='0' c_u44<='0' opendoor<='1' elsif dd_cc>"" then en_up<='1' opendoor<='0' elsif dd_cc<"&quo

22、t; then en_dw<='1' opendoor<='0' end if; elsif d44='1' or c_d44='1' then d44<='0' c_d44<='0' opendoor<='1' elsif dd_cc<"" then en_dw<='1' opendoor<='0' elsif dd_cc>"" then en_up<

23、='1' opendoor<='0' end if; elsif g5='1' then led<="" -电梯到达5楼,数码管显示5 if updown='1' then if d55='1' or c_u55='1' then d55<='0' c_u55<='0'opendoor<='1' elsif dd_cc>"" then en_up<='1'

24、 opendoor<='0' elsif dd_cc<"" then en_dw<='1' opendoor<='0' end if; elsif d55='1' or c_d55='1' then d55<='0' c_d55<='0'opendoor<='1' elsif dd_cc<"" then en_dw<='1' opendoor<='

25、;0' elsif dd_cc>"" then en_up<='1' opendoor<='0' end if; elsif g6='1' then led<="" -电梯到达6楼,数码管显示6 if d66='1' or c_d66='1' then d66<='0' c_d66<='0'opendoor<='1' elsif dd_cc<"" the

26、n en_dw<='1' opendoor<='0' end if; else en_up<='0'en_dw<='0' -电梯进入上升或下降状态 end if; end if; else q<=1;alarm<='0' -清除超载报警 if d1='1' then d11<=d1; -对电梯内人请求信号进行检测和寄存 elsif d2='1' then d22<=d2; elsif d3='1' then d33<

27、;=d3; elsif d4='1' then d44<=d4; elsif d5='1' then d55<=d5; elsif d6='1' then d66<=d6; end if; if c_u1='1' then c_u11<=c_u1; -对电梯外人上升请求信号进行检测和寄存 elsif c_u2='1' then c_u22<=c_u2; elsif c_u3='1' then c_u33<=c_u3; elsif c_u4='1'

28、then c_u44<=c_u4; elsif c_u5='1' then c_u55<=c_u5; end if; if c_d2='1' then c_d22<=c_d2; -对电梯外人下降请求信号进行检测和寄存 elsif c_d3='1' then c_d33<=c_d3; elsif c_d4='1' then c_d44<=c_d4; elsif c_d5='1' then c_d55<=c_d5; elsif c_d6='1' then c_d66&

29、lt;=c_d6;end if; dd<=d66&d55&d44&d33&d22&d11; -电梯内人请求信号并置 cc_u<='0'&c_u55&c_u44&c_u33&c_u22&c_u11; -电梯外人上升请求信号并置 cc_d<=c_d66&c_d55&c_d44&c_d33&c_d22&'0' -电梯外人下降请求信号并置 dd_cc<=dd or cc_u or cc_d; -电梯内、外人请求信号进行综合 end if; ud<=updown; -电梯运动状态显示 led_d<=dd; -电梯内人请求信号显示 led_c_u<=cc_u; -电梯外人上升请求信号显示 led_c_d<=cc_d; -电梯外人下降请求信号显示end if; end process; end behav

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论