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

下载本文档

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

文档简介

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

2、artusII软件。此程序具有VHDL语言设计里最为常用的三个模块:实体entity,结构体architecture,进程执行单元process。通过程序调试及运行仿真,结果表明,本程序可以完成:电梯运行所在楼层指示、电梯运行方向指示、关门延时设置、看门狗报警、超载报警、故障报警等。本设计对更高层的电梯控制设计具有一定的拓展性。关键词:电梯控制;程序设计;EDA;VHDL;QuartusIIBased on EDA s elevator controllers and simulation - Six-story elevator controller design Abstract:In t

3、he modern society and economic activities,computer technology,automatic control technology and power electronic technology has been rapid development,elevators have become a sign of urban material. In the high-rise buildings, the elevator is not a lack ofvertical transportation equipment. With the c

4、ontinued rapid development of economic construction, Chinas growing demand for elevators, elevator production has become Chinas a promising new industry.Against the status of Chinas elevator industry,this thesis designs the eight-floor liftcontroll on the basis of the electron basic on the electroni

5、c design automation(EDA) technologys the very six-story integrated circuit hardware describe language(VHDL),it is debuged in the Altera companys QuartusII software as a platform in experiment.This procedure has commonly most used three pieces of module in language designs:the entity,the architecture

6、 and the process.Through testing the connection of the EDA case,realize the following main functions:The lifts floor shows;the lift operation direction shows;closes prolonging ;the dog reports to the police;overloads reorting to the police;fault alarm,etc.The design can make some evolution for desig

7、ning to on the senior level lift control.Keywords:lift control programmer EDA VHDL QuartusII目录1 前言-11.1 问题的提出-11.2 设计目的-11.3 课题的主要工作-12 总体方案的确定-12.1 PLC技术在电梯控制的应用-12.2 单片机技术在电梯控制的应用-22.3 EDA技术在电梯控制的应用-32.4 方案选择-33 设计的基础依据-43.1 EDA技术介绍-43.2 VHDL语言介绍-53.3 QuartusII软件介绍-84 程序设计及调试-94.1 算法分析-94.1.1 电梯运行

8、规则-94.1.2 程序流程分析-124.2 程序设计说明-13 端口、寄存器设计说明-13 模块设计说明-14具体语句设计说明-164.3 程序调试-205 程序仿真-225.1 建立波形输入-225.2 电梯功能的实现与仿真结果-255.2.1 仿真步骤-255.2.2 电梯功能实现与仿真结果分析-266 设计总结-31致谢-33参考文献-34附录-35基于EDA技术的电梯控制器实现与仿真六层电梯控制器的设计06自动化 黎国伟指导老师:王杏进 讲师1 前言1.1 问题的提出人和土地资源短缺的矛盾日趋激化,我国地少人多的国情,注定了我们必须合理解决人与土地的矛盾。兴建高层建筑是其中的有效措施

9、之一,随之楼层电梯业便应运而生。随着我国城镇化程度的加大,电梯市场越来越繁华,人们对电梯的要求越来越高。如何更安全、更快捷地到达目的楼层,也就成为了人们对电梯的最为根本的要求。因此,本设计就六层电梯控制器设计为例,结合EDA技术,对电梯控制进行设计。1.2 设计的目的针对我国楼层层数的基本水平,本着“一理通,百理明”的原则,本设计希望通过简单的六层电梯控制器的设计,为广大电梯设计者提供一个基础。针对目前中小型电梯所能实现的功能,本控制器虚拟实现以下功能:(1) 指示电梯所在楼层;(2) 电梯基本运行;(3) 关门延时设置;(4) 提前关门设置;(5) 看门狗设置;(6) 超载报警;(7) 故障

10、报警。1.3 课题的主要工作利用VHDL语言编程实现六层电梯控制器各个模块的功能,并用QuartusII对本文进行设计,讨论六层电梯控制器设计的思路、示意图、结构图、流程图及程序仿真图。将设计在EDA工具QuartusII下进行时序仿真,得到仿真结果,验证六层电梯控制器设计的正确性。2总体方案的确定2.1 PLC技术在电梯控制的应用由当初的继电器逻辑控制电路到今天广为应用的可编程逻辑控制器及微机控制系统,电梯控制的发展经历了相当一段历程。为了实现电梯的控制,过去大多是采用继电器逻辑电路,这种逻辑控制方式具有原理简单、直观的特点,但通用性较差,对不同的楼层和不同的控制方式,其原理图、接线图等必须

