四层电梯的控制EDA技术设计.docx

上传人:b****6 文档编号:6026634 上传时间:2023-01-03 格式:DOCX 页数:23 大小:237.28KB
下载 相关 举报
四层电梯的控制EDA技术设计.docx_第1页
第1页 / 共23页
四层电梯的控制EDA技术设计.docx_第2页
第2页 / 共23页
四层电梯的控制EDA技术设计.docx_第3页
第3页 / 共23页
四层电梯的控制EDA技术设计.docx_第4页
第4页 / 共23页
四层电梯的控制EDA技术设计.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

四层电梯的控制EDA技术设计.docx

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

四层电梯的控制EDA技术设计.docx

四层电梯的控制EDA技术设计

目录

1引言1

1.1设计背景1

1.2设计基础1

1.2.1EDA技术介绍1

1.2.2硬件描述语言(VHDL)介绍2

1.2.3MAX+plusII软件介绍2

2电梯控制器的具体设计4

2.1设计目的4

2.2设计要求4

2.3设计思路4

3三层电梯控制器的综合设计(VHDL语言实现)5

3.1分析判断5

3.1.1电梯运行规则5

3.1.2程序流程分析9

3.2程序端口和寄存器说明9

3.3各模块设计说明10

3.4具体语句设计说明12

4三层电梯控制器调试、仿真和硬件测试13

4.1程序调试13

4.2程序波形仿真14

4.2.1波形输入建立14

4.2.2电梯运行情况仿真15

4.2.3电梯功能仿真17

4.3硬件测试18

4.3.1引脚锁定18

4.3.2硬件下载18

5结论20

5.1设计功能实现情况20

5.2设计心得20

参考文献21

附录22

1引言

1.1设计背景

近年来,随着我国房地产业的持续高速发展,高层建筑越来越多。

因此,一种能使人们快速、便捷地到达目的楼层的电梯便应运而生了。

分析近几年房地产业的发展趋势,特别是商品住宅的高速发展,将使住宅对电梯的需求量持续攀升。

人们对电梯安全性、高效性、舒适性的不断追求也推动了电梯技术的进步。

随着电梯技术的发展,绿色化、低能耗、智能化、网络化、蓝牙技术的电梯成为一段时间内的发展趋势。

为保证人们能更安全、更快捷地到达目的楼层,实现人性化的功能,对电梯系统中的控制部分进行优化设计是非常必要。

因此这部分的设计也就成了在电梯设计领域里最为核心的技术。

为了实现电梯的智能化,可以采用许多方法。

它的智能化控制可以有以下几种形式:

1.PLC控制;2.单板机控制;3.单片机控制;4.单微机控制;5.多微机控制;6.人工智能控制。

随着EDA技术的快速发展,电子设计自动化(EDA)逐渐成为重要的设计手段,已经广泛应用于模拟与数字电路系统等许多领域。

它是一种实现电子系统或电子产品自动化设计的技术,与电子技术、微电子技术的发展密切相关,并吸收了计算机科学领域的大多数最新研究成果,以高性能的计算机作为工作平台,促进了工程发展。

传统单片机设计的电梯控制外围电路复杂,性能不稳定,而采用EDA设计,却拥有电子系统小型化、低功耗、高可靠性、开发过程投资小、周期短等优点,而且还可以通过软件编程对硬件结构和工作方式进行重构,使得硬件设计如软件设计那般方便快捷。

本次设计就是应用EDA电子电路技术来设计电梯控制器,从而使用一片芯片就可以实现对电梯的控制的。

1.2设计基础

EDA技术已成为现代电子设计技术的核心。

基于EDA技术上开发的实现三层电梯自动控制与目前主流的利用可编程逻辑控制器实现电梯控制紧密相连。

硬件描述语言是EDA技术的重要组成部分,VHDL是作为电子设计主流硬件的描述语言。

使用VHDL语言进行程序的设计,在MAX+plusII软件上对程序进行编译、仿真。

在MAX+plusII平台上的开发具有编程软件具有采自易学易懂的梯形图语言、控制灵活方便、抗干扰能力强、运行稳定可靠等优点。

1.2.1EDA技术介绍

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

EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。

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

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

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

1.2.2硬件描述语言(VHDL)介绍

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

它于1983年由美国国防部发起创建,由电工和电子工程师协会(theInstituteofElectricalandElectronicsEngineers)进一步发展并在1987年作为“IEEE1076”发布。

从此,VHDL成为硬件描述语言的业界标准之一。

