最新EDA电梯控制器设计EDA技术综合课程设计文档格式.docx

上传人:b****6 文档编号:17666192 上传时间:2022-12-08 格式:DOCX 页数:21 大小:137.18KB
下载 相关 举报
最新EDA电梯控制器设计EDA技术综合课程设计文档格式.docx_第1页
第1页 / 共21页
最新EDA电梯控制器设计EDA技术综合课程设计文档格式.docx_第2页
第2页 / 共21页
最新EDA电梯控制器设计EDA技术综合课程设计文档格式.docx_第3页
第3页 / 共21页
最新EDA电梯控制器设计EDA技术综合课程设计文档格式.docx_第4页
第4页 / 共21页
最新EDA电梯控制器设计EDA技术综合课程设计文档格式.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

最新EDA电梯控制器设计EDA技术综合课程设计文档格式.docx

《最新EDA电梯控制器设计EDA技术综合课程设计文档格式.docx》由会员分享,可在线阅读,更多相关《最新EDA电梯控制器设计EDA技术综合课程设计文档格式.docx(21页珍藏版)》请在冰豆网上搜索。

最新EDA电梯控制器设计EDA技术综合课程设计文档格式.docx

2、用数码管显示电梯所在的楼层号,电梯初始化后状态在第一层楼。

3、每层电梯外都有上下楼请求开关,电梯内部有到各楼层的请求开关及紧急故障开关;

用数码管显示上行或下行状态,用发光二极管显示是否有紧急情况。

4、电梯每秒升(降)一层,电梯到达有停站请求的楼层后,经1秒电梯开门,开门指示灯亮,开门4秒后指示灯灭,关门,电梯继续运行。

5、当电梯被锁定或发生紧急情况后,电梯停止运行,直到解除锁定或紧急故障后才可以从停止时的状态继续运行。

6、当电梯处于上升状态时,只响应比电梯所在位置高的上楼请求信号,直到最后一个上楼请求执行完毕,再进入下降模式;

同理,电梯处于下降状态时,只响应比电梯所在位置低的下楼请求信号,直到最后一个下楼请求执行完毕,再进入上升模式。

二.[可选器件]

1.计算机组成/ISP实验箱一台(含电源)

2.电源线一根

FPGA/CPLD下载板一块(或多块,可选)(其中下载版选择以下型号CycloneEP1C6Q240C8)

3.并行口下载电缆一根

4.电压表棒一付

5.实验指导书一份

6.配套集成电路芯片若干

三.[设计框图]

系统主要分为:

主控制模块control,包含状态机,控制电梯的运行及状态转换;

消抖模块unshake,消除开关电路的抖动现象,确保逻辑的正确性;

显示模块display,内含译码功能,配合控制器显示电梯的工作状态。

模块框图见图1,总体框图详见图2。

图1各模块框图

图2系统总体框图

四.[设计思路]

1.对于电梯控制逻辑的实现,主要是控制模块control,故下面主要介绍控制模块control的设计思想。

控制模块control有一个进程k1,其中又设置了一个计数变量cnt,范围为1~2000000。

计数变量cnt其实是起到分频器的作用,产生了一个1Hz的时钟,在cnt计数2000000次的时间内(即1s),运行控制电梯升降、停留的程序,这些部分相当于以1Hz的时钟触发;

而系统主频时钟2MHz作为触发时钟不断检测用户是否有请求输入,或者电梯是否有异常情况。

对于一、二、三层信号,分别由flag1、flag2、flag3和clear1、clear2、clear3两套标志为来控制输入请求是否有效,是否应该对标志位清零。

2.主要规则是:

