EDA电梯控制器设计_第1页
EDA电梯控制器设计_第2页
EDA电梯控制器设计_第3页
EDA电梯控制器设计_第4页
EDA电梯控制器设计_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

俄面理工辔傀

EDA技术综合课程

设计

课程:EDA技术综合课程设计________

题目:电梯限制器____________

所属院系:电气工程学院专业班级:自控1304班

姓名:SS___________学号:丝

指导老师:____________张立众_____________

完成地点:陕西理工学院_____

书目

1,设计任务...................................................2

2.可选器材..................................................2

3.设计框图..................................................2

4.设计思路..................................................4

5.引脚安排..................................................5

6程序清单.................................................9

7.主控模块仿真.............................................16

8.问题与改进...............................................17

9.总结与感受...............................................18

10.参考文献............................................19

一.[设计任务]

1、设计一个三层的电梯限制器。

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

3、每层电梯外都有上下楼恳求开关,电梯内部有到各楼层的恳求开关与

紧急故障开关;用数码管显示上行或下行状态,用发光二极管显示是否

有紧急状况。

4、电梯每秒升(降)一层,电梯到达有停站恳求的楼层后,经1秒电梯开

门,开门指示灯亮,开门4秒后指示灯灭,关门,电梯接着运行。

5、当电梯被锁定或发生紧急状况后,电梯停止运行,直到解除锁定或紧

急故障后才可以从停止时的状态接着运行。

6、当电梯处于上升状态时,只响应比电梯所在位置高的上楼恳求信号,直

到最终一个上楼恳求执行完毕,再进入下降模式;同理,电梯处于下降

状态时,只响应比电梯所在位置低的下楼恳求信号,直到最终一个下楼

恳求执行完毕,再进入上升模式。

二.[可选器件]

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

2.电源线一根

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

EP1C6Q240C8)

3.并行口下载电缆一根

4.电压表棒一付

5.试验指导书一份

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

三.[设计框图]

系统主要分为:

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

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

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

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

faxitroi

图1各模块框图

1

1

p」

±3

1n

0

®.=亘3S^

荔s

£E汽35

s:皇

-Sk

f・H

T0覆

42

5>适

T-,

G,

os•口

3j

d.

「I

d3,M

遇A

..l1盘

:i

套__L

!一k

k一

s二

云.

8s-一

w

Mc

>H冒

A

3

Sml

4i

Jglg3l

6旦1

:"芳

s>rfH>

》^Har髭

p

£tsr

n,-g.

.□u人

.

JIsEE

菱£

EE港U

-SW

一8

Q柞

图2系统总体框图

四.[设计思路]

1.对于电梯限制逻辑的实现,主要是限制模块control,故下面主要介绍

限制模块control的设计思想。

限制模块control有一个进程kl,其中又设置了一个计数变量ent,范围

为「2000000。计数变量ent其实是起到分频器的作用,产生了一个1Hz

的时钟,在ent计数2000000次的时间内(BPIs),运行限制电梯升降、

停留的程序,这些部分相当于以1Hz的时钟触发;

而系统主频时钟2MHz作为触发时钟不断检测用户是否有恳求输入,或者

电梯是否有异样状况。对于一、二、三层信号,分别由flagl、flag2、

flag3和clearl、clear2>clear3两套标记为来限制输入恳求是否有效,

是否应当对标记位清零。

2.主要规则是:

当一层(upone、one)、二层(uptwo、downtwotwo)或三层

(downthreethree)的输入信号有效时,相应标记位flagl、flag2>

flag3置'1',表明该层有恳求。

当一层(upone、one)、二层(uptwo^downtwo、two)或三层

(downthreethree)的输入信号无效时,相应标记位clear1、clear2、

clear3置'1',表明相应得到达楼层恳求已经在上一个时钟沿完成;

同时对应的标记位flagl、flag2>flag3置'1',表明相应楼层无恳求。

updown信号值为'1'时表明电梯处于上升状态,为‘0'时处于

下降状态。

程序有两个信号表示电梯的状态:一是位置状态,二是运行状态。

p。siti。n表明电梯的位置状态,是一个取值「3的整数,分别表示电梯

处于第一、二、三层;state表示电梯的运行状态,使枚举数据类型,

共10个值,分别是:

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

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

~叩2表示电梯正在从第2层上升

一downl表示电梯正在向第1层下降

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

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

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

一dw2表示电梯开门的其次秒

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

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

-dw5表示当电梯处于上升或下降状态时,假如没有相应的上升或下降

恳求信号,则转入

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

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

五.[引脚安排]

详见下图

GeneralFunction|spedalFunction

T。LocabonI/OBankI/OStandardReservedSigna

