毕业论文-基于EDA技术的电梯控制器实现与仿真_第1页
毕业论文-基于EDA技术的电梯控制器实现与仿真_第2页
毕业论文-基于EDA技术的电梯控制器实现与仿真_第3页
毕业论文-基于EDA技术的电梯控制器实现与仿真_第4页
毕业论文-基于EDA技术的电梯控制器实现与仿真_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

1、基于EDA技术的电梯控制器实现与仿真六层电梯控制器的设计摘要: 在现代社会和经济活动中,计算机技术、自动控制技术和电力电子技术得到了迅速的发展,电梯已经成为城市物质文明的一种标志。在高层建筑中,电梯是不可缺少的垂直运输设备。随着经济建设的持续高速发展,我国电梯需求量越来越大,电梯生产已成为我国一门极具前景的新兴产业。针对我国电梯业现状,本设计以电子设计自动化(Electronic Design Automation)技术中的高速集成电路硬件描述语言(Very High Speed Integrated Circuit Hardware Descrisioon Languag

2、e)编写六层电梯控制程序,实验调试平台是Altera公司的QuartusII软件。此程序具有VHDL语言设计里最为常用的三个模块:实体entity,结构体architecture,进程执行单元process。通过程序调试及运行仿真,结果表明,本程序可以完成:电梯运行所在楼层指示、电梯运行方向指示、关门延时设置、看门狗报警、超载报警、故障报警等。本设计对更高层的电梯控制设计具有一定的拓展性。关键词:电梯控制;程序设计;EDA;VHDL;QuartusII目录1 前言-11.1 问题的提出-11.2 设计目的-11.3 课题的主要工作-12 总体方案的确定-12.1 PLC技术在电梯控制的应用-1

3、2.2 单片机技术在电梯控制的应用-22.3 EDA技术在电梯控制的应用-32.4 方案选择-33 设计的基础依据-43.1 EDA技术介绍-43.2 VHDL语言介绍-53.3 QuartusII软件介绍-84 程序设计及调试-94.1 算法分析-9电梯运行规则-9程序流程分析-124.2 程序设计说明-13端口、寄存器设计说明-13模块设计说明-14-164.3 程序调试-205 程序仿真-225.1 建立波形输入-225.2 电梯功能的实现与仿真结果-25仿真步骤-25电梯功能实现与仿真结果分析-266 设计总结-31致谢-33参考文献-34附录-35基于EDA技术的电梯控制器实现与仿真

4、六层电梯控制器的设计06自动化 黎国伟指导老师:王杏进 讲师1 前言1.1 问题的提出人和土地资源短缺的矛盾日趋激化,我国地少人多的国情,注定了我们必须合理解决人与土地的矛盾。兴建高层建筑是其中的有效措施之一,随之楼层电梯业便应运而生。随着我国城镇化程度的加大,电梯市场越来越繁华,人们对电梯的要求越来越高。如何更安全、更快捷地到达目的楼层,也就成为了人们对电梯的最为根本的要求。因此,本设计就六层电梯控制器设计为例,结合EDA技术,对电梯控制进行设计。1.2 设计的目的针对我国楼层层数的基本水平,本着“一理通,百理明”的原则,本设计希望通过简单的六层电梯控制器的设计,为广大电梯设计者提供一个基础

5、。针对目前中小型电梯所能实现的功能,本控制器虚拟实现以下功能:(1) 指示电梯所在楼层;(2) 电梯基本运行;(3) 关门延时设置;(4) 提前关门设置;(5) 看门狗设置;(6) 超载报警;(7) 故障报警。1.3 课题的主要工作利用VHDL语言编程实现六层电梯控制器各个模块的功能,并用QuartusII对本文进行设计,讨论六层电梯控制器设计的思路、示意图、结构图、流程图及程序仿真图。将设计在EDA工具QuartusII下进行时序仿真,得到仿真结果,验证六层电梯控制器设计的正确性。2总体方案的确定2.1 PLC技术在电梯控制的应用由当初的继电器逻辑控制电路到今天广为应用的可编程逻辑控制器及微

