EDA课设四层电梯控制器.docx

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

EDA课设四层电梯控制器.docx

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

EDA课设四层电梯控制器.docx

EDA课设四层电梯控制器

1、引言

1.1EDA技术的概念

随着EDA技术发展和应用领域的扩大与深入,EDA技术在电子信息、通讯、自动控制及计算机应用等领域的重要性突出,随着技术市场与人才市场对EDA的需求不断提高,产品的市场需求和市场的要求也必然会反映到教学领域和科研领域中来,因此学好EDA技术对我们有很大的一处,EDA是指以计算机为工具,在EDA软件平台上,根据设计描述的源文件,自动完成系统的设计,包括编译、仿真、优化、综合、适配以及下载。

EDA是电子设计自动化(ElectronicDesignAutomation)的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。

1.2EDA技术的特点

利用EDA技术进行电子系统的设计,具有以下几个特点:

①用软件的方式设计硬件;②用软件方式设计的系统到硬件系统的转换是由有关的开发软件自动完成的;③设计过程中可用有关软件进行各种仿真;④系统可现场编程,在线升级;⑤整个系统可集成在一个芯片上,体积小、功耗低、可靠性高。

因此,EDA技术是现代电子设计的发展趋势。

1.3EDA设计流程

典型的EDA设计流程如下:

(1)、文本/原理图编辑与修改。

首先利用EDA工具的文本或图形编辑器将设计者的设计意图用文本或图形方式表达出来。

(2)、编译。

完成设计描述后即可通过编译器进行排错编译,变成特定的文本格式,为下一步的综合做准备。

(3)、综合。

将软件设计与硬件的可实现性挂钩,是将软件转化为硬件电路的关键步骤。

  (4)、行为仿真和功能仿真。

利用产生的网表文件进行功能仿真,以便了解设计描述与设计意图的一致性。

(5)、适配。

利用FPGA/CPLD布局布线适配器将综合后的网表文件针对某一具体的目标器件进行逻辑映射操作,其中包括底层器件配置、逻辑分割、逻辑优化、布局布线。

适配报告指明了芯片内资源的分配与利用、引脚锁定、设计的布尔方程描述情况。

(6)、功能仿真和时序仿真。

(7)、下载。

如果以上的所有过程都没有发现问题,就可以将适配器产生的下载文件通过FPGA/CPLD下载电缆载入目标芯片中。

(8)、硬件仿真与测试。

1.4硬件描述语言(VHDL)

VHDL(Very-High-SpeedIntegratedCircuitHardwareDescriptionLanguage)主要用于描述数字系统的结构,行为,功能和接口。

除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。

2、电梯控制器的设计要求与设计思路

2.1设计目的

通过设计应完成工作内容和具体的设计方法,通过设计也有出于复习,巩固以往的学习内容,达到灵活应用的目的。

在设计完成后,还要将设计的电路进行安装,调试及加强我们的动手能力。

在此过程中培养从事设计工作的整体观念。

本次设计的目的就是通过实践深入理解EDA技术并掌握VHDL硬件描述语言的设计方法和思想。

通过学习的VHDL语言结合电子电路的设计知识理论联系实际,掌握所学的课程知识和基本单元电路的综合设计应用。

通过对实用电梯控制系统的设计,巩固和综合运用所学知识,提高设计能力,提高分析、解决计算机技术实际问题的独立工作能力。

2.2设计要求

电梯控制器是控制电梯按顾客要求自动上下的装置。

采用VHDL语言来设计实用四层电梯控制器,而且遵循方向优先的原则,提前关电梯门和延迟关电梯门,对电梯的运行(上升和下降)、停止、等待状态进行控制。

同时,能显示电梯的运行情况、电梯所在楼层。

3、电梯控制器的综合设计

3.1电梯控制器功能

(1)、每层电梯的入口处设有上下请求开关,电梯内设有乘客到达层次的停站请求开关。

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