VHDL作为一个规范语言和建模语言,具有很强的电路描述和建模能力,能从多个层次对数字系统进行建模和描述,从而大大简化了硬件设计任务,提高了设计效率和可靠性。

VHDL具有与具体硬件电路无关和设计平台无关的特性,并且具有良好的电路行为描述和系统描述的能力,并在语言易读性和层次化结构化设计方面,表现了强大的生命力和应用潜力。

VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。

在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。

1.2.3MAX+plusII软件介绍

MAX+plusII是Altera公司提供的FPGA/CPLD开发集成环境,其界面友好,使用便捷,被誉为业界最易用意学的EDA软件。

它提供了一种与结构无关的设计环境,使设计者能方便地进行设计输入、快速处理和器件编程[5]。

在MAX+plusII平台上进行数字系统的设计过程一般要经过四个阶段[4]:

设计输入、项目编译、项目校验和器件编程。

首先根据系统的性能指标进行系统结构设计,对整个系统进行功能划分和模块划分。

对各子模块分别进行逻辑设计、编译、仿真与验证。

当不满足要求时,重新返回设计输入阶段,修改设计输入。

之后将优化结果下载到所选可擦写可编程逻辑器件(EraserableProgrammableLogicDevice)芯片中,进行动态仿真。

最后则是测试芯片在系统中的实际运行性能。

其具体的流程图如图1所示。

图1MAX+plusII设计流程

该方法将问题的解决放在硬件组装之前,既简化了设计过程,又可以减少设备投资,缩短设计周期,增强设计者对设计过程的分析和制造的可控性。

2电梯控制器的具体设计

2.1设计目的

三层电梯广泛应用在大型的货运之中。

其使用便捷,货运周期短,效率高,成本低,对货运事业具有相当的经济价值。

在客运上,三层电梯虽然涉及楼层不高,应用范围不大,但就特殊而言,可以为一些上下楼层不方便的人们提供帮助,照顾这些特殊社会群体。

因此,在某种层面上说,三层电梯的设计也具有一定的社会价值。

2.2设计要求

设计的三层电梯控制器实现如下功能:

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

(2)能指示电梯的运行状态(上行或下行);(3)电梯的门操作具有关门延时设置(当按下梯内关门按钮时立刻响应关门操作,否则延时固定时间后响应关门操作);(4)正确响应各楼层的上行和下行请求(各楼层设置上行和下行选择按钮)。

独立设计完成VHDL代码的编写,利用MAX+plusII软件进行编译仿真,软件仿真结果正确(试验各楼层上行或下行请求的各种情况),使用实验室设备,将代码下载到实验板上进行硬件调试,功能正确。

通过对电梯控制系统的设计,掌握所学EDA课程的基本知识和对VHDL语言的综合设计应用。

通过课程设计,提高设计能力,提高分析解决实际问题的能力,并在设计中了解硬件编程的流程和思路,为以后工作和发挥技术打下基础。

2.3设计思路

本次设计的电梯控制器采用状态机来实现,思路比较较清晰[1]。

可以将电梯的各个状态都看成一个独立的状态,如开门状态、关门状态、电梯在哪一层。

根据电梯的实际工作情况,可以把状态机设置七个工作状态,分别是“电梯停留在第一层”、“电梯停留在第二层”、“电梯停留在第三层”、“开门”、“关门或快速关门”、“运行过程计数并判断下一层”、“判断各层是否有请求”。

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

电梯每到一层,指示该楼层号,电梯从低层到高层时,输出上行状态,反之,输出下行状态,但在到达一层或三层时,上行下行状态都清零。

3三层电梯控制器的综合设计(VHDL语言实现)

3.1分析判断

3.1.1电梯运行规则

(1)请求信号分析:

电梯的请求信号可分为梯内请求和梯外请求,如果从这个角度就很难去进行对电梯运行可能情况的分析,因为电梯的运行是根据梯外和梯内的请求信号、行程信号进行控制,而梯外和梯内的请求是随机且不能以有限的规则去对其进行说明的。

因此,很难对电梯的运行情况作出一个统一的分析。

出于这方面的考虑,本设计把电梯的请求信号划分为上升请求和下降请求。

电梯接收到请求信号后,响应并判断是上升请求信号就是下降请求信号,然后电梯向下或向上运行。

具体来说,就是当电梯所在楼层低于发出梯外请求的楼层或者低于梯内请求所要到达的目的楼层时,电梯必须在下一操作中作出上升运行。

这时的请求信号就是上升请求信号。

反之,则是下降请求信号。

如电梯在二层并上一次电梯运行是向上或是向下,接收到的是上升请求还是下降请求。