当一层(upone、one)、二层(uptwo、downtwo、two)或三层(downthree、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~3的整数,分别表示电梯处于第一、二、三层;

state表示电梯的运行状态,使枚举数据类型,共10个值,分别是:

--states为电梯所处的各个状态

--up1表示电梯正在从第1层上升

--up2表示电梯正在从第2层上升

--down1表示电梯正在向第1层下降

--down2表示电梯正在向第2层下降

--stop表示电梯停止在某一层上

--dw1表示电梯开门的第一秒

--dw2表示电梯开门的第二秒

--dw3表示电梯开门的第三秒

--dw4表示电梯开门的第四秒,判断电梯的下一个状态

--dw5表示当电梯处于上升或下降状态时,如果没有相应的上升或下降请求信号,则转入

dw5状态,使其不再在上升或下降状态停留,而响应其它信号

程序利用case语句实现这10个状态间的相互转移。

五.[引脚分配]

详见下图

[状态流程图]

1、顶层流程图解

空闲响应状态

2、以下是较具体的状态转化图

六.[程序清单]

消抖模块(程序分两栏排版)

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

useieee.std_logic_arith.all;

entityunshakeis

port(clk:

instd_logic;

--时钟,10HZ;

key:

--开关信号;

keyout:

outstd_logic);

--消抖之后的开关信号

end;

architectureaofunshakeis

signalcp:

std_logic;

signaljsp:

integerrange0to3;

begin

process(clk)

begin

if(clk'

eventandclk='

1'

)then

ifkey='

then

ifjsp=3then

jsp<

=jsp;

else

=jsp+1;

endif;

ifjsp=1then

cp<

='

;

0'

else

jsp<

=0;

endif;

endif;

keyout<

=cp;

endprocess;

显示模块(程序分两栏排版)

entitydisplayis

port(clk:

instd_logic;

light:

inintegerrange1to3;

serout:

outstd_logic_vector(6downto0));

architectureaofdisplayis

signaldisp:

std_logic_vector(6downto0);

iflight=1then

disp<

="

1001111"

elsiflight=2then

0010010"

elsiflight=3then

0000110"

serout<

=disp;

主控模块

--*****************************************************************************

entitycontrolis

port(upone,uptwo,downtwo,downthree:

--电梯外乘客的请求信号

one,two,three:

--电梯内乘客的请求上或下至几层楼的信号

reset:

--复位初始化开关

over,emergency,lock:

--超重、紧急停运和上锁信号

clk:

--时钟信2MHz

alarm,ovelight,locklight:

outstd_logic;

--故障、超重及锁定提示灯

p:

outintegerrange1to3;

--电梯当前位置

lightup,lightdown:

outstd_logic_vector(6downto0);

--lightup显示'

u'

则电梯在上升模式,

--lightdown显示'

d'

则电梯在下降模式;

arrive:

outstd_logic);

--arrive为'

时表明电梯到达楼层,并在开门状态

architecturebehaveofcontrolis

typestatesis(up1,up2,down1,down2,stop,dw1,dw2,dw3,dw4,dw5);

--states为电梯所处的各个状态

--此dw5状态,使其不再在上升或下降状态停留,而响应其它信号

signalstate:

states;

signalclear1,clear2,clear3,flag1,flag2,flag3,fl1,fl2,fl3:

std_logic;

--这些都是标志位,控制电梯的状态转换

--flag1、flag2、flag3代表各层相应的请求信号

--clear1、clear2、clear3代表相应层的请求已经完成,可以接收新的任务

signalposition:

integerrange1to3;

--电梯的当前停留位置

signallup,ldown:

--与lightup和lightdown功能相同

signalarr:

--与arrive功能相同

signalala,ov,loc:

--与alarm,ovlight,locklight功能相同

k1:

variablecnt:

integerrange1to2000000;

variableupdown:

--此变量表明电梯处于上升或下降状态

eventandclk='

if(upone='

orone='

)then--一层有上楼请求

flag1<

elsifclear1='

then--一层的请求已完成

--当没有新请求信号则清零

if(uptwo='

ordowntwo='

ortwo='

)then--二层有请求

flag2<

elsifclear2='

then--二层的请求已完成

--当没有新请求信号则二层清零

if(downthree='

orthree='

)then--三层有请求

flag3<

elsifclear3='

then--三层的请求已完成

--当没有新请求信号则三层清零

if(emergency='

)then

ala<

elsif(over='

ov<

elsif(lock='

loc<

ifcnt<

2000000then--通过计数2000000获得1s的时钟信号

cnt:

=cnt+1;

--计数信号小于20000000则加1

ifreset='

then--复位时,电梯初值设置在一层,状态为stop

position<

=1;

state<

=stop;

ovelight<

--各状态指示灯均灭

locklight<

alarm<

lup<

1111111"

ldown<

fl1<

=flag1;

fl2<

=flag2;

fl3<

=flag3;

--fl1、fl2、fl3置'

表示相应楼层有请求信号,并把相应的任务完成信号clear

--置'

表示有新的任务等待完成

if(fl1='

clear1<

if(fl2='

clear2<

if(fl3='

clear3<

casestateis--状态机描述

whenup1=>

-------------up1:

正在从一层上升

iffl2='

then--若上升期间二层期间无请求,则直接上三层

clear1<

clear3<

state<

=up2;

position<

=2;

else

fl2<

--完成了对二层请求的响应;

clear2<

endif;

whenup2=>

--------------up2:

正在从二层上升

clear1<

clear2<

state<

position<

=3;

ifposition=2then--如果电梯在第二层

--那么下一个位置在第三层

fl3<

--完成了对第三层请求的相应

elsifposition=1then--如果电梯在第一层

--那么下一个位置在第二层

--二层的请求已经完成

whendown1=>

--正在向第一层下降

clear3<

--下一状态是stop

ifposition=2then--如果电梯在第二层

--那么下一个位置在第一层

fl1<

--一层的请求已经完成

elsifposition=3then

whendown2=>

--正在向第二层下降

--如果在下降期间,二层没有请求,就直接下到一层

iffl2='

--下一状态转至down1,电梯将会再下降一层

=down1;

--电梯的下一个位置在第二层

--若下降期间二层有请求,则在二层停下

--位置转至二层

fl2<

--完成了对二层请求的响应

whenstop=>

--在停止状态

if(emergency='

orover='

state<

else

=dw1;

--下一状态转至dw1,电梯会进入开门状态

arr<

--arr置'

表明电梯到达并开门

lup<

--上升指示灯灭

ldown<

--下降指示灯灭

whendw1=>

--在dw1状态时,等待1s

=dw2;

--下一状态转至dw2

whendw2=>

=dw3;

whendw3=>

=dw4;

whendw4=>

--开门灯灭

ifposition=1then--如果电梯在第一层

updown:

--则进入上升模式

fl1<

--一层的任务完成

then--如果二层有请求

=up1;

--先响应二层的请求,再响应上升一层的请求

arr<

--维持灯熄灭状态

lup<

1000001"

--上升灯亮,显示字母’U’

elsiffl3='

then--若三层有请求

state<

--响应完二层请求信号后,再响应第三层的请求

--开门灯维持熄灭状态

--上升灯亮,显示字母’U’

elsifposition=3then

--进入下降状态

fl3<

--到达三层的任务已完成

then--若二层有请求

=down2;

--先响应二层请求,再转入下降一层的状态

ldown<

1000010"

--下降灯亮,显示’d’

elsiffl1='

--响应完二层请求信号后再响应一层的请求

elsifposition=2then

--到达二层的任务已经完成

ifupdown='

--当电梯处于上升状态,不响应一层的请求

iffl3='

state<

arr<

lup<

else

=dw5;

--若三层无请求,就转至dw5状态

endif;

ifupdown='

--当处于下降状态,不响应三层的请求

iffl1='

then

ldown<

--若一层无请求,就转至dw5状态

whendw5=>

--只要到了dw5的状态,无论原来处于上升或下降状态,对三层和一层的信号都可相响应

iffl3='

arr<

lup<

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

当前位置:首页 > PPT模板 > 动物植物

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

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