三层电梯控制器.docx

上传人:b****6 文档编号:4374401 上传时间:2022-12-01 格式:DOCX 页数:14 大小:80.42KB
下载 相关 举报
三层电梯控制器.docx_第1页
第1页 / 共14页
三层电梯控制器.docx_第2页
第2页 / 共14页
三层电梯控制器.docx_第3页
第3页 / 共14页
三层电梯控制器.docx_第4页
第4页 / 共14页
三层电梯控制器.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

三层电梯控制器.docx

《三层电梯控制器.docx》由会员分享,可在线阅读,更多相关《三层电梯控制器.docx(14页珍藏版)》请在冰豆网上搜索。

三层电梯控制器.docx

三层电梯控制器

成绩评定表

学生姓名

高张宝

班级学号

1203030133

专业

电子信息工程

课程设计题目

三层电梯控制器

 

 

组长签字:

成绩

 

日期

2015年月日

 

课程设计任务书

学院

信息科学与工程学院

专业

电子信息工程

学生姓名

高张宝

班级学号

1203030133

课程设计题目

三层电梯控制器

一、内容及要求:

利用所学的EDA设计方法设计三层电梯控制器,熟练使用使用QUARTUSⅡ应用软件,进一步学习使用VHDL语言、原理图等EDA设计方法进行综合题目的方法。

1、调试底层模块,并时序仿真。

2、设计顶层模块,并时序仿真。

3、撰写课程设计报告。

二、功能要求:

(1)每层电梯入口处设有上下请求开关

(2)设有电梯所处位置指示装置及电梯运行模式(上升或下降)指示装置

(3)电梯到达有停站请求的楼层后,经过1S电梯门打开,开门指示灯亮,开门4S后,电梯门关闭(开门指示灯灭),电梯继续运行,并能响应提前关门延时关门.

(4)能记忆电梯内外的所有请求信号,并按照电梯运行规则次序响应,每个请求信号保留至执行后消除。

(5)电梯初始状态为一层开门.

(6)具有超载报警和故障报警的功能.

三、进度安排:

课程设计时间为10天(2周)

1、调研、查资料1天。

2、总体方案设计2天。

3、代码设计与调试5天。

4、撰写报告1天。

5、验收1天。

指导教师:

2015年月日

专业负责人:

2015年月日

学院教学副院长:

2015年月日

 

1概述1

1.1设计背景和意义1

1.2设计任务1

1.3设计要求2

2总体设计思路及原理描述3

2.1总体设计思路3

2.2原理描述4

3软件代码设计5

4仿真及测试10

4.1电梯上升仿真10

4.2电梯下降仿真10

4.3运行结果分析11

5总结12

6参考文献13

1概述

1.1设计背景及意义

随着EDA技术发展和应用领域的扩大与深入,EDA技术在电子信息、通讯、自动控制及计算机应用等领域的重要性突出。

随着技术市场与人才市场对EDA的需求不断提高,产品的市场需求和技术市场的要求也必然会反映到教学领域和科研领域中来。

因此学好EDA技术对我们有很大的益处。

EDA功能强大,一台计算机、一套EDA软件和一片或几片大规模可编程芯片(CPLD/FPGA或ispPAC),就能完成电子系统的设计。

EDA技术涉及面广,内容丰富,但在教学和技术推广层面上,应用较为广泛的是基于可编程器件的EDA技术,它主要包括如下四大要素:

1大规模可编程器件,它是利用EDA技术进行电子系统设计的载体;2硬件描述语言,它是利用EDA技术进行电子系统设计的主要手段;3软件开发工具,它是利用EDA技术进行电子系统的智能化的自动化设计工具;4实验开发系统,它是利用EDA技术进行电子系统设计的下载工具及硬件验证工具。

电梯行业也随着科技的发展,不断地出现在人们生活的各个场所,因此,对电梯控制器的设计是一个很实用的例子,对我们掌握EDA技术的应用也有很大的帮助。

1.2设计任务

设计一个三层电梯的控制器。

要求:

(1)每层电梯入口处设有上下请求开关。

(2)设有电梯所处位置指示装置及电梯运行模式(上升或下降)指示装置。

(3)电梯到达有停站请求的楼层后,经过1S电梯门打开,开门指示灯亮,开门4S后,电梯门关闭(开门指示灯灭),电梯继续运行,并能响应提前关门延时关门。

(4)能记忆电梯内外的所有请求信号,并按照电梯运行规则次序响应,每个请求信号保留至执行后消除。