11、重新制作,且控制系统由许多继电器触点组成,接线复杂、故障率高。因此,它逐渐被可靠性高、通用性强的可编程序控制器及微机控制系统所代替。由PLC或微机实现继电器的逻辑控制功能,具有较大的灵活性,不同的控制方式可用相同的硬件,只是软件各不相同。只要把按钮、限位开关、光电开关、无触点行程开关等电器元件作为输入信号,而把制动器、接触器等功率输出元件接到输出端,就算完成了接线任务。通常,电梯功能、层数变化时,无需增减继电器和大量的电路。PLC是一种用于自动控制的专用微机,实质上属于微机控制方式。PLC在设计和制造上采取了许多抗干扰措施,输入输出均有光电隔离。能在较恶劣的各种环境里工作、可靠性高,适合于安全

12、性要求较高的电梯控制。PLC将CPU、存储器、I/O接口等做成一体,使用方便,扩展容易。具有继电器系统的直观、易懂、易学,应用操作和调试方便等优势。因此,目前在国产电梯及中低档的客梯广泛应用了PLC控制系统,特别适用在用电梯的技术改造。电梯既是一种特殊的起重运输设备,具有完善的机械专用结构,又是一种比较复杂的机电一体化的大型工业产品,具有复杂的电气控制系统。就电梯的控制方法而言,目前国产电梯广泛采用可编程控制器技术的智能化控制。由于这种控制属于随机控制,各种输入信号之间、输出信号之间以及输入信号和输出信号之间互相关联,逻辑关系处理起来非常复杂,这就给PLC编程带来很大难度。从这种意义上来说,P

13、LC编程水平的高低就决定电梯运行状态的好坏,因此PLC应用在电梯控制中的编程技术就成为控制电梯运行的关键技术。PLC充分利用了微型计算机的原理和技术,具有很强的逻辑处理能力,在电梯运行控制中发挥了重要作用。由于电梯在运行过程中各种输入信号是随机出现的,即信号的出现具有不确定性,同时信号需要自锁保持、互锁保存、优先级排队、数据比较等,因此信号之间就存在复杂的逻辑关系。所以在电梯的运行控制中,PLC的编程工作主要是针对各种信号进行逻辑判断和处理。2.2单片机技术在电梯控制的应用单片机体积小,处理速度快,价格低廉,功能强大,是合适的控制系统。对电梯的控制主要是选层、启层、换速、平层、停车等几个环节,

14、其中以选层环节最为复杂。与通常的电器控制相比,单片机系统不需要通过“选层器”并且配备以大量的中间继电器作为选层电路的控制设备,避免了设备多,检修困难,运行维护不便,造价成本高。应用微机控制可以取消选层器和大量中间继电器。而且应用单片机控制又相当于应用其他微机减少了外围设备的接口芯片,增强了可靠性。2.3 EDA技术在电梯控制的应用EDA技术不是某一学科的分支,或某种新的技能技术,它是一们综合性学科,融合多学科于一体,打破了软件和硬件间的壁垒,使计算机的软件与硬件实现、设计效率和产品性能合二为一,它代表了电子设计技术和应用技术的发展方向。VHDL具有与具体硬件电路无关和设计平台无关的特性,并且具

15、有良好的电路行为描述和系统描述的能力,并在语言易读性和层次化结构化设计方面,表现了强大的生命力和应用潜力。EDA使得设计者的工作仅限于利用硬件描述语言和EDA软件来完成对系统硬件功能的实现。正因EDA在设计控制系统中的这些特点,在电梯控制电路上采用EDA技术进行开发,越来越受到人们的重视。方案选择对于符合市场需求的大规模系统,要达到高效、高速完成,必须有多人甚至多个开发组共同并行工作才能实现。对于用EDA技术完成的一个确定的设计,可以利用相应的工具平台进来逻辑综合和优化,完成设计任务。基于EDA技术的VHDL语言对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管理最终设计实现的目标

