《基于FPGA的四层电梯控制系统设计毕业论文(27页).doc》由会员分享,可在线阅读,更多相关《基于FPGA的四层电梯控制系统设计毕业论文(27页).doc(27页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-基于FPGA的四层电梯控制系统设计毕业论文-第 21 页大连海事大学装订线毕 业 论 文装订线二一四 年 六 月基于FPGA的四层电梯控制系统设计专业班级: 电子信息工程10-1班 姓 名: 刘刊儒 指导老师: 严 飞 信息科学技术学院摘 要随着科技的发展,电梯早在上个世纪就已进入人们的生活。对于电梯的控制,传统的方法是使用继电器接触器控制系统进行控制。随着EDA技术的发展,FPGA已广泛应用于各项电子设计中,本设计即利用FPGA来实现对电梯控制系统的设计。本文基于VHDL即超高速集成电路硬件描述语言开发的四层电梯控制系统,以 QuartusII为开发环境,最终在EDA实验箱上实现四层电梯控
2、制系统的基本功能,其功能包括:显示电梯楼层数、响应楼层请求、电梯升降指示、电梯开关门、电梯开门超时报警等。本文采用模块化设计的方法,整个系统主要分为五个模块,其中包括:请求信号显示模块、楼层检测模块、数码管楼层显示模块、开关门控制模块及电梯运行模块。首先,通过EDA实验箱上的按键输入楼层请求,其中包括电梯内部楼层请求、电梯外上升请求及电梯外下降请求;同时,利用LED灯及数码管显示输入的请求;然后,遵照电梯运行时的方向优先原则及内部响应优先原则来逐次应答请求;并且,如果开门时间过长,电梯将发出报警并自动关门。关键字:电梯控制;EDA;FPGA;QuartusII;VHDL ABSTRACTWit
3、h the development of scientific technology, lift has come into our daily life since last century. The traditional approach for elevator control is to use relay-contactor system. While, thanks to the improvement of EDA technology, FPGA has been widely used in various of electronic design. And this de
4、sign uses the FPGA to realize the elevator control.Firstly, required information, including the interior floor required information and external required information for rising and external required information for dropping, will be input by button. Secondly, the required information will be show by
5、 LED. And then, following the principle of operation, the elevator control system will respond required information one by one. Finally, there is an alarm for overtime.This design is an elevator control system basing on VHDL. In the development environment of Quartus, the ultimate functions will be
6、realize in test case of EDA. The basic functions of this elevator include showing the current floor of elevator, responding the required information of elevator, controlling the door of elevator and alarming for overtime. And this elevator control system use modularization design. There are five blo
7、ck in this design, including displaying required information, detecting current floor, displaying current floor by LED, the control of the door and operation of elevator.Key words: elevator control system;EDA; FPGA; Quartus II; VHDL 目 录第1章 绪论1 1.1 电梯的起源1 1.2 电梯的现状与发展1 1.3 四层电梯控制系统的设计要求2第2章 开发技术基础3 2
8、.1 EDA技术简介3 2.1.1 EDA技术基本概述3 2.1.2 EDA技术的基本特征3 2.1.3 EDA技术的主要内容4 2.1.4 EDA技术发展趋势4 2.2 FPGA简介4 2.2.1 可编程逻辑器件(PLD)简介4 2.2.2 FPGA简介5 2.3 VHDL设计基础6 2.3.1 实体(ENTITY)6 2.3.2 结构体(ARCHITECTURE)6 2.3.3 配置(CONFIGURATION)6 2.3.4 包集合(PACKAGE)6 2.3.5 库(LIBRARY)7 2.4 开发软件QUARTUSII7 2.5 硬件介绍:ZY11EDA13BE7 2.5.1 ZY1
9、1EDA13BE实验系统的特点7 2.5.2 ZY11EDA13BE实验系统主板组成8第3章 四层电梯控制系统的设计9 3.1 系统器件端口说明9 3.2 请求信号响应模块11 3.2.1 外部上升请求信号响应11 3.2.2 外部下降请求信号响应12 3.2.3 内部请求信号响应14 3.3 电梯所处楼层检测模块15 3.4 楼层数码管显示模块16 3.5 开关门控制模块17 3.6 电梯运行模块18第4章 四层电梯控制系统展示21 4.1 系统软件验证21 4.2 四层电梯控制系统相应图片展示22 第5章 总结35 参考文献36 致谢37第1章 绪论1.1 电梯的起源电梯,是指动力驱动,利
10、用刚性导轨运行的箱体或者沿固定线路运行的梯级,进行升降或者平行运送人、货物的机电设备,包括人(货)电梯、自动扶梯、自动人行道。习惯上不论其驱动方式如何,将电梯作为建筑物内垂直交通运输工具的总称。其实,人类利用升降工具运输货物、人员的历史非常悠久。早在公元前2600年,埃及人在建造金字塔时就使用了最原始的升降系统,这套系统的基本原理至今仍无变化:即一个平衡物下降的同时,负载平台上升。早期的升降工具基本以人力为动力。英国科学家瓦特发明蒸汽机后,起重机装置开始采用蒸汽为动力。紧随其后,威廉汤姆逊研制出用液压驱动的升降梯。在这些升降梯的基础上,一代又一代富有创新精神的工程师们在不断改进升降梯的技术。然
11、而,安全性问题是人类一直在突破的问题。直到1854年,美国人伊莱沙格雷夫斯奥的发明了人类历史上第一部安全升降梯。在纽约水晶宫举行的世界博览会上,他向世人展示了这一伟大的伟大的发明。此后搭乘升降梯不再是“勇敢者的游戏”了,升降梯在世界范围内得到广泛应用。1889年12月,美国奥的斯电梯公司制造出了名副其实的电梯,它采用直流电动机为动力,通过蜗轮减速器带动卷筒上缠绕的绳索,悬挂并升降轿厢。1.2 电梯的现状与发展随着社会的发展,越来越多高层建筑出现在人们的生活中,电梯作为高层建筑中不可缺少的垂直运输设备,已然成为城市物质文明的一个重要标志。随着电梯的普遍使用,电梯功能也在随之提高,其控制方式也在不
12、断的改善。150年来,电梯的材质由黑白到彩色,样式由直式到斜式,在操纵控制方面更是步步出新,一款款集纳了人类在机械、电子、光学等领域最新科研成果的新型电梯竞相问世,冷冰冰的建筑因此散射出人性的光辉,人们的生活因此变得更加美好。伴随经济的快速发展,我国的电梯行业正经历着一个高速发展期。据前瞻网统计,我国电梯产量从1990年的1.03万台增长到2010年的36.5万台,年复合增长率19.5%,国内电梯需求量从2000年的仅3.72万台增长到2010年的32.97万台,到2010年底,我国电梯保有量超过160万台。1.3 四层电梯控制系统的设计要求对于电梯的控制,传统的方法是使用继电器接触器控制系统
13、进行控制。随着EDA技术的发展,FPGA已广泛应用于各项电子设计中,本设计即利用FPGA来实现对电梯控制系统的设计。本次设计的基于FPGA的四层电梯控制系统,要求按键输入楼层请求、各楼层的上升下降请求及快速关门与延时关门,LED灯显示按键请求的状况以及电梯运行方向和电梯开关门状况,数码管显示电梯当前所在楼层。具体要求如下:(1)每层电梯设有上升和下降请求开关,电梯内设有乘客到达层次的停站请求开关;(2)显示电梯当前所在楼层以及电梯运行模式(上升或下降);(3)电梯每3秒升降一层,电梯到达有停站请求的楼层后,电梯门开,开门指示灯亮,开门5秒后,电梯关门,关门指示灯灭,电梯继续运行,直到完成所有请
14、求信号;(4)电梯运行中,遵循电梯内部楼层请求响应优先的原则,响应请求信号时遵循运行方向优先的规则:当电梯处于上升模式时,优先响应比电梯所在位置高的上楼信号,由下至上执行;若多个楼层都有下降请求,则直接到达有下降请求的最高层,然后进入下降模式。当电梯处于下降模式时,电梯运行规律与上升模式相反;(5)电梯设有延时关门与快速关门功能。当启用延时关门时,电梯延时3秒关门。当启用快速关门电梯则1秒后立即关门。当电梯开门时间超过10秒,则报警灯亮且2秒后电梯自动关门;(6)电梯初始状态为一层关门。第2章 开发技术基础2.1 EDA技术简介2.1.1 EDA技术基本概述 EDA技术是以计算机为工作平台,以
15、EDA软件软件工具为开发环境,以硬件描述语言为设计语言,以可编程逻辑器件为实验载体,以ASIC、SoC芯片为目标器件,以数字系统设计为应用方向的电子产品自动化设计过程1 13。 EDA技术与传统的硬件技术以及软件技术有着很大的差别,它打破了计算机软件以及硬件间的隔阂,使计算机软件和硬件之间的结合得以实现,设计效率与产品性能互相融合。因此,它代表了数字电子设计技术和应用技术的发展方向。2.1.2 EDA技术的基本特征 EDA技术的广泛应用,是电子技术的最新发展方向。EDA技术具备着自己独特的优势,设计人员首先按照“自顶向下”的设计方法,对整个系统进行方案设计和功能划分,然后采用硬件描述语言完成系
16、统行为设计,最后通过综合器和适配器生成目标器件,这样的设计方法被称为高层次的电子设计方法。因此,EDA技术具备以下几个基本的特征:(1)“自顶向下”的设计方法 传统的电子设计技术采取的是“自底向上”的设计方法,这种设计方法不仅效率低、易出错,而且成本很高。随着技术的发展,当今的EDA技术采取“自顶向下”的全新设计方法,在结构上对整体功能实现模块化,分块进行仿真、纠错,这样有利于程序设计的修改,大大提高了设计的效率以及正确率13。(2)设计中采用硬件描述语言 采用硬件描述语言进行电路与系统的描述是当前EDA技术的另一个特征。HDL(Hardware Description Language)是一
17、种用于设计硬件电子系统的计算机语言,通过利用硬件描述语言,利用软件编程的方式将硬件电路结构、电子系统的逻辑功能连接起来。硬件描述语言的应用是现在的发展趋势,它可以大大的缩小设计成本,减少研发的周期,不仅适用于小批量的生产,同时也适合于大批量的产品的成产,因此,不仅在设计研发上,在工业生产中都得到了广泛的应用13。(3)具有逻辑综合和优化功能 逻辑综合功能是指将高层次的抽象描述转化为低级别抽象描述的一种方法,即根据芯片制造商提供的基本电路单元库,将硬件描述语言描述的电路转换为电路网表或者是一组逻辑方程13。优化功能是指根据布尔方程等效的原则,利用逻辑综合生成的结果,采取更小更快的综合结果代替一些
18、复杂的单元,然后根据指定的目标将其映射成新的网表或者一组逻辑方程。优化的作用是将电路设计的时延缩短到最小和有效利用资源。几乎所有的EDA综合工具都可以利用约束条件对电路进行优化。(4) 具有开放性和标准化的软件架构 软件架构是一套配置使用的规范软件包,其提供给EDA开发的平台以及相应的开发环境。同时,架构还包括了各种与数据库相关的服务。架构能将来自不同厂商生产的工具软件进行优化组合,集成在一个方便管理的统一的环境下,这样有利与实现资源的优化配置以及资源共享13。2.1.3 EDA技术的主要内容 EDA技术涉及面广,从教学和实用的角度看,主要有以下四个方面内容:一是大规模可编程逻辑器件;二是硬件
19、描述语言;三是软件开发工具;四是实验开发系统12。 大规模可编程器件是利用EDA技术进行电子系统设计的载体;硬件描述语言是利用EDA技术进行电子系统设计的主要表达手段;软件开发工具是利用EDA技术进行电子系统设计的智能化、自动化的设计工具;实验开发系统是利用EDA技术进行电子系统设计的下载工具以及硬件验证工具12。2.1.4 EDA技术发展趋势 随着半导体技术、计算机技术以及集成技术的快速发展,面对如今的电子产品市场,设计师们需要更加实用、方便、快捷的EDA工具,这对EDA提出了更高的要求,从而也促进了EDA技术的快速发展。从EDA技术的组成方面来看,在可编程器件方面,朝着高密度、高速度、宽带
20、宽方面发展,同时也朝着系统化、混合化、低电压、低功耗方向发展;在开发工具上,要求具备混合的信号处理能力,高效的仿真能力,高效的逻辑综合能力以及优化能力;系统描述方式更加的简便化、高效化和统一化13。2.2 FPGA简介2.2.1 可编程逻辑器件(PLD)简介 可编程逻辑器件以SRAM、Flash存储器或者EEPROM为存储基础,由用户根据自己的需要对其进行编程,确定芯片的功能,然后应用在用户的电路系统中的电子设计技术。随着科技的发展,可编程逻辑器件也在很多方面有了飞速的发展:规模、性能、密度,这些发展使得它广泛应用与计算机、信号处理、自动化、集成电路设计等领域23。 可编程逻辑器件具有减小系统
21、体积、增强逻辑设计的灵活性、提高系统的处理速度和可靠性、缩短设计周期、降低系统成本、具有系统加密功能等特点。 可编程逻辑器件的分类: (1)按编程的性质分:一次性编程PLD、可对次编程PLD、在线可重配置ICR器件、在系统编程ISPPLD。 (2)按器件的结构分:可分为乘积项结构器件和查找表结构器件。 (3)按器件的集成程度分:可分为高密度可编程逻辑器件和低密度可编程逻辑器件。2.2.2 FPGA简介 1985年,美国Xilinx公司率先推出了一种新型的PLD现场可编程门阵列(FPGA)。在功能上,FPGA的功能由逻辑结构的配置数据决定,这些数据配置存放在片外的EPROM或者其他的存储器上;在
22、结构上,FPGA在结构上由逻辑功能模块排列成阵列,并有可编程的内部连接线连接这些功能模块,以用于实现某些特定的逻辑功能。与CPLD相比,FPGA可以实现更为复杂和更大规模的逻辑电路2。 FPGA由六个部分组成,分别是可编程输入/输出单元、基本可编程逻辑单元、丰富的布线资源、嵌入式块RAM、内嵌专用硬核以及底层嵌入功能单元。(1)可编程输入/输出单元:该单元为芯片和外部电路的接口,可以完成不同电气特性下的输入输出的匹配3。(2)基本可编程逻辑单元:该单元式可编程逻辑器件的核心,实现可编程逻辑器件最基本的功能,也可以根据设计的灵活性改变它的内部连接和配置,以实现不同的逻辑功能3。(3)丰富的布线资
23、源:布线资源是器件内部非常重要的连接渠道,连接着驱动功能以及数据的传输速度。FPGA有着非常丰富的布线资源,它们从工艺、长度、宽度位置上被分为不同的等级,有专用的、有公用的3。(4)嵌入式块RAM:采用嵌入式块RAM,大大扩展了FPGA的使用灵活性和应用范围3。(5)内嵌专用硬核:内嵌的专用内核主要指那些通用性相对较弱的功能单元。FPGA中的内嵌专用内核主要是为了实现某些特定功能开发的3。(6)底层嵌入功能单元:它主要是指由生产商在出产前嵌入在FGPA中的一些通用程度较高的功能模块3。2.3 VHDL设计基础 一个完整的VHDL语言程序一般情况下包括5个部分:实体(Entity)、结构体(Ar
24、chitecture)、配置(Configuration)、包集合(Package)、库(Library)。2.3.1 实体(Entity) 任何一个VHDL程序必须包含并且只能有一个实体。实体是用于描述所设计芯片的外观特性;它是VHDL的首要设计单元,实体是程序中最重要的几个部分之一,其中定义了VHDL所描述的数字逻辑电路的外部接口,它相当于一段程序的外部视图,有输入输出的端口,也有参数的定义,相同的器件可以有不同的实现,但是只能对应一个实体12。2.3.2 结构体(Architecture) 结构体用于描述所设计芯片的逻辑功能。它用于描述系统的数据流程、系统的行为,以及系统的数据构成形式。
25、在该部分,VHDL语句的主要功能是指明所设计的芯片实现什么具体的功能,以及元件的内部联系和连线。通常情况,结构体对于输入输出的关系有三种方式进行描述:行为描述、寄存器传输描述、和结构描述,不同的描述方式仅仅是体现在所编写的语句上,其结构体的构造是完全相同的。其实结构体的功能描述共有5种:信号赋值语句、块(BLOCK)语句、进程(PROCESS)语句、元件例化(COMPONENT)语句和程序调用语句16。2.3.3 配置(Configuration) 配置用于从库中选取所需要单元来组成系统设计的不同规格的不同版本,使被设计系统的功能发生改变。配置语句用来描述层与层之间的连接关系以及实体与结构体之
26、间的连接关系。在复杂的VHDL工程设计中,设计者可以利用这种配置语句来选择不同的结构体,使其与要设计的实体相对应,或者为例化的各元件实体配置指定的结构体。在仿真设计中,可以利用配置来选择不同的结构体进行性能对比试验,以得到性能最佳的设计方案13。2.3.4 包集合(Package) 程序包主要用于存放各设计模块能共享的数据类型、常数、子程序等。它主要由两个部分组成:程序包首、程序包体。程序包首用于说明程序包中所定义的常量、数据类型、过程首、函数首以及元件定义;程序包体主要是对程序包体部分所定义的函数首和过程首所对应的函数体和过程体进行说明。在VHDL程序中,程序包不是必需的,程序包首可以独立的
27、定义和使用13。 2.3.5 库(Library) 在VHDL设计中,为了提高便捷性以及使用的规范性,必须将一些常用的、预先定义的数据类型,子程序等存放在一起,以供调用,这就是库,因此,库就是经编译的数据的集合,它可以存放实体定义、程序包定义、构造体定义以及配置的定义。库包含了5种:IEEE库、STD库、WORK库、VITAL库以及用户自定义库。需注意的是,在VHDL语言中,库的说明语句总是放在实体单元前面,即一段VHDL程序的开始一定是库说明语句。由于库是程序包的集合,因此,库的调用其实就是程序包的使用12。2.4 开发软件QuartusII QuartusII是Altera公司推出的新一代
28、FPGA/CPLD开发软件,适合于大规模复杂的逻辑电路设计。它是Altera公司的第4代可编程逻辑器件集成开发环境,提供了从设计输入到器件编程的全部功能1。 本次设计是在QuartusII9.0环境下进行的,QuartusII9.0是Altera公司于2009年推出的新一代PLD开发集成环境。可在多种平台运行,具有开放性、多平台、与结构无关、完成集成化、丰富的设计库、模块化工具、支持多种HDL语言、易学习、易操作等特点。QuartusII提供了方便的实体设计、快速的编译处理以及编程功能,是目前FPGA/CPLD开发工具中较为理想的综合、仿真软件1。QuartusII是EDA技术的一个综合性平台
29、。运用EDA技术设计系统的工作流程如图2.2所示。应用QuartusII软件,可以完成所有的设计工作。2.5 硬件介绍:ZY11EDA13BE2.5.1 ZY11EDA13BE实验系统的特点(1)采用主板A基本实验系统+适配板(扩展板)的结构:板是一个标准配置系统,是一个最简EDA工具系统,包含了核心芯片A(EP1K30QC208),在主板系统基础上扩展了不同系统,比如主板+单片机+扩展板构成单片机系统,以及主板+扩展CPLD/FPGA等多重系统11。(2)主板中所有I/O口开放:主芯片的I/O口分为三个部分使用,三个部分的I/O口无重合。第一部分连接到外部资源(数码管、译码器、时钟源、液晶、
30、LCD、LED、按键、开关等),第二部分连接到试配板接口,第三部分连接到扩展版接口11。(3)数字EDA与模拟EDA混合实验与开发:除了主板的模数转换实验,如果配以模拟EDA器件适配板,就能在主板系统上完成模拟EDA实验或模数混合实验的开发18。 (4)编程下载通用性强:主板系统含FPGA/CPLD通用下载编程模块,可用于对Altera 、Lattice、Xilinx等多家国际著名的PLD公司几乎所有isp或现场配置的CPLD/FPGA进行编程下载11。 (5)良好的混合电压(MV)兼容功能:绿色能源电子系统要求器件低功耗、低噪声和高电磁兼容性。因此低电压器件的使用将更加重要和普遍,如笔记本电
31、脑、嵌入式系统等,其中的主要器件皆为低电压器件 11。2.5.2 ZY11EDA13BE实验系统主板组成 ZY11EDA13BE实验系统主板,主要由以下几部分构成:通用编程模块、液晶显示模块、数码管显示模块、A/D、D/A转换模块、LED显示模块、数字可调信号源、滤波模块、信号调节模块、逻辑笔模块、配置模块、模式选择模块、模拟信号源、44键盘模块、开关按键模块、电源模块、分立元件模块、喇叭模块、I/O口插孔、核心芯片A、适配板B插座、扩展板C插座、40PIN插座11。 本次设计中用到了通用编程模块即核心芯片EPF1K30QC2082、数码管显示模块、LED显示模块、44键盘模块、开关按键模块、
32、电源模块、喇叭模块。第3章 四层电梯控制系统的设计根据设计要求,此次四层电梯控制系统的设计包括请求信号响应、楼层检测、当前楼层数码管显示、开关门控制、电梯运行五个模块。四层电梯控制系统的整体流程图如图3.1所示。图3.1 四层电梯控制系统整体流程图3.1 系统器件端口说明 本次设计全部使用VHDL语言编程,在程序中完成对各模块的设计以及整体系统对各模块的调用。 系统生成器件如图3.2所示。 图3.2 四层电梯控制系统生成器件端口信号说明:clk:系统时钟信号;rst:系统复位信号;inner_f1inner_f4:分别为电梯内用户到1、2、3、4楼的请求信号;outer_u1outer_u3:
33、分别为1、2、3楼用户的请求上楼信号;outer_d2outer_d4:分别为2、3、4楼用户的请求下楼信号;up_req:用户上升请求楼层指示;down_req:用户下降请求楼层指示;inner_req:电梯内用户到达楼层请求信号;led7: 七段数码管楼层显示信号;delay:延时关门信号;close:快速关门信号:door:门控信号,00为关门,01为等待关门,11为开门;alarm:报警信号;u_d:上升下降指示,0为下降,1为上升;state:电梯运行状态指示,其中state(2):1为运行允许标志,0为运行禁止标志,state(1):1为上行任务标志,0为下行任务标志;state(
34、0):1为正在上行标志,0为正在下行标志;current_floor:当前所在楼层;door_time:门开关控制计数信号。3.2 请求信号响应模块 请求信号灯的亮灭是根据该层是否有请求信号以及电梯的运行状态来决定的。当该层有人请求时,则该层的请求信号灯亮,直到电梯响应该层的请求时,请求信号灯才灭。请求信号响应分为外部上升请求信号响应、外部下降请求信号响应、内部请求信号响应三部分。3.2.1 外部上升请求信号响应 四层电梯控制系统的外部上升请求信号有3个,根据运行规律,采用逐层判断的方法,先从3楼开始判断,最后到1楼。当有本层的外部上升请求信号时,外部请求信号指示灯亮,当电梯响应了本层外部上升
35、请求信号,则本层的外部上升请求信号灯灭。外部上升请求信号流程图如图3.3所示。图3.3 外部上升请求指示灯亮灭转换流程图 (1)当3楼有外部上升请求时:3楼外部上升请求指示灯亮,若电梯处于上升状态响应此上升请求(state(1 downto 0)11),或下降状态响应此上升请求(state(1 downto 0)10),则当电梯停止(run0)且停在3楼时,3楼的外部上升请求指示灯灭;若电梯处于下降状态响应下降请求时(state(1 downto 0)00),3楼的内部请求和3楼的外部请求信号也可将电梯停在3楼,因此不能简单的通过电梯是否停止来判断信号灯熄灭,因此电梯在这种状态下,只有当2楼没
36、有外部下降信号且1-2楼没有内部请求时,电梯停止(run0)且停在3楼,3楼的外部上升信号指示灯才可以熄灭;若电梯处于上升状态来响应下降请求(state(1 downto 0)01),3楼的外部下降请求同样可以使电梯停在三楼,因此同样不能简单的通过电梯是否停止来判断3楼外部上升请求指示灯的亮灭,因此电梯在这种情况的,只有当2楼没有外部下降请求时,电梯停止(run0)且停在3楼,3楼的外部上升请求指示灯才可以熄灭。(2)当2楼有外部上升请求时:同样的方法可以判断2楼是否有上升请求和控制指示灯的亮灭。(3)当电梯有1楼上升请求时:1楼上升请求指示灯亮,但由于1楼是最底层,不能往下运行,所以只要1楼
37、外部有上升请求时,只需要判断电梯是否到达1楼且电梯停止运行(run0),当响应完毕时,1楼外部上升信号指示灯灭。 3.2.2 外部下降请求信号响应外部下降请求信号有3个,采用逐层判断的方法,先从4层开始判断,最后到2楼。其流程图如图3.4所示。图3.4 下降请求指示灯亮灭转换流程图 (1)当4楼有外部下降请求时: 由于4楼是最高层,不能往上运行,所以只要4楼外部有上升请求时,只需要判断电梯是否到达4楼且电梯停止运行,当响应完毕时,4楼外部下降信号指示灯灭。 (2)当3楼有外部下降请求时: 3楼外部下降请求指示灯亮,若电梯处于下降状态响应下降请求(state(1 downto 0)00)或上升状
38、态响应下降请求(state(1 downto 0)01),则当电梯停止运行(run0)且停在3楼时,3楼的外部下降请求指示灯灭;若电梯处于上升状态响应上升请求时(state(1 downto 0)11),3楼的内部请求和3楼的外部上升请求信号也可将电梯停在3楼,因此不能简单的通过电梯是否停止来判断信号灯熄灭,因此电梯在这种状态下,只有当4楼没有内部请求时,电梯停止运行(run0)且停在3楼,3楼的外部下降信号指示灯才可以熄灭;若电梯处于上升状态来响应下降请求(state(1 downto 0)01),3楼的外部上升请求同样可以使电梯停在三楼,但由于3楼的外部上升请求信号时4层电梯控制系统中可以
39、有外部上升请求的最高层,因此在这种状态下,当电梯停止运行(run0)且停在3楼,3楼的外部上升请求指示灯即熄灭。(3)当2楼有外部上升请求时: 2楼外部下降请求指示灯亮,若电梯处于下降状态响应下降请求(state(1 downto 0)00)或上升状态响应下降请求(state(1 downto 0)01),则当电梯停止运行(run0)且停在2楼时,2楼的外部下降请求指示灯灭;若电梯处于上升状态响应上升请求时(state(1 downto 0)11),2楼的内部请求和2楼的外部上升请求信号也可将电梯停在2楼,因此不能简单的通过电梯是否停止来判断信号灯熄灭,因此电梯在这种状态下,只有当3-4楼没有
40、内部请求且3楼没有外部上升请求时,电梯停止运行(run0)且停在2楼,2楼的外部下降信号指示灯才可以熄灭;若电梯处于上升状态来响应下降请求(state(1 downto 0)01),2楼的外部上升请求同样可以使电梯停在2楼,因此电梯在这种状态下,只有当电梯3楼没有外部上升请求时,当电梯停止运行(run0)且停在2楼,2楼的外部上升请求指示灯即熄灭。3.2.3 内部请求信号响应内部请求信号有4个。先判断是否有1楼内部请求,若有则1楼内部信号指示灯亮,且保持到请求被响应,则1楼内部请求信号指示灯灭。用同样的方法可以判断24楼的内部请求信号,若某层有内部请求,则该层的内部请求指示灯亮,并保持到内部请
41、求响应完毕。内部请求信号指示灯亮灭转换流程图如图3.5所示。图3.5 内部楼层请求信号指示灯亮灭转换流程图3.3 电梯所处楼层检测模块 当系统复位时,电梯显示楼层为1楼。当系统置位时,楼层显示信号根据电梯运行方向和运行状态来决定。当电梯处于停运状态时,楼层信号保持当前数值,当电梯运行时,若电梯向上运行则层数加1,若电梯向下运行则楼层数减1。电梯的运行方向由后续的电梯运行程序来决定。根据设计要求,电梯每秒升降一层,系统时钟选择2HZ,因此设有计数器,当计数器到6时,3秒时间到,计数器的值恢复为0,楼层显示则相应地加1或减1。楼层检测流程图如图3.6所示。图3.6 楼层检测模块流程图3.4 楼层数
42、码管显示模块 表3.1为7段译码真值表:当输出端状态为1时表示该段亮,当输出端状态为0时表示该段灭。数码管显示当前电梯所在楼层,即current_floor。表3.1 七段译码真值表显示数字输出笔状态abcdefg101100002101101131001111411001103.5 开关门控制模块 当state(2)0时,启动开关门控制,电梯门共有三个状态,分别为开门(door11)、准备关门(door01)和关门(door00)状态。其中,一般情况下开门时间为4秒(0door_time8),准备关门状态为1秒(7door_time20)则电梯开始报警,准备关门,并在3秒后自动关门。开关门控
43、制流程图如图3.7所示。图3.7 开关门控制流程图3.6 电梯运行模块 电梯运行模块是控制系统的关键,这个模块中的很多判断条件是以信号灯的状态为依据,而后根据本模块输出的电梯上升、下降、停止等状态信号反过来又控制信号灯的状态。 电梯运行时,遵循电梯内部请求优先响应的原则,同时响应请求信号遵循运行方向优先原则,即:电梯处于上升模式时,电梯只响应比电梯所在位置高的上楼信号,由下至上依次执行,直到最后一个上楼请求执行完毕,如更高层有下楼请求时,则直接上升到有下降请求的最高楼接客,然后进入下降模式。当电梯处于下降模式时,电梯只响应比所在楼层低的下楼信号,由上至下依次响应,直到最后一个上楼请求执行完毕,
44、若更低楼层有上升请求,则直接下降到有上升请求的最低楼接客,然后进入上升模式。电梯运行流程图如图3.8所示。 当系统复位时,电梯处于停止和等待的状态。 (1)当电梯在1楼时: 若电梯停在1楼(run0),先判断1楼是否有上升请求,若有1楼的外部上升请求,则电梯开门关门,再判断2-3楼是否有外部上升请求或内部2-4楼的请求,若2-3楼有外部上升请求或有内部请求到达24楼,则电梯运行(run1),此时电梯处于上升状态去应答上升请求(state(1 downto 0)11),最后判断2-4楼是否有外部下降请求,若2-4楼有外部下降请求,则电梯运行(run1)此时电梯处于上升状态去应答下降请求(stat
45、e(1 downto 0)01)。 若电梯正在运行(run1):当电梯处于下降状态时且1楼有上升请求或有内部到达1楼的请求时,电梯停止运行并开门。(2)当电梯在2楼时:当电梯停在2楼时(run0):先判断2楼是否有外部上升或下降的请求,若电梯在2楼有外部上升或下降请求,则电梯开门;若电梯当前处于下降状态(state(0)0),则再判断电梯是否有内部1楼请求,若有内部请求去1楼,则电梯开始运行(run1),电梯变为下降状态去响应下降请求(state(1 downto 0)00),再判断电梯是否有1楼的外部上升请求,若电梯有1楼外部上升请求,则电梯开始运行(run1),电梯变为下降状态去响应上升请求(state(1 downto 0)10),再判断电梯是否有3-4楼的内部请求或3楼的外部上升请求,如果电梯内部有3-4楼请求或3楼有外部上升请求,则电梯开始运行(run1),此时电梯变为上升状态去应答上升请求(state(1 downto 0)11);最后判断是否有3-4楼的外部下降请求,若有3-4楼的外部下降请求,则电梯开始运行(run1),此时电梯变为上升状态去响应下降请求(state(1