欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    1013基于FPGA的高低层电梯控制系统设计与实现.docx

    • 资源ID:28276709       资源大小:192.14KB        全文页数:30页
    • 资源格式: DOCX        下载积分:9金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    1013基于FPGA的高低层电梯控制系统设计与实现.docx

    基于FPGA的高低层电梯控制系统设计摘要电梯作为高层建筑中不可缺少的垂直运输工具,已逐渐成为我们生活中的一部分。 随着我国经济以及科技的不断发展,电梯的控制系统也逐渐向着“智能化”的方向发展。 对于电梯的控制,传统的方法是采用继电器来进行控制,而随着EDA技术的发展,FPGA 已广泛地应用到电子设计控制的各个方面。考虑到现有的很多电梯都是高低层用户共用, 导致了电梯空驶率高、用户等待时间长等问题,造成效率低下,增加了各方面的时间成 本与财力成本。考虑到这些问题,所以进行了对电梯高低分层实施控制的设计,这样的 话,髙层用户和低层用户分别使用不同的电梯,能有效解决电梯利用率低和用户的使用 矛盾。本设计就是基于FPGA来实现对高低层电梯的控制。本设计所使用的硬件描述语言为Verilog,软件使用QuartusII进行FPGA开发,包 括编程、综合、调试等,系统验证使用Modelsim。本高低层电梯控制系统功能包括: 显示电梯层数、响应楼层请求、电梯上升下降指示、电梯开关门、显示电梯当前运行状 态等。同时,该设计采用模块化编程,可为实现任意多层电梯系统而升级,具有很强的 适应性和实用性。关键词:FPGA,电梯控制器,高低层电梯Design of FPGA-based High-low-rise ElevatorControl System DesignAbstractThe elevator as an indispensable vertical transport in skyscraper, it has gradually become an important part of life. With the development of the economy and technology, the elevator control system is also gradually toward "intelligent" direction. For the elevator control, the traditional method is to control the use of single-chip design, and with the development of EDA technology, FPGA can be widely applied to control various aspects of electronic design. The fact that residents living in high floors and in low floors share the same elevators leads to frequent phenomenon of "elevator running without passengers" and of passengers5 long waits, which causes low productivity and increases in time costs and financial costs. Considering these drawbacks, we design a control system to separate the operations by high-floor residents and by low-floor residents. In this case, high-floor residents and low-floor residents use different elevators, solving the problem of low utilization rate and using conflicts between different passengers. This design is based on FPGA to realize the separate controls of passengers from different floors.The design of the hardware description language is Verilog and the FPGA development uses Quartus II to conduct. We also use Modelsim to verify the system. The system includes programming, integration, and debugging. Also, the features include displaying elevator layers, the response of floor request, indicating the rising and falling of the elevator, the elevator door switch. Meanwhile, this design uses modular programming. If it upgrades, the project could suit the arbitrary multilayer elevator system. It has the very strong adaptability and practical.Key words: FPGA, Elevator controller. High-low-rise elevator摘要IABSTRACTII第1章绪论11-1课题研究背景与意义11-2课题研究内容与方法11.3课题研究现状1第2章 关键技术介绍32.1 FPGA 介绍32.2 VERILOG HDL硬件描述语言32.3 CYCLONE II 芯片3第3章 系统需求分析53.1系统设计目标53.2系统主要模块描述53.3系统非功能需求63.4系统开发环境63.5系统可行性分析73.5.1技术可行性73.5.2经济可行性7第4章系统设计84.1系统架构84.2状态机设计94.3数据通道设计1043.1楼层计数模块1043.2按键寄存器清空模块1143.3信号寄存模块1143.4楼层选择模块124.4译码电路及显示模块设计124.4.1楼层/状态译码模块124.4.2 LED显示模块124.4.3动态扫描的七段数码管显示模块13第5章系统实现155.1软件配置155.2功能模块实现155.2.1系统流程155.2.2数据通道实现165.2.3状态机实现17第6章系统测试186.1功能验证186.2系统上板测试196.2.1 Signal Tap II 信号提取196.2.2 FPGA正常运彳亍20第7章结论23参考文献24致谢26附录A27附录B28第1章绪论1.1课题研究背景与意义随着社会的发展,现在的楼房层数也在逐渐升高,电梯在居民小区的安装越来越普 及。电梯的便利让人们上下楼省时省力,尤其是能方便一些腿脚不便的人群。但是随着 高层建筑的增多(十五层以上),坐电梯的等待时间也变得令人难以接受,人少的时候 如果高层住户和低层住户同时呼叫会造成很大的浪费:住户等待时间长、电梯空驶时间 长,这造成了时间与成本的双重浪费:在人多的时候,由于经常会发生“超重”的情况, 电梯甚至会在超重状态下不断在有响应的楼层停下,造成电梯效率极其低下。为了解决 这种问题,决定设计出一种高低层分用的电梯控制系统。FPGA是一种专门从事逻辑控制的微型计算机系统。由于其具有性能稳定、抗干扰 能力强、设计配置灵活等特点,因此使用FPGA作为电梯控制器可以更好地合理分配居 民的共用资源,更有效率地处理人们在搭乘电梯时遇到的不便之处,同时也极大地提高 了电梯的利用率,避免浪费。1.2课题研究内容与方法本控制系统中最关縫的地方就是如何合理规划电梯对于用户请求的响应,现实中的 电梯运行起来很复杂,会考虑到多种情况,尤其是电梯运行中,很多楼层都有向上或者 向下的请求。在每种情况下,电梯应该如何运作,该不该停,继续向原有方向前进还是 转换方向,这都需要我们设计的时候去思考。毕竟这是一个很实际的控制,稍微岀一点 问题的话,都会给用户带来很大的不便。针对这个问题,我们需要上网进行资料的査找, 了解电梯运行状态,并实际去找电梯验证,感受一下电梯是如何处理一个个复杂情况的。另一个很重要的问题就是时序问题,因为用户的动作是不可预见的,和能在任何时 间、任何情况下都会有使用电梯的请求。由此可见,这对于时序有着很大要求,必须要 正确、迅速地处理各个请求,然后予以执行,控制电梯的上升、下降或者停止运行。 1.3课题研究现状随着我国城乡居民生活水平的不断提高,高层建筑物的不断増多,电梯已越来越走 进我们的生活。而电梯作为现代高层建筑的垂直交通工具,面对人们对其要求的提高, 其自身也在不断的优化中。针对传统的单片机设计的电梯控制器外围电路复杂,性能不 稳定的缺点,从而提出了基于FPGA的高低层电梯控制系统设计。目前,FPGA逻辑器 件正往低电压、低功耗、系统内可重构和高速可预测延时器件的方向发展。而这种基于 芯片的设计方法可以减少芯片的数量,缩小系统体积,降低能源消耗,提高系统性能和 可靠性。因此这样的控制能更好的提高电梯的控制水平,并改善电梯运行的舒适感。而 将这种设计方案运用到电梯中,也已成为时代之需。第2章关键技术介绍本设计是基于FPGA硬件平台的系统,FPGA相对于单片机、CPLD而言,拥有更 庞大的资源以及运算速度,能很好地解决对于精度、速度要求很高的场合,而且拥有很 多可定制的内容,便于设计人员进行升级、维护等。2.1 FPGA 介绍FPGA (FieldProgrammable Gate Array),也被称为现场可编程门阵列,这种器件 的产生是由于CPLD等可编程逻辑器件的发展。FPGA是作为ASIC (专用集成电路) 领域中的一种半定制电路而出现的,能很好地解决定制电路的不足之处,同时也克服了 CPLD等可编程器件的缺点,即门电路数的有限性。FPGA的开发与PC开发和单片机 开发相比有很大不同。相比于PC或单片机的顺序操作,FPGA是以并行运算为主,同 时用硬件描述语言来实现模块功能。FPGA的开发需要完成以下几个方而:顶层设计、 模块分层、逻辑实现、软硬件调试等。2.2 Verilog HDL硬件描述语言Verilog HDL 是 Verilog Hardware Description Language 的缩写,是一种硬件描述语 言。在集成电路设计的电子自动化领域中,Verilog主要用于描述、设计电子系统。Verilog能够对数字逻辑系统通过多种的抽象级别进行描述。因此,它既可以描述 晶体管级、逻辑门级,也可以描述寄存器传输级在寄存器之间传输电路信号时的情况。 Verilog不仅能够描述电路的逻辑功能,其还能够在逻辑仿真、逻辑综合中被运用,而 后者可以把寄存器传输级的Verilog语言转换为逻辑门级的网表,这样就能够方便实现 硬件电路,完成我们所设计的预期目标。VHDL是另一种硬件描述语言,在业界它和Verilog-样都被作为一种标准。它们 虽然有着各自的描述特点,但却同时作为电气电子工程师应具备的标准硬件描述语言。 VHDL的设计初衷就是针对于代码的标准化,然而简明、高效的代码风格则是Verilog 所具有的。两种语言都可以对数字电路建模即使是处于多个抽象层次,同时它们还能与 验证、仿真、综合工具进行协同工作。相比之下,Verilog的逻辑门级、晶体管级级电 路描述能力更强,而VHDL不具备这样低级的描述能力。但是,VHDL的系统级抽象 描述能力要比Verilog更强。2.3 Cyclone II 芯片Altera公司于2004年推出了一种新款的FPGA器件Cyclone II系列。Cyclone II FPGA的成本比前一个版本的Cyclone器件要低30%,逻辑容量大小也增加了 3倍, 可以进行低成本、大批量的产品生产。采用先进工艺技术的Cyclone II器件,与Altera 低成本的设计方式相结合,此类生产可以使其能够在相对较低的成本压力下制造岀具有 比较大容量的器件。与第一代Cyclone产品相比较,Cyclone II器件具有两倍多的I/O引 脚,而且对于可编程类的逻辑器件而言,内部的存储模块和其它特点也进行了最优的组 合,使其特性进行了增强。为了更好地配置Cyclone II FPGA. Altera提供了低成本的串 行配置器件。这些串行配置器件被定价为批量应用,其成本是相对应的Cyclone II FPGA价格的10%。四个串行配置器件(IMbit, 4Mbit, 16Mbit和64Mbit)为用户提供了 节省空间的8脚和16脚SOIC封装。该器件中任何不用于配置的存储器均可用于一般存 储,这个特性进一步增强了它的价值。对于电梯控制器而言,Cyclone II拥有足够的处 理速度以及资源,便于实时数据处理以及以后的维护与功能升级。第3章系统需求分析3.1系统设计目标使用FPGA作为电梯的控制器,为高低层住户分别提供电梯控制,以解决其使用电 梯时等待时间过长从而造成时间上的浪费。本系统用8层电梯来模拟实际操作过程中的高低层分用电梯,低层电梯负责1-4层 的控制,高层电梯负责1层以及5-8层的控制。每个电梯进行独立控制,不互相相应, 并且只处理其负责的楼层数搭乘请求。根据对电梯的实际功能需求分析以及操作和验证,确定了本系统的主要功能模块如 图3.1所示。数据揉作信号状楼层数、当前1 运行状态等译码及通道态显示电仁=1机路电梯当前1用户按键电梯下一步运行状态输出显示图3.1系统设计总览3.2系统主要模块描述(1)楼层计数模块本模块负责给出当前电梯所处的楼层数,需要用加法器以及减法器来完成操作。同 时,由于要判断当前电梯是需要上楼还是下楼,要用到两个选择器,楼层数则用寄存器 来进行储存。(2)按键寄存器潸空模块本模块主要负责给所有需要清空操作的按键复位信号,通过判断当前电梯运行的层 数、上升下降状态以及开门情况,来判断那些按键寄存器需要被清空。如:电梯当前位 于3楼,处于上升状态,那么电梯在三楼停下开门后,三楼的ul信号以及电梯内部的g3 信号这两个寄存器将被给岀清空信号。(3)信号寄存模块本模块主要负责按键被按下时,对应寄存器存储数据,以及清零信号到来时,对寄 存器进行清空的操作。本模块主要由寄存器组成,每一个按键都有与之对应的寄存器。(4)楼层选择模块本模块需要处理所有的按键信号以及电梯运行状态信号,对电梯下一个运行状态的 数据进行输出。(5)楼层开门模块本模块负责把所在楼层的信息,由0, 1,2, 3转为四位的独热码:0001, 0010, 0100. 1000。然后输出到开发板所带的LED灯上,当LED灯亮起时,表示该LED灯 所对应的楼层电梯门被打开。此模块在低层电梯中有1、2、3、4楼层所对应的LED灯, 在高层电梯中因为还需要停于在1层,所以有1、5、6、7、8楼层所对应的LED灯。(6)楼层译码模块本模块负责将楼层数译为七段数码管的显示格式,如:将3'b001译为7bllllOOl, 以便让FPGA上的数码管正确显示岀楼层数。(7)状态译码模块本模块负责将电梯控制器当前所处状态译为七段数码管的显示格式,以便显示在 FPGA±o(8)显示模块本模块负责将接收到的电梯运行状态信息以及电梯所处楼层正确显示在FPGA上 带有的动态扫描七段数码管上。由于七段数码管使用了动态扫描,所以需要分别对七段 数码管的行选信号以及段选信号进行操控,本模块中还有一个分频器,用以分出合适的 频率来显示。3.3系统非功能需求(1)显示当前电梯运行状态电梯在运行的过程中,可以设置一个监控板,实时显示其当前的运行状态,方便控 制端进行检测、维护等。基于此目的,本系统添加了一个由七段数码管显示的模块,可 以清楚显示出电梯当前所处楼层、运行状态等信息。(2)低成本本系统所使用芯片为Altera公司的Cyclone II系列芯片,此款芯片比之前的Cyclone 系列要便宜30%,而且FPGA本身处理性能优秀,资源丰富,一块芯片就能同时满足多 个电梯的控制,大大节约了成本。3.4系统开发环境硬件环境:FPGA开发板软件环境:Quartus II. ModelSim3.5系统可行性分析3.5.1技术可行性本作品所用硬件描述语言为Verilog,使用Quartusll进行FPGA开发,包括编程、 综合、调试等。Quartus II是Altera公司的综合性PLD/FPGA开发软件,支持原理图、 VHDL VerilogHDL 以及 AHDL (Altera Hardware Description Language)等多种设计输 入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD 设计流程。本作品使用ModelSim软件进行仿真,Mentor公司的ModelSim被誉为业界 最优秀的HDL语言仿真软件,它提供了非常直观方便的仿真环境,采用了直接进行优 化的先进编译技术以及单一内核仿真技术。ModelSim拥有极快的编译和仿真速度,且 其编译的代码与所在平台无关,这有利于保护IP核的安全。在査错方面,ModelSim拥 有非常人性化的图形界面以及用户接口,这无疑増加了用户査错的速度,进行可编程逻 辑器件的仿真时,这款软件是用户的不二选择。3.5.2经济可行性Altera公司的Cyclone II FPGA的成本比第一代Cyclone器件低30%,逻辑容量大了 三倍多,可满足低成本大批量应用需求,而且可以做到同时控制多台电梯,非常适用于 电梯控制器的批蛍生产。第4章系统设计4.1系统架构(1) i/o 口设计由于高低层电梯控制器是一个实际应用的系统,所以顶层模块必须考虑到用户的所 有需求,I/O 口就是专门与用户“交流”的通道,本系统顶层模块的所有信号如表4.1 所示。表4.1顶层模块I/O信号信号名输入出功能描述elk输入系统的主时钟,频率为50MHzreset输入系统初始化,低电平有效start输入系统开始运行,高电平有效ul输入1楼外侧上楼按键.高电平有效(低层电梯)u2输入2楼外侧上楼按键.高电平有效u3输入3楼外侧上楼按键.高电平有效u4输入4楼外侧上楼按键,高电平有效u5输入5楼外侧上楼按键,高电平有效u6输入6楼外侧上楼按键,高电平有效u7输入7楼外侧上楼按键.高电平有效u2输入2楼外侧下楼按键,高电平有效u3输入3楼外侧下楼按键,高电平有效u4输入4楼外侧下楼按键,高电平有效u5输入5楼外侧下楼按键.高电平有效u6输入6楼外侧F楼按键,高电平有效u7输入7楼外侧下楼按键,高电平有效u8输入8楼外侧下楼按键.高电平有效gl输入电梯内1楼按键,低电平有效g2输入电梯内2楼按键,低电平有效g3输入电梯内3楼按键,低电平有效g4输入电梯内4楼按键,低电平有效g5输入电梯内5楼按键,低电平有效g6输入电梯内6楼按键,低电平有效g7输入电梯内7楼按键,低电平有效续表4.1顶层模块I/O信号信号名输入/输出功能描述g8输入电梯内8楼按键,低电平有效hul输入1楼外侧上楼按键,高电平有效(高层电梯)hgl输入电梯内1楼按键,低电平有效(高层电梯)door03:0输入LED灯,用于对应楼层的开门显示(低层)doorl4:0输入LED灯,用于对应楼层的开门显示(高层)bit_out7:0输入七段数码管的位选信号seg6:0输入七段数码管的段选信号(2)模块设计由于要实现高低层电梯的分别控制,所以本系统为该电梯分配了独立的状态机与数 据通道,用户通过按下按键,把数据传送给数据通道来处理,然后状态机进行相应与状 态跳转,再把目前电梯运行状况反馈给数据通道。每层电梯门打开的操作,本系统用对 应的译码模块将当前需要开门的楼层进行译码,并点亮LED灯进行显示。当前楼层以 及运行状态的显示,本系统使用了动态扫描的七段数码管,分别对低层电梯以及高层电 梯进行显示。4.2状态机设计状态机负责整个系统的控制,其简写是FSM(Finite State Machine),分为两种不同的 类型:第一类,若状态机的输出只和当前状态有关而与外界的输入没有关系,则此种被 称为Moore类型的状态机第二类,若状态机的输出不只是和当前状态有关,也受到外 界输入的影响,则此种被称为Mealy类型的状态机。我们在设计时要注意,Mealy类型 的状态机由于和外界输入有关,其信号的输出会受到外界输入的干扰,这就可能为系统 带来毛刺,产生干扰,要解决这一问题可以考虑使用独热码来解决。考虑到电梯运行的各种状态以及数据传递,本系统使用的是Mealy状态机,其状态 包括 IDLE, WAIT. D_OPEN. D_CLOSE, UP_FLOOR. DOWN_FLOOR, STOP, JUDGE, ERROR这些状态。IDLE状态为初始化状态,系统刚启动时或者复位时,处于此状态。WAIT状态适当电梯停下并执行关门操作完毕后,目前没有任何按键被按下,电梯 停止并不断扫描按键有没有被按下。D-OPEN状态为开门状态,当前楼层电梯门打开,当前楼层对应按鍵的寄存器清空,同时LED灯亮。D_CLOSE状态为关门状态,执行D_OPEN状态后等待一段时间然后关门。UP_FLOOR状态为电梯上行状态,表示电梯正在向上运行,每次往上运行一层。 DOWN_FLOOR状态为电梯下行状态,表示电梯正在向下运行,每次向下运行一层。 STOP状态为停下状态,表示当前楼层有需要停下的信号,点体会停在该楼层并在下一 状态开门。JUDGE状态为判断状态,电梯关门后由系统判断下一个状态究竟是上行、下行还 是等待,其跳转关系如图4.1所示。图4.1清楚地显示出了电梯控制系统各个状态的跳转以及跳转的信号,状态机的设 计有助于对整个系统进行分析。4.3数据通道设计4.3.1楼层计数模块本模块负责电梯楼层的计数,在每个elk上升沿进行采样,每个下降沿如果有clr信 号则初始化楼层数。这里要注意的是初始化的楼层数为1,因为本系统是1-8层的电梯 控制器,实际楼层数不存在0层,所以在clr信号到来的时候让floor=lo当电梯处于上 行状态时,ld_up有效,电梯层数加1;当电梯处于下行状态时,ld_down有效,电梯层 数减1;其余状态电梯层数不变。floor信号会通过译码器进行处理,将3位的楼层信号 转变为7位的七段数码管信号,通过动态扫描电路在FPGA±进行显示,其主要信号由 表4.2所示。表4。楼层计数模块信号紅矇涸睡価电梯处于下行状态,其为高电平,否则低电平 电梯处于上行状态:其为髙电平,否則低电平以9ookW'oTi心療kK顽L本模块主要负责给所有需要清空操作的按键复位信号,通过判断当前电梯运行的层输出当前电梯所处楼层数数、上升下降状态以及开门情况;来判断哪些已经按下的按键寄存器需要被淸空C如: 电梯当前位于3楼,处于上升状态,那么电梯在3楼停下开门后,3楼的必信号以及电上升沿进行采样,每个下降沿如果有。k梯内部的幼信号这两个寄存器将被给岀清空信号;若电梯处于下降状态,则3楼的彤信号则对所有层,本模块都会根据其运行状态来判断是乂翱L工辭否发出该楼层按键的寄存器复位信号.例:如果3楼的心按键被按下,电梯若处于上傍为成箱说嘿.澱m ax. bo 間斜雄 8. co mdir up输入电梯姓于上钎状态、政如电平,否则低电平dir down输入电梯姓于下行状态,其为高电平,否则低电平en door输入当电梯执行开门操作时,该信号为高电平,fleer输入电梯当前所姓楼层clnil输出U1按键的清零信号涌#1输出gj按健的清零信号信号以及电梯内部的皿信号这两个寄存器将披:出清空信=3表幻所示,心續号詔本模块负责行状态而且恰好停于3层,则执行开门操作后,系统给麗按键的寄存器淸零信号,表 示该操作已经执行完毕,部分信号如表4/所示"程4.4邠号寄至器模臾信号X液E誕:瀚歸離U1clrtil输入输入皿'膜畔义档81输入按键g】的寄養器,:按键被技同宓为omclrgl输入按键的清安卽;续表4.4信号寄存器模块信号信号名输入/输出功能描述rul输出按键U1的信号输出回输出按键gl的信号输出43.4楼层选择模块本模块负责对外部按键信号进行存储与清空的操作,在每个Clk上升沿进行采样, 如果有按键被按下,则把该信号存储到对应的寄存器中,寄存器中的值除非有clr信号 进行清空,否则保持不变。当有对应的clr信号来临,对应寄存器则被清空,等待下一 次按键的来临。按键信号包括 ul, u2, u3, u4. u5. u6, u7, d2. d3, d4, d5, d6, d7, d8, gl, g2, g3, g4, g5, g6. g7, g8。其中 ul, u2. u3. u4, u5. u6. u7,为 1-7 层电梯外侧的上升按钮:d2. d3, d4, d5, d6, d7, d8为电梯外侧的下降按钮:gl, g2, g3, g4, g5, g6, g7, g8为电梯内部的楼层按钮,主要信号如表4.5所示。表4.5楼层选择模块信号償号名输入原出功能描述U1输入按键ul的信号,髙电平有效gl输入按键gl的信号,低电平有效ud_up输入电梯上行状态为高电平,否则低电平ud_down输入电梯下行状态为高电平,否则低电平floor输入电梯当前所在楼层dir_up输出电梯进入上行状态,高电平有效dir_down输出电梯进入下行状态,高电平有效cq_floor输出请求与楼层相等,电梯需要开门,高电平有效4.4译码电路及显示模块设计4.4.1楼层/状态译码模块将当前电梯所处的楼层数和运行状态进行显示,由于本系统使用的是七段数码管, 所以需要将其转换为七段数码管对应的数据,無“3七001”译码结果是“7七1111001; 数码管显示的就是“1”这个数。4.4.2 LED显示模块电梯开门时,会有相应楼层的LED灯亮起进行提示,在本模块中把flooi信号译码 为4位的独热码。独热码就是有多少个状态就有多少比特,而且只有一个比特为1,其 他全为0的一种码制。独热码的最大优势在于比较时仅仅需要比较一个bit, 定程度 上简化了比较逻辑,减少了毛刺产生的概率。由于独热码的特性,恰好让电梯每次停下 时只有唯一打开的那扇电梯门做出点亮提示。4.4.3动态扫描的七段数码曾显示模块本系统所采用的显示方式为动态扫描的七段数码管显示模块,其控制端需要两组不 同的信号:一组是系统输出的数字代码,用来控制显示的数字,被称为段码;还有一组 是每一位七段数码管所具有的使能信号,使能信号有效时该七段数码管才工作,这些使 能信号被称作位码,如图4.2所示。图4.2七段数码管由于本系统所选的FPGA开发板上每个七段数码管的段选择线都是连在一起的,这 意味着系统对于显示的输出,每个段选线上信号都一样。所以,系统想要使用显示功能 的时候,不可以让所有数码管的位选线都有效,这样的话所有的七段数码管都将显示出 完全一样的字符。若要每一位数码管都能够显示岀与本位相对应的字符,那就必须采用 动态扫描的显示方式。即在某一时刻,只我们需要显示的七段数码管使能端有效,而其 它数码管的使能端处于关闭状态。而同时,段线上输出我们想要其显示数字的代码。这 样的话,在每个时刻只有使能端有效的一位显示出了数字,而其它所有位都是熄灭状态 的,用这种方法,我们就可以使每一位数码管都显示出我们想要显示出的字符。虽然显 示出的字符是出现于不同的时刻,但在每个瞬间,只有一位七段数码管使能端有效,其 它各位使能端无效。此外,七段数码管的显示具有余辉特性,而人眼也具有视觉暂留现 象,所以要让每位数码管的显示间隔足够短,这样才能给让人感觉眼里的数字一直连续 稳定地显示。数码管每一位的显示时间都可以通过修改分频的大小来完成。系统所分频的大小也 能够用来确定数码管显示时的亮度,若分频系数较大,则显示时数码管的亮度将亮些, 若分频系数较小,则显示时数码管的亮度将暗些。若分频的系数太大的话,数码管显示 时将产生闪烁现象。所以,在调整显示的时间间隔时,既要考虑到七段数码管显示时的 亮度,又要七段数码管显示时不产生闪烁现象,这就需要找到一个合适的分频系数。本系统所用来显示的8个七段数码管,左边4个用来显示低层电梯的楼层数以及运 行状态,右边4个用来显示高层电梯的楼层数以及运行状态。每组七段数码管显示的分 别为“F”,“楼层数”,“状态”,用来清楚地显示出当前电梯的运行状况。第5章系统实现5.1软件配置本系统使用Verilog HDL硬件描述语言,使用Quartus II软件进行编译和综合。5.2功能模块实现5.2.1系统流程本系统是一个实时采集外界数据的系统,根据电梯当前运行状态,来给出电梯的下 一步操作。电梯每次到达一个楼层都需要判断同楼层是否有相应信号,如果有,则停下 来开门让乘客进入:如果没有信号则判断此时应该上升还是下降,若为上升,则电梯向 上运行;若为下降,则电梯向下运行:如果没有任何信号,则电梯停止。其流程如图5.1 所示。图5.1系统流程图其顶层模块如下:module clcvalor(g 】,g2,g3,g4,g5,g6,g7,g8,u 1 ,u2,u3,u5,u6,u7,d2,d3,d4,d5,d6,d7,d8,hg l,hu 1 ,clk,start, reset, doorO,door ,scg,bit_out);/顶层模块信号inputg 】,g2,g3,g4,g5,g6,g7,g8,u ,u2,u3,u5,u6,u7,d2,d3,d4,d5,d6,d7,d8,hg 1 ,hul,clk,start,reset;output 7:0 bit_out;七段数码管位选信号output 6:0 seg;七段数码管段选信号output3:0 doorO;output3:0 doorl;wire2:0 w floorO;wire3:0 w_statc0;wire6:0 w_scg_floorO,w_seg_statcO;wire2:0 w_floorl;wire3:0 w_statci;wire6:0 w_scg_floor 1 ,w_seg_statcl:wire w_dir_up,w_dir_down,w_ld_up,w_ld_dovn,w_cqfloor,w_ud_up,w_ud_down,w_clr,w_cn_door;wire w_dir_up 1 ,w_dir_down l,w_ld_up I .w_ld_down 1 ,w_eqfloor! ,w_ud_up l,w_ud_down l,w_clrl, w_cn_dooriy/< 层电梯/datapath。 datapalh00(.gl(gl),.g2(g2),.g3(g3),.g4(g4),.ul(ul),.u2(u2),.u3(u3),.d2(d2),.d3(d3), .d4(d4),.clk(clk),.clr(w_clr),.dir_up(w_dir_up),.dir_down(w_dir_down),.ud_up(w_ud_up), .ud_down(w_ud_down),.ld_up(w_ld_up),.ld_down(w_ld_down),.cq_floor(w_cqfloor),.floor(w_floor),.en_door( w_en_door);floor_to_door()floor_to_doorOO(. floor(w_noor0),.cn_door( w_cn_door),.door(doorO);statc_machincOstate_machineOO(.start(start),.dir_up(w_dir_up),.dir_down(w_dir_down),cq_floor(w_cqfloor),.en_door(w_cn_door),.print_state(w_statcO),.clk(clk),.ud_up(w_ud_up), .ud_down(w_ud_down),.ld_up(w_ld_up),.ld_dovn(w_ld_down),.clr(w_clr),.resct(resct); floor_to_scgO floor_to_scgOO(.clk(clk),.clr(rcsct).floor(w_floorO).seg(w_scg_noorO); statc_to_scgOsiatc_to_scgOO(.clk(clk),.cir(rcsct),.siatc(w_statcO),.seg(w_seg_slatcO);/公用输出/print_number printnumbcr_7seg(.clk(clk),.clr(rcsct),.scg_noor0(w_seg_floor0),.scg_floorl (w_scg_floorl),.scg_stateO(w_seg_staicO),.seg_state I (w_seg_statc I), .bit_out(bil_out),.seg(scg);/高层电梯 /floor_to_scgl floor_to_segl l(.clk(clk),.clr(reset),.floor(w_floorl

    注意事项

    本文(1013基于FPGA的高低层电梯控制系统设计与实现.docx)为本站会员(知****量)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开