16、器件是什么,而进行独立的设计。这为电子设计的入门者提供了便捷的帮助。相信在不远的将来,我国相关的专业技术人员使用EDA技术进行工程设计,就像现在使用计算器一样,虽然大部分人不能开办集成电路制造厂,但是却能快速、经济地制造(设计)自己的专用集成电路或集成电子系统。综上比较,本设计采用EDA技术实现对电梯的控制。3设计的基础依据现代电子设计技术的核心是EDA技术。基于EDA技术开发的实现六层电梯自动控制与目前主流的利用可编程逻辑控制器实现电梯控制紧密相连。硬件描述语言是EDA技术的重要组成部分,VHDL是作为电子设计主流硬件的描述语言。使用VHDL语言进行程序设计,在QuartusII软件上对程序

17、进行编译、仿真。在QuartusII平台上开发具有易学易懂、控制灵活方便、抗干扰能力强、运行稳定可靠等优点。3.1 EDA技术介绍EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。20世纪90年代,国际上电子和计算机技术较先进的国家,一直在积极探索新的电子电路设计方法,并在设计方法、工具等方面进行了彻底的变革,取得了巨大成功。在电子技术设计领域,可编程逻辑器件(如CPLD、FPGA)的应用,已得到广泛的普及,这些器

18、件为数字系统的设计带来了极大的灵活性。这些器件可以通过软件编程而对其硬件结构和工作方式进行重构,从而使得硬件的设计可以如同软件设计那样方便快捷。这一切极大地改变了传统的数字系统设计方法、设计过程和设计观念,促进了EDA技术的迅速发展。EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言VHDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。EDA技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子

19、系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程在计算机上自动处理完成。现在对EDA的概念或范畴用得很宽。包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事、等各个领域,都有EDA的应用。目前EDA技术已在各大公司、企事业单位和科研教学部门广泛使用。例如在飞机制造过程中,从设计、性能测试及特性分析直到飞行模拟,都可能涉及到EDA技术。3.2 VHDL语言介绍VHDL(Very High Speed Integrated Circuit Hardware Description Language)语言于1983年由美国国防部

20、发起创建,由电工和电子工程师协会(the institute of electrical and electronics engineer)进一步发展并在1987年作为“IEEE1076”发布。从此,VHDL成为硬件描述语言的业界标准之一。VHDL作为一个规范语言和建模语言,具有很强的电路描述和建模能力,能从多个层次对数字系统进行建模和描述,从而大大简化了硬件设计任务,提高了设计效率和可靠性。VHDL具有与具体硬件电路无关和设计平台无关的特性,并且具有良好的电路行为描述和系统描述的能力,并在语言易读性和层次化结构化设计方面,表现了强大的生命力和应用潜力。VHDL的特点应用VHDL进行系统设计,

21、有以下几方面的特点:(一)功能强大:VHDL具有功能强大的语言结构。它可以用明确的代码描述复杂的控制逻辑设计。并且具有多层次的设计描述功能,支持设计库和可重复使用的元件生成。VHDL是一种设计、仿真和综合的标准硬件描述语言。(二)可移植性:VHDL语言是一个标准语言,其设计描述可以为不同的EDA工具支持。它可以从一个仿真工具移植到另一个仿真工具,从一个综合工具移植到另一个综合工具,从一个工作平台移植到另一个工作平台。此外,通过更换库再重新综合很容易移植为ASIC设计。(三)独立性:VHDL的硬件描述与具体的工艺技术和硬件结构无关。设计者可以不懂硬件的结构,也不必管最终设计实现的目标器件是什么,

22、而进行独立的设计。程序设计的硬件目标器件有广阔的选择范围,可以是各系列的CPLD、FPGA及各种门阵列器件。(四)可操作性:由于VHDL具有类属描述语句和子程序调用等功能,对于已完成的设计,在不改变源程序的条件下,只需改变端口类属参量或函数,就能轻易地改变设计的规模和结构。(五)灵活性:VHDL最初是作为一种仿真标准格式出现的,有着丰富的仿真语句和库函数。使其在任何大系统的设计中,随时可对设计进行仿真模拟。所以,即使在远离门级的高层次(即使设计尚未完成时),设计者就能够对整个工程设计的结构和功能的可行性进行查验,并做出决策。VHDL的设计步骤采用VHDL的系统设计,一般有以下6个步骤。1)要求