6、机控制系统,电梯控制的发展经历了相当一段历程。为了实现电梯的控制,过去大多是采用继电器逻辑电路,这种逻辑控制方式具有原理简单、直观的特点,但通用性较差,对不同的楼层和不同的控制方式,其原理图、接线图等必须重新制作,且控制系统由许多继电器触点组成,接线复杂、故障率高。因此,它逐渐被可靠性高、通用性强的可编程序控制器及微机控制系统所代替。由PLC或微机实现继电器的逻辑控制功能,具有较大的灵活性,不同的控制方式可用相同的硬件,只是软件各不相同。只要把按钮、限位开关、光电开关、无触点行程开关等电器元件作为输入信号,而把制动器、接触器等功率输出元件接到输出端,就算完成了接线任务。通常,电梯功能、层数变化

7、时,无需增减继电器和大量的电路。PLC是一种用于自动控制的专用微机,实质上属于微机控制方式。PLC在设计和制造上采取了许多抗干扰措施,输入输出均有光电隔离。能在较恶劣的各种环境里工作、可靠性高,适合于安全性要求较高的电梯控制。PLC将CPU、存储器、I/O接口等做成一体,使用方便,扩展容易。具有继电器系统的直观、易懂、易学,应用操作和调试方便等优势。因此,目前在国产电梯及中低档的客梯广泛应用了PLC控制系统,特别适用在用电梯的技术改造。电梯既是一种特殊的起重运输设备,具有完善的机械专用结构,又是一种比较复杂的机电一体化的大型工业产品,具有复杂的电气控制系统。就电梯的控制方法而言,目前国产电梯广

8、泛采用可编程控制器技术的智能化控制。由于这种控制属于随机控制,各种输入信号之间、输出信号之间以及输入信号和输出信号之间互相关联,逻辑关系处理起来非常复杂,这就给PLC编程带来很大难度。从这种意义上来说,PLC编程水平的高低就决定电梯运行状态的好坏,因此PLC应用在电梯控制中的编程技术就成为控制电梯运行的关键技术。PLC充分利用了微型计算机的原理和技术,具有很强的逻辑处理能力,在电梯运行控制中发挥了重要作用。由于电梯在运行过程中各种输入信号是随机出现的,即信号的出现具有不确定性,同时信号需要自锁保持、互锁保存、优先级排队、数据比较等,因此信号之间就存在复杂的逻辑关系。所以在电梯的运行控制中,PL

9、C的编程工作主要是针对各种信号进行逻辑判断和处理。2.2 单片机技术在电梯控制的应用单片机体积小,处理速度快,价格低廉,功能强大,是合适的控制系统。对电梯的控制主要是选层、启层、换速、平层、停车等几个环节,其中以选层环节最为复杂。与通常的电器控制相比,单片机系统不需要通过“选层器”并且配备以大量的中间继电器作为选层电路的控制设备,避免了设备多,检修困难,运行维护不便,造价成本高。应用微机控制可以取消选层器和大量中间继电器。而且应用单片机控制又相当于应用其他微机减少了外围设备的接口芯片,增强了可靠性。2.3 EDA技术在电梯控制的应用EDA技术不是某一学科的分支,或某种新的技能技术,它是一们综合

10、性学科,融合多学科于一体,打破了软件和硬件间的壁垒,使计算机的软件与硬件实现、设计效率和产品性能合二为一,它代表了电子设计技术和应用技术的发展方向。VHDL具有与具体硬件电路无关和设计平台无关的特性,并且具有良好的电路行为描述和系统描述的能力,并在语言易读性和层次化结构化设计方面,表现了强大的生命力和应用潜力。EDA使得设计者的工作仅限于利用硬件描述语言和EDA软件来完成对系统硬件功能的实现。正因EDA在设计控制系统中的这些特点,在电梯控制电路上采用EDA技术进行开发,越来越受到人们的重视。2.4方案选择对于符合市场需求的大规模系统,要达到高效、高速完成,必须有多人甚至多个开发组共同并行工作才

11、能实现。对于用EDA技术完成的一个确定的设计,可以利用相应的工具平台进来逻辑综合和优化,完成设计任务。基于EDA技术的VHDL语言对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管理最终设计实现的目标器件是什么,而进行独立的设计。这为电子设计的入门者提供了便捷的帮助。相信在不远的将来,我国相关的专业技术人员使用EDA技术进行工程设计,就像现在使用计算器一样,虽然大部分人不能开办集成电路制造厂,但是却能快速、经济地制造(设计)自己的专用集成电路或集成电子系统。综上比较,本设计采用EDA技术实现对电梯的控制。3设计的基础依据现代电子设计技术的核心是EDA技术。基于EDA技术开发的实现六