1力•arrivePIN_2212LVTTLColumnI/OLVDS21p

2•dkPIN_281LVTTLDedicatedClockCLKO/LVDSCLKlp

3I^downthreePIN_1353LvmRowI/OLVDS47p

4*downtwoPIN_1343LVTTLRowI/OLVDS47n

5emergencyPIN_211LvmRowI/OLVDS7n/DM0L

6lightdown[0]PIN_934LVTTLColumnI/OVREF1B4

72lightdown[1]PIN_944LVTTLColumnI/OLVDS61p/DMlB

8"lightdown⑵PIN_954LVTTLColumnI/OLVDS61n

94>hghtdown[3]PIN_96qLVTTLColumnI/OLVDSGOp

10<>Hghtdown[4]PIN_974LVTTLColumnI/OLVDS60n

11lightdown[5]PIN.984LvmColumnI/OLVDS59p

124>iightdown[6]PIN_994LVTTLColumnI/OLVDS59n

13,L>hghtup[0]PIN.814LvmColunnI/OLVDS65n

14®>ightup[l]PIN_824LVTTLColumnI/OLVDS64p

15"hghtup⑵PIN_834LVTTLColumnI/OLVDS64n

164>bghtup[3]PIN_844Lvm.ColumnI/OLVDS63p

17t>hghtup[4]PIN_854LVTTLColumnI/OLVDS63n

18»ghtup[5]PIN_864LvmColumnI/OLVDS62p

19Sightup⑹PIN_874LVTTLColumnI/OLVDS62n

TO•lockPIN_181LVTTLRowI/OLVDSSp

21O^onePIN_1363LVTTLRowI/OLVDS46n

22I^overPIN_231LVTTLRowI/OVREF1B1

23"resetPIN_1393LVTTLRowI/OLVDS45p

244>serout[0]PIN_U34LVTTLColumnI/OLVDS55p/DQlB3

25<^serout[l]PIN_1144LVTTLColumnI/OLVDS55n/DQlB2

26■fc>serout[2]PIN_1154LVTTLColumnI/OLVDS54p/DQlBl

27C>serout[3]PIN_1164LVTTLColumnI/OLVDS54n/DQlB0

284>serout[4]PIN_1174LVTTLColumnI/OLVDS53p

29C>serout[5]PIN_1184LVTTLColumnI/OLVDS53n

30€>serout[6]PIN_U94LVTTLColumnI/OLVDS52p

31•threePIN_1383LVTTLRowI/OLVDS45n

3-

32•twoPIN_137LVTTLRowI/OLVDS46p

33-uponePIN_1323LVTTLRowI/OLVDS48n/tX31R5i

34•uptwoPIN_1333LVTTLRowI/OLVDS48p/DQlR4____•

[状态流程图]

1、顶层流程图解

2、以下是较详细的状态转化图

六.[程序清单]

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

libraryieee;architectureaofunshakeis

useieee.std_logic_1164.all;signalcp:std_logic;

usesignaljsp:integerrange0to

ieee.std_logic_unsigned.all;3;

useieee.std_logic_arith.al1;begin

process(elk)

entityunshakeis

begin

port(elk:instd_logic;

if(elk,eventand

时钟,10HZ;

clk=,T)then

key:instdlogic;一一

ifkey='1'then

开关信号;

ifjsp=3

keyout:outstd_logic);

then

一消抖之后的开关信号

end;

jsp<=jsp;cp<=,0,;

elseendif;

else

jsp<=jsp+l;jsp<=0;

endif;endif;

ifjsp=lendif;

thenkeyout<=cp;

endprocess;

cp<-f;end;

else

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

1ibraryieee;

useieee.stdlogicl164.all;

useieee.stdlogicunsigned,all;

useieee.std_logic_arith.all;

entitydisplayisserout:out

port(elk:instd_logic;std_logic_vector(6downto0));

1ight:inintegerrangeend;

1to3;architectureaofdisplayis

signaldisp:elsiflight=2then

std_logic_vector(6downto0);disp<=〃0010010〃;

beginelsiflight=3then

process(elk)disp<=〃0000n0〃;

beginendif;

if(clk,eventandendif;

clk=,r)thenendprocess;

iflight=1thenserout<=disp;

disp〈二〃1001111〃;end;

主控模块

libraryieee;

useieee.std_logic_l164.all:

useieee.std_logic_unsigned.all;

useieee.std_logic_arith.all;

*y**1**T**v**T**T**T*孑、

\lx

entitycontrolis