23、的功能模块划分;2)VHDL的设计描述(设计输入);3)代码仿真模拟(前仿真);4)计综合、优化和布局布线;5)布局布线后的仿真模拟(后仿真);6)设计的实现(下载到目标器件)。 VHDL语言编程格式(1)一个完整的VHDL程序是以下五部分组成的:库(LIBRARY):储存预先已经写好的程序和数据的集合。程序包(PACKAGE):声明在设计中将用到的常数、数据类型、元件及子程序。实体(ENTITY):声明到其他实体或其他设计的接口,即定义本定义的输入输出端口。构造体(ARCHITECTUR):定义实体的实现。电路的具体描述配置(CONFIGURATION):一个实体可以有多个构造体,可以通过配

24、置来为实体选择其中一个构造体。(2)实体实体(ENTITY)是VHDL设计中最其本的组成部分之一(另一个是结构体),VHDL表达的所有设计均与实体有关。实体类似于原理图中的一个部件符号,它并不描述设计的具体功能,只是定义所需的全部输入/输出信号。实体格式如下:ENTITY实体名ISGENERIC(常数名:数据类型:设定值)类属说明PORT端口说明(端口信号名1:模式类型;端口信号名2:模式类型;端口信号名3:模式类型;端口信号名4:模式类型);TYPE语句或常量定义实体申明并行语句实体语句END实体名;(3)结构体所有能被仿真的实体都由结构体(ARCHITECTURE)描述,即结构体描述实体的

25、结构或行为,一个实体可以有多个结构体,每个结构体分别代表该实体功能的不同实现方案。结构体格式:ARCHITECTURE结构体名OF实体名IS定义语句(元件例化);BEGIN并行处理语句;END结构体名; 用VHDL语言对FPGA和CPLD器件进行开发时出现的毛刺问题的处理在EDA环境中,毛刺是系统设计是否成功的关键。毛刺(竞争 冒险)现象是长期困绕电子工程师的问题之一。由于毛刺的存在,使的系统存在许多不稳定因素,经常会造成对脉冲上下沿敏感的电路产生误动作。毛刺主要是由门电路延时及路径延时造成的,采用传统设计方法时,毛刺必须在硬件测试时才有机会发现。但在现代数字系统设计时,通过EDA软件,完全可

26、以找出毛刺产生的原因及产生的位置,并且非常准确和接近实际情况。目前常使用三种方法消除毛刺,它们分别为延时法、选通法和修改逻辑设计法。其中,修改逻辑设计能从根本上消除毛刺,但该方法要求使用者掌握电路的工作状态及其转换,有时需要多路输出,使用起来有一定的复杂性。3.3 QuartusII软件介绍Altera公司的QuartusII软件提供了可编程片上系统(SOPC)设计的一个综合开发环境。Quartus II 开发工具人机界面友好、易于使用、性能优良,并自带编译、仿真功能。QuartusII软件支持VHDL和Verilog硬件描述语言的设计输入、基于图形的设计输入方式以及集成系统级设计工具。Qua

27、rtusII软件可以将设计、综合、布局和布线以及系统的验证全部都整合到一个无缝的环境之中,其中也包括和第三方EDA工具的接口。QuartusII设计软件根据设计者需要提供了一个完整的多平台开发环境,它包含整个FPGA和CPLD设计阶段的解决方案。在实际应用设计中,对程序原理性及可执行性的验证主要集中在程序修改阶段,尤其在处理的数据复杂、繁多时,Quartus II自带的波形输入仿真就很难实现程序的验证,而且输出的数据不能方便的以波形图示直观的呈现,给程序设计者在校验程序阶段带来了很多的不便。再有,在很多数字电路设计中,考虑成本的问题,FPGA实现的往往是设计的核心部分,而很多的外围电路如A/D