12、层电梯自动控制与目前主流的利用可编程逻辑控制器实现电梯控制紧密相连。硬件描述语言是EDA技术的重要组成部分,VHDL是作为电子设计主流硬件的描述语言。使用VHDL语言进行程序设计,在QuartusII软件上对程序进行编译、仿真。在QuartusII平台上开发具有易学易懂、控制灵活方便、抗干扰能力强、运行稳定可靠等优点。3.1 EDA技术介绍EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。20世纪90年代,国际上电

13、子和计算机技术较先进的国家,一直在积极探索新的电子电路设计方法,并在设计方法、工具等方面进行了彻底的变革,取得了巨大成功。在电子技术设计领域,可编程逻辑器件(如CPLD、FPGA)的应用,已得到广泛的普及,这些器件为数字系统的设计带来了极大的灵活性。这些器件可以通过软件编程而对其硬件结构和工作方式进行重构,从而使得硬件的设计可以如同软件设计那样方便快捷。这一切极大地改变了传统的数字系统设计方法、设计过程和设计观念,促进了EDA技术的迅速发展。EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言VHDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、

14、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。EDA技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程在计算机上自动处理完成。现在对EDA的概念或范畴用得很宽。包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事、等各个领域,都有EDA的应用。目前EDA技术已在各大公司、企事业单位和科研教学部门广泛使用。例如在飞机制造过程中,从设计、性能测试及特性分析直到飞行模拟,都可

15、能涉及到EDA技术。3.2 VHDL语言介绍VHDL(Very High Speed Integrated Circuit Hardware Description Language)语言于1983年由美国国防部发起创建,由电工和电子工程师协会(the institute of electrical and electronics engineer)进一步发展并在1987年作为“IEEE1076”发布。从此,VHDL成为硬件描述语言的业界标准之一。VHDL作为一个规范语言和建模语言,具有很强的电路描述和建模能力,能从多个层次对数字系统进行建模和描述,从而大大简化了硬件设计任务,提高了设计效率和

16、可靠性。VHDL具有与具体硬件电路无关和设计平台无关的特性,并且具有良好的电路行为描述和系统描述的能力,并在语言易读性和层次化结构化设计方面,表现了强大的生命力和应用潜力。VHDL的特点应用VHDL进行系统设计,有以下几方面的特点:(一)功能强大:VHDL具有功能强大的语言结构。它可以用明确的代码描述复杂的控制逻辑设计。并且具有多层次的设计描述功能,支持设计库和可重复使用的元件生成。VHDL是一种设计、仿真和综合的标准硬件描述语言。(二)可移植性:VHDL语言是一个标准语言,其设计描述可以为不同的EDA工具支持。它可以从一个仿真工具移植到另一个仿真工具,从一个综合工具移植到另一个综合工具,从一

17、个工作平台移植到另一个工作平台。此外,通过更换库再重新综合很容易移植为ASIC设计。(三)独立性:VHDL的硬件描述与具体的工艺技术和硬件结构无关。设计者可以不懂硬件的结构,也不必管最终设计实现的目标器件是什么,而进行独立的设计。程序设计的硬件目标器件有广阔的选择范围,可以是各系列的CPLD、FPGA及各种门阵列器件。(四)可操作性:由于VHDL具有类属描述语句和子程序调用等功能,对于已完成的设计,在不改变源程序的条件下,只需改变端口类属参量或函数,就能轻易地改变设计的规模和结构。(五)灵活性:VHDL最初是作为一种仿真标准格式出现的,有着丰富的仿真语句和库函数。使其在任何大系统的设计中,随时

18、可对设计进行仿真模拟。所以,即使在远离门级的高层次(即使设计尚未完成时),设计者就能够对整个工程设计的结构和功能的可行性进行查验,并做出决策。采用VHDL的系统设计,一般有以下6个步骤。1)要求的功能模块划分;2)VHDL的设计描述(设计输入);3)代码仿真模拟(前仿真);4)计综合、优化和布局布线;5)布局布线后的仿真模拟(后仿真);6)设计的实现(下载到目标器件)。(1)一个完整的VHDL程序是以下五部分组成的:库(LIBRARY):储存预先已经写好的程序和数据的集合。程序包(PACKAGE):声明在设计中将用到的常数、数据类型、元件及子程序。实体(ENTITY):声明到其他实体或其他设计