(2)电梯处于各楼层时的运行情况。

1.处于一层时,不管是梯内梯外,电梯都只能接收上升的请求信号。

此后,电梯就进入上升状态,作上升运行。

如果电梯没有接收到请求信号,则电梯在一层待机,其分析图如图2所示。

图2电梯处于一层时的运行情况分析

2.处于二层时,电梯则可能出现以下三种情况:

①电梯没有接收到梯内梯外的任何请求信号时,则电梯在二层待机;②电梯接收到上升请求信号,进入上升状态;③电梯接收到下降请求信号,进入下降状态,其分析图如图3所示。

图3电梯处于二层时的运行情况分析

3.处于三层时,不管是梯内梯外,电梯都只能接收到下降的请求信号。

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

如果电梯没有接收到请求信号,则电梯在三层待机,其分析图如图4所示。

图4电梯处于三层时的运行可能分析

对上述电梯的运行情况进行汇总,可以得到如图5的电梯运行状态图。

图5电梯运行状态图

在电梯运行过程中,存在一个如何处理请求信号优先的问题。

仅用顺序优先或逻辑优先不能满足控制要求。

因此,控制系统需要同时采用顺序和逻辑来控制电梯的运行。

即在以顺序逻辑控制实现电梯的基本控制要求的基础上,根据随机的输入信号,以及电梯当时运行状态(上升还是下降)适时的控制电梯下一个操作,使电梯向上或向下运行。

例如,当电梯在三层时,二层、一层梯外均有上升请求信号:

电梯向下运行,在接近二层时判别二层具有同向的请求信号,如没有继续下降到一层,经开关门后,然后再向上运行,在接近二层时判别二层具有同向的请求信号时,在二层停止载客。

又假如,当电梯在三层时,梯内有到达一层的下降请求信号,而二层则有上升请求信号,电梯先向下运行,在接近二层时判别二层具有反向的请求信号,系统将把二层的上升请求保存到上升请求寄存器上,不在二层作停泊而继续下降到一层去载客,然后读取上升请求寄存中先前二层的上升请求,执行上升到二层载客的操作。

执行完成后,被保存在寄存器中的数据清除,为下一次响应请求作准备。

(3)对电梯开门、关门等内部信号处理的分析,其流程如图6所示。

图6电梯内外信号处理

当电梯接收到请求信号后,运行到发出请求的楼层。

运达后,开门使能信号促使电梯开门载客,同时驱动关门延时信号。

在电梯进行完关门倒数计后,关门使能信号将促使电梯关门状态,然后上升或下降运行。

如果此前出现提前关门信号,电梯立即关门,然后上升或下降运行。

3.1.2程序流程分析

电梯的运行规则确定后,需对整个控制程序的设计作一个流程规范。

对程序进行模块化构思。

根据VHDL语言的规则,程序必须由最基本的实体和结构体构成。

实体对控制器的端口进行定义,结构体对各端口的行为进行描述。

因此程序运行时需经过以下流程:

VHDL库调用;确立控制器的端口及相关的寄存器;根据电梯运行规则确定各个状态转换的条件;对电梯内外信号进行处理,具体流程图如图7所示。

图7电梯设计流程图

3.2程序端口和寄存器说明

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

时钟信号(clk);提前关门信号(quick);一楼电梯外人的上升请求信号(up1)、二楼电梯外人的上升请求信号(up2);二楼电梯外人的下降请求信号(down2)、三楼电梯外人的下降请求信号(down3);电梯内人请求到达一楼信号(ting1)、电梯内人请求到达二楼信号(ting2)、电梯内人请求到达三楼信号(ting3);电梯开门控制信号(opendoor);电梯关门控制信号(closedoor);电梯所在楼层显示(current);电梯向上运行控制及显示信号up、电梯向下运行控制及显示信号(down)。

(2)由相关端口得到程序要求的寄存器包括:

电梯内人请求到达一楼信号寄存ting

(1)、电梯内人请求到达二楼信号寄存ting

(2)、电梯内人请求到达三楼信号寄存ting(3);一楼电梯外人上升请求信号寄存u

(1)、二楼电梯外人上升请求信号寄存u

(2);二楼电梯外人下降请求信号寄存d

(2)、三楼电梯外人下降请求信号寄存d(3)。

3.3各模块设计说明

本程序由三个基本模块组成,包括调用VHDL库模块、实体设计模块和结构体设计模块。

而在结构体模块中又内嵌有进程执行单元。

(1)调用VHDL库

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

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