(3)、电梯每秒升降一层。

(4)、电梯到达有停站请求的楼层后,经过1s电梯打开,开门只是灯亮,开门4s后电梯门关闭(关门指示灯灭),电梯继续运行,直至执行完请求信号后停在当前楼层。

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

(6)、电梯运行规则:

当电梯处于上升模式时,只响应比电梯所在位置高的上楼信号,由下至上依次执行,直到最后一个上楼请求执行完毕,如更高层有下楼请求时,则直接升到有下降请求的最高楼接客,然后进入下降模式,但电梯处于下降模式时,则与上升模式相反。

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

3.2电梯控制器设计方案

如图所示,包括主控制器、分控制器、楼层选择器、状态显示器、译码器和楼层显示器。

乘客在电梯中选择所要到达的楼层,通过主控制器的处理,电梯开始运行,状态显示器显示电梯的运行状态,电梯所在楼层数通过译码器译码从而在楼层显示器中显示。

分控制器把有效的请求传给主控制器进行处理,同时显示电梯的运行状态和电梯所在楼层数。

由于分控制器相对简单很多,所以主控制器是核心部分。

电梯控制器采用状态机来实现。

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

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

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

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

3.3电梯控制器实体设计

首先考虑输入端口,一个异步复位端口reset,用于在系统不正常时回到初始状态;在电梯外部,必须有升降请求端口,一层是最低层,不需要有下降请求,四层是最高层,不需要有上升请求,二层则上升、下降请求端口都有;在电梯的内部,应该设有各层停留的请求端口:

一个电梯时钟输入端口,该输入时钟以1秒为周期,用于驱动电梯的升降及开门关门等动作;另有一个按键时钟输入端口,时钟频率比电梯时钟高。

  其次是输出端口,有升降请求信号以后,就得有一个输出端口来指示请求是否被响应,有请求信号以后,该输出端口输出逻辑‘l’。

被响应以后则恢复逻辑‘O’;同样,在电梯内部也应该有这样的输出端口来显示各层停留是否被响应;在电梯外部,需要一个端口来指示电梯现在所处的位置;电梯开门关门的状态也能用一个输出端口来指示;为了观察电梯的运行是否正确,可以设置一个输出端口来指示电梯的升降状态。

3.4各模块设计说明

3.4.1调用VHDL库

通过library语句,本程序应用了VHDL库中的“通用ieee库”和“标准std库”。

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

3.4.2entity实体设计模块

entitydiantiis

port(……)

enddianti;

3.4.3由功能要求得到本程序设计的端口必须包括:

输入端口:

时钟(clk,频率为2Hz)、超载(full)、关门中断(deng)、提前关门(quick)、清除报警(clr)、电梯外人的上升请求信号(c_u1,c_u2,c_u3)、电梯外人的下降请求信号(c_d2,c_d3,c_d4)、电梯内人的请求信号(d1,d2,d3,d4)、到达楼层信号(g1,g2,g3,g4)。

输出端口:

电梯门控制信号(door)、电梯所在楼层显示(led)电梯外人上升请求信号显示(led_c_u)、电梯外人下降请求信号显示(led_c_d)、电梯内请求信号显示(led_d)、看门狗报警信号(wahaha)、电梯运动方向显示(ud)、超载警告信号(alarm)、电机控制信号(up,down)。

3.4.4程序要求的寄存器(中间信号)包括:

电梯内人请求信号寄存信号(d11,d22,d33,d44,d55,d66)、电梯外人上升请求信号寄存信号(c_u11,c_u22,c_u33,c_u44,c_u55)、电梯外人下降请求信号寄存信号(c_d22,c_d33,c_d44,c_d55,c_d66)、分频信号(q)、关门延时计数器(q1)、看门狗计数器(q2)、电梯内外请求信号寄存器(dd,cc_u,cc_d,dd_cc)、开门使能信号(opendoor)、电梯运动方向信号寄存器(updown)、预备上升、预备下降预操作使能信号(en_up,en_dw)。