19、的接口,即定义本定义的输入输出端口。构造体(ARCHITECTUR):定义实体的实现。电路的具体描述配置(CONFIGURATION):一个实体可以有多个构造体,可以通过配置来为实体选择其中一个构造体。(2)实体实体(ENTITY)是VHDL设计中最其本的组成部分之一(另一个是结构体),VHDL表达的所有设计均与实体有关。实体类似于原理图中的一个部件符号,它并不描述设计的具体功能,只是定义所需的全部输入/输出信号。实体格式如下:ENTITY 实体名 ISGENERIC(常数名:数据类型:设定值)      

20、0; 类属说明   PORT                                       端口说明(端口信号名1: 模式 类型;端口信

21、号名2: 模式 类型;端口信号名3: 模式 类型;端口信号名4: 模式 类型);TYPE语句或常量定义                       实体申明并行语句            &

22、#160;                      实体语句 END 实体名;(3)结构体所有能被仿真的实体都由结构体(ARCHITECTURE)描述,即结构体描述实体的结构或行为,一个实体可以有多个结构体,每个结构体分别代表该实体功能的不同实现方案。结构体格式:ARCHITECTURE 结构体名 OF 实体名 IS

23、定义语句(元件例化);BEGIN并行处理语句;END 结构体名;在EDA环境中,毛刺是系统设计是否成功的关键。毛刺(竞争 冒险)现象是长期困绕电子工程师的问题之一。由于毛刺的存在,使的系统存在许多不稳定因素,经常会造成对脉冲上下沿敏感的电路产生误动作。毛刺主要是由门电路延时及路径延时造成的,采用传统设计方法时,毛刺必须在硬件测试时才有机会发现。但在现代数字系统设计时,通过EDA软件,完全可以找出毛刺产生的原因及产生的位置,并且非常准确和接近实际情况。目前常使用三种方法消除毛刺,它们分别为延时法、选通法和修改逻辑设计法。其中,修改逻辑设计能从根本上消除毛刺,但该方法要求使用者掌握电路的

24、工作状态及其转换,有时需要多路输出,使用起来有一定的复杂性。3.3 QuartusII软件介绍Altera公司的QuartusII软件提供了可编程片上系统(SOPC)设计的一个综合开发环境。Quartus II 开发工具人机界面友好、易于使用、性能优良,并自带编译、仿真功能。QuartusII软件支持VHDL和Verilog硬件描述语言的设计输入、基于图形的设计输入方式以及集成系统级设计工具。QuartusII软件可以将设计、综合、布局和布线以及系统的验证全部都整合到一个无缝的环境之中,其中也包括和第三方EDA工具的接口。QuartusII设计软件根据设计者需要提供了一个完整的多平台开发环境,

25、它包含整个FPGA和CPLD设计阶段的解决方案。在实际应用设计中,对程序原理性及可执行性的验证主要集中在程序修改阶段,尤其在处理的数据复杂、繁多时,Quartus II自带的波形输入仿真就很难实现程序的验证,而且输出的数据不能方便的以波形图示直观的呈现,给程序设计者在校验程序阶段带来了很多的不便。再有,在很多数字电路设计中,考虑成本的问题,FPGA实现的往往是设计的核心部分,而很多的外围电路如A/D转换器、D/A转换器等仍然使用传统的接口芯片来实现。而QuartusII 设计只是针对数字信号,并不支持模拟量的输入。而仅仅为了便于程序的验证而用FPGA实现这些外围电路,不但会大大延长程序的开发周

26、期,更会增大开发的成本。而MATLAB具有强大的运算功能,可以容易的实现A/D、D/A转换等外围电路功能,并能以波形形式将结果直观地呈现,极大地方便了程序设计人员设计应用系统4程序设计及调试4.1算法分析电梯运行规则(1)请求信号分析:电梯的请求信号分为梯内请求和梯外请求,如果从这个角度就很难去进行对电梯运行可能情况的分析,因为电梯的运行是根据梯内和梯外的请求信号、行程信号进行控制的,而梯内和梯外的请求是随机且不能以有限的规则去对其进行说明的。因此,很难对电梯的运行情况作出一个统一的分析。出于这方面的考虑,本设计把电梯的请求信号划分为上升请求和下降请求。电梯接收到请求信号后,都必须作预操作。使

