四层电梯的控制_第1页
四层电梯的控制_第2页
四层电梯的控制_第3页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

1、目录1引言 (11.1 设计背景 (11.2 设计基础 (11.2.1 EDA 技术介绍 (11.2.2 硬件描述语言 (VHDL 介绍 (21.2.3 MAX+plusII 软件介绍 (22 电梯控制器的具体设计(42.1 设计目的 (42.2 设计要求 (42.3 设计思路 (43 三层电梯控制器的综合设计(VHDL 语言实现 (63.1 分析判断 (63.1.1 电梯运行规则 (63.1.2 程序流程分析 (103.2 程序端口和寄存器说明(103.3 各模块设计说明(113.4 具体语句设计说明(134 三层电梯控制器调试、仿真和硬件测试(144.1 程序调试 (144.2 程序波形仿

2、真 (154.2.1 波形输入建立 (154.2.2 电梯运行情况仿真(164.2.3 电梯功能仿真 (184.3 硬件测试 (194.3.1 引脚锁定 (194.3.2 硬件下载 (195 结论 (205.1 设计功能实现情况(205.2 设计心得 (20参考文献 (21附录 (221 引言1.1 设计背景近年来 ,随着我国房地产业的持续高速发展,高层建筑越来越多。因此,一种能使人们快速、便捷地到达目的楼层的电梯便应运而生了。分析近几年房地产业的发展趋势 ,特别是商品住宅的高速发展,将使住宅对电梯的需求量持续攀升。人们对电梯安全性、高效性、舒适性的不断追求也推动了电梯技术的进步。随着电梯技术

3、的发展 , 绿色化、低能耗、智能化、网络化、蓝牙技术的电梯成为一段时间内的发展趋势。为保证人们能更安全、更快捷地到达目的楼层 ,实现人性化的功能 ,对电梯系统中的控制部分进行优化设计是非常必要。因此这部分的设计也就成了在电梯设计领域里最为核心的技术。为了实现电梯的智能化 ,可以采用许多方法。它的智能化控制可以有以下几种形式 :1.PLC 控制 ;2.单板机控制 ;3.单片机控制 ;4.单微机控制 ;5.多微机控制 ; 6.人工智能控制。随着 EDA 技术的快速发展 ,电子设计自动化 (EDA 逐渐成为重要的设计手段 ,已经广泛应用于模拟与数字电路系统等许多领域。它是一种实现电子系统或电子产品自

4、动化设计的技术 ,与电子技术、微电子技术的发展密切相关 ,并吸收了计算机科学领域的大多数最新研究成果 ,以高性能的计算机作为工作平台 ,促进了工程发展。传统单片机设计的电梯控制外围电路复杂 ,性能不稳定 ,而采用 EDA 设计 ,却拥有电子系统小型化、低功耗、高可靠性、开发过程投资小、周期短等优点 ,而且还可以通过软件编程对硬件结构和工作方式进行重构 ,使得硬件设计如软件设计那般方便快捷。本次设计就是应用 EDA 电子电路技术来设计电梯控制器 ,从而使用一片芯片就可以实现对电梯的控制的。1.2 设计基础主要是应用现代电子技术中的EDA 技术。利用 EDA 技术实现四层电梯的控制与目前主流的利用

5、可编程逻辑控制器实现电梯控制紧密相连。硬件描述语言是EDA 技术的重要组成部分 ,VHDL 是作为电子设计主流硬件的描述语言。使用VHDL 语言进行程序的设计 ,以 Quartusll 为核心。该程序可以实现电梯的升降,开门 ,关门等基础功能。1.2.1 EDA 技术介绍EDA 是电子设计自动化 (Electronic Design Automation 的缩写 ,在 20 世纪 90 年代初从计算机辅助设计 (CAD 、计算机辅助制造 (CAM 、计算机辅助测试 (CAT 和计算机辅助工程 (CAE 的概念发展而来的。 EDA 技术就是以计算机为工具 ,设计者在 EDA 软件平台上 ,用硬件

6、描述语言 HDL 完成设计文件 ,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真 ,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。利用 EDA 技术进行电子系统的设计 ,具有以下几个特点 :1.用软件的方式设计硬件 ;2.用软件方式设计的系统到硬件系统的转换是由有关的开发软件自动完成的 ;3.设计过程中可用有关软件进行各种仿真 ;4.系统可现场编程 ,在线升级 ;5.整个系统可集成在一个芯片上 ,体积小、功耗低、可靠性高。因此 ,EDA 技术是现代电子设计的发展趋势。1.2.2 硬件描述语言 (VHDL 介绍VHDL(Very-High-Speed Int

7、egrated Circuit Hardware Description Language主要用于描述数字系统的结构,行为 ,功能和接口 3 。它于 1983 年由美国国防部发起创建 ,由电工和电子工程师协会 (the Institute of Electrical and Electronics Engineers进一步发展并在 1987 年作为 “IEEE 1076发”布。从此 ,VHDL 成为硬件描述语言的业界标准之一。VHDL 作为一个规范语言和建模语言 ,具有很强的电路描述和建模能力 ,能从多个层次对数字系统进行建模和描述 ,从而大大简化了硬件设计任务 ,提高了设计效率和可靠性。 V

8、HDL 具有与具体硬件电路无关和设计平台无关的特性 ,并且具有良好的电路行为描述和系统描述的能力 ,并在语言易读性和层次化结构化设计方面 ,表现了强大的生命力和应用潜力。VHDL 的程序结构特点是将一项工程设计 ,或称设计实体 (可以是一个元件 ,一个电路模块或一个系统分成外部 (或称可是部分 ,及端口和内部 (或称不可视部分 ,既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后 ,其他的设计就可以直接调用这个实体。1.2.3 Quartus软件介绍Quartus II 是 Altera 公司的综合性 PLD/FPGA 开发软件 ,原理图、 VHDL 、

9、VerilogHDL 以及 AHDL(Altera Hardware 支持 Description Language等多种设计输入形式 ,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD 设计流程。Quartus II 可以在 XP、 Linux 以及 Unix 上使用 ,除了可以使用 Tcl 脚本完成设计流程外 ,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一 ,功能集中 ,易学易用等特点。Quartus II 支持 Altera 的 IP 核,包含了 LPM/MegaFunction 宏功能模块库 ,使用户可以充分利用成熟的模块 ,简化了设计的复杂性、加快了

10、设计速度。对第三方 EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。此外 ,Quartus II 通过和 DSP Builder 工具与 Matlab/Simulink 相结合 ,可以方便地实现各种 DSP 应用系统 ;支持 Altera 的片上可编程系统 (SOPC 开发 ,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体 ,是一种综合性的开发平台。Maxplus II 作为 Altera 的上一代 PLD 设计软件 ,由于其出色的易用性而得到了广泛的应用。目前Altera 已经停止了对 Maxplus II 的更新支持 ,Quartus II 与之相比不仅

11、仅是支持器件类型的丰富和图形界面的改变。Altera 在 Quartus II 中包含了许多诸如 SignalTap II、Chip Editor 和 RTL Viewer 的设计辅助工具 ,集成了 SOPC 和 HardCopy 设计流程 ,并且继承了 Maxplus II 友好的图形界面及简便的使用方法。Altera Quartus II 作为一种可编程逻辑的设计环境, 由于其强大的设计能力和直观易用的接口 ,越来越受到数字系统设计者的欢迎。2 四层电梯控制器的具体设计2.1 设计目的本次设计的目的就是希望可以通过这一次的实践从而更加深入的了解术并且掌握 VHDL 硬件描述语言的的设计方法

12、及设计思想。通过学习的EDA VHDL技语言结合电子电路的设计知识理论联系实际,掌握所学的课程知识和基本单元电路的综合设计应用。通过对实用电梯控制系统的设计,巩固和综合运用所学知识,提高设计能力 ,提高分析、解决问题的独立工作能力。2.2 设计要求四层电梯控制器的功能如下:(1 每层电梯入口处设有上下请求开关,电梯内设有顾客到达层次的停站请求开关。(2 设有电梯入口处位置指示装置及电梯运行模式(上升或下降指示装置。(3 电梯每秒上升 (下降一层楼。(4 电梯到达有停站请求的楼层 ,经过 1 秒电梯门打开 ,开门指示灯亮 ,开门 4 秒后 , 电梯门关闭 (开门指示灯灭 ,电梯继续进行 ,直至执

13、行完最后一个请求信号停留在当前层。(5 能记忆电梯内外所有请求,并按照电梯运行规则按顺序响应,每个请求信号保留至执行后消除。(6 电梯运行规则 :当电梯处于上升模式时,只响应比电梯所在位置的上楼请求信号 ,由下而上逐个执行 ,直到最后一个上楼请求执行完毕 ;如果高层有下楼请求 ,则直接升到由下楼请求的最高楼层 ,然后进入下降模式。当电梯处于下降模式则与上升模式相反。(7 电梯初始状态为一层开门状态通过对电梯控制系统的设计 ,掌握所学 EDA 课程的基本知识和对 VHDL 语言的综合设计应用。通过课程设计 ,提高设计能力 ,提高分析解决实际问题的能力 ,并在设计中了解硬件编程的流程和思路 ,为以

14、后工作和发挥技术打下基础。2.3 设计思路本次设计的电梯控制器采用状态机来实现,由于电梯又是每秒上升或下降一层所以就通过一个周期为一秒的时钟来触发这个状态机。再考虑到电梯的实际工作状态可以把状态机设置成 10 个状态 ,可以把状态机设置 10 个状态 ,分别是 “电梯停留在第 1 层”、“开门 ”、 “关门 ”、“开门等待第 1 秒”、“开门等待第 2 秒 ”、“开门等待第 3 秒”、“开门等待第 4 秒 ”、 “上升 ”、 “下降 ”和 “停止状态 ”。各个状态之间的转换条件可由上面的设计要求所决定3 四层电梯控制器的综合设计(VHDL 语言实现3.1 分析判断3.1.1 电梯运行规则(1

15、请求信号分析 :电梯的请求信号可分为梯内请求和梯外请求 ,如果从这个角度就很难去进行对电梯运行可能情况的分析 ,因为电梯的运行是根据梯外和梯内的请求信号、行程信号进行控制 ,而梯外和梯内的请求是随机且不能以有限的规则去对其进行说明的。因此 ,很难对电梯的运行情况作出一个统一的分析。出于这方面的考虑 ,本设计把电梯的请求信号划分为上升请求和下降请求。电梯接收到请求信号后 ,响应并判断是上升请求信号就是下降请求信号 ,然后电梯向下或向上运行。具体来说 ,就是当电梯所在楼层低于发出梯外请求的楼层或者低于梯内请求所要到达的目的楼层时 ,电梯必须在下一操作中作出上升运行。这时的请求信号就是上升请求信号。

16、反之 ,则是下降请求信号。如电梯在二层并上一次电梯运行是向上或是向下,接收到的是上升请求还是下降请求。(2 电梯处于各楼层时的运行情况。1.处于一层时 ,不管是梯内梯外 ,电梯都只能接收上升的请求信号。此后 ,电梯就进入上升状态 ,作上升运行。如果电梯没有接收到请求信号 ,则电梯在一层待机 ,其分析图如图 2 所示。 在一层上升一层待机上升请求信号无请求信号图 2 电梯处于一层时的运行情况分析2.处于二层时 ,电梯则可能出现以下三种情况 : 电梯没有接收到梯内梯外的任何请求信号时 ,则电梯在二层待机 ; 电梯接收到上升请求信号 ,进入上升状态 ; 电梯接收到下降请求信号 ,进入下降状态 ,其分

17、析图如图 3 所示。在二层上升下降二层待机上升请求信号无请求信号下降请求信号图 3 电梯处于二层时的运行情况分析3.处于三层时 ,不管是梯内梯外 ,电梯都只能接收到下降的请求信号。此时 ,电梯就进入下降状态 ,作下降运行。如果电梯没有接收到请求信号 ,则电梯在三层待机 ,其分析图如图 4 所示。在三层下降三层待机下降请求信号无请求信号图 4 电梯处于三层时的运行可能分析对上述电梯的运行情况进行汇总,可以得到如图 5 的电梯运行状态图。一层一层待机上升二层下降上升三层下降下降请求信号上升请求信号上升请求信号下降请求信号无请求信号二层待机无请求信号三层待机无请求信号图 5 电梯运行状态图在电梯运行

18、过程中 ,存在一个如何处理请求信号优先的问题。仅用顺序优先或逻辑优先不能满足控制要求。因此 ,控制系统需要同时采用顺序和逻辑来控制电梯的运行。即在以顺序逻辑控制实现电梯的基本控制要求的基础上,根据随机的输入信号 ,以及电梯当时运行状态 (上升还是下降适时的控制电梯下一个操作 ,使电梯向上或向下运行。例如 ,当电梯在三层时 ,二层、一层梯外均有上升请求信号 :电梯向下运行 ,在接近二层时判别二层具有同向的请求信号 ,如没有继续下降到一层,经开关门后 ,然后再向上运行 ,在接近二层时判别二层具有同向的请求信号时 , 在二层停止载客。又假如 ,当电梯在三层时 ,梯内有到达一层的下降请求信号 ,而二层

19、则有上升请求信号 ,电梯先向下运行 ,在接近二层时判别二层具有反向的请求信号 ,系统将把二层的上升请求保存到上升请求寄存器上 ,不在二层作停泊而继续下降到一层去载客 ,然后读取上升请求寄存中先前二层的上升请求 ,执行上升到二层载客的操作。执行完成后 ,被保存在寄存器中的数据清除 ,为下一次响应请求作准备。(3 对电梯开门、关门等内部信号处理的分析,其流程如图 6 所示。接到楼层请求信号电梯运行到该楼层开门使能信号关门延时信号倒数接受并处理请求信号电梯进入运行状态立即关门立即关门请求图 6 电梯内外信号处理当电梯接收到请求信号后 ,运行到发出请求的楼层。运达后 ,开门使能信号促使电梯开门载客 ,

20、同时驱动关门延时信号。在电梯进行完关门倒数计后 ,关门使能信号将促使电梯关门状态 ,然后上升或下降运行。如果此前出现提前关门信号 ,电梯立即关门 ,然后上升或下降运行。3.1.2 程序流程分析电梯的运行规则确定后 ,需对整个控制程序的设计作一个流程规范。对程序进行模块化构思。根据VHDL 语言的规则 ,程序必须由最基本的实体和结构体构成。实体对控制器的端口进行定义,结构体对各端口的行为进行描述。因此程序运行时需经过以下流程 :VHDL 库调用 ;确立控制器的端口及相关的寄存器;根据电梯运行规则确定各个状态转换的条件;对电梯内外信号进行处理,具体流程图如图7 所示。程序开始VHDL 库调用设置控

21、制器的端口设置相关的寄存器各状态转换条件描述电梯信号处理程序结束图 7 电梯设计流程图3.2 程序端口和寄存器说明(1 由功能要求得到本程序设计的端口必须包括:时钟信号 (clk; 提前关门信号(quick;一楼电梯外人的上升请求信号 (up1、二楼电梯外人的上升请求信号 (up2;二楼电梯外人的下降请求信号 (down2、三楼电梯外人的下降请求信号 (down3;电梯内人请求到达一楼信号 (ting1、电梯内人请求到达二楼信号 (ting2、电梯内人请求到达三楼信号 (ting3;电梯开门控制信号 (opendoor;电梯关门控制信号 (closedoor;电梯所在楼层显示 (current

22、;电梯向上运行控制及显示信号up、电梯向下运行控制及显示信号(down。(2 由相关端口得到程序要求的寄存器包括 :电梯内人请求到达一楼信号寄存ting(1、电梯内人请求到达二楼信号寄存 ting(2 、电梯内人请求到达三楼信号寄存ting(3;一楼电梯外人上升请求信号寄存 u(1、二楼电梯外人上升请求信号寄存 u(2; 二楼电梯外人下降请求信号寄存 d(2、三楼电梯外人下降请求信号寄存 d(3。3.3 各模块设计说明本程序由三个基本模块组成 ,包括调用 VHDL 库模块、实体设计模块和结构体设计模块。而在结构体模块中又内嵌有进程执行单元。(1 调用 VHDL 库通过 library 语句 ,

23、本程序应用了 VHDL 库中的 “通用 ieee库 ”和 “标准 std 库”。library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;(2entity 实体设计模块entity dianti isport (end dianti;实体语句用关键词 entity 开头 ,本程序以 dianti(电梯的汉语拼音作为所要描述的实体名 ,在结束实体语句的时候使用 end dianti。在 entity 语句的实体说明部分 ,用port(语句描述实体对外界连接的端口 (数目、方向和数据类型 ,输入模式是 clk/

24、up1/up2/down2/down3/quick /ting1/ting2/ting3; 其余的都是输出模式 ,其中 current是四位矢量数据的输出接口。(3architecture结构化设计模块和process进程执行单元实体 dianti 以结构化与行为化描述的结构体如下:architecture dianti of dianti isbeginend dianti;由于篇幅的关系 ,结构体部分并不能尽录。本模块以关键字 architecture做结构体的开头 ,描述 dianti 实体的结构体 dianti。 architecture和 begin 之间是结构体说明区 ,列举了电梯

25、运行的各个状态 ;begin 和 end 之间是结构体语句区 ,在此将嵌入process进程语句去对实体行为作出说明。process(clkbegincase when isend case;end process;关键字 process后面括号中的信号为时钟信号,它列举可激活进程语句的信号,唯有这些信号上的事件能引起进程语句执行。关键字begin 把进程语句分为进程说明和进程语句两部分。进程说明在时钟信号和 begin 之间 ,说明局部变量或某些仅在进程内部用的内容。进程语句部分在 begin 和 end process之间 ,进程内的所有语句都是按顺序一个接一个执行的。其中的 case语句

26、是电梯七个运行状态的选择。下载程序成功后 ,电梯处于 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 :处于第

27、二层的时候需要根据当前的电梯状态来决定下一个状态。从其它层到二楼时先使状态标志 f1=f2=f3=0, 并且显示当前层是第二层 ,响应请求后使状态标志 f2= 1表,示是从第二层运行到其它层的。优先顺序是 :电梯上升时二楼门外有上升请求 ,电梯下降时二楼门外的下降请求 ,电梯下降时电梯内一楼还没响应的停请求 ,电梯上升时电梯内三楼还没有响应的停请求 ,上升时三楼门外的下降请求 ,下降时三楼门外的上升请求 ,若以上的都没有则任何一个请求都响应。进入运行状态运行到该层或响应二楼的开门请求进入进入 time4 开门状态 ,并且上升时给up= 1 ,down=下降0,时down= 1 ,up=。并0输

28、出显示电梯运行状态。如在到达第二层经开关门后如没有任何请求,则使标志位 f5= 1保,持在第二层待机。c3 :在进入 c3 时 f1=f2=f3= 0 , down= 0并,up=且显示当0前层是第三层 ,响应请求后使状态标志 f3= 1表,示是从第三层运行到其它层的。每到第三层时都是优先响应三楼的下降请求进入 time4 开门状态 ,而后进入关门状态 ,再判断其它层是否有梯外梯内请求。否则只要有一层二层的任意请求存在都进入time3 运行状态运行到该层响应请求。如在到达第三层经开关门后如没有任何请求,则使标志位f4= 1保,持在第二层待机。time1 :判断是否保持在该层待机。time2 :

29、关门状态。判断是否立即关门,如是 ,立即关门 ;否则延时关门。同时判断是否进入待机状态。如是,进入待机状态保持在该层;否则进入运行状态。time3 :运行状态。计数完成后 ,如果 f1= 则1进入 c2,如果 f3= 则1进入 c2。如果 f2= 1是,有优先响应顺序的 :上升时则优先响应电梯内还没有响应的停 ting(3= 1 请求 ,进入 c3,下降时优先响应电梯内还没有响应停 ting(1= 请1求 ,经进入 c1,上升时三楼门外有下降请求 ,进入 c3,下降时一楼门外有上升请求 ,进入 c1,剩下的请求只要有请求则响应 (f1、f2、 f3 是不可能同时为 1 的,这样就保证了优先原则

30、。time4 :开门状态。只有开门状态计数时间到才进入关门状态time2。3.4 具体语句设计说明上文已说明了构成VHDL 程序的两大部分 实体和结构体的相关语句。在这些语句里 ,赋值语句占了相当一部分。在 VHDL 语言里 ,对变量的赋值一般都是用 “ :=符”号 ,对输出信号赋值一般都是用 “ <=符”号。 VHDL 语言也具有与一般编程语言相同的一些语言逻辑结构 ,如“if ··· then ··· ;elsif等。···这是VHDLthen···中的顺;”序语句

31、。在实体模块中 ,对电梯的主要信号都一一作出了定义 ,具体说明给出如下。port (clk: in std_logic;- 时钟信号up1,up2: in std_logic;-梯外上升请求down2,down3: in std_logic;-梯外下降请求ting1,ting2,ting3: in std_logic;- 梯内到达请求quick: in std_logic;- 立即关门请求opendoor: buffer std_logic;-开门信号closedoor: buffer std_logic;-关门信号up:buffer std_logic;- 上升运行down:buffer s

32、td_logic;- 下降运行current:buffer std_logic_vector(3 downto 0;-显示楼层号在结构体中对电梯的运行行为作出描述 ,其中在进程执行单元里 ,对电梯在各楼层之间转换的情况作出了描述 ,详见文末附录中的程序及程序说明。4 三层电梯控制器调试、仿真和硬件测试4.1 程序调试(1 新建工作库目录 ,用于存储设计的工程文件,打开 MAX+plusII 软件。(2 在工具栏中选择 “新建 ”按钮。在选择输入路径时 ,选择 “ Text Editor File以进 ” 行文本输入 ,如图 8 所示。图 8 输入路径选择文本输入(3 在文本输入界面内进行程序输

33、入。(4 输入完毕后 ,对程序进行保存。文件名和实体定义的符号必须保持一致 ,即文件名为 dianti,文件后缀名须改成 vhd,详见图 9 所示。图 9 文本输入保存界面(5 保存以后 ,对程序进行编译。在编译前 ,需要把当前文件设置为当前工程文件。可通过选择菜单 “File ”“ Set Project to Current来File指定当前”的文件为当前工程文件。(6 在 “ MAX+plusII 下”拉按钮里选择 “ Compiler 对”,程序进行编译。此时 ,MAX+plusII 软件会对程序进行纠错等处理。当程序被确认无误以后会出现如下界面 ,如图 10 所示。图 10 编译通过

34、4.2 程序波形仿真4.2.1 波形输入建立(1 编译完全通过后 ,新建波形编辑器进行设计仿真。通过“新建 ”按钮 ,选择“ Waveform Editor file 详细”,如图 11 所示。图 11 新建波形编辑器(2 新建波形编辑器后 ,对文件进行保存。同样是使用相同的文件名dianti, 后缀则改为 scf。(3 在编辑器的 Name 栏点击鼠标右键 ,选择 “ Enter Nodes from SNF选择”添加需要观察的节点信号。(4 在进行仿真前 ,还需对仿真结束时间设定。在 “ File栏”对结束时间 “ End Time ” 设置为 “5ms”如,图 12 所示。图 12 仿真

35、结束时间设置图(5 对所添加的节点中的输入信号进行相关的赋值后,就可对程序进行仿真 ,观察输出信号 ,得出结论。如对时钟信号clk 赋周期为 50us的周期信号 ,如图 13 所示。图 13 对 clk 信号赋值图4.2.2 电梯运行情况仿真三层电梯的运行情况多种多样,下面以观察以下两种情况为例说明。(1 电梯在不同时段接收到请求信号的情况:电梯处于一楼 ,接收到三楼的梯外下降请求 (down3,于是电梯运行到三楼 ,中途经过二楼时不作停顿。到达三楼载客后,电梯内又接收到下降到一楼的梯内请求(ting1,于是电梯返回一楼待机。仿真情况如图14 所示。观察以下信号 :down、up、opendo

36、or、closedoor、 current。说明 :电梯在一层待机时 ,接收到三层的下降的请求 ,电梯运行到第三层 ,并开关门后 ,响应此时给出的梯内的一层到达响应 ,并运行到一层 ,此时没有其它请求信号 ,电梯在一层待机。图 14 运行情况一(2 当电梯在同一时间段里接收到几种不同的请求信号时 :电梯停在一楼 ,在同一时间段里接受到几个请求信号 ,包括梯内上升到三楼的请求 ting3、二楼的梯外上升请求 up2 和三楼的梯外下降请求 down3。电梯到达二楼 ,响应 up2,电梯停止载客后继续上升。电梯上升到三楼时 ,响应请求 ting3 和 down3,开门卸客 ;如此时没有任何梯内梯外请

37、求 ,则在三层待机如有 ,则进入电梯下降状态。仿真情况如图 15 所示。观察以下信号 :down、up、opendoor、closedoor、 current。说明 :电梯停在一楼 ,在同一时间段里接受到梯内上升到三楼的请求 ting3、二楼的梯外上升请求 up2 和三楼的梯外下降请求 down3。当电梯到达二楼 ,响应 up2,电梯停止载客后继续上升。电梯上升到三楼时 ,响应请求 ting3 和 down3,开门卸客 ;此时没有任何梯内梯外请求 ,则在三层待机。图 15 运行情况二4.2.3 电梯功能仿真电梯的功能 :立即关门。设电梯到达三层响应 down3 请求时 ,如立即关门有效 ,仿真

38、情况如图 16 所示。观察以下信号 :quick、 opendoor、closedoor。说明 :quick: 在开门后如立即关门信号有效 ,即 quick= 时1,立即关门。 opendoor:开门信号。 opendoor=1时,开门操作。 quick:关门信号。 closedo or= 时1,关门操作。图 16 功能仿真图4.3 硬件测试电梯控制器的设计选用的芯片是ACEX 系列中的 EP1K30TC144-3,选用模式5。4.3.1 引脚锁定输入按键共 8 个,按键与引脚的对应关系如表1。表 1:输入引脚锁定输入信号锁定的引脚clk clk0(126ting1 PIO0(8ting2 P

39、IO1(9ting3 PIO2(10up1 PIO3(12up2 PIO4(13down2 PIO5(17down3 PIO6(18quick PIO7(19输出锁定 8 个引脚 :一个锁定二极管指示灯指示门的开门状态 ;一个锁定二极管指示灯指示门的关门状态 ;一个锁定二极管指示灯指示上升模式 ;一个锁定二极管指示灯指示下降模式 ;四个输入引脚锁定一个数码管 ,用来显示楼层号。具体对应关系如表 2。表 2:输出引脚锁定输入信号锁定的引脚输入信号锁定的引脚up PIO12(26current0 PIO28(68down PIO11(23current1 PIO29(69opendoor PIO9

40、(21current2 PIO30(70closedoor PIO8(20current3 PIO31(724.3.2 硬件下载锁定芯片引脚后 ,保存并重新编译工程文件,再下载到硬件进行调试。设定各种请求信号 ,在实验箱模拟 ,通过观察数码管和二极管的显示来验证程序的正确性。5 结论5.1 设计功能实现情况对程序进行调试 ,经计算机仿真分析 ,结果表明本电梯控制程序实现了以下功能 :(1 电梯到达楼层时 ,能发出指示信号 ;(2 能指示电梯的运行状态 ;(3 电梯的门操作具有关门延时功能和立即关门功能 ;(4 基本能正确响应各楼层的上行和下行请求 (各楼层设置上行和下行选择按钮。5.2 设计心

41、得通过这次课程设计 ,让我在学习 EDA 理论知识的基础上 ,增强了的实践动手能力。在参考了许多相关资料后 ,充分理解了三层电梯的设计要求 ,基本上完成了设计的功能要求 ,但本代码中可能仍存在一些不能解决的实际问题 ,许多工程实际问题不能完全用理论知识去解决 ,需要不断吸取现场经验 ,寻找解决问题方法。虽然能完成设计的基本功能 ,但仍有可拓展的空间 ,比如超载报警、多层电梯等 ,都是可以继续研究以满足更多的功能要求 ,但以我现在对 EDA 知识的了解 ,可能不太容易完成 ,希望以后有机会再深入地学习 EDA, 设计出更符合实际功能需求的代码。参考文献1 潘松 ,黄继业 . EDA 技术实用教程

42、 .北京 :科学出版社 ,2002.2 甘历 .VHDL 应用与开发实际 .北京 :科学出版社 ,2003.3 谭会生 ,张昌凡 . EDA 技术及应用 M. 西安电子科技大学出版社 ,20044 谢正光 .数字系统设计中 VHDL 语言设计问题探讨 J. 微型机与应用 ,20045 田萍刘新云 .用 VHDL 语言实现数字系统 J.现代电子技术 ,2004附录library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity dianti isport (clk: in std_logic;- 时钟信

43、号up1,up2: in std_logic;-梯外上升请求down2,down3: in std_logic;-梯外下降请求ting1,ting2,ting3: in std_logic;- 梯内到达请求quick: in std_logic;- 立即关门请求opendoor: buffer std_logic;-开门信号closedoor: buffer std_logic;-关门信号up:buffer std_logic;- 上升运行down:buffer std_logic;- 下降运行current:buffer std_logic_vector(3 downto 0;-显示楼层号e

44、nd dianti;architecture dianti of dianti istype state_type is (c1,c2,c3,time1,time2,time3,time4;-beginprocess(clkvariable ting: std_logic_vector(3 downto 1:="000"-ting 为梯内请求信号 ,variable u: std_logic_vector(2 downto 1:="00"-梯外上升请求信号请求信号 ,u(2 二楼上升请求信号variable d: std_logic_vector(3 d

45、ownto 2:="00"-梯外下降请求信号请求信号 ,d(3 三楼下降请求信号variable state:state_type:=c1;-初始状态在第一层variable kuai:std_logic;variable js:integer range 0 to 6 :=0;-用于关门和运行时间计数variable f1,f2,f3,ti:std_logic;variable f4:std_logic :='0'variable f5:std_logic :='0'variable f6:std_logic :='0'be

46、ginif clk'event and clk='1' thenif quick='1' then kuai:='1' end if;if up1='1' then u(1:='1'end if;if up2='1' then u(2:='1' end if;if down2='1' then d(2:='1' end if;if down3='1' then d(3:='1'end if;if ting1=&#

47、39;1' then ting(1:='1' end if;,u(1 一楼上升,d(2 二楼下降if ting2='1' then ting(2:='1' end if;-if ting3='1' then ting(3:='1' end if;-case state iswhen time1=> if f4='1' then state:=c3;elsif f5='1' then state:=c2;elsif f6='1' then state:=c

48、1;end if;when time2 => if kuai='1' then js:=3; kuai:='0'-kuai='1' 提前关门 - 关门控制 endif;if js>=2 then js:=0;closedoor<='0'if f4='1' or f5='1' or f6='1'then state:=time1;else state:=time3;end if;else js:=js+1;opendoor<='0'if js&g

49、t;=2 then closedoor<='1'end if;end if;when time3=> -从一层到另一层的时间if js<3 then js:=js+1;- 从一层到另一层的时间else js:=0;if f1='1' then state:=c2;elsif f2='1' thenif up='1' and ting(3='1' then state:=c3;elsif down='1' and ting(1='1' then state:=c1;e

50、lsif up='1' and d(3='1' then state:=c3;elsif down='1' and u(1='1' then state:=c1;elsif u(1='1' or ting(1='1' then state:=c1; DOWN<='1'elsif d(3='1' or ting(3='1' then state:=c3; UP<='1'end if;elsif f3='1' then state:=c2;elsif f4='1' then state:=c3;elsif f5='1' then state:=c2;elsif f6='1' then state:=c1;end if;end if;when time4 => closedoor<='0'opendoor<='1'js:=0

温馨提示

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

评论

0/150

提交评论