3、5电梯控制器程序

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

useieee.std_logic_arith.all;

entitydiantiis

port(clk:

instd_logic;

full,deng,quick,clr:

instd_logic;

c_u1,c_u2,c_u3:

instd_logic;

c_d2,c_d3,c_d4:

instd_logic;

d1,d2,d3,d4:

instd_logic;

g1,g2,g3,g4:

instd_logic;

door:

outstd_logic_vector(1downto0);

led:

outstd_logic_vector(6downto0);

led_c_u:

outstd_logic_vector(3downto0);

led_c_d:

outstd_logic_vector(3downto0);

led_d:

outstd_logic_vector(3downto0);

wahaha:

outstd_logic;

ud,alarm:

outstd_logic;

up,down:

outstd_logic);

enddianti;

architecturebehaveofdiantiis

signald11,d22,d33,d44:

std_logic;

signalc_u11,c_u22,c_u33:

std_logic;

signalc_d22,c_d33,c_d44:

std_logic;

signalq:

integerrange0to1;

signalq1:

integerrange0to6;

signalq2:

integerrange0to9;

signaldd,cc_u,cc_d,dd_cc:

std_logic_vector(3downto0);

signalopendoor:

std_logic;

signalupdown:

std_logic;

signalen_up,en_dw:

std_logic;

begin

com:

process(clk)

begin