port(upone,uptwo,downtwo,downthree:instdlogic;--电梯外乘

客的恳求信号

one,two,three:instd_logic;一电梯内乘客的恳求上或下至

几层楼的信号

reset:instdlogic;--复位初始化开关

over,emergency,lock:instd_logic;一超重、紧急停运和上锁

信号

elk:instd_logic;一时钟信2MHz

alarm,ovelight,locklight:outstd_logic;一故障、超重与

锁定提示灯

P:outintegerrange1to3;一电梯当前位置

lightup,lightdown:outstdlogicvector(6downto0);

--1ightup显示'u则电

梯在上升模式,

一lightdown显示'd'则

电梯在下降模式;

arrive:outstd_logic);-arrive为'T时表明电梯到达楼

层,并在开门状态

end;

___%?*\]■

Z?*ZT*Zv**7*ZTSZ/SXT*^7*Z7*(、^7*4、(、ZTX4、4、XTX/J**\>«、*1、*T**7^^7**7*Z7*

<lx<Lx

*T>XTX

architecturebehaveofcontrolis

typestatesis(upl,up2,down1,down2,stop,dwl,dw2,dw3,dw4,dv/5);

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

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

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

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

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

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

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

一dw2表示电梯开门的其次秒

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

--小丫4表示电梯开门的第四秒,推断电梯的下一个状态

--dw5表示当电梯处于上升或下降状态时,假如没有相应的上升或下降

恳求信号,则转入

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

signalstate:states;

signalclearl,clear2,clear3,flagl,flag2,flag3,fll,fl2,fl3:

std_logic;

—这些都是标记位,限制电梯的状态转换

—flagl.flag2、flag3代表各层相应的恳求信号

一clearl.clear2sclear3代表相应层的恳求已经完成,可以接收新

的任务

signalposition:integerrange1tc3;--电梯的当前停留位置

signallup,Idown:std_logic_vector(6downto0);一与lightup和

1ightdown功能相同

signalarr:stdlogic;--与arrive功能相同

signalala,ov,loc:std_logic;一与

alarm,ovlight,locklight功能相同

begin

kl:

process(elk)

variableent:integerrange1to2000000;

variableupdowr.:std_logic;—此变量表明电梯处于上升或下降

状态

begin

if(clk,eventandelk=,T)then

if(upone=,Porone='1')then――层有上楼恳求

flagl<=r:

elsifclearl=,1'then一层的恳求已完成

flagl<=,O';-当没有新恳求信号则清

endif;

if(uptwo='rordowntwo=1ortwo='1')then一一

一■层有恳求

flag2<=f;

elsifclear2='1'then一二层的恳求已完成

flag2<=05;-当没有新恳求信号则二

层清零

endif;

if(downthree='1'orthree=*T)then一三层有恳求

flag3<=f;

elsifclear3='1'then-三层的恳求已完成

flag3<=0,;一当没有新恳求信号则三

层清零

endif;

if(emergency='1')then

elsif(over=,T)then

ov<=,P;

elsif(lock二’1')then

loc<=,f;

endif;

ifcnt<2000000then一通过计数2000000获得Is的时钟信号

ent:=cr.t+l;一计数信号小于20000000则加1

else

ifreset='1'then一复位时,电梯初值设置在一层,

状态为stop

positional;

state<=stop;

ovelight<=O'-各状态指示灯均灭

locklight<=,O';

alarm<=,0,;

ldown<=,,lllllll//;

else

fll<=flagl;

f!2<=flag2;

fl3<=flag3;

-flK门2、fl3置'1'表示相应楼层有恳求信号,并把

相应的任务完成信号clear

一置'O',表示有新的任务等待完成

if(fll=,r)then

clearl<='O';

endif;

if(fl2=Dthen

clear2<=,;

endif;

if(fl3=T')then

clear3<=,O';

endif;

casestateis--状态机描述

whenupl=>--------------upl:正在从一层上升

iffl2=,0,then一若上升期间二层期间无恳求,则

干脆上三层

clearl<=,O';

clear3<=,O';

state<=up2;

position<=2;

else

state<=stop;

position<=2;

f12<=O';一完成了对二层恳求的响应;

clear2<=,V;

endif;

whenup2=>---------------up2:正在从二层上升

clearl<=,O';

clear2<=;

state〈二stop;

pcsition<=3;

ifposition=2then一假如电梯在其次层

position<=3;一那么下一个位置在第三层

f13<=0,;-完成了对第三层恳求的相应

clear3<=,1';

elsifposition=1then一假如电梯在第一层

position<=2;一那么下一个位置在其次层

f12<=O';一二层的恳求已经完成

clear2<=,T;

endif;

whendown1=>--正在向第一层下降

clear2<=,0*;

clear3<=,O';

state〈二stop;一下一状态是stop

ifposition=2then一假如电梯在其次层

positional;一那么下一个位置在第一层

fllC'O';一一层的恳求已经完成

clearl<=,T;

elsifposition=3then

position<=2;

f12<='O';

clear2<=,T;

endif;

whendown2=>一正在向其次层下降

一假如在下降期间,二层没有恳求,就干脆下到一层

iffl2='O'then

clearl<=,O';

clear3<=,O';

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

state<=downl;

pcsition<=2;一电梯的下一个位置在其次层

else

state<=stop;--若下降期间二层有恳求,则在二层停

pcsition<=2;一位置转至二层

门2<='0';一完成了对二层恳求的响应

clear2<=,1';

endif;

whenstop=>一在停止状态

if(emergency='1'orover=,f)then

state<=stop;

else

state<=dwl;一下一状态转至dwl,电梯会进入开门状态

arr<-f;一a门'置'1',表明电梯到达并开门

lup<=,zlllllir,;一上升指示灯灭

ldown<=,/lllllir/;--下降指示灯灭

endif;

whendwl=>一在dwl状态时,等待Is

state<=dw2;--下一状态转至d;v2

whendw2=>

state<=dw3;

whendw3=>

state<=dw4;

whendw4=>

arr<-0);--开门灯灭

ifposition=lthen一假如电梯在第一层

updown1';--则进入上升模式

门1<二'0';一一层的任务完成

clearl<=,1';

iffl2=,Tthen一假如二层有恳求

state<=upl;一先响应二层的恳求,再响应上升

层的恳求

arr<=0,;--维持灯熄灭状态

lup<=,z100000rz;一上升灯亮,显示字母,U'

elsiffl3=,fthen--若三层有恳求

state<=upl;

一响应完二层恳求信号后,再响应第三层的恳求

arr<=,0';一开门灯维持熄灭状态

lup<=〃1000001〃;一上升灯亮,显示字母‘U'

endif;

elsifposition=3then

updown:='O';--进入下降状态

fl3<=,O';一到达三层的任务已完成

clear3<=,1';

iffl2=’1'then一若二层有恳求

state<=down2;

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

arr<=,O';

ldown<="1000010”;--下降灯亮,显示'd,

elsiffll=,1'then

state<=down2;

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

arr<=,0';

ldown<=z,1000010";

endif;

elsifposition=2then

f12<=0f;一到达二层的任务已经完成

clear2<=,1';

ifupdown=,rthen

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

iffl3=fthen

state<=up2;

arr<=,O';

iup<=//iooooor,;

else

state<=dw5;

一若三层无恳求,就转至dw5状态

endif;

endif;

ifupdown='O'then

一当处于下降状态,不响应三层的恳求

iffll=,fthen

state〈二down1;

arr<=,O';

ldown<=〃1000010〃;一下降灯亮,显示'd'

else

state<=dw5;

—若一层无恳求,就转至dw5状态

endif;

endif;

endif;

whendw5=>

一只要到了dw5的状态,无论原来处于上升或下降状态,对三层和一层的

信号都可相响应

iff13=,Pthen

state<=up2;

arr<=,O';

lup〈二〃1000001〃;一上升灯亮,显示字母'U'

elsifflrthen

state〈二down1;

arr<=,O';

ldown<=zz1000010z,;--下降灯亮,显示,d,

endif;

endcase;

ent:=1;一进程完成一次全部的状态、条件推断并执行相应操作

后,计数信号重置1

endif;

alarm<=ala;

ovelight<=ov;

locklight<=loc;

endif;

endif;

endprocess;

p<=position;一给输出信号赋值

1ightup<=lup;

1ightdown<=ldown;

arrive<=arr;

end;

七.[主控模块仿真]

1.由于显示和消抖模块为通用模块,在此不再赘述仿真结果,主要给出主

控模块的仿真分析

2.为便于仿真,将主控模块control单列为一个工程,并把计数变量ent的

值由改为2°

|SimulationWaveforms

MasterTim?Bar:17.75ns”“Pointer:1.88nsInterval:-15.87nsStart:End:

40.0ns80.0ns120.0ns160.0ns200.0ns240.0ns280.0ns320.0ns

Value._

ke

17.75

uj

alarm位后到站等会亮

arriveU0jIi!i|jjI/;!1:

dkU1inn皿嘤i用uuuuuuuuuwwinrnio™皿吧卿MJinn;nnnru

L>cownthreeU0

喙念情况信号有效,则停止运行直到解除

cowntwoV0

N

emergencyU0__i!1!1!j

0lightdownU6(I66X127\j€61271

L_L_

3Slightupu型:65*+-127_____i______________w1\\127

AlockU0

locklightU1

V0TT

件CM

cvelightU1

复位时电梯在一层

everU0

回IU0;QX1X2X-:i3(Il__1:

»resetU0ST]/

温馨提示

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

评论

0/150

提交评论