版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、大连东软信息学院本科毕业设计(论文)论文题目论文题目:基于FPGA的高低层电梯控制系统设计与实现系 所: 电子工程系 专 业:电子信息工程(集成电路设计与系统方向) 学生姓名: 学生学号: 指导教师: 导师职称: 讲师 完成日期: 2014年 3月 10日 大连东软信息学院Dalian 大连东软信息学院毕业设计(论文) 摘要 IV基于FPGA的高低层电梯控制系统设计摘 要电梯作为高层建筑中不可缺少的垂直运输工具,已逐渐成为我们生活中的一部分。随着我国经济以及科技的不断发展,电梯的控制系统也逐渐向着“智能化”的方向发展。对于电梯的控制,传统的方法是采用继电器来进行控制,而随着EDA技术的发展,F
2、PGA已广泛地应用到电子设计控制的各个方面。考虑到现有的很多电梯都是高低层用户共用,导致了电梯空驶率高、用户等待时间长等问题,造成效率低下,增加了各方面的时间成本与财力成本。考虑到这些问题,所以进行了对电梯高低分层实施控制的设计,这样的话,高层用户和低层用户分别使用不同的电梯,能有效解决电梯利用率低和用户的使用矛盾。本设计就是基于FPGA来实现对高低层电梯的控制。本设计所使用的硬件描述语言为Verilog,软件使用Quartus II进行FPGA开发,包括编程、综合、调试等,系统验证使用Modelsim。本高低层电梯控制系统功能包括:显示电梯层数、响应楼层请求、电梯上升下降指示、电梯开关门、显
3、示电梯当前运行状态等。同时,该设计采用模块化编程,可为实现任意多层电梯系统而升级,具有很强的适应性和实用性。关键词:FPGA,电梯控制器,高低层电梯大连东软信息学院毕业设计(论文) AbstractDesign of FPGA-based High-low-rise Elevator Control System DesignAbstractThe elevator as an indispensable vertical transport in skyscraper, it has gradually become an important part of life. With the d
4、evelopment 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 variou
5、s 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 passengers long waits, which causes low productivity and increases in time costs and financial costs. Co
6、nsidering 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 p
7、assengers. 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, int
8、egration, 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
9、 elevator system. It has the very strong adaptability and practical.Key words: FPGA, Elevator controller, High-low-rise elevator大连东软信息学院毕业设计(论文) 目录目 录 TOC o 1-3 u 摘 要 PAGEREF _Toc386427804 h IAbstract PAGEREF _Toc386427805 h II第1章绪 论 PAGEREF _Toc386427806 h 11.1 课题研究背景与意义 PAGEREF _Toc386427807 h 11.
10、2 课题研究内容与方法 PAGEREF _Toc386427808 h 11.3 课题研究现状 PAGEREF _Toc386427809 h 1第2章关键技术介绍 PAGEREF _Toc386427810 h 32.1 FPGA介绍 PAGEREF _Toc386427811 h 32.2 VERILOG HDL硬件描述语言 PAGEREF _Toc386427812 h 32.3 CYCLONE II芯片 PAGEREF _Toc386427813 h 3第3章系统需求分析 PAGEREF _Toc386427814 h 53.1 系统设计目标 PAGEREF _Toc386427815
11、 h 53.2 系统主要模块描述 PAGEREF _Toc386427816 h 53.3 系统非功能需求 PAGEREF _Toc386427817 h 63.4 系统开发环境 PAGEREF _Toc386427818 h 63.5 系统可行性分析 PAGEREF _Toc386427819 h 73.5.1 技术可行性 PAGEREF _Toc386427820 h 73.5.2 经济可行性 PAGEREF _Toc386427821 h 7第4章系统设计 PAGEREF _Toc386427822 h 84.1 系统架构 PAGEREF _Toc386427823 h 84.2 状态机
12、设计 PAGEREF _Toc386427824 h 94.3 数据通道设计 PAGEREF _Toc386427825 h 104.3.1 楼层计数模块 PAGEREF _Toc386427826 h 104.3.2 按键寄存器清空模块 PAGEREF _Toc386427827 h 114.3.3 信号寄存模块 PAGEREF _Toc386427828 h 114.3.4 楼层选择模块 PAGEREF _Toc386427829 h 124.4 译码电路及显示模块设计 PAGEREF _Toc386427830 h 124.4.1 楼层/状态译码模块 PAGEREF _Toc386427
13、831 h 124.4.2 LED显示模块 PAGEREF _Toc386427832 h 124.4.3 动态扫描的七段数码管显示模块 PAGEREF _Toc386427833 h 13第5章系统实现 PAGEREF _Toc386427834 h 155.1软件配置 PAGEREF _Toc386427835 h 155.2功能模块实现 PAGEREF _Toc386427836 h 155.2.1系统流程 PAGEREF _Toc386427837 h 155.2.2数据通道实现 PAGEREF _Toc386427838 h 165.2.3状态机实现 PAGEREF _Toc3864
14、27839 h 17第6章系统测试 PAGEREF _Toc386427840 h 186.1 功能验证 PAGEREF _Toc386427841 h 186.2 系统上板测试 PAGEREF _Toc386427842 h 196.2.1 Signal Tap II信号提取 PAGEREF _Toc386427843 h 196.2.2 FPGA正常运行 PAGEREF _Toc386427844 h 20第7章结论 PAGEREF _Toc386427845 h 23参考文献 PAGEREF _Toc386427846 h 24致 谢 PAGEREF _Toc386427847 h 26
15、附录A PAGEREF _Toc386427848 h 27附录B PAGEREF _Toc386427849 h 28大连东软信息学院毕业设计(论文)- 第1章绪 论1.1 课题研究背景与意义随着社会的发展,现在的楼房层数也在逐渐升高,电梯在居民小区的安装越来越普及。电梯的便利让人们上下楼省时省力,尤其是能方便一些腿脚不便的人群。但是随着高层建筑的增多(十五层以上),坐电梯的等待时间也变得令人难以接受,人少的时候如果高层住户和低层住户同时呼叫会造成很大的浪费:住户等待时间长、电梯空驶时间长,这造成了时间与成本的双重浪费;在人多的时候,由于经常会发生“超重”的情况,电梯甚至会在超重状态下不断在
16、有响应的楼层停下,造成电梯效率极其低下。为了解决这种问题,决定设计出一种高低层分用的电梯控制系统。FPGA是一种专门从事逻辑控制的微型计算机系统。由于其具有性能稳定、抗干扰能力强、设计配置灵活等特点,因此使用FPGA作为电梯控制器可以更好地合理分配居民的共用资源,更有效率地处理人们在搭乘电梯时遇到的不便之处,同时也极大地提高了电梯的利用率,避免浪费。1.2 课题研究内容与方法本控制系统中最关键的地方就是如何合理规划电梯对于用户请求的响应,现实中的电梯运行起来很复杂,会考虑到多种情况,尤其是电梯运行中,很多楼层都有向上或者向下的请求。在每种情况下,电梯应该如何运作,该不该停,继续向原有方向前进还
17、是转换方向,这都需要我们设计的时候去思考。毕竟这是一个很实际的控制,稍微出一点问题的话,都会给用户带来很大的不便。针对这个问题,我们需要上网进行资料的查找,了解电梯运行状态,并实际去找电梯验证,感受一下电梯是如何处理一个个复杂情况的。另一个很重要的问题就是时序问题,因为用户的动作是不可预见的,和能在任何时间、任何情况下都会有使用电梯的请求。由此可见,这对于时序有着很大要求,必须要正确、迅速地处理各个请求,然后予以执行,控制电梯的上升、下降或者停止运行。1.3 课题研究现状随着我国城乡居民生活水平的不断提高,高层建筑物的不断增多,电梯已越来越走进我们的生活。而电梯作为现代高层建筑的垂直交通工具,
18、面对人们对其要求的提高,其自身也在不断的优化中。针对传统的单片机设计的电梯控制器外围电路复杂,性能不稳定的缺点,从而提出了基于FPGA的高低层电梯控制系统设计。目前,FPGA逻辑器件正往低电压、低功耗、系统内可重构和高速可预测延时器件的方向发展。而这种基于芯片的设计方法可以减少芯片的数量,缩小系统体积,降低能源消耗,提高系统性能和可靠性。因此这样的控制能更好的提高电梯的控制水平,并改善电梯运行的舒适感。而将这种设计方案运用到电梯中,也已成为时代之需。 大连东软信息学院毕业设计(论文)第2章关键技术介绍本设计是基于FPGA硬件平台的系统,FPGA相对于单片机、CPLD而言,拥有更庞大的资源以及运
19、算速度,能很好地解决对于精度、速度要求很高的场合,而且拥有很多可定制的内容,便于设计人员进行升级、维护等。2.1 FPGA介绍FPGA(FieldProgrammable Gate Array),也被称为现场可编程门阵列,这种器件的产生是由于CPLD等可编程逻辑器件的发展。FPGA是作为ASIC(专用集成电路)领域中的一种半定制电路而出现的,能很好地解决定制电路的不足之处,同时也克服了CPLD等可编程器件的缺点,即门电路数的有限性。FPGA的开发与PC开发和单片机开发相比有很大不同。相比于PC或单片机的顺序操作,FPGA是以并行运算为主,同时用硬件描述语言来实现模块功能。FPGA的开发需要完成
20、以下几个方面:顶层设计、模块分层、逻辑实现、软硬件调试等。2.2 Verilog HDL硬件描述语言Verilog HDL是Verilog Hardware Description Language的缩写,是一种硬件描述语言。在集成电路设计的电子自动化领域中,Verilog主要用于描述、设计电子系统。Verilog能够对数字逻辑系统通过多种的抽象级别进行描述。因此,它既可以描述晶体管级、逻辑门级,也可以描述寄存器传输级在寄存器之间传输电路信号时的情况。Verilog不仅能够描述电路的逻辑功能,其还能够在逻辑仿真、逻辑综合中被运用,而后者可以把寄存器传输级的Verilog语言转换为逻辑门级的网表
21、,这样就能够方便实现硬件电路,完成我们所设计的预期目标。VHDL是另一种硬件描述语言,在业界它和Verilog一样都被作为一种标准。它们虽然有着各自的描述特点,但却同时作为电气电子工程师应具备的标准硬件描述语言。VHDL的设计初衷就是针对于代码的标准化,然而简明、高效的代码风格则是Verilog所具有的。两种语言都可以对数字电路建模即使是处于多个抽象层次,同时它们还能与验证、仿真、综合工具进行协同工作。相比之下,Verilog的逻辑门级、晶体管级级电路描述能力更强,而VHDL不具备这样低级的描述能力。但是,VHDL的系统级抽象描述能力要比Verilog更强。2.3 Cyclone II芯片Al
22、tera公司于2004年推出了一种新款的FPGA器件Cyclone II系列。Cyclone II FPGA的成本比前一个版本的Cyclone器件要低30%,逻辑容量大小也增加了3倍,可以进行低成本、大批量的产品生产。采用先进工艺技术的Cyclone II器件,与Altera低成本的设计方式相结合,此类生产可以使其能够在相对较低的成本压力下制造出具有比较大容量的器件。与第一代Cyclone产品相比较,Cyclone II器件具有两倍多的I/O引脚,而且对于可编程类的逻辑器件而言,内部的存储模块和其它特点也进行了最优的组合,使其特性进行了增强。为了更好地配置Cyclone II FPGA,Alt
23、era提供了低成本的串行配置器件。这些串行配置器件被定价为批量应用,其成本是相对应的Cyclone II FPGA价格的10%。四个串行配置器件(1Mbit,4Mbit,16Mbit和64Mbit)为用户提供了节省空间的8脚和16脚SOIC封装。该器件中任何不用于配置的存储器均可用于一般存储,这个特性进一步增强了它的价值。对于电梯控制器而言,Cyclone II拥有足够的处理速度以及资源,便于实时数据处理以及以后的维护与功能升级。第3章系统需求分析3.1 系统设计目标使用FPGA作为电梯的控制器,为高低层住户分别提供电梯控制,以解决其使用电梯时等待时间过长从而造成时间上的浪费。本系统用8层电梯
24、来模拟实际操作过程中的高低层分用电梯,低层电梯负责1-4层的控制,高层电梯负责1层以及5-8层的控制。每个电梯进行独立控制,不互相相应,并且只处理其负责的楼层数搭乘请求。根据对电梯的实际功能需求分析以及操作和验证,确定了本系统的主要功能模块如图3.1所示。图3.1 系统设计总览3.2 系统主要模块描述(1)楼层计数模块本模块负责给出当前电梯所处的楼层数,需要用加法器以及减法器来完成操作。同时,由于要判断当前电梯是需要上楼还是下楼,要用到两个选择器,楼层数则用寄存器来进行储存。(2)按键寄存器清空模块本模块主要负责给所有需要清空操作的按键复位信号,通过判断当前电梯运行的层数、上升下降状态以及开门
25、情况,来判断那些按键寄存器需要被清空。如:电梯当前位于3楼,处于上升状态,那么电梯在三楼停下开门后,三楼的u1信号以及电梯内部的g3信号这两个寄存器将被给出清空信号。(3)信号寄存模块本模块主要负责按键被按下时,对应寄存器存储数据,以及清零信号到来时,对寄存器进行清空的操作。本模块主要由寄存器组成,每一个按键都有与之对应的寄存器。(4)楼层选择模块本模块需要处理所有的按键信号以及电梯运行状态信号,对电梯下一个运行状态的数据进行输出。(5)楼层开门模块本模块负责把所在楼层的信息,由0,1,2,3转为四位的独热码:0001,0010,0100,1000。然后输出到开发板所带的LED灯上,当LED灯
26、亮起时,表示该LED灯所对应的楼层电梯门被打开。此模块在低层电梯中有1、2、3、4楼层所对应的LED灯,在高层电梯中因为还需要停于在1层,所以有1、5、6、7、8楼层所对应的LED灯。(6)楼层译码模块本模块负责将楼层数译为七段数码管的显示格式,如:将3b001译为7b1111001,以便让FPGA上的数码管正确显示出楼层数。(7)状态译码模块本模块负责将电梯控制器当前所处状态译为七段数码管的显示格式,以便显示在FPGA上。(8)显示模块本模块负责将接收到的电梯运行状态信息以及电梯所处楼层正确显示在FPGA上带有的动态扫描七段数码管上。由于七段数码管使用了动态扫描,所以需要分别对七段数码管的行
27、选信号以及段选信号进行操控,本模块中还有一个分频器,用以分出合适的频率来显示。3.3 系统非功能需求(1)显示当前电梯运行状态电梯在运行的过程中,可以设置一个监控板,实时显示其当前的运行状态,方便控制端进行检测、维护等。基于此目的,本系统添加了一个由七段数码管显示的模块,可以清楚显示出电梯当前所处楼层、运行状态等信息。(2)低成本本系统所使用芯片为Altera公司的Cyclone II系列芯片,此款芯片比之前的Cyclone系列要便宜30%,而且FPGA本身处理性能优秀,资源丰富,一块芯片就能同时满足多个电梯的控制,大大节约了成本。3.4 系统开发环境 硬件环境:FPGA开发板软件环境:Qua
28、rtus II,ModelSim3.5 系统可行性分析3.5.1 技术可行性本作品所用硬件描述语言为Verilog,使用QuartusII进行FPGA开发,包括编程、综合、调试等。Quartus II 是Altera公司的综合性PLD/FPGA开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。本作品使用ModelSim软件进行仿真,Mentor公司的ModelSim被誉为业界最优秀的HDL语言仿真软件,它提供
29、了非常直观方便的仿真环境,采用了直接进行优化的先进编译技术以及单一内核仿真技术。ModelSim拥有极快的编译和仿真速度,且其编译的代码与所在平台无关,这有利于保护IP核的安全。在查错方面,ModelSim拥有非常人性化的图形界面以及用户接口,这无疑增加了用户查错的速度,进行可编程逻辑器件的仿真时,这款软件是用户的不二选择。3.5.2 经济可行性Altera公司的Cyclone II FPGA的成本比第一代Cyclone器件低30%,逻辑容量大了三倍多,可满足低成本大批量应用需求,而且可以做到同时控制多台电梯,非常适用于电梯控制器的批量生产。第4章系统设计4.1 系统架构(1)I/O口设计由于
30、高低层电梯控制器是一个实际应用的系统,所以顶层模块必须考虑到用户的所有需求,I/O口就是专门与用户“交流”的通道,本系统顶层模块的所有信号如表4.1所示。表4.1 顶层模块I/O信号信号名输入/输出功能描述clk输入系统的主时钟,频率为50MHzreset输入系统初始化,低电平有效start输入系统开始运行,高电平有效u1输入1楼外侧上楼按键,高电平有效(低层电梯)u2输入2楼外侧上楼按键,高电平有效u3输入3楼外侧上楼按键,高电平有效u4输入4楼外侧上楼按键,高电平有效u5输入5楼外侧上楼按键,高电平有效u6输入6楼外侧上楼按键,高电平有效u7输入7楼外侧上楼按键,高电平有效u2输入2楼外侧
31、下楼按键,高电平有效u3输入3楼外侧下楼按键,高电平有效u4输入4楼外侧下楼按键,高电平有效u5输入5楼外侧下楼按键,高电平有效u6输入6楼外侧下楼按键,高电平有效u7输入7楼外侧下楼按键,高电平有效u8输入8楼外侧下楼按键,高电平有效g1输入电梯内1楼按键,低电平有效g2输入电梯内2楼按键,低电平有效g3输入电梯内3楼按键,低电平有效g4输入电梯内4楼按键,低电平有效g5输入电梯内5楼按键,低电平有效g6输入电梯内6楼按键,低电平有效g7输入电梯内7楼按键,低电平有效续表4.1 顶层模块I/O信号信号名输入/输出功能描述g8输入电梯内8楼按键,低电平有效hu1输入1楼外侧上楼按键,高电平有效
32、(高层电梯)hg1输入电梯内1楼按键,低电平有效(高层电梯)door03:0输入LED灯,用于对应楼层的开门显示(低层)door14:0输入LED灯,用于对应楼层的开门显示(高层)bit_out7:0输入七段数码管的位选信号seg6:0输入七段数码管的段选信号(2)模块设计由于要实现高低层电梯的分别控制,所以本系统为该电梯分配了独立的状态机与数据通道,用户通过按下按键,把数据传送给数据通道来处理,然后状态机进行相应与状态跳转,再把目前电梯运行状况反馈给数据通道。每层电梯门打开的操作,本系统用对应的译码模块将当前需要开门的楼层进行译码,并点亮LED灯进行显示。当前楼层以及运行状态的显示,本系统使
33、用了动态扫描的七段数码管,分别对低层电梯以及高层电梯进行显示。4.2 状态机设计状态机负责整个系统的控制,其简写是FSM(Finite State Machine),分为两种不同的类型:第一类,若状态机的输出只和当前状态有关而与外界的输入没有关系,则此种被称为Moore类型的状态机;第二类,若状态机的输出不只是和当前状态有关,也受到外界输入的影响,则此种被称为Mealy类型的状态机。我们在设计时要注意,Mealy类型的状态机由于和外界输入有关,其信号的输出会受到外界输入的干扰,这就可能为系统带来毛刺,产生干扰,要解决这一问题可以考虑使用独热码来解决。考虑到电梯运行的各种状态以及数据传递,本系统
34、使用的是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
35、状态为电梯下行状态,表示电梯正在向下运行,每次向下运行一层。STOP状态为停下状态,表示当前楼层有需要停下的信号,点体会停在该楼层并在下一状态开门。JUDGE状态为判断状态,电梯关门后由系统判断下一个状态究竟是上行、下行还是等待,其跳转关系如图4.1所示。图4.1 状态机跳转图4.1清楚地显示出了电梯控制系统各个状态的跳转以及跳转的信号,状态机的设计有助于对整个系统进行分析。4.3 数据通道设计4.3.1 楼层计数模块本模块负责电梯楼层的计数,在每个clk上升沿进行采样,每个下降沿如果有clr信号则初始化楼层数。这里要注意的是初始化的楼层数为1,因为本系统是1-8层的电梯控制器,实际楼层数不存
36、在0层,所以在clr信号到来的时候让floor=1。当电梯处于上行状态时,ld_up有效,电梯层数加1;当电梯处于下行状态时,ld_down有效,电梯层数减1;其余状态电梯层数不变。floor信号会通过译码器进行处理,将3位的楼层信号转变为7位的七段数码管信号,通过动态扫描电路在FPGA上进行显示,其主要信号由表4.2所示。表4.2 楼层计数模块信号信号名输入/输出功能描述ld_down输入电梯处于下行状态,其为高电平,否则低电平ld_up输入电梯处于上行状态,其为高电平,否则低电平floor输出输出当前电梯所处楼层数4.3.2 按键寄存器清空模块本模块主要负责给所有需要清空操作的按键复位信号
37、,通过判断当前电梯运行的层数、上升下降状态以及开门情况,来判断哪些已经按下的按键寄存器需要被清空。如:电梯当前位于3楼,处于上升状态,那么电梯在3楼停下开门后,3楼的u3信号以及电梯内部的g3信号这两个寄存器将被给出清空信号;若电梯处于下降状态,则3楼的d3信号以及电梯内部的g3信号这两个寄存器将被给出清空信号。其部分信号如表4.3所示。表4.3 按键寄存器模块信号信号名输入/输出功能描述dir_up输入电梯处于上行状态,其为高电平,否则低电平dir_down输入电梯处于下行状态,其为高电平,否则低电平en_door输入当电梯执行开门操作时,该信号为高电平,floor输入电梯当前所处楼层clr
38、u1输出u1按键的清零信号clrg1输出g1按键的清零信号4.3.3 信号寄存模块本模块负责按键寄存器的清空,在每个clk上升沿进行采样,每个下降沿如果有clr信号则对所有寄存器发出清空标志。在每个楼层,本模块都会根据其运行状态来判断是否发出该楼层按键的寄存器复位信号。例:如果3楼的u1按键被按下,电梯若处于上行状态而且恰好停于3层,则执行开门操作后,系统给u1按键的寄存器清零信号,表示该操作已经执行完毕,部分信号如表4.4所示。表4.4 信号寄存器模块信号信号名输入/输出功能描述u1输入按键u1的寄存器,按键被按下u1为1clru1输入按键u1的清零信号g1输入按键g1的寄存器,按键被按下g
39、1为0clrg1输入按键g1的清零信号续表4.4信号寄存器模块信号信号名输入/输出功能描述ru1输出按键u1的信号输出rg1输出按键g1的信号输出4.3.4 楼层选择模块本模块负责对外部按键信号进行存储与清空的操作,在每个clk上升沿进行采样,如果有按键被按下,则把该信号存储到对应的寄存器中,寄存器中的值除非有clr信号进行清空,否则保持不变。当有对应的clr信号来临,对应寄存器则被清空,等待下一次按键的来临。按键信号包括u1,u2,u3,u4,u5,u6,u7,d2,d3,d4,d5,d6,d7,d8,g1,g2,g3,g4,g5,g6,g7,g8。其中u1,u2,u3,u4,u5,u6,u
40、7,为17层电梯外侧的上升按钮;d2,d3,d4,d5,d6,d7,d8为电梯外侧的下降按钮;g1,g2,g3,g4,g5,g6,g7,g8为电梯内部的楼层按钮,主要信号如表4.5所示。表4.5 楼层选择模块信号信号名输入/输出功能描述u1输入按键u1的信号,高电平有效g1输入按键g1的信号,低电平有效ud_up输入电梯上行状态为高电平,否则低电平ud_down输入电梯下行状态为高电平,否则低电平floor输入电梯当前所在楼层dir_up输出电梯进入上行状态,高电平有效dir_down输出电梯进入下行状态,高电平有效eq_floor输出请求与楼层相等,电梯需要开门,高电平有效4.4 译码电路及
41、显示模块设计4.4.1 楼层/状态译码模块将当前电梯所处的楼层数和运行状态进行显示,由于本系统使用的是七段数码管,所以需要将其转换为七段数码管对应的数据,如:“3b001”译码结果是“7b1111001”,数码管显示的就是“1”这个数。4.4.2 LED显示模块电梯开门时,会有相应楼层的LED灯亮起进行提示,在本模块中把floor信号译码为4位的独热码。独热码就是有多少个状态就有多少比特,而且只有一个比特为1,其他全为0的一种码制。独热码的最大优势在于比较时仅仅需要比较一个bit,一定程度上简化了比较逻辑,减少了毛刺产生的概率。由于独热码的特性,恰好让电梯每次停下时只有唯一打开的那扇电梯门做出
42、点亮提示。4.4.3 动态扫描的七段数码管显示模块本系统所采用的显示方式为动态扫描的七段数码管显示模块,其控制端需要两组不同的信号:一组是系统输出的数字代码,用来控制显示的数字,被称为段码;还有一组是每一位七段数码管所具有的使能信号,使能信号有效时该七段数码管才工作,这些使能信号被称作位码,如图4.2所示。图4.2 七段数码管由于本系统所选的FPGA开发板上每个七段数码管的段选择线都是连在一起的,这意味着系统对于显示的输出,每个段选线上信号都一样。所以,系统想要使用显示功能的时候,不可以让所有数码管的位选线都有效,这样的话所有的七段数码管都将显示出完全一样的字符。若要每一位数码管都能够显示出与
43、本位相对应的字符,那就必须采用动态扫描的显示方式。即在某一时刻,只我们需要显示的七段数码管使能端有效,而其它数码管的使能端处于关闭状态。而同时,段线上输出我们想要其显示数字的代码。这样的话,在每个时刻只有使能端有效的一位显示出了数字,而其它所有位都是熄灭状态的,用这种方法,我们就可以使每一位数码管都显示出我们想要显示出的字符。虽然显示出的字符是出现于不同的时刻,但在每个瞬间,只有一位七段数码管使能端有效,其它各位使能端无效。此外,七段数码管的显示具有余辉特性,而人眼也具有视觉暂留现象,所以要让每位数码管的显示间隔足够短,这样才能给让人感觉眼里的数字一直连续稳定地显示。数码管每一位的显示时间都可
44、以通过修改分频的大小来完成。系统所分频的大小也能够用来确定数码管显示时的亮度,若分频系数较大,则显示时数码管的亮度将亮些,若分频系数较小,则显示时数码管的亮度将暗些。若分频的系数太大的话,数码管显示时将产生闪烁现象。所以,在调整显示的时间间隔时,既要考虑到七段数码管显示时的亮度,又要七段数码管显示时不产生闪烁现象,这就需要找到一个合适的分频系数。本系统所用来显示的8个七段数码管,左边4个用来显示低层电梯的楼层数以及运行状态,右边4个用来显示高层电梯的楼层数以及运行状态。每组七段数码管显示的分别为“F”,“楼层数”,“-”,“状态”,用来清楚地显示出当前电梯的运行状况。大连东软信息学院毕业设计(
45、论文)第5章系统实现5.1软件配置本系统使用Verilog HDL硬件描述语言,使用Quartus II软件进行编译和综合。5.2功能模块实现5.2.1系统流程本系统是一个实时采集外界数据的系统,根据电梯当前运行状态,来给出电梯的下一步操作。电梯每次到达一个楼层都需要判断同楼层是否有相应信号,如果有,则停下来开门让乘客进入;如果没有信号则判断此时应该上升还是下降,若为上升,则电梯向上运行;若为下降,则电梯向下运行;如果没有任何信号,则电梯停止。其流程如图5.1所示。图5.1 系统流程图其顶层模块如下:module elevator(g1,g2,g3,g4,g5,g6,g7,g8,u1,u2,u
46、3,u5,u6,u7,d2,d3,d4,d5,d6,d7,d8,hg1,hu1,clk,start,reset, door0,door1,seg,bit_out);/顶层模块信号input g1,g2,g3,g4,g5,g6,g7,g8,u1,u2,u3,u5,u6,u7,d2,d3,d4,d5,d6,d7,d8,hg1,hu1,clk,start,reset;output 7:0 bit_out;/七段数码管位选信号output 6:0 seg;/七段数码管段选信号output 3:0 door0;output 3:0 door1;wire 2:0 w_floor0;wire 3:0 w_s
47、tate0;wire 6:0 w_seg_floor0,w_seg_state0;wire 2:0 w_floor1;wire 3:0 w_state1;wire 6:0 w_seg_floor1,w_seg_state1;wire w_dir_up,w_dir_down,w_ld_up,w_ld_down,w_eqfloor,w_ud_up,w_ud_down,w_clr,w_en_door;wire w_dir_up1,w_dir_down1,w_ld_up1,w_ld_down1,w_eqfloor1,w_ud_up1,w_ud_down1,w_clr1,w_en_door1;/低层电梯
48、/datapath0 datapath00(.g1(g1),.g2(g2),.g3(g3),.g4(g4),.u1(u1),.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),.eq_floor(w_eqfloor),.floor(w_floor0),.en_door(w_en_door);floor_
49、to_door0 floor_to_door00(.floor(w_floor0),.en_door(w_en_door),.door(door0);state_machine0 state_machine00(.start(start),.dir_up(w_dir_up),.dir_down(w_dir_down),.eq_floor(w_eqfloor),.en_door(w_en_door),.print_state(w_state0),.clk(clk),.ud_up(w_ud_up),.ud_down(w_ud_down),.ld_up(w_ld_up),.ld_down(w_ld_
50、down),.clr(w_clr),.reset(reset);floor_to_seg0 floor_to_seg00(.clk(clk),.clr(reset),.floor(w_floor0),.seg(w_seg_floor0); state_to_seg0 state_to_seg00(.clk(clk),.clr(reset),.state(w_state0),.seg(w_seg_state0); /公用输出/print_number printnumber_7seg(.clk(clk),.clr(reset),.seg_floor0(w_seg_floor0),.seg_flo
51、or1(w_seg_floor1),.seg_state0(w_seg_state0),.seg_state1(w_seg_state1),.bit_out(bit_out),.seg(seg);/高层电梯/floor_to_seg1 floor_to_seg11(.clk(clk),.clr(reset),.floor(w_floor1),.seg(w_seg_floor1); state_to_seg1 state_to_seg11(.clk(clk),.clr(reset),.state(w_state1),.seg(w_seg_state1); datapath1 datapath11
52、(.hg1(hg1),.g5(g5),.g6(g6),.g7(g7),.g8(g8),.hu1(hu1),.u5(u5),.u6(u6),.u7(u7),.d5(d5),.d6(d6),.d7(d7),.d8(d8),.clk(clk),.clr(w_clr1),.dir_up(w_dir_up1),.dir_down(w_dir_down1),.ud_up(w_ud_up1),.ud_down(w_ud_down1),.ld_up(w_ld_up1),.ld_down(w_ld_down1),.eq_floor(w_eqfloor1),.floor(w_floor1),.en_door(w_
53、en_door1);floor_to_door1 floor_to_door11(.floor(w_floor1),.en_door(w_en_door1),.door(door1);state_machine1 state_machine11(.start(start),.dir_up(w_dir_up1),.dir_down(w_dir_down1),.eq_floor(w_eqfloor1),.en_door(w_en_door1),.print_state(w_state1),.clk(clk),.ud_up(w_ud_up1),.ud_down(w_ud_down1),.ld_up(
54、w_ld_up1),.ld_down(w_ld_down1),.clr(w_clr1),.reset(reset);endmodule5.2.2数据通道实现本系统的数据通道负责对实时数据进行分析、处理,以便确定电梯的运行状态,数据通道如图5.2所示。图5.2 数据通道输入信号clk为50MHz的系统时钟,clr为清空信号,低电平有效;en_door为门的使能端,高电平有效,高电平时当前楼层的电梯门会打开;ld_up为楼层计数+1信号,高电平有效,ld_down为楼层计数-1信号,高电平有效;ud_up高电平时表示电梯处于上行状态,ud_down高电平时表示电梯处于下行状态;输出信号dir_up
55、高电平时表示电梯下一个状态应该上升,dir_down高电平时表示电梯下一个状态应该下降;eq_floor高电平时表示当前楼层有信号需要响应,应该停下;floor 2:0表示当前电梯所处的楼层数。5.2.3状态机实现经过设计与分析,本系统使用了两段式的状态机,其在状态切换用时序逻辑,次态输出和信号输出用组合逻辑。两段式状态机能很好地适应组合逻辑较多的情况,有效减少毛刺的生成。状态的跳转编码,此处选择了独热码,即one-hot code。对于FPGA,使用这样的编码不但可以充分利用FPGA丰富的触发器资源,还因为状态的转换只需比较一个比特,速度快,组合电路简单,能减少由于电平翻转而形成的毛刺。大连
56、东软信息学院毕业设计(论文)第6章系统测试高低层电梯控制系统是一个面向高层建筑的控制器,其优势在于上下楼分别控制,有效减少高低层用户因为使用不均而造成的时间、金钱浪费。要想测试这种实时性数据采集与分析的系统,必须要通过大量的输入组合以及逻辑分析,来判断所输出的信号是否为自己想要的信号。为此,本系统采用了软件模拟验证以及实际上板验证两种方式,效率的同时也确保了系统的正确与稳定。6.1 功能验证本系统进行验证时所使用的软件为Mentor公司的ModelSim,这是EDA界最优秀的HDL语言仿真软件。它拥有直观而便捷的仿真界面,易于操作和查错,是验证自己所做设计的最佳选择。由于电梯实际运行状况非常复
57、杂,用户对于每一个按键的按下都是随机的,所以本系统在验证的时候考虑到了各种情况,这里举出一种较为复杂的情况用来说明。开始时reset信号为0,初始化所有寄存器,然后reset恢复高电平,系统开始启动,由于start信号为1,系统可以由IDLE状态进入WAIT状态开始运行。按照先后顺序按下u3,hu1,g1,g6,d4,g2,g4,d2这些按键,则低层电梯运转状态应为:1楼2楼3楼(停下,清空u3)4楼(停下,清空d4,g4)3楼2楼(清空g2,d2)1楼(清空g1)。高层电梯运转状态应为:1楼(停下,清空hu1)2楼3楼4楼5楼6楼(停下,清空g6)7楼8楼(停下,清空d8)。电梯运行仿真图如
58、图6.1和图6.2所示。图6.1 电梯仿真状态图6.2 电梯仿真结束其中clk表示系统时钟,door0表示低层电梯开门信号,door1表示高层电梯开门信号,datapath00/floor表示低层电梯当前楼层,datapath11/floor表示高层电梯当前楼层。6.2 系统上板测试6.2.1 Signal Tap II信号提取SignalTap II 是一款极具实用性的FPGA片上debug工具软件且其功能十分强大,它集成于altera公司提供的FPGA开发软件Quartus II中。SignalTap II的全称为SignalTap II Logic Analyzer,是第二代系统级的调试
59、工具。它可以捕获和显示实时信号,观察硬件和软件在系统设计中的之间的相互作用。Quartus II软件可以自由选择我们需要捕获的信号、开始捕获的时间,以及究竟要捕获多少样本数据。还可以自由定义时间数据从器件的存储模块通过JTAG端口传送至SignalTap II Logic Analyzer,或者是至I/O引脚以供示波器或外部逻辑分析仪中使用,将其实时数据提供给工程师来帮助查错。在上板后,先让u2,g3,d4三个按键被按下,表示二楼有人想上3楼,4楼有人想下楼,这时其对应的寄存器的值应该是:u2=1,g3=0,d4=1,其刚按下时的信号如图6.3所示。图6.3 电梯刚启动三个按键被按下后,电梯的
60、基本流程应该为:由1楼上升至2楼执行开门操作清空u2的寄存器执行关门操作上升至3楼执行开门操作清空g3寄存器执行关门操作上升至4楼执行开门操作清空d4寄存器执行关门操作。由SignalTap II所显示的最终信号应该是:u2=0,d4=0,g3=1,g1=1,floor=4,state=1,如图6.4所示。图6.4 电梯运行完毕这时候再让g1和u2两个按键被按下,表示4楼的人想去1楼,2楼有人想上楼,其对应的寄存器的值应该是g1=0,u2=1,刚按下时的信号如图6.5所示。图6.5 电梯再次启动两个按键被按下后,电梯的基本流程应该为:电梯由4楼下降至1楼(不在二楼停,因为电梯处于下行状态)执行
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年上海房屋装修工程调解合同
- 2024年度二手房出售合同中的附件:房产证复印件及交易证明
- 2024年度承包合同园林绿化工程承包合同(04版)
- 2024年度汽车销售代理权合同
- 保洁个人年终工作总结
- 2024年库房火灾保险合同
- 2024年奶制品销售协议
- 2024双方关于电商平台运营合作的合同
- 2024丙丁双方广告发布与代理合同
- 2024年建筑工程施工安全防护补充协议
- 基于核心素养初中数学跨学科教学融合策略
- 200TEU 长江集装箱船设计
- 办公楼物业服务管理的培训
- 智慧能源管理平台建设项目解决方案
- JTG∕T F30-2014 公路水泥混凝土路面施工技术细则
- 2024年高中语文学业水平过关测试四-名句名篇默写积累过关训练(全国通用)学生版
- 糖尿病性舞蹈病
- 医学类-教学查房异位妊娠(宫外孕)
- 眼视光技术职业生涯规划大赛
- 《第八课 我的身体》参考课件
- 肥料创业计划书
评论
0/150
提交评论