27、电梯进入预上升状态的请求信号就是上升请求信号。具体来说,就是当电梯所在楼层低于发出请求的楼层所要到达的目的楼层时,电梯必须在下一操作中作出上升运行,这时的请求信号就是上升请求信号。反之,则是下降请求信号。(2)电梯处于各楼层时的运行情况:处于一楼时,电梯只可能接收到上升的请求信号。此时,电梯就进入预上升状态,准备作上升运行。如果电梯没有接收到请求信号,电梯则在一楼待机。处于二楼到五楼时,电梯可能出现三种情况:<1>电梯没有接收到请求信号,电梯返回一楼待机;<2>电梯收到上升请求信号,进入预上升状态;<3>电梯受到下降请求信号,进入预下降状态。处于六楼时,电梯

28、只可能接收到下降的请求信号。此时,电梯就进入预下降状态,准备作下降运行。如果电梯没有接收到请求信号,电梯则返回一楼待机。对上述电梯的运行情况进行汇总,可以得到如图2的电梯运行状态图。在电梯运行过程中,存在一个如何处理信号优先的问题。电梯实际上是一个人机交互式的控制系统,单纯用顺序优先或逻辑优先是不能满足控制要求的,因此,控制系统采用随机逻辑方式控制去解决信号优先的问题。即在以顺序逻辑控制实现电梯的基本控制要求的基础,根据随机的输入信号,以及电梯的相应状态时的控制电梯的运行。本设计采用以下规则:电梯以前一状态为基准,即前一状态为上升,则操作完所以上升请求再操作下降请求;前一状态为下降,则反之。(

29、3)对电梯开门、关门、报警等内部信号处理分析。其流程图如图3所示。当电梯接收到请求信号后,将以随机逻辑控制的方式到达发出请求的楼层。开门使能信号促使电梯开门载客,同时驱动关门延时信号、超重检测以及故障检测。在电梯进行完关门倒数计时、超重排除以及故障排除后,关门使能信号将促使电梯关门进入预操作状态。如果此前出现提前关门信号而且电梯也已经进行完超重排除和故障排除,电梯同样关门进入预操作状态。电梯在超重检测时发现超重,关门中断信号会促使电梯发出超重报警并且进行开门操作以减少乘客,重新进入载客操作;电梯在故障检测时,发现电梯某部分出现故障,关门中断信号会促使电梯发出故障报警并且进入开门操作的同时停止关

30、门延时,作故障处理待机。电梯控制器的原理图如图4所示。电梯的运行规则确立后,需对整个控制程序的设计作一个流程规范。对程序进行模块化构思。根据VHDL语言的规则,程序必须由最基本的实体和结构体构成。实体对控制器的端口进行定义,结构体对各端口的行为进行描述。因此程序运行需经过以下流程:VHDL库调用;确立控制器的端口及相关的寄存器;根据电梯运行规则,设计相关运行描述;对电梯内外信号进行处理。具体流程图如图5所示。4.2 程序设计说明(1)由功能要求得到本程序设计的端口必须包括:输入端口:时钟(clk,频率为2Hz)、超载(full)、关门中断(deng)、提前关门(quick)、清除报警(clr)

31、、电梯外人的上升请求信号(c_u1,c_u2,c_u3, ,c_u4,c_u5)、电梯外人的下降请求信号(c_d2,c_d3,c_d4,c_d5,c_d6)、电梯内人的请求信号(d1,d2,d3,d4,d5,d6)、到达楼层信号(g1,g2,g3,g4,g5,g6)。输出端口:电梯门控制信号(door)、电梯所在楼层显示(led)电梯外人上升请求信号显示(led_c_u)、电梯外人下降请求信号显示(led_c_d)、电梯内请求信号显示(led_d)、看门狗报警信号(wahaha)、电梯运动方向显示(ud)、超载警告信号(alarm)、电机控制信号(up,down)。其分布如图6所示。(2)程序

32、要求的寄存器(中间信号)包括:电梯内人请求信号寄存信号(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)。模块设计说明本程序由三个基本模块组成,包括调用VH