(5)电梯初始状态为一层开门。

(6)具有超载报警和故障报警的功能.

1.3设计要求

(1)根据设计题目要求编写相应程序代码

(2)对编写的VHDL程序代码进行编译和仿真

(3)利用实验箱完成硬件验证

(4)总结设计内容,完成课程设计说明书

 

2总体设计思路及原理描述

2.1总体设计思路

实验模拟生活中电梯运动控制,电梯总共三层,最简单的控制思想如下:

(1)采集用户呼叫楼层,并放入相应的记忆单元中。

(2)不考虑电梯轿厢所在楼层。

若有用户呼叫,电梯上行直到达到用户呼叫最大层,再下行直到到达最低层,由此构成一次行程。

(3)每完成一次行程,检测是否所用用户呼叫均已响应完毕。

如果没有,电梯继续运行,直到响应完所有用户呼叫。

否则,电梯停止运行。

其中用户请求包括外部请求和内部请求。

有外部升降请求信号需点亮相应的外部请求指示灯,内部升降请求信号同外呼。

(4)根据电梯所在楼层,七段数码管显示楼层数。

(5)根据用户运行方向,点亮相应升降指示灯。

(6)当电梯运行到有相应外部呼叫或内部呼叫楼层时,电梯停止运行,灭掉相应的呼叫显示灯,电梯开关门后,继续运行。

 

控制器程序框图

2.2设计原理

电梯控制可以通过多种方法进行设计,其中采用状态机来实现,思路比较清晰。

可以将电梯等待的每秒钟以及开门,关门都看成一个独立的状态。

由于电梯又是每秒上升或下降一层,所以就可以通过一个统一的一秒为周期的时钟来触发状态机。

根据电梯的实际工作情况,可以把状态机设置10个状态,分别是“电梯停留在1层”,“开门”,“关门”,“开门等待第一秒”,“开门等待第二秒”,“开门等待第三秒”,“开门等待第四秒”,“上升”,“下降”和“停止”状态。

各个状态之间的转换条件可以由上面的设计要求所决定。

电梯运行规则:

当电梯处在上升模式时,只响应比电梯所在位置高的上楼请求,由下向上逐个执行,直到最后一个上楼请求执行完毕。

如果高层有下楼请求,直接升到有下楼请求的最高楼层,然后进入下降模式。

当电梯在一楼时,不管是梯内梯外,电梯都只可能接收到上升的请求信号。

此时,电梯就进入预上升状态,准备作上升运行。

如果电梯没有接收到请求信号,电梯则在一楼待机。

当电梯在二楼时,电梯则可能出现三种情况:

电梯并没有接收到梯内梯外的任何请求信号时,电梯停在二楼待机;电梯接收到上升请求信号,进入预上升状态;电梯接收到下降请求信号,进入预下降状态。

当电梯在三楼时,不管是梯内梯外,电梯都只可能接收到下降的请求信号。

此时,电梯就进入预下降状态,准备作下降运行。

如果电梯没有接收到请求信号,电梯则停在二楼待机。

 

整体方框图

 

3软件代码设计

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

USEIEEE.STD_LOGIC_ARITH.ALL;

ENTITYdiantiIS--程序实体定义

PORT(clk,swich:

INSTD_LOGIC;

sel,uplift,downlift:

INSTD_LOGIC_VECTOR(3DOWNTO1);

opendoor,up_s,do_s,pa_s:

OUTSTD_LOGIC;

dis:

OUTSTD_LOGIC_VECTOR(3DOWNTO0));

ENDdianti;

ARCHITECTUREbehaveOFdiantiIS--结构体定义

SIGNALclk1hz,clk4hz:

STD_LOGIC;

SIGNALur,dr,openonce:

STD_LOGIC;

SIGNALclropen,clrrun,en,enrun:

STD_LOGIC;

TYPEstatetypeIS(pause,up,down);

SIGNALstate:

statetype;

SIGNALopentime,runtime,urr,drr:

STD_LOGIC_VECTOR(3DOWNTO1);

SIGNALposition,seld,upd,downd:

STD_LOGIC_VECTOR(3DOWNTO1);

BEGIN

U0:

PROCESS(clk)--分频进程

VARIABLEq:

STD_LOGIC_VECTOR(3DOWNTO0);

BEGIN

IFclk'eventANDclk='1'THEN

q:

=q+1;

ENDIF;