28、转换器、D/A转换器等仍然使用传统的接口芯片来实现。而QuartusII 设计只是针对数字信号,并不支持模拟量的输入。而仅仅为了便于程序的验证而用FPGA实现这些外围电路,不但会大大延长程序的开发周期,更会增大开发的成本。而MATLAB具有强大的运算功能,可以容易的实现A/D、D/A转换等外围电路功能,并能以波形形式将结果直观地呈现,极大地方便了程序设计人员设计应用系统4程序设计及调试算法分析电梯运行规则(1)请求信号分析:电梯的请求信号分为梯内请求和梯外请求,如果从这个角度就很难去进行对电梯运行可能情况的分析,因为电梯的运行是根据梯内和梯外的请求信号、行程信号进行控制的,而梯内和梯外的请求是

29、随机且不能以有限的规则去对其进行说明的。因此,很难对电梯的运行情况作出一个统一的分析。出于这方面的考虑,本设计把电梯的请求信号划分为上升请求和下降请求。电梯接收到请求信号后,都必须作预操作。使电梯进入预上升状态的请求信号就是上升请求信号。具体来说,就是当电梯所在楼层低于发出请求的楼层所要到达的目的楼层时,电梯必须在下一操作中作出上升运行,这时的请求信号就是上升请求信号。反之,则是下降请求信号。(2)电梯处于各楼层时的运行情况:处于一楼时,电梯只可能接收到上升的请求信号。此时,电梯就进入预上升状态,准备作上升运行。如果电梯没有接收到请求信号,电梯则在一楼待机。处于二楼到五楼时,电梯可能出现三种情

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

31、控制电梯的运行。本设计采用以下规则:电梯以前一状态为基准,即前一状态为上升,则操作完所以上升请求再操作下降请求;前一状态为下降,则反之。(3)对电梯开门、关门、报警等内部信号处理分析。其流程图如图3所示。当电梯接收到请求信号后,将以随机逻辑控制的方式到达发出请求的楼层。开门使能信号促使电梯开门载客,同时驱动关门延时信号、超重检测以及故障检测。在电梯进行完关门倒数计时、超重排除以及故障排除后,关门使能信号将促使电梯关门进入预操作状态。如果此前出现提前关门信号而且电梯也已经进行完超重排除和故障排除,电梯同样关门进入预操作状态。电梯在超重检测时发现超重,关门中断信号会促使电梯发出超重报警并且进行开门

32、操作以减少乘客,重新进入载客操作;电梯在故障检测时,发现电梯某部分出现故障,关门中断信号会促使电梯发出故障报警并且进入开门操作的同时停止关门延时,作故障处理待机。电梯控制器的原理图如图4所示。 程序流程分析电梯的运行规则确立后,需对整个控制程序的设计作一个流程规范。对程序进行模块化构思。根据VHDL语言的规则,程序必须由最基本的实体和结构体构成。实体对控制器的端口进行定义,结构体对各端口的行为进行描述。因此程序运行需经过以下流程:VHDL库调用;确立控制器的端口及相关的寄存器;根据电梯运行规则,设计相关运行描述;对电梯内外信号进行处理。具体流程图如图5所示。4.2 程序设计说明端口、寄存器设计

33、说明(1)由功能要求得到本程序设计的端口必须包括:输入端口:时钟(clk,频率为2Hz)、超载(full)、关门中断(deng)、提前关门(quick)、清除报警(clr)、电梯外人的上升请求信号(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)、电梯内请求信

34、号显示(led_d)、看门狗报警信号(wahaha)、电梯运动方向显示(ud)、超载警告信号(alarm)、电机控制信号(up,down)。其分布如图6所示。(2)程序要求的寄存器(中间信号)包括:电梯内人请求信号寄存信号(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)、开门使能信号(o

35、pendoor)、电梯运动方向信号寄存器(updown)、预备上升、预备下降预操作使能信号(en_up,en_dw)。模块设计说明本程序由三个基本模块组成,包括调用VHDL库模块、实体设计模块和结构体设计模块。而在结构体模块中又内嵌有进程执行单元。(1) 调用VHDL库 使用library语句,本程序应用了VHDL库中的“通用ieee库”和“标准std库” 。library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;(2) entity实体设计模块e

36、ntity 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_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;-到达楼