if(clk'eventandclk='1')then

if(clr='1')thenq1<=0;q2<=0;wahaha<='0';

elsiffull='1'thenalarm<='1';q<=0;

if(q1>=3)thendoor<="10";

elsedoor<="00";

endif;

elsifq=1thenq<=0;alarm<='0';

ifq2=3thenwahaha<='1';

else

if(opendoor='1')thendoor<="10";

q1<=0;q2<=0;up<='0';down<='0';

elsifen_up='1'then

if(deng='1')thendoor<="10";q1<=0;q2<=q2+1;

elsifquick='1'thenq1<=3;

elsifq1=6thendoor<="00";updown<='1';up<='1';

elsifq1>=3thendoor<="01";q1<=q1+1;

elseq1<=q1+1;door<="00";

endif;

elsifen_dw='1'then

if(deng='1')thendoor<="10";q1<=0;q2<=q2+1;

elsifquick='1'thenq1<=3;

elsifq1=6thendoor<="00";updown<='0';down<='1';

elsifq1>=3thendoor<="01";q1<=q1+1;

elseq1<=q1+1;door<="00";

endif;

endif;

if(g1='1')thenled<="1001111";

ifd11='1'orc_u11='1'thend11<='0';c_u11<='0';opendoor<='1';

elsifdd_cc>"0001"thenen_up<='1';opendoor<='0';

elsifdd_cc="0000"thenopendoor<='0';

endif;

elsifg2='1'thenled<="0010010";

ifupdown='1'then

ifd22='1'orc_u22='1'thend22<='0';c_u22<='0';opendoor<='1';

elsifdd_cc>"0011"thenen_up<='1';opendoor<='0';

elsifdd_cc<"0010"thenen_dw<='1';opendoor<='0';

endif;

elsifd22='1'orc_d22='1'thend22<='0';c_d22<='0';opendoor<='1';

elsifdd_cc>"0011"thenen_up<='1';opendoor<='0';

elsifdd_cc<"0010"thenen_dw<='1';opendoor<='0';

endif;

elsifg3='1'thenled<="0000110";

ifupdown='1'then

ifd33='1'orc_u33='1'thend33<='0';c_u33<='0';opendoor<='1';

elsifdd_cc>"0111"thenen_up<='1';opendoor<='0';

elsifdd_cc<"0100"thenen_dw<='1';opendoor<='0';

endif;

elsifd33='1'orc_d33='1'thend33<='0';c_d33<='0';opendoor<='1';

elsifdd_cc>"0111"thenen_up<='1';opendoor<='0';

elsifdd_cc<"0100"thenen_dw<='1';opendoor<='0';

endif;

elsifg4='1'thenled<="1001100";

ifd44='1'orc_d44='1'thend44<='0';c_d44<='0';opendoor<='1';

elsifdd_cc<"1000"thenen_dw<='1';opendoor<='0';

endif;

elseen_up<='0';en_dw<='0';

endif;

endif;

elseq<=1;alarm<='0';

if(d1='1')thend11<=d1;

elsifd2='1'thend22<=d2;

elsifd3='1'thend33<=d3;

elsifd4='1'thend44<=d4;

endif;

ifc_u1='1'thenc_u11<=c_u1;

elsifc_u2='1'thenc_u22<=c_u2;

elsifc_u3='1'thenc_u33<=c_u3;

endif;

ifc_d2='1'thenc_d22<=c_d2;

elsifc_d3='1'thenc_d33<=c_d3;

elsifc_d4='1'thenc_d44<=c_d4;

endif;

dd<=d44&d33&d22&d11;

cc_u<='0'&c_u33&c_u22&c_u11;

cc_d<=c_d44&c_d33&c_d22&'0';

dd_cc<=ddorcc_uorcc_d;

endif;

ud<=updown;

led_d<=dd;

led_c_u<=cc_u;

led_c_d<=cc_d;

endif;

endprocess;

endbehave;

3、6电梯控制器仿真图形

仿真1:

在一楼的电梯内部有一个去向三楼的申请,在二楼有一个电梯向上的外部的申请信号,在四楼有个电梯向下的外部申请信号。

电梯先响应二楼外部的申请信号,关门、向上,led显示1、2、3、4,到二楼时执行开门动作,二楼的申请清零,到达三楼时,执行开门动作,去向三楼的申请信号清零,并向四楼运行,到达四楼后,响应四楼向下的申请信号并把该信号清零。

 

 

 

仿真2:

在一楼的电梯内部有一个去向二楼和四楼的申请,在二楼有一个电梯向下的外部的申请信号,在三楼有个电梯向上的外部申请信号。

电梯先响应一楼内部的申请信号,关门、向上,led显示1、2、3、4,到二楼时执行开门动作,二楼的内部申请清零,到达三楼时,执行开门动作,三楼的外部申请信号清零,并向四楼运行,到达四楼后,电梯向下运行,到二楼时响应二楼向下的申请信号并把该信号清零。

 

 

4、总结

对程序进行调试,经计算机仿真分析,结果表明本电梯控制程序实现了以下功能:

(1)电梯到达楼层时,能发出指示信号;

(2)能指示电梯的运行状态;

(3)基本能正确响应各楼层的上行和下行请求(各楼层设置上行和下行选择按钮)。

通过这次课程设计,让我在学习EDA理论知识的基础上,增强了的实践动手能力。

在参考了许多相关资料后,充分理解了四层电梯的设计要求,基本上完成了设计的功能要求,但可能仍存在一些不能解决的实际问题,许多工程实际问题不能完全用理论知识去解决,需要不断吸取现场经验,寻找解决问题方法。

虽然能完成设计的基本功能,但仍有可拓展的空间,比如超载报警、多层电梯等,都是可以继续研究以满足更多的功能要求,但以我现在对EDA知识的了解,可能不太容易完成,希望以后有机会再深入地学习EDA,设计出更符合实际功能需求的代码。

 

参考文献

(1)潘松黄继业EDA技术实用教程科学出版社(第二版)

(2)朱正伟EDA技术及应用清华大学出版社

(3)刘载文电梯控制技术电子工业出版社

(4)张海藩软件工程导论清华大学出版社

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

当前位置:首页 > 工作范文 > 行政公文

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

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