版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
俄面理工辔傀
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 军人财务制度
- 高等学校现行财务制度
- 卫生监督对疫苗管理制度
- 合伙公司会计财务制度
- 车辆运营资质管理制度
- 滴滴公司运营管理制度
- 护理中心卫生管理制度
- 理发管理卫生制度
- 餐饮卫生监控制度
- 北京市属高校财务制度
- 手术室感染课件
- 06MS201-3排水检查井规范
- T-CACM 1362-2021 中药饮片临床应用规范
- 《常用办公用品》课件
- 四川省南充市2024-2025学年高一上学期期末质量检测英语试题(含答案无听力原文及音频)
- 山东省淄博市2023-2024学年高二上学期期末教学质量检测数学试题(解析版)
- 数据中心安全生产管理制度
- 2024至2030年中国纸类香袋数据监测研究报告
- 面向工业智能化时代的新一代工业控制体系架构白皮书
- 2024年四川省成都市青羊区中考数学二诊试卷(含答案)
- 左心导管检查及造影操作技术规范
评论
0/150
提交评论