(2)entity实体设计模块

entitydiantiis

port(……)

enddianti;

实体语句用关键词entity开头,本程序以dianti(电梯的汉语拼音)作为所要描述的实体名,在结束实体语句的时候使用enddianti。

在entity语句的实体说明部分,用port()语句描述实体对外界连接的端口(数目、方向和数据类型),输入模式是clk/up1/up2/down2/down3/quick/ting1/ting2/ting3;其余的都是输出模式,其中current是四位矢量数据的输出接口。

(3)architecture结构化设计模块和process进程执行单元

实体dianti以结构化与行为化描述的结构体如下:

architecturediantiofdiantiis

begin

……

enddianti;

由于篇幅的关系,结构体部分并不能尽录。

本模块以关键字architecture做结构体的开头,描述dianti实体的结构体dianti。

architecture和begin之间是结构体说明区,列举了电梯运行的各个状态;begin和end之间是结构体语句区,在此将嵌入process进程语句去对实体行为作出说明。

process(clk)

……

begin

……

casewhenis

……

endcase;

endprocess;

关键字process后面括号中的信号为时钟信号,它列举可激活进程语句的信号,唯有这些信号上的事件能引起进程语句执行。

关键字begin把进程语句分为进程说明和进程语句两部分。

进程说明在时钟信号和begin之间,说明局部变量或某些仅在进程内部用的内容。

进程语句部分在begin和endprocess之间,进程内的所有语句都是按顺序一个接一个执行的。

其中的case语句是电梯七个运行状态的选择。

下载程序成功后,电梯处于c1,即第一层。

c1:

处于第一层时,先令f1=0、f2=0、f3=0,down=0,up=0。

表明电梯初始状态是待机模式。

若u

(1)=’1’或者ting

(1)=’1’即第一层的任何请求都应该开门,因为已经到了第一层应该优先响应开门,进入time4开门状态并且使opendoor=’1’,否则若其它层有请求(u

(2)、u(3)、d

(2)、ting

(2)、ting(3)中至少有一个值为’1’),则进入运行状态time3,并使f1=1,up=’1’。

如在到达第一层经开关门后如没有任何请求,则使标志位f6=’1’,保持在第一层待机。

c2:

处于第二层的时候需要根据当前的电梯状态来决定下一个状态。

从其它层到二楼时先使状态标志f1=f2=f3=0,并且显示当前层是第二层,响应请求后使状态标志f2=’1’,表示是从第二层运行到其它层的。

优先顺序是:

电梯上升时二楼门外有上升请求,电梯下降时二楼门外的下降请求,电梯下降时电梯内一楼还没响应的停请求,电梯上升时电梯内三楼还没有响应的停请求,上升时三楼门外的下降请求,下降时三楼门外的上升请求,若以上的都没有则任何一个请求都响应。

进入运行状态运行到该层或响应二楼的开门请求进入进入time4开门状态,并且上升时给up=’1’,down=’0’,下降时down=’1’,up=’0’。

并输出显示电梯运行状态。

如在到达第二层经开关门后如没有任何请求,则使标志位f5=’1’,保持在第二层待机。

c3:

在进入c3时f1=f2=f3=’0’,down=’0’,up=’0’并且显示当前层是第三层,响应请求后使状态标志f3=’1’,表示是从第三层运行到其它层的。

每到第三层时都是优先响应三楼的下降请求进入time4开门状态,而后进入关门状态,再判断其它层是否有梯外梯内请求。

否则只要有一层二层的任意请求存在都进入time3运行状态运行到该层响应请求。

如在到达第三层经开关门后如没有任何请求,则使标志位f4=’1’,保持在第二层待机。

time1:

判断是否保持在该层待机。

time2:

关门状态。

判断是否立即关门,如是,立即关门;否则延时关门。

同时判断是否进入待机状态。

如是,进入待机状态保持在该层;否则进入运行状态。

time3:

运行状态。

计数完成后,如果f1=’1’则进入c2,如果f3=’1’则进入c2。

如果f2=’1’,是有优先响应顺序的:

上升时则优先响应电梯内还没有响应的停ting(3)=’1’请求,进入c3,下降时优先响应电梯内还没有响应停ting

(1)=’1’请求,经进入c1,上升时三楼门外有下降请求,进入c3,下降时一楼门外有上升请求,进入c1,剩下的请求只要有请求则响应(f1、f2、f3是不可能同时为1的,这样就保证了优先原则)。

time4:

开门状态。

只有开门状态计数时间到才进入关门状态time2。

3.4具体语句设计说明