33、DL库模块、实体设计模块和结构体设计模块。而在结构体模块中又内嵌有进程执行单元。(1) 调用VHDL库使用library语句,本程序应用了VHDL库中的“通用ieee库”和“标准std库” 。library ieee;(2) entity实体设计模块entity dianti is port ( clk : in std_logic;-时钟信号(频率为2Hz)full,deng,quick,clr : in std_logic; -超载、关门中断、提前关门、清除报警信号c_u1,c_u2,c_u3,c_u4,c_u5: in std_logic; -电梯外人的上升请求信号c_d2,c_d3,c

34、_d4,c_d5,c_d6: in std_logic; -电梯外人的下降请求信号d1,d2,d3,d4,d5,d6 : in std_logic;-电梯内人的请求信号g1,g2,g3,g4,g5,g6 : in std_logic;-到达楼层信号door : out std_logic_vector(1 downto 0;-电梯门控制信号led : out std_logic_vector(6 downto 0;-电梯所在楼层显示(数码管显示)led_c_u:out std_logic_vector(5 downto 0;-电梯外人上升请求信号显示led_c_d:out std_logic_

35、vector(5 downto 0;-电梯外人下降请求信号显示led_d : out std_logic_vector(5 downto 0;-电梯内请求信号显示wahaha : out std_logic;-看门狗报警信号ud,alarm : out std_logic;-电梯运动方向显示,超载警告信号up,down : out std_logic ;-电机控制信号和电梯运动end dianti;(3)archi结构体设计模块和process进程执行单元architecture behav of dianti issignal d11,d22,d33,d44,d55,d66:std_logi

36、c; -电梯内人请求信号寄存信号signal c_u11,c_u22,c_u33,c_u44,c_u55:std_logic;-电梯外人上升请求信号寄存信号signal c_d22,c_d33,c_d44,c_d55,c_d66:std_logic;-电梯外人下降请求信号寄存信号signal q:integer range 0 to 1;-分频信号signal q1:integer range 0 to 6;-关门延时计数器 signal q2:integer range 0 to 9;-看门狗计数器signal dd,cc_u,cc_d,dd_cc:std_logic_vector(5 do

37、wnto 0;-电梯内外请求信号寄存器signal opendoor:std_logic;-开门使能信号signal updown:std_logic;-电梯运动方向信号寄存器signal en_up,en_dw:std_logic;-预备上升、预备下降预操作使能信号beginprocess(clkbegin。(进程语句具体看附录)end behav;具体语句设计说明上文已说明了构成VHDL程序的两大部分实体和结构体的相关语句。在这些语句里,赋值语句占了相当一部分。在VHDL语言里,赋值符号一般都是“<=”符号,具体形式如下:beginif clk'event and clk=&

38、#39;1' then if clr='1' then q1<=0;q2<=0;wahaha<='0'elsif full='1' then alarm<='1' q1<=0;if q1>=3 then door<="10"else door<="00"end if;。VHDL语言也具有与一般编程语言相同的一些语句逻辑结构,如上述中的“ifthenelsifthen;”等。这是VHDL中的顺序语句,与我们常见的C语言中的if作为条件语句

39、不同。在结构体中对电梯的运行行为作出描述,其中电梯处于二楼五楼情况复杂些,以下给出二楼情况的具体说明。elsif g2='1' then led<="0010010" -电梯到达2楼,数码管显示2if updown='1' then -电梯前一运动状态位上升 if d22='1' or c_u22='1' thend22<='0' c_u22<='0' opendoor<='1' -有当前层的请求,则电梯进入开门状态 elsif dd_cc

40、>"00000011" then en_up<='1'en_dw<='0' opendoor<='0' -有上升请求,则电梯进入预备上升状态 elsif dd_cc<"00000010" then en_dw<='1'en_up<='0' opendoor<='0'-有下降请求,则电梯进入预备下降状态 end if; -电梯前一运动状态为下降 elsif d22='1' or c_d22='

41、;1' thend22<='0' c_d22<='0'opendoor<='1' -有当前层的请求,则电梯进入开门状态elsif dd_cc<"00000010" then en_dw<='1'en_up<='0' opendoor<='0' -有下降请求,则电梯进入预备下降状态 elsif dd_cc>"00000011" thenen_up<='1'en_dw<='

42、0' opendoor<='0' -有上升请求,则电梯进入预备上升状态 end if;在上述语句中的“elsif g2=1then led<=“0010010;”,led的赋值之所以为“0010010”是根据共阳极七段数字显示器的发光段排列的,如图7所示。可发光段a、b、c、e、g形成一个2字。以此类推,在一楼时led赋值为“100111”,三楼时为“0000110”,四楼时为在进程执行单元里,对电梯在楼层时的操作情况作出了描述,例如:开门、关门延时、超载报警、故障报警以及电梯内的请求信号处理,具体说明给出如下:process(clkbeginif clk&

43、#39;event and clk='1' then if clr='1' then q1<=0;q2<=0;wahaha<='0'-清除故障报警 elsif full='1' then alarm<='1' q1<=0;-超载报警if q1>=3 then door<="10" else door<="00"end if; elsif q=1 then q<=0;alarm<='0'if q2=3

44、then wahaha<='1' -故障报警elseif opendoor='1' thendoor<="10"q1<=0;q2<=0;up<='0'down<='0'-开门操作elsif en_up='1' then -上升预操作 if deng='1' then door<="10"q1<=0;q2<=q2+1;-关门中断elsif quick='1' then q1<=3;-提前

45、关门elsif q1=6 then door<="00"updown<='1'up<='1' -关门完毕,电梯进入上升状态elsif q1>=3 then door<="01"q1<=q1+1; -电梯进入关门状态else q1<=q1+1;door<="00" -电梯进入等待状态end if;elsif en_dw='1' then -下降预操作if deng='1' then door<="10"

46、;q1<=0;q2<=q2+1; elsif quick='1' then q1<=3; elsif q1=6 then door<="00"updown<='0'down<='1' elsif q1>=3 then door<="01"q1<=q1+1; else q1<=q1+1;door<="00" end if;end if;。else q<=1;alarm<='0' -清除超载报警if

47、 d1='1' then d11<=d1; -对电梯内人请求信号进行检测和寄存 elsif d2='1' then d22<=d2;elsif d3='1' then d33<=d3;elsif d4='1' then d44<=d4;elsif d5='1' then d55<=d5;elsif d6='1' then d66<=d6;end if;if c_u1='1' then c_u11<=c_u1; -对电梯外人上升请求信号进行检测

48、和寄存elsif c_u2='1' then c_u22<=c_u2;elsif c_u3='1' then c_u33<=c_u3;elsif c_u4='1' then c_u44<=c_u4;elsif c_u5='1' then c_u55<=c_u5;end if; if c_d2='1' then c_d22<=c_d2; -对电梯外人下降请求信号进行检测和寄存elsif c_d3='1' then c_d33<=c_d3;elsif c_d4=

49、9;1' then c_d44<=c_d4;elsif c_d5='1' then c_d55<=c_d5;elsif c_d6='1' then c_d66<=c_d6;end if; dd<=d66&d55&d44&d33&d22&d11; -电梯内人请求信号并置 cc_u<='0'&c_u55&c_u44&c_u33&c_u22&c_u11; -电梯外人上升请求信号并置 cc_d<=c_d66&c_d55&am

50、p;c_d44&c_d33&c_d22&'0' -电梯外人下降请求信号并置 dd_cc<=dd or cc_u or cc_d; -电梯内、外人请求信号进行综合end if; ud<=updown; -电梯运动状态显示 led_d<=dd; -电梯内人请求信号显示led_c_u<=cc_u; -电梯外人上升请求信号显示led_c_d<=cc_d; -电梯外人下降请求信号显示end if; 4.3 程序调试(1)建立好工作目录,以便设计工程项目的存储,打开QuartusII软件,其初始界面如图8所示。(2)在工具栏中选择“新建

51、”按钮。选择“VHDL File”,如图9所示。(3) 在文本输入界面内进行程序输入,如图10所示。(4) 输入完毕后,需要对程序进行保存。注意文件名和实体定义名必须保持一致,即dianti,文件后缀名为vhd。(5) 保存以后,对程序进行编译。在编译前,需要把文件设置为顶层文件或工程文件Project。选择菜单“Project”中的“Set as Top-Level Entity”。(6) 在“QuartusII”里选择“Processing”下拉菜单中的“Start Compilation”,此时,QuartusII软件会对程序进行纠错等处理。当程序被确认无误后会出现如下界面,如图11所示

52、。编译完成,程序调试结束。5 程序仿真5.1建立波形输入(1)编译完成后,新建波形编辑器进行设计仿真。选择菜单“File” 中的“New”项,在New窗口中选择“Vector Waveform File”,单击OK按钮,即出现空白的波形编译器(图12)。(2)设置仿真时间区域,在“Edit”菜单中选择“End Time”项,在弹出窗口中设置,设置完后对文件进行保存。同样使用文件名dianti,后缀名则改为vwf。(3)将工程dianti的端口信号名选入波形编辑器中。方法是在编辑器左边Name下的空白处右击选择“Insert Node Or Bus”项,弹出对话框如图13所示,在Node Fil

53、ter框中选“Pins:all”,单击List按钮,下方的Nodes Found 窗口中出现设计工程的所有端口引脚名。(5)创立输入波形。从图13左边框中往右边框加入需要的信号节点,就可对输入信号逐一赋值,便可对程序进行仿真,观察输出信号,得出结论。如对时钟信赋于周期如下图14所示。设置好的输入波形如图15所示。5.2电梯功能的实现与仿真(1)仿真器参数设置。选择菜单“Assignment”中的“Settings”,在“Settings”窗口下选择“Category”下的“Simulator”,右侧设置如下图16所示。(2)启动仿真器。现在所有设置进行完毕,在菜单Processing项下选择S

54、tart Simulation,直到出现Simulation was successful,仿真结束。仿真结果如下图17和图18。以下将以“电梯停在一楼时,接受到请求信号c_d2、c_d3、c_u4和d6”为例,分析操作这些请求信号完成的过程,并在电梯运行到四楼时对超载报警、提前关门、延时关门、故障报警进行仿真分析。图17 电梯控制程序仿真图图18电梯控制程序仿真局部放大图1从上面两个仿真图可以看出:1. 电梯停在一楼时,接受到请求信号c_d3、c_d2、c_u4和d6,并把请求信号写入相应的寄存器。led显示电梯所在楼层;led_d、led-c_u和led_c_d显示用户的请求。2. 电梯经

55、过准备上升状态后,进入上升状态,到达2楼,3楼时,不停继续前进。3. 电梯上升到4楼时,响应请求(c_u4),开门载客;进入预备上升状态。图19 电梯控制程序仿真局部放大图2从上图可以看出:1. 电梯上升到6楼时,响应请求(d_6),开门卸客;进入预备下降状态。2. 电梯下降经过5楼,4楼都不停,到达3楼开门卸客,电梯进入预备下降状态。图20 电梯控制程序仿真局部放大图3从上图可以看出:1. 电梯到达3楼时,响应请求(c_d3),开门载客;进入预备下降状态。2. 电梯在预备下降状态下,电梯应超载(full='1'),发出超载警报alarm;超载信号消失(full='0&

56、#39;),电梯重新进入预备下降状态。4. 电梯接受到提前关门信号quick,电梯跳过关门等待时间。仿真图中q1从1跳到3;进入关门状态。5. 电梯接受到deng、c_d3和d3电梯重新进入预备下降状态,并且c_d3和d3信号都可以对q2(q2<3时)进行清零处理。6. 当连续的关门中断的次数超过3次时,不认为是出自乘客的需要,而认为是故障,并报警,等技术员处理完故障时,用clr信号才可以清除报警。图21 电梯控制程序仿真局部放大图4从上图可以看出:1. 电梯排除故障后继续运行。2. 电梯执行完所有请求时电梯将停在1楼待机。6 设计总结电梯控制器系统设计已经全部完成,基本实现了预期效果,

57、实现了电梯按预定运行规则上升、下降、载客等功能,并设计了提前关门功能,使电梯运行更便捷,设计了关门延时功能、超载报警功能、故障报警功能,使电梯运行更加安全更加可靠。在本设计中,因为考虑了扩展性,所以在信号定义的时候就使用了二进制的向量,而不是整数。在设计方法上也做了特殊的设计,所以使得扩展性较好。如果要实现n层电梯的控制,首先在端口的地方就要加入所有的按键,而指示灯只要把向量中的6改成n就可以了。在本设计过程中还需要改进的地方有,电梯运行规则的优化(如设计闲时忙时控制规则)、电梯运行速度的控制、设计更多的报警功能等。电梯控制系统的设计中体现了VHDL覆盖面是如此的广,描述能力强,是一个多层次的

58、硬件描述语言及运行速度快,使用方便,便于修改,设计简单等特点。本设计在实用方面和参考方面具有一定的价值。致谢在本设计的开题论证、课题研究、论文撰写和论文审校整个过程中,得到了导师赵桂青的亲切关怀和精心指导,使得本设计得以顺利完成,其中无不饱含着导师的汗水和心血。导师敏锐的学术思想、严谨踏实的治学态度、渊博的学识、精益求精的工作作风、诲人不倦的育人精神,将永远铭记在我的心中,使我终身受益。她对本设计的构思、框架和理论给予了我许多深入的指导,使得设计得以顺利完成。再次谨向导师赵桂青表示衷心的感谢和崇高的敬意。感谢所有任课老师四年来对我的培养。这个文化底蕴深厚、安详宁静的地方,塑造了我积极、乐观、淡定的人生态度,刻画了我永远留恋的青春记忆,让我在这即将离别的时候如此不

温馨提示

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

评论

0/150

提交评论