ImageVerifierCode 换一换
格式:DOCX , 页数:22 ,大小:182.42KB ,
资源ID:20458446      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/20458446.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(电梯控制器设计终结版Word文档格式.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

电梯控制器设计终结版Word文档格式.docx

1、五、软件设计 2六、下载及调试 2七、总结与展望 2参考文献 2附件程序 2 一、概述人和土地资源短缺的矛盾日趋激化,我国地少人多的国情,注定了我们必须合理解决人与土地的矛盾。兴建高层建筑是其中的有效措施之一,随之楼层电梯业便应运而生。随着我国城镇化程度的加大,电梯市场越来越繁华,人们对电梯的要求越来越高。如何更安全、更快捷地到达目的楼层,也就成为了人们对电梯的最为根本的要求。因此,本设计就六层电梯控制器设计为例,结合EDA技术,对电梯控制进行设计。1.1方案确定目前用电梯控制的方案有三种:EDA技术在电梯控制的应用、单片机技术在电梯控制的应用、PLC技术在电梯控制的应用。EDA技术不是某一学

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

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

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

5、设计领域,可编程逻辑器件(如CPLD、FPGA)的应用,已得到广泛的普及,这些器件为数字系统的设计带来了极大的灵活性。这些器件可以通过软件编程而对其硬件结构和工作方式进行重构,从而使得硬件的设计可以如同软件设计那样方便快捷。这一切极大地改变了传统的数字系统设计方法、设计过程和设计观念,促进了EDA技术的迅速发展。利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程在计算机上自动处理完成。1.2.2 VHDLVHDL(Very High Speed Integrated Circ

6、uit Hardware Description Language)语言于1983年由美国国防部发起创建,由电工和电子工程师协会(the institute of electrical and electronics engineer)进一步发展并在1987年作为“IEEE1076”发布。从此,VHDL成为硬件描述语言的业界标准之一。VHDL作为一个规范语言和建模语言,具有很强的电路描述和建模能力,能从多个层次对数字系统进行建模和描述,从而大大简化了硬件设计任务,提高了设计效率和可靠性。应用VHDL进行系统设计具有:功能强大、可移植性、独立性、可操作性、灵活性等特点。一个完整的VHDL程序是以

7、下五部分组成的:库(LIBRARY)、程序包(PACKAGE)、实体(ENTITY)、构造体(ARCHITECTUR)、电路的具体描述配置(CONFIGURATION)。1.2.3 QuartusII Altera公司的QuartusII软件提供了可编程片上系统(SOPC)设计的一个综合开发环境。Quartus II 开发工具人机界面友好、易于使用、性能优良,并自带编译、仿真功能。QuartusII软件支持VHDL和Verilog硬件描述语言的设计输入、基于图形的设计输入方式以及集成系统级设计工具。QuartusII软件可以将设计、综合、布局和布线以及系统的验证全部都整合到一个无缝的环境之中,

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

9、信号,并不支持模拟量的输入。而仅仅为了便于程序的验证而用FPGA实现这些外围电路,不但会大大延长程序的开发周期,更会增大开发的成本。而MATLAB具有强大的运算功能,可以容易的实现A/D、D/A转换等外围电路功能,并能以波形形式将结果直观地呈现,极大地方便了程序设计人员设计应用系统。二、设计要求使用FPGA完场6层的电梯控制系统。可以使用状态机实现。要求指示电梯所在楼层位置等其他必要的信号。通过仿真结果验证其正确性,并在开发板上进行硬件测试。电梯运行规则:上升时,响应比当前位置高的上楼要求,由下往上逐个执行;如果楼层有下楼请求,直接升到由此请求的最高层,然后进入下降模式。进入下降模式后,只响应

10、比当前位置低的下楼请求,由上到下逐个执行。每1秒上升或者下降1层。有信号灯指示电梯处于上升或者下降状态,并有数码管显示电梯到达层数。每一层有信号灯指示该层电梯门状态,有两个按键分别响应上升或下降的求。每一层电梯内部有乘客到达楼层的停站请求开关及其显示。 电梯到达有停站请求的楼层后,电梯门打开,指示灯亮,4秒后电梯门关闭,指示灯灭,直至执行完。最后停在发出最后一个请求的楼层。电梯的初始位置为一层,处于开门状态。三、总体构思3.1构思除了顶层和底层外,各楼层均设有上下请求开关,顶层和底层分别设有下降和上升请求开关,电梯内设有乘客到达层次的请求开关。电梯每1s上升或下降一层,电梯到达有停站请求的楼层

11、后,经过1s后电梯门打开,开门指示灯亮,开门5s后电梯指示灯灭,电梯继续运行,直至运行完最后一个请求后停靠在当前层。以上是我们所应实现的基本功能。通过分析以及参考图书馆的有关书籍,参照一些网上的程序,最后总结出了电梯正常运行的七个状态:上升、下降、上升的过程中途停止、下降的过程中途停止、开门、关门、等待状态。电梯在上述七个状态间的转移是通过三段式状态机来实现的,各状态间的转移大体与生活中的电梯运转一致,有如下的基本原则:方向为第一优先准则,电梯在运转时先响应同方向上的请求,只有当同方向上的请求响应完后,才能转而响应不同方向上的请求。初始化状态为1楼等待门是关闭的。3.2总体设计这里采用了七个状

12、态实现了有限状态机。图3-2 电梯状态转换图以上是两种基本的电梯状态转换图:黑线:WAIT TO UP TO UPSTOP TO OPENDOOR TO CLOSEDOOR TO WAIT粉红线:WAIT TO DOWN TO DOWNSTOP TO OPENDOOR TO CLOSEDOOR TO WAIT 四、硬件电路设计4.1模块电路图4.1.1电梯主控制器模块图4-1-1 电梯控制模块端口说明:call_down_2, call_down_3, call_down_4, call_down_5, call_down_6则分别为2-6楼的下行请求信号;request_1, request

13、_2, request_3, request_4, request_5, request_6则分别为电梯内部的停靠1-6楼的请求。上述各端口均为有请求时,输入为高电平,否则为低电平;clk分别为状态转移时钟,reset为复位信号。Output Port:PosOut输出当前电梯所在的楼层,DoorFlag为开门标志,UpDnFlag为电梯上下标志,LiftState输出当前电梯的状态.PosOut取值可6b000001,6b000010,6b000100,6001000,6b010000,6b100000分别代表电梯处在1,2,3,4,5,6楼。这样编码的话,有利于后面的比较判断。DoorFl

14、ag取值可为1b0,1b1,分别代表当前门是关闭和当前门是打开的。UpDnFlag取值可为2b00,2b01,2b10,分别代表当前电梯是上升的,下降的和静止的。LiftState7b0000001,7b0000010,7b0000100,7b0001000,7b0010000,7b0100000,7b1000000,分别表示电梯处于等待模式、上升模式、下降模式、上升停止,下降停止、开门和关门等7个状态。4.1.2分频模块图4-1-2分频模块Input ports:cp_50M;output ports:cp_1;4.1.3 电梯状态仲裁器图4-1-3状态仲裁器Input ports:elev

15、ator_state,count_in;Outputports:open_enable, stop_enable, up_enable, down_enable, close_enable;4.1.4 LCD驱动模块图4-1-4驱动模块input open_enable, stop_enable, up_enable, down_enable, close_enable;input CLOCK_50; / 50 MHzinput KEY;inout 7:0 LCD_DATA; / LCD Data bus 8 bitsoutput LCD_ON; / LCD Power ON/OFFoutpu

16、t LCD_BLON; / LCD Back Light ON/OFFoutput LCD_RW; / LCD Read/Write Select, 0 = Write, 1 = Readoutput LCD_EN; / LCD Enableoutput LCD_RS; / LCD Command/DataSelect, 0= Command, 1 = Data4.2模块设计分析4.2.1电梯主控制器模块此段智能电梯控制器由三个重要部分组成的。1信号并置部分:完成对5路向上请求、5路向下请求、6路内部请求的信号并置,化繁为简。2三段式有限状态机部分:在有请求的情况下,电梯控制器还要根据电梯的当

17、前状态和当前的楼层去判断电梯的下一步该如何运作。3计数器部分:完成电梯的开门、关门的时间管理。4.2.2分频模块这段分频器完成对50Mhz的1分频操作。采用传统的“一半就翻转”的计数技巧。4.2.3电梯状态仲裁器完成电梯信号到LCD控制的信号转换。其中也采用了“电梯主控制器”中的信号并置的思想。这一点可以在我的程序中十分清楚的看到,在此我不再赘述。4.2.4 LCD驱动模块这个模块我是采用“ 拿来主义”的。因为是DE2板子提供的源程序,所以编写起来还算比较轻松。就只加了一个“ 根据不同的输入产生不同的输出 ”的模块。中途还遇到了字符型液晶不能更新的问题,不过在同学的帮助下,最终还是解决了。4.

18、2.5数码管译码模块、数码管时间译码模块以上两个模块一起讲比较合适,它们都是采用了同样的译码原则,只不过条件不一样而已。我们可以针对不同的输入根据自己的意愿把它译成同样的数码显示。六、下载及调试1.当电梯处于初始状态时,电梯在高层有向下的请求时:图6-1初始态2 LCD的显示由于数据太多,所以单独显示如下:图6-2-1 显示it is static.随后会显示it is static.图6-3-2 显示door is rising.以上的字符发送到液晶显示模块之后,可以显示“door is rising.”随后会显示:图6-2-3 显示it is static.可以显示“ it is stat

19、ic. ”图6-2-4显示door is opening.以上的字符发送到液晶显示模块之后,可以显示“ door is opening. ”图6-2-5显示it is closing.以上的字符发送到液晶显示模块之后,可以显示“ it is closing. ”最后会显示下列字符,电梯重新回到初始等待状态:图6-2-6显示it is static.以上可以显示“ it is static. ” 说明:由于LCD显示波形会占用比较多的空间,所以以上仅以在高层有向下的请求为例来说明,电梯的状态完全可以通过LCD来正确地显示出来。鉴于此,下面的波形将不展示LCD显示部分的波形图。3.当电梯停在6楼处

20、于等待状态时,在1楼和2楼同时有向上的请求时:图6-3等待状态4.当电梯停在1楼处于等待状态时,在6楼和5楼同时有向下的请求时:图6-4等待状态5.当电梯停在6楼时,有在5楼的向下的请求时,电梯应该先到五楼,电梯内部请求到1楼,如果电梯在下降的过程中,有在2楼的向上的请求时,电梯应该先响应内部请求,然后响应外部请求:图6-5状态响应七、总结与展望电梯控制器系统设计已经全部完成,基本实现了预期效果,实现了电梯按预定运行规则上升、下降、载客等功能,并设计了提前关门功能,使电梯运行更便捷,设计了关门延时功能、超载报警功能、故障报警功能,使电梯运行更加安全更加可靠。在本设计中,因为考虑了扩展性,所以在

21、信号定义的时候就使用了二进制的向量,而不是整数。在设计方法上也做了特殊的设计,所以使得扩展性较好。如果要实现n层电梯的控制,首先在端口的地方就要加入所有的按键,而指示灯只要把向量中的6改成n就可以了。在本设计过程中还需要改进的地方有,电梯运行规则的优化(如设计闲时忙时控制规则)、电梯运行速度的控制、设计更多的报警功能等。电梯控制系统的设计中体现了VHDL覆盖面是如此的广,描述能力强,是一个多层次的硬件描述语言及运行速度快,使用方便,便于修改,设计简单等特点。本设计在实用方面和参考方面具有一定的价值。参考文献1 王伟.Verilog HDL 程序设计与应用.人民邮电出版社2 夏宇闻数字系统设计:

22、Verilog实现.高等教育出版社3 王金明.数字系统设计与Verilog HDL.电子工业出版社4 李彦宏.XX附件程序电梯主控制器模块module elevator_controller(/input ports:cp_50M,clk,reset,forbid,call_up_1,call_up_2, call_up_3, call_up_4, call_up_5,call_down_2, call_down_3, call_down_4, call_down_5,call_down_6,request_1, request_2, request_3, request_4, request

23、_5, request_6,/output ports: out,LiftState,over_alarm,count_out,count); output 6:0out;/输出楼层0 LiftState;/输出电梯状态 output over_alarm;/出错0count_out;/计数器输出,便于我控制开关门的状态显示 output 2:0count;/计数器 /input ports: input cp_50M; input clk,reset,call_up_1,call_up_2,call_up_3,call_up_4,call_up_5, call_down_2,call_dow

24、n_3,call_down_4,call_down_5,call_down_6, request_1,request_2,request_3,request_4,request_5,request_6; input forbid; wire over_alarm; wire 6: reg 5:0pos,PosOut; reg 2:0 count; reg DoorFlag; reg 1:0 UpDnFlag; reg 6:0 LiftState,NextState; wire real_clk; reg 5:0 up_all,down_all,request_all; parameter WA

25、IT=7b0000001, UP=7b0000010, DOWN=7b0000100, UPSTOP=7b0001000, DOWNSTOP=7b0010000, OPENDOOR=7b0100000, CLOSEDOOR=7b1000000;parameter FLOOR1=6b000001, FLOOR2=6b000010, FLOOR3=6b000100, FLOOR4=6b001000, FLOOR5=6b010000, FLOOR6=6b100000; parameter TRUE=1b1, FALSE=1b0;parameter OPEN=1b1, CLOSED=1paramete

26、r UPFLAG=2b01,DNFLAG=2b10,STATIC=2b00; assign real_clk=(clk&(forbid); always (call_up_1 or call_up_2 or call_up_3 or call_up_4 or call_up_5) up_all=1b0, call_up_5, call_up_4, call_up_3, call_up_2, call_up_1;always (call_down_2 or call_down_3 or call_down_4 or call_down_5 or call_down_6) down_all=cal

27、l_down_6, call_down_5, call_down_4, call_down_3, call_down_2, 1b0;always (request_1 or request_2 or request_3 or request_4 or request_5 or request_6) request_all=request_6, request_5, request_4, request_3, request_2, request_1;always (posedge real_clk or posedge reset) if(reset) count=0; else if(Nex

28、tState=OPENDOOR)&(count5) =count+1; else display_decode h1(cp_50M,PosOut,out,over_alarm); display_decode_count h2(cp_50M,count,count_out); always (posedge real_clk or posedge reset) begin LiftState0) begin if(request_all&pos) NextState=OPENDOOR; else if(request_allpos) NextState=UP; NextState=DOWN; end

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1