上文已说明了构成VHDL程序的两大部分――实体和结构体的相关语句。

在这些语句里,赋值语句占了相当一部分。

在VHDL语言里,对变量的赋值一般都是用“:

=”符号,对输出信号赋值一般都是用“<=”符号。

VHDL语言也具有与一般编程语言相同的一些语言逻辑结构,如“if···then···;elsif···then···;”等。

这是VHDL中的顺序语句。

在实体模块中,对电梯的主要信号都一一作出了定义,具体说明给出如下。

port(clk:

instd_logic;---时钟信号

up1,up2:

instd_logic;---梯外上升请求

down2,down3:

instd_logic;---梯外下降请求

ting1,ting2,ting3:

instd_logic;---梯内到达请求

quick:

instd_logic;---立即关门请求

opendoor:

bufferstd_logic;---开门信号

closedoor:

bufferstd_logic;---关门信号

up:

bufferstd_logic;---上升运行

down:

bufferstd_logic;---下降运行

current:

bufferstd_logic_vector(3downto0));---显示楼层号

在结构体中对电梯的运行行为作出描述,其中在进程执行单元里,对电梯在各楼层之间转换的情况作出了描述,详见文末附录中的程序及程序说明。

4三层电梯控制器调试、仿真和硬件测试

4.1程序调试

(1)新建工作库目录,用于存储设计的工程文件,打开MAX+plusII软件。

(2)在工具栏中选择“新建”按钮。

在选择输入路径时,选择“TextEditorFile”以进行文本输入,如图8所示。

图8输入路径选择文本输入

(3)在文本输入界面内进行程序输入。

(4)输入完毕后,对程序进行保存。

文件名和实体定义的符号必须保持一致,即文件名为dianti,文件后缀名须改成vhd,详见图9所示。

图9文本输入保存界面

(5)保存以后,对程序进行编译。

在编译前,需要把当前文件设置为当前工程文件。

可通过选择菜单“File”→“SetProjecttoCurrentFile”来指定当前的文件为当前工程文件。

(6)在“MAX+plusII”下拉按钮里选择“Compiler”,对程序进行编译。

此时,MAX+plusII软件会对程序进行纠错等处理。

当程序被确认无误以后会出现如下界面,如图10所示。

图10编译通过

4.2程序波形仿真

4.2.1波形输入建立

(1)编译完全通过后,新建波形编辑器进行设计仿真。

通过“新建”按钮,选择“WaveformEditorfile”,详细如图11所示。

图11新建波形编辑器

(2)新建波形编辑器后,对文件进行保存。

同样是使用相同的文件名dianti,后缀则改为scf。

(3)在编辑器的Name栏点击鼠标右键,选择“EnterNodesfromSNF”选择添加需要观察的节点信号。

(4)在进行仿真前,还需对仿真结束时间设定。

在“File”栏对结束时间“EndTime”设置为“5ms”,如图12所示。

图12仿真结束时间设置图

(5)对所添加的节点中的输入信号进行相关的赋值后,就可对程序进行仿真,观察输出信号,得出结论。

如对时钟信号clk赋周期为50us的周期信号,如图13所示。

图13对clk信号赋值图

4.2.2电梯运行情况仿真

三层电梯的运行情况多种多样,下面以观察以下两种情况为例说明。

(1)电梯在不同时段接收到请求信号的情况:

电梯处于一楼,接收到三楼的梯外下降请求(down3),于是电梯运行到三楼,中途经过二楼时不作停顿。

到达三楼载客后,电梯内又接收到下降到一楼的梯内请求(ting1),于是电梯返回一楼待机。

仿真情况如图14所示。

观察以下信号:

down、up、opendoor、closedoor、current。

说明:

电梯在一层待机时,接收到三层的下降的请求,电梯运行到第三层,并开关门后,响应此时给出的梯内的一层到达响应,并运行到一层,此时没有其它请求信号,电梯在一层待机。

图14运行情况一

(2)当电梯在同一时间段里接收到几种不同的请求信号时:

电梯停在一楼,在同一时间段里接受到几个请求信号,包括梯内上升到三楼的请求ting3、二楼的梯外上升请求up2和三楼的梯外下降请求down3。

电梯到达二楼,响应up2,电梯停止载客后继续上升。

电梯上升到三楼时,响应请求ting3和down3,开门卸客;如此时没有任何梯内梯外请求,则在三层待机如有,则进入电梯下降状态。

仿真情况如图15所示。

观察以下信号:

down、up、open

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

当前位置:首页 > 自然科学

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

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