电梯控制器的设计及实现(编辑修改稿)内容摘要:

统描述的能力,并在语言易读性和层次化结构化设计方面 表现了强大的生命力和应用潜力。 VHDL 具有良好的适应性,用 VHDL 进行电子系统设计的一个很大的优点是设计者可以专心致力于其功能的实现,而不需要对不影响功能的与工艺有关的因素花费过多的时间和精力。 VHDL 结构与要素 一个完整的 VHDL 程序是由以下五部分组成的:库( LIBRARY) 、 程序包( PACKAGE) 、 实体( ENTITY) 、 结构体( ARCHITECTUR)、 子程序( SUBPROGRAM)、电路的具体描述配置( CONFIGURATION)。 ( 1)实体 VHDL 实 体作为一个设计实体(独立的电路功能结构)的组成部分,其功能是对这个设计实体与外部电路进行接口描述。 实体是设计实体的表层设计单元,实体说明部分规定了设计单元的输入输出接口信号和引脚,它是设计实体对外的一个通信界面。 实体 说明单元的一般语句结构 如下: ENTITY 实体名 IS [GENERIC( 参 数名:数据类型) ; ] [PORT(端口表 ); ] END ENTITY 实体名; 由于 PORT 说明语句是对一个设计实体界面的说明及对设计实体与外部电路的接口通道的说明,其中包括对每一个借口的输入输出模式和数据类型的定义。 其格式如下: PORT(端口名:端口模式 数据类型; {端口名:端口模式 数据类型 } ); ( 2)结构体 结构体是实体所定义的设计实体中的一个组成部分。 结构体描述设计实体的内部结构和外部设计实体端口间的逻辑关系。 结构体的语句格式如下: ARCHITECTURE 结构体名 OF 实体名 IS 江苏大学学士学位论文 9 [说明语句 ] BEGIN [功能描述语句 ] END 结构体名; ( 3)子程序 VHDL 子程序( SUBPROGRAM)是一个 VHDL 程序模块。 这个模块利用顺序语句来定义和完成算法。 VHDL 子程序与其他软件语言中的 子程序的应用目的是相似的,即能更有效地完成重复性的工作。 子程序可以在 VHDL 程序的三个不同位置进行定义,即在程序包、结构体和进程中定义。 ( 4) VHDL 库 在利用 VHDL 进行工程设计中,为了提高设计效率以及使设计遵循某些统一的语言标准或数据格式,有必要将一些有用的信息汇集在一个或几个库中以供调用。 这些信息可以是预先定义好的数据类型、子程序等设计单元的集合体(程序包),或预先设计好的各种设计实体(元件库程序包)。 因此,可以把库看成是一种用来存储预先完成的程序包、数据集合体和元件的仓库。 VHDL 语言的库分为两 类:一类是设计库,如在具体设计项目中用户设定的文件目录对应的 WORK 库;另一类是资源库,资源库是常规元件和标准模块存放的库。 VHDL 程序设计中常用的库有 IEEE 库、 STD 库、 WORK 库及 VITAL 库。 ( 5) VHDL 程序包 为了使已定义的常数、数据类型、元件调用说明以及子程序等能被更多其他的设计实体方便的访问和共享,可以将它们收集在一个 VHDL 程序包中。 多个程序包可以并入一个 VHDL 库中,使之适用于更一般的访问和调用范围。 ( 6)配置 配置可以把特定的结构体关联到(指定给)一个确定的实体。 正如 “ 配置 ” 一词 本身的含义一样,配置语句就是用来为较大的系统设计提供管理和工程组织的。 VHDL 的特点 应用 VHDL 进行系统设计,有以下几方面的特点: (1)VHDL 语言功能强大 , 设计方式多样 VHDL 语言具有强大的语言结构 , 只需采用简单明确的 VHDL 语言程序就可以描述十分复杂的硬件电路。 同时 , 它还具有多层次的电路设计描述功能。 此外 ,VHDL 语言能江苏大学学士学位论文 10 够同时支持同步电路、异步电路和随机电路的设计实现 , 这是其他硬件描述语言所不能比拟的。 VHDL 语言设计方法灵活多样 , 既支持自顶向下的设计方式 , 也支持自底向上的设计方法。 既支持模块化设计方法 , 也支持层次化设计方法。 (2)VHDL 语言具有强大的硬件描述能力 VHDL 语言具有多层次的电路设计描述功能,既可描述系统级电路 , 也可以描述门级电路;描述方式既可以采用行为描述、寄存器传输描述或者结构描述,也可以采用三者的混合描述方式。 同时, VHDL 语言也支持惯性延迟和传输延迟,这样可以准确地建立硬件电路的模型。 VHDL 语言的强大描述能力还体现在它具有丰富的数据类型。 VHDL 语言既支持标准定义的数据类型,也支持用户定义的数据类型,这样便会给硬件描述 带来较大的自由度。 (3)VHDL 语言具有很强的移植能力 VHDL 语言很强的移植能力主要体现在 : 对于同一个硬件电路的 VHDL 语言描述 , 它可以从一个模拟器移植到另一个模拟器上、从一个综合器移植到另一个综合器上或者从一个工作平台移植到另一个工作平台上去执行。 (4)可操作性:由于 VHDL 具有类属描述语句和子程序调用等功能,对于已完成的设计,在不改变源程序的条件下,只需改变端口类属参量或函数,就能轻易地改变设计的规模和结构。 (5)灵活性: VHDL 最初是作为一种仿真标准格式出现的,有着丰富的仿真语句和库函数。 使其在任何大系统的设计中,随时可对设计进行仿真模拟。 所以,即使在远离门级的高层次(即使设计尚未完成时),设计者就能够对整个工程设计的结构和功能的可行性进行查验,并做出决策。 (6) VHDL 语言的设计描述与器件无关 采用 VHDL 语言描述硬件电路时 , 设计人员并不需要首先考虑选择进行设计的器件。 这样做的好处是可以使设计人员集中精力进行电路设计的优化 , 而不需要考虑其他的问题。 当硬件电路的设计描述完成以后 ,VHDL 语言允许采用多种不同的器件结构来实现。 (7) VHDL 语言程序易于共享和复用 VHDL 语言采用基于库 ( library) 的设计方法。 在设计过程中 , 设计人员可以建立各种可再次利用的模块 , 一个大规模的硬件电路的设计不可能从门级电路开始一步步地江苏大学学士学位论文 11 进行设计 , 而是一些模块的累加。 这些模块可以预先设计或者使用以前设计中的存档模块 , 将这些模块存放在库中 , 就可以在以后的设计中进行复用。 由于 VHDL 语言是一种描述、模拟、综合、优化和布线的标准硬件描述语言 , 因此它可以使设计成果在设计人员之间方便地进行交流和共享 , 从而减小硬件电路设计的工作量 , 缩短开发周期。 VHDL 的设计步骤 采用 VHDL 的系统设计,一般有以下 6 个步骤。 1)要求的功能模块划分; 2) VHDL 的设计描述(设计输入); 3)代码仿真模拟(前仿真); 4)计综合、优化和布局布线; 5)布局布线后的仿真模拟(后仿真); 6)设计的实现(下载到目标器件)。 QuartusII 软件介绍 QuartusII 是 Altera 提供 的 FPGA/CPLD 开发集成 环境 , Altera 是世界上最大的可编程逻辑器件供应商之一。 Quartus II 开发工具人机界面友好、易于使用、性能优良,并自带编译、仿真功能。 QuartusII 提供了完整的多平台设计环境,能满足各种特定设计的需要,也是单芯片可编程系统( SOPC)设计的综合性环境和 SOPC 开发的基本设计工具,并为Altera DSP 开发包进行系统模型设计提供了集成综合环境。 软件支持 VHDL 和 Verilog硬件描述语言的设计输入、基于图形的设计输入方式以及集成系统设计工具。 QuartusII软件可以将设计、综合、布局和布线以及系统的验证全部都整合到一个无缝的环境之中,其中也包括和第三方 EDA 工具的接口。 QuartusII 允许来自第三方的 EDIF 文件输入,并提供了很多 EDA 软件的接口, QuartusII 支持层次化设计,可以在一个新的编辑输入环境中对使用不同输入设计方式完成的模块(元件)进行调用,从而解决了原理图与 HDL 混合输入设计的问题。 在设计输入之后, QuartusII 的编译器将给出设计输入的错误报告。 QuartusII 拥有性能良好的设计错误定位器,用于确定文本或图形设计中的错误。 江苏大学学士学位论文 12 第三章 工作原理、 程序设计及 调试 工作原理 外部数据高速采集模块设计 控制器采用 FPGA 作为系统控制的核心,系统时钟频率是 ,完全可以满足实时采集数 据的要求。 由于电路中毛刺现象的存在,信号的纯净度降低,单个毛刺往往被误作为系统状态转换的触发信号,严重影响电梯的正常工作。 可以采用多次检测的方法解决这个问题,对一个信号进行多次采样以保证信号的可信度。 外部请求信号的输入形式为按键输入,到达楼层信号来自光敏传感器,关门中断信号及超载信号则产生于压力传感器。 键盘、光敏外部输入接口电路未设计。 信号存储模块 电梯控制器的请求输入信号有 18 个(电梯外有 6 个上升请求和 6 个下降请求的用户输入端口,电梯内有 6 个请求用户输入端口),由于系统对内、外请求没有设置 优先级,各楼层的内、外请求信号被采集后可先进行运算,再存到存储器中。 电梯运行过程中,由于用户的请求信号的输入是离散的,而且系统对请求的响应也是离散的,因此请求信号的存储要求新的请求信号不能覆盖原来的请求信号,只有响应动作完成后才能清除存储器内对应的请求信号位。 基于 FPGA 的中央处理模块 中央数据处理模块是系统的核心,通过对存储的数据(含请求、到达楼层等信号)进行比较、判断以驱动系统状态的流转。 电梯工作过程中共有 9 个状态:等待、上升、下降、开门、关门、停止、休眠、超载报警及故障报警状态。 一般情 况下,电梯工作起始点是第一层,起始状态是等待状态,启动条件是收到上升请求。 信号的输出、显示模块 本系统的输出信号有两种 :一种是电机的升降控制信号(两位)和开门 /关门控制信号;另一种是面向用户的提示信号(含楼层显示、方向显示、已接受请求显示等)。 电机的控制信号一般需要两位,本系统中电机有 3 种状态:正转、反转和停转状态。 两位控制信号作为一个 3 路开关的选通信号,此 3 路开关选用模拟电子开关。 系统的显示输出包括数码管楼层显示、数码管请求信号显示和表征运动方向的箭头江苏大学学士学位论文 13 形指示灯的开关信号。 本系统具有请求 信号显示功能,结合方向现实,可以减少用户对同一请求的输入次数,这样就延长了电梯按键的使用寿命。 假如电梯处于向上运动状态,初始位置是底层,初试请求是 6 楼, 2 楼时进入一人,如果他的目的地也是 6 楼,他看到初试请求是 6 楼,就可以不再按键。 同时,电梯外部的人也可以根据请求信号显示(上升请求、下降请求、无请求),就可以避免没必要地重复请求信号输入。 电梯使用时,系统结合相应的电梯使用规范完全可以满足人们的需要,而且效率比较高。 程序设计 电梯运行规则 ( 1)请求信号分析: 电梯的请求信号分为梯内请求和 梯外请求,如果从这个角度就很难去进行对电梯运行可能情况的分析,因为电梯的运行是根据梯内和梯外的请求信号、行程信号进行控制的,而梯内和梯外的请求是随机且不能以有限的规则去对其进行说明的。 因此,很难对电梯的运行情况作出一个统一的分析。 出于这方面的考虑,本设计把电梯的请求信号划分为上升请求和下降请求。 电梯接收到请求信号后,都必须作预操作。 使电梯进入预上升状态的请求信号就是上升请求信号。 具体来说,就是当电梯所在楼层低于发出请求的楼层所要到达的目的楼层时,电梯必须在下一操作中作出上升运行,这时的请求信号就是上升请求 信号。 反之,则是下降请求信号。 ( 2)电梯处于各楼层时的运行情况: 处于一 楼时,电梯只可能接收到上升 请求信号。 此时,电梯就进入预上升状态,准备作上升运行。 如果电梯没有接收到请求信号,电梯则在一楼待机。 处于二楼到 五 楼时,电梯可能出现三种情况: 1电梯没有接收到请求信号,电梯 返回一楼 待机 ; 2电梯收到上升请求信号,进入预上升状态; 3电梯受到下降请求信号,进入预下降状态。 处于 六 楼时,电梯只可能接收到下降的请求信号。 此时,电梯就进入预下降状态,准备作下降运行。 如果电梯没有接收到请求信号,电梯则返回 一楼待机。 对上述电梯的运行情况进行汇总,可以得到如 图 31 的电梯运行状态图。 江苏大学学士学位论文 14 图 31 电梯运行状态图 在电梯运行过程中,存在一个如何处理信号优先的问题。 电梯实际上是一个人机交互式的控制系统,单纯用顺序优先或逻辑优先是不能满足控制要求的,因此,控制系统采用随机逻辑方式控制去解决信号优先的问题。 即在以顺序逻辑控制实现电梯的基本控制要求的基础,根据随机的输入信号,以及电梯的相应状态时的控制电梯的运行。 本设计采用 以下 规则 :电梯 以前一状态为基准,即前一状 态为上升,则操作完所 有 上升请求再操作下降请求;前一状态为下降,则反之。 ( 3)对电梯开门、关门、报警等内部信号处理分析。 其流程图如图 32 所示。 一楼 预上升 待机 二楼 …… 五楼 预下降 预上升 六楼 上升信号 无信号 .下降信号 上升信号 无信号 .下降信号 无信号 预下降。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。