clk4hz<=q

(1);--产生4HZ脉冲

clk1hz<=q(3);--产生1HZ脉冲

ENDPROCESS;

U1:

PROCESS(swich,clk,uplift,downlift)--将上升、下降请求记录

BEGIN

IFrising_edge(clk)THEN

IFstate=pauseTHEN

drr<=drrANDNOT(position);

urr<=urrANDNOT(position);

IF(uplift/=updANDur/='1'ANDposition>uplift)THEN

drr<=(drrORuplift);

ELSIF(downlift/=downdANDur/='1'ANDposition>downlift)THEN

drr<=(drrORdownlift);

ELSIF(uplift/=updANDdr/='1'ANDposition

urr<=(urrORuplift);

ELSIF(downlift/=downdANDdr/='1'ANDposition

urr<=(urrORdownlift);

ELSIF(sel/=seld)THEN

IF(sel

drr<=(drrORsel);

ELSIF(sel>positionANDdr/='1')THEN

urr<=(urrORsel);

ENDIF;

ENDIF;

ELSIF(state=up)THEN

IF(uplift/=updANDdr/='1'ANDposition

urr<=(urrORuplift);

ELSIFsel/=seldANDdr/='1'ANDposition

urr<=(urrORsel);

ENDIF;

ELSIF(state=down)THEN

IF(downlift/=downdANDur/='1'ANDposition>downlift)THEN

drr<=(drrORdownlift);

ELSIFsel/=seldANDur/='1'ANDposition>selTHEN

drr<=(drrORsel);

ENDIF;

ENDIF;

ENDIF;

ENDPROCESS;

ur<='1'WHENurr/="000"ELSE'0';

dr<='1'WHENdrr/="000"ELSE'0';

U2:

PROCESS(swich,clk)--暂停、上升、下降三个状态之间转换

BEGIN

IFswich='0'THEN--开关关闭时,处于暂停状态

state<=pause;up_s<='0';do_s<='0';pa_s<='1';openonce<='1';opendoor<='0';

clrrun<='1';enrun<='0';clropen<='1';en<='0';

ELSIFRISING_EDGE(CLK)THEN--开关打开后,三个状态之间变化

CASEstateIS

WHENup=>IFruntime="100"THENclrrun<='1';enrun<='0';

IFposition=(urrANDposition)THEN

state<=pause;up_s<='0';do_s<='0';pa_s<='1';clropen<='0';en<='1';

ENDIF;

ELSEclrrun<='0';enrun<='1';up_s<='1';do_s<='0';pa_s<='0';

ENDIF;

WHENdown=>IFruntime="100"THENclrrun<='1';enrun<='0';

IFposition=(drrANDposition)THEN

state<=pause;up_s<='0';do_s<='0';pa_s<='1';clropen<='0';en<='1';

ENDIF;

ELSEclrrun<='0';enrun<='1';up_s<='0';do_s<='1';pa_s<='0';

ENDIF;

WHENpause=>IF(opentime="010"ANDopenonce='0')OR(uplift/=updANDposition=uplift)

OR(downlift/=downdANDposition=downlift)THEN

opendoor<='1';clropen<='0';en<='1';openonce<='0';

ENDIF;

IF(opentime="101"OR(openonce='1'AND(ur='1'ORdr='1')))THEN

IFur='1'THEN

state<=up;

opendoor<='0';up_s<='1';

en<='0';do_s<='0';

clropen<='1';pa_s<='0';

openonce<='0';

ELSIF(dr='1')THEN

state<=down;

opendoor<='0';up_s<='0';

en<='0';do_s<='1';

clropen<='1';pa_s<='0';

openonce<='0';

ELSE

state<=pause;

opendoor<='0';pa_s<='1';

en<='0';do_s<='0';

clropen<='1';up_s<='0';

openonce<='1';

ENDIF;

ENDIF;

ENDCASE;

ENDIF;

ENDPROCESSU2;

U3:

PROCESS(clk)--将按键请求记录、防抖电路

BEGIN

IFCLK'EVENTANDCLK='1'THEN

downd<=downlift;upd<=uplift;

seld<=sel;

ENDIF;

ENDPROCESS;

U4:

PROCESS(clk4hz,swich)

BEGIN

IFswich='0'THENposition<="001";--开关没开时,电梯停在第一层

ELSIFRISING_EDGE(CLK4HZ)THEN

IFruntime="011"THEN

IFstate=upTHEN

position<=position(2downto1)&'0';--电梯处于上升时position循环左移

ELSIFstate=downTHENposition<='0'&position(3downto2);

ENDIF;--电梯处于下降时position循环右移

ENDIF;

ENDIF;

ENDPROCESS;

U5:

PROCESS(clk1hz,clropen)--用于控制开门时间计时的进程

BEGIN

IFclropen='1'THENopentime<="000";

ELSIFRISING_EDGE(CLK1HZ)THEN

IFen='1'THEN

IFopentime="101"THENopentime<="101";

ELSEopentime<=opentime+1;

ENDIF;

ENDIF;

ENDIF;

ENDPROCESS;

U6:

PROCESS(CLK4HZ,clrrun)--用于控制运行时间的进程

BEGIN

IFclrrun='1'THENruntime<="000";

ELSIFRISING_EDGE(CLK4HZ)THEN

IFenrun='1'THEN

IFruntime="100"THENruntime<=runtime;

ELSEruntime<=runtime+1;

ENDIF;

ENDIF;

ENDIF;

ENDPROCESS;

U7:

PROCESS(clk)--将电梯所处楼层显示在数码管上

BEGIN

IFRISING_EDGE(CLK)THEN

IFposition="001"THENdis<="0001";

ELSIFposition="010"THENdis<="0010";

ELSIFposition="100"THENdis<="0011";

ELSEdis<="0000";

ENDIF;

ENDIF;

ENDPROCESS;

ENDbehave;

 

4仿真及测试

Altera公司的Quartuii是一个全面的、易于使用且具有独立解决问题能力的软件,可以完成设计流程中的输入、综合、布局布线、时序分析、仿真和编程下载等功能。

与第三代设计工具MAX+plusii相比,其功能更加完善,特别适合大规模逻辑电路的设计。

4.1电梯上升仿真

当电梯外部有上升请求时,波形图如图所示:

4.2电梯下降仿真

当电梯外部有下降请求时,波形图如图所示

4.3运行结果分析

电梯初始状态为一层,处在关门状态,开门指示灯不亮。

一层电梯入口处设有上楼请求开关,二层电梯入口设有上、下楼请求开关,三层电梯入口处设有下楼请求开关,电梯内部设有乘客到达楼层的停站请求开关。

当一楼有请求上楼时,等待一秒开门,四秒后关门执行所选楼层请求。

电梯到达有停站请求的楼层后,电梯门打开,开门指示灯亮,数码管显示所在楼层,暂停状态灯亮。

开门4秒后,电梯门关闭,开门指示灯灭,暂停状态灯灭。

电梯继续运行,直至执行完最后一个请求信号后停在当前层。

若起初高层有请求,电梯则直接到达有请求的楼层,开门等待下一个请求。

电梯控制系统能记忆电梯内外的请求信号,并按照电梯运行规则工作,每个请求信号执行完毕后随即清除。

 

5总结

在这一周的设计过程中,除找资料外,大多时间都是在电脑上进行的,通过反复的编译,仿真,不断试验来实现所得结果。

在设计上,运用了EDA自上而下的设计思想,逐步完善所设计功能,同时,用到VHDL语言中的状态机,多进程,CASE、IF….ELSE等语句,才达到以上结果。

在设计中也遇到许多困难,在自己及同学的共同努力下才完成此设计。

因此这次课设给我带来的收获主要有:

进一步熟悉maxplusII软件的使用和操作方法,以及硬件实现时的下载方法与运行方法;

对vhdl语言的自顶向下设计方法有了进一步的认识,对其中的许多语句也有了新了解,掌握;

对自己独立思考和解决问题的能力也有了很大的锻炼,同时同学间的互帮互助精神也是在课程设计中很好体现的;

不足之处也有以下几点:

在设计中,发现错误,自己纠错能力还是很欠缺,未能很好的找出,还是在老师及同学帮助下才完成;另外,对于自己想改进的地方,都能很好的指出,当要真正的去把其他改进的功能加上去,自己还是有所欠缺。

 

6参考文献

《EDA技术与数字系统设计》邹彦电子工业出版社

《EDA技术实用教程》潘松,黄继业科学出版社

《VHDL与数字电路设计》卢杰科学出版社

《VHDL硬件描述语言》Bhasker著机械工业出版社

《电子技术课程设计指导》彭介华东南大学出版社

 

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

当前位置:首页 > 幼儿教育 > 育儿理论经验

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1