37、层信号 door : out std_logic_vector(1 downto 0);-电梯门控制信号 led : out std_logic_vector(6downto 0);-电梯所在楼层显示(数码管显示) led_c_u:out std_logic_vector(5 downto 0);-电梯外人上升请求信号显示 led_c_d:out std_logic_vector(5 downto 0);-电梯外人下降请求信号显示 led_d : out std_logic_vector(5 downto 0);-电梯内请求信号显示 wahaha : out std_logic;-看门狗报警信

38、号 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_logic; -电梯内人请求信号寄存信号signal c_u11,c_u22,c_u33,c_u44,c_u55:std_logic;-电梯外人上升请求信号寄存信号signal c_d22,c_d33,c_d44,c_d55,

39、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 downto 0);-电梯内外请求信号寄存器signal opendoor:std_logic;-开门使能信号signal updown:std_logic;-电梯运动方向信号寄存器signal en_up,en_dw:s

40、td_logic;-预备上升、预备下降预操作使能信号beginprocess(clk)begin。(进程语句具体看附录)end behav;具体语句设计说明上文已说明了构成VHDL程序的两大部分实体和结构体的相关语句。在这些语句里,赋值语句占了相当一部分。在VHDL语言里,赋值符号一般都是“=”符号,具体形式如下:beginif clkevent and clk=1 then ifclr=1 then q1=0;q2=0;wahaha=0;elsif full=1 then alarm=1; q1=3 then door=10;else door=00;end if;。VHDL语言也具有与一般

41、编程语言相同的一些语句逻辑结构,如上述中的“ifthenelsifthen;”等。这是VHDL中的顺序语句,与我们常见的C语言中的if作为条件语句不同。在结构体中对电梯的运行行为作出描述,其中电梯处于二楼五楼情况复杂些,以下给出二楼情况的具体说明。elsif g2=1 then led=0010010; -电梯到达2楼,数码管显示2if updown=1 then -电梯前一运动状态位上升 if d22=1 or c_u22=1 thend22=0; c_u22=0; opendoor00000011 then en_up=1;en_dw=0; opendoor=0; -有上升请求,则电梯进入

42、预备上升状态 elsif dd_cc00000010 then en_dw=1;en_up=0; opendoor=0;-有下降请求,则电梯进入预备下降状态 end if; -电梯前一运动状态为下降 elsif d22=1 or c_d22=1 thend22=0; c_d22=0;opendoor=1; -有当前层的请求,则电梯进入开门状态elsif dd_cc00000010 then en_dw=1;en_up=0; opendoor00000011 thenen_up=1;en_dw=0; opendoor=0; -有上升请求,则电梯进入预备上升状态 end if;在上述语句中的“el

43、sif g2=1then led=“0010010;”,led的赋值之所以为“0010010”是根据共阳极七段数字显示器的发光段排列的,如图7所示。可发光段a、b、c、e、g形成一个2字。以此类推,在一楼时led赋值为“100111”,三楼时为“0000110”,四楼时为在进程执行单元里,对电梯在楼层时的操作情况作出了描述,例如:开门、关门延时、超载报警、故障报警以及电梯内的请求信号处理,具体说明给出如下:process(clk)beginif clkevent and clk=1 then if clr=1 then q1=0;q2=0;wahaha=0;-清除故障报警 elsif full

44、=1 then alarm=1; q1=3 then door=10; else door=00;end if; elsif q=1 then q=0;alarm=0; if q2=3 then wahaha=1; -故障报警 else if opendoor=1 then door=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;-提前关门 elsif q1=6 then door=00;updo

45、wn=1;up=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;q1=0;q2=q2+1; elsif quick=1 then q1=3; elsif q1=6 then door=00;updown=0;down=3 then door=01;q1=q1+1; else q1=q1+1;door=00; end if; end if;。else q=1;alarm=0;-清除超载报警 if d1

46、=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; -对电梯外人上升请求信号进行检测和寄存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; el

47、sif 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=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; -电梯外人上升请求信号并置

48、 cc_d=c_d66&c_d55&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)在工具栏中选择“新建”按钮。选择“VHDL File”,如图9所

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

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

温馨提示

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

评论

0/150

提交评论