基于FPGA的六层电梯控制器_第1页
基于FPGA的六层电梯控制器_第2页
基于FPGA的六层电梯控制器_第3页
基于FPGA的六层电梯控制器_第4页
基于FPGA的六层电梯控制器_第5页
免费预览已结束,剩余20页可下载查看

付费下载

下载本文档

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

文档简介

1、ED般术项目设计报告题目:基于FPG闻勺六层电梯控制器学院:电子与信息工程学院专业:电子信息科学与技术姓名:XXX班级:14电信本(2)班学号:140919022指导老师:XXX二0一六年十二月1、绪论错误!未定义书签1.1 电梯控制器的发展现状错误!未定义书签1.2 本次设计的主要内容错误!未定义书签1.3 设计原理与思路错误!未定义书签1.4 硬件设计错误!未定义书签1.5 软件设计错误!未定义书签2、FPGA硬件结构知识错误!未定义书签2.1 FPGA概述错误!未定义书签2.2 FPGA体系结构错误!未定义书签2.3 FPGA常用芯片介绍错误!未定义书签3、VHDL硬件描述语言错误!未定

2、义书签3.1 VHDL语言特点错误!未定义书签3.2 状态机的VHDL实现错误!未定义书签4、电梯控制器的工作原理错误!未定义书签5、电梯控制系统的设计内容错误!未定义书签5.1 时钟分频模块错误!未定义书签5.2 按键处理模块错误!未定义书签5.3 电梯运行控制模块错误!未定义书签5.4 数码管显示模块错误!未定义书签5.5 电梯超重控制可行性分析错误!未定义书签6、电梯控制器顶层图形错误!未定义书签7、总结错误!未定义书签1、绪论1.1 电梯控制器的发展现状国家规定超过六楼以上的楼层必须按要求安装电梯,而且随着超高层建筑的出现,电梯的应用越来越来广泛了,与此同时,对电梯的要求也越来越高了。

3、目前,电梯的设计、工艺不断提高,电梯的品种也逐渐增多,电梯的材质由黑白到彩色,样式由直式到斜式,在操纵控制方面更是步步出新:手柄开关操纵、按钮控制、信号控制、集选控制、人机对话等;多台电梯还出现了并联控制、智能群控;双层轿箱电梯展示出节省井道空间,提升运输能力的优势,变速式自动人行道扶梯大大节省了行人的时间;不同外形的电梯则使身处其中的乘客的视线不再封闭。电梯的结构分为:四大空间,八大系统;四大空间:机房部分、井道及地坑部分、轿厢部分、层站部分;八大系统:曳引系统、导向系统、轿厢、门系统、重量平衡系统、电力拖动系统、电气控制系统、安全保护系统;电梯的功能结构决定电梯的八大应用技术:1)全数字识

4、别乘客技术(所有乘客进入电梯前进行识别,其中包括眼球识别、指纹识别)2)数字智能型安全控制技术(通过乘客识别系统或者IC卡以及数码监控设备,拒绝外来人员进入)3)第四代无机房电梯技术(主机必须与导轨和轿厢分离,完全没有共振共鸣,速度可以达到2.0M/S以上,最高可以使用在30层以上。)4)双向安全保护技术(双向安全钳、双向限速器,在欧洲必须使用,中国正在被普遍使用)5)快速安装技术(改变过去的电梯安装方法,能够快速组装)6)节能技术(采用节能技术,使电梯更节约能源)7)数字监控技术(完全采用计算机进行电梯监控与控制)8)无线远程控制及报警装置(当电梯产生故障时,电梯可以通过无线装置给手机发送故

5、障信息,并通过手机发送信号对电梯进行简单控制。)本次设计主要是控制电梯的运行模式和状态,对信号进行处理的模块,重点在对响应的信号进行处理,并将处理结果反馈给对应功能的控制端口,实现对电梯运行的全面控制。1.2 本次设计的主要内容随着可编程逻辑电路和EDA技术的发展,在逻辑电路设计和嵌入式系统设计方面,以CPLD/FPGM代表的可编程逻辑器件已经逐步代替了传统的标准逻辑器件;本次设计的电梯控制器所有的程序可以集成在一个FPGA开发芯片上面,不用在用其他功能的分立逻辑元件,达到集成度高、响应快、功耗低的特点。本次设计是基于FPGA的电梯控制器的研究,是电梯控制的核心技术,通过电梯控制器可以对电梯运

6、行模式和状态进行全面的控制,这也是次设计的研究重要性;电梯的层数为6层,本次设计采用模块化设计,主要分为四大模块:时钟分频模块、按键处理模块、电梯运行控制模块、数码管显示模块。由于FPGA技术近些年来蓬勃发展,而且在很多领域已经应用的十分成熟,用FPGA可以实现对电梯精确、实时性控制,而且用于FPGA开发的芯片都是一些微处理器芯片,便于集成和智能化设计,而且大大缩短了开发周期。1.3 设计原理与思路本次设计是实现6层电梯的运行控制,当在某一楼层按下上升或者下降请求按钮时,控制器响应该请求并控制电梯前往该楼层,当到达该楼层时电梯开门,当进入电梯后,电梯关门,此时按下要到达的楼层按钮,控制器响应该

7、请求并控制电梯前往该楼层,当到达前往楼层后,电梯开门,走出电梯,然后关门.,就这样往复的实现电梯的控制功能。电梯运行时遵循如下规则:当电梯处于上升模式时,只响应比电梯所在位置高的上楼信号,由下至上依次执行;直到最后一个上楼请求执行完毕,如有更高层有下楼请求时,则直接升到有下降请求的最高楼,然后进入下降模式,电梯处于下降模式时,则与上升相反。电梯的输入信号主要包括外部输入信号和内部输入信号;对于电梯外部输入信号:每一层电梯门外都有上升请求和下降请求按钮,其中一楼电梯门外只有上开请求按钮,六楼电梯门外只有下降请求按钮。对于电梯内部输入信号主要有:6个前往楼层的按钮、提前关门按钮、延时关门按钮、电梯

8、异常按钮。电梯输出信号也主要包括外部输出信号和内部输出信号;对于电梯外部输出信号包括上升请求按钮和下降按钮指示信号、电梯当前所在楼层指示信号、电梯运行方向指示信号。电梯内部输出信号包括6个前往楼层按钮指示信号、超重等警告指示信号、电梯当前所在楼层指示信号、电梯运行方面指示信号。1.4 硬件设计本次设计主要是通过Altera公司生产的Cyclonelll这一款芯片进行功能的实现,Cyclonelll器件采用TSMC90nr<K绝缘材料工艺技术,这种技术结合Altera低成本的设计方式,使之能够在更低的成本下制造出更大容量的器件。这种新的器件比第一代Cyclone产品具有两倍多的I/O弓I脚

9、,且对可编程逻辑的存储块和其它特性进行了最优的组合,具有许多新的增强特性。Cyclonelll器件包含了许多新的特性,如嵌入存储器、嵌入乘法器、PLL和低成本的封装,这些都为诸如视频显示、数字电视(DTV)、机顶盒(STB)、DVD播放器、DSL调制解调器、家用网关和中低端路由器等批量应用进行了优化。在EDA设计的开发板上面,支持SOPC片上可编程,在Cyclonelll芯片旁边外围有按键模块、液晶显示模块、LED指示灯等,通过QuartusR平台将硬件描述语言下载至该芯片中,然后进行程序的调试、运行并进行功能的实现。1.5 软件设计Altera的FPGA设计主要采用两种标准语言:VHDL/V

10、erilogHDL。其中VerilogHDL出现早,运用广泛,而且比较简单,在NlOS项目里运用较多;而VHDL语言功能强大,语句相对要复杂一些,所以对于现在一些复杂的可编程项目多采用VHD印言编写。VHDL(Very-High-SpeedlntegratedCircuitHardwareDescriptionLanguage)主要用于描述数字系统的结构、行为、功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL勺程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分、端口

11、)和内部(或称不可视部分),涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。如下图4-1是VHDL的层次模型:图4-1具有不同构造体的VHDL模型VHDL语言具有强大的语言结构,只需采用简单明确的VHDL语言程序就可以描述十分复杂的硬件电路。同时,它还具有多层次的电路设计描述功能:既支持自顶向下的设计方式,也支持自底向上的设计方法;既支持模块化设计方法,也支持层次化设计方法;既可描述系统级电路,也可以描述门级电路;描述方式既可以采用行为描述、寄存器传输描述或者结构描述,也可以采用三者的混合描述方式。VHDL语言具有很强的

12、移植能力,对于同一个硬件电路的VHDL语言描述,它可以从一个模拟器移植到另一个模拟器上、从一个综合器移植到另一个综合器上或者从一个工作平台移植到另一个工作平台上去执行。VHDL语言采用基于库(library)的设计方法。在设计过程中,设计人员可以建立各种可再次利用的模块,一个大规模的硬件电路的设计不可能从门级电路开始一步步地进行设计,而是一些模块的累加,这些模块可以预先设计或者使用以前设计中的存档模块,将这些模块存放在库中,就可以在以后的设计中进行复用。本次设计主要是运用VHDL语言进行程序的编写,采用自顶向下、模块化设计方法。按照要求可以分为:时钟分频模块、按键处理模块、电梯运行控制模块、数

13、码管显示模块;分别设计出这四个模块之后,进行调试、运行、功能仿真和时序分析,然后将生产的模块图在原理图编辑器中连接起来,组成完整的电梯控制器。2、FPGA硬件结构知识2.1 FPGA概述FPGA(FieldProgrammableGateArry)即现场可编程门阵列,它是在PALGALCPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点;FPGA采用了逻辑单元阵列LCA(LogicCellArray)这样一3个概念,内部包括可配置逻辑模块CLBConfigurableLog

14、icBlock)>输入输出模块IOB(InputOutputBlock)和内部连线(Interconnect)三个部分。2.2 FPGA体系结构FPGA采用逻辑单元阵列(LCALogicCellArray)新概念,内部包括可配置逻辑模块(CLBConfigurableLogicBlock)、输入输出模块(IOB,InputOutputBlock)和内部互连资源(IR,InterconnectResources)三部分组成。1) 可配置逻辑块(CLBConfigurableLogicBlock)是FPGA的主要组成部分,主要是由逻辑函数发生器、触发器、数据选择器等电路组成。2)输入输出模块

15、(IOB,InputOutputBlock)提供了器件引脚和内部逻辑阵列之间的连接,主要是由输入触发器、输入缓冲器和输出触发、锁存器、输出缓冲器组成。3)可编程互连资源(IR,InterconnectResources)可以将FPGA内部的CLB和CLB之间、CLB和IOB之间连接起来,构成各种具有复杂功能的系统,IR主要由许多金属线段构成,这些金属线段带有可编程开关,通过自动布线实现各种电路的连接。2.3 FPGA常用芯片介绍目前世界上有很多生产FPGA芯片的公司,常用的主要有:Altera、XIlinx、Lattice和Actel,其中Altera和XIlinx占据主流市场。1) Alte

16、ra的主流FPGA分为两大类:一种是侧重低成本、容量中等、性能可以满足一般逻辑设计要求的,如Cyclone系列;另一种是侧重高性能、容量大、性能可以满足各类高端应用,如Stratix系列。2) XIlinx是FPGAS明者,是老牌PLD产品的种类较全,主要有:XC9500/4000CoolRunner(XPLA3、Spartan、Virtex等系列。3) Lattice是在系统编程(ISP)技术的发明者,主要有:ispLSI2000/5000/8000、MACH4/5ispMACH4000等系歹限4) Actel公司是世界反熔丝技术的FPGA领先供应商,主要有两大系列的反熔丝FPGA产品SX-

17、A和MX高速系列。3、VHDL硬件描述语言3.1VHDL语言特点VHDL(Very-High-SpeedIntegratedCircuitHardwareDescriptionLanguage)是一种标准的硬件描述语言,中文意思是超高速集成电路硬件描述语言;利用VHDL进行系统行为级设计已经成为FPGA与ASIC设计的主流,使用VHDL不仅可以快速的描述和综合FPGA设计,还可以提供一下的一些性能。1)功能强大且很具有灵活性,VHDL具有很强大的语言结构,可以用简洁明确的代码描述复杂的控制逻辑,语言很灵活,支持设计库和可重复使用的元件生成。2)不依赖于器件的设计,VHDL允许设计者生成一个设计

18、而不需要首先选择一个用来实现设计的器件,对于同一个设计描述,可以采用多种不同的器件结构来实现其功能。3)具有可移植性,因为VHDL是一种标准的语言,所以它可以被不同的工具所支持,这意味着同一个VHDL设计描述可以在不同的设计项目中采用4)可以对其设计性能进行评估,设计者可以进行一个完整的设计描述,并对其进行综合,生产选定的器件结构的逻辑功能,然后评估结果,选用最适合设计需求的器件。5)上市时间快、成本低、开发周期短,VHDL语言的设计将大大提高数字单片化设计实现的速度,为生产者大大节约开发成本。3.2状态机的VHDL实现有限状态机以及其设计技术是使用数字系统设计中的重要组成部分,也是实现高效率

19、、高可靠和高速控制逻辑系统的重要途径,广义而论,只要是涉及到触发器的电路,都属于状态机,由此也可以看出其重要性。用VHDL设计的状态机根据不同的标准可以分为不同的形式:1)从状态机的信号输出方式上分:Mealy型和Moore型;2)从状态机的描述结构上分:单进程状态机和多进程状态机;3)从状态机表达形式上分:符号化状态机和确定状态编码状态机;4)从状态机编码方式上分:顺序编码状态机、一位热编码状态机和其他编码方式状态机。实际设计过程中,接触最多的分类方法就是Mealy型和Moore型;从输出时序上看,前者是异步输出,后者是同步输出。Mealy型状态机的输出是当前状态和所有输入信号的函数,它的输

20、出是输入变化后立即变化的,不依赖时钟的同步。Moore型状态的输出仅为当前状态的函数,但是在输入发生变化时还必须等到时钟的到来,输出才会变化,由此可见,Moore型要多等待一个时钟周期。本次设计中,电梯控制模块部分就利用Moore型状态机的方法实现对电梯运行状态的同步控制,通过将电梯运行过程分解为一些实质性的状态来进行转换,使得电梯的运行变得方便、快捷、稳定。4、电梯控制器的工作原理本次设计是实现6层电梯的运行控制,当在某一楼层按下上升或者下降请求按钮时,控制器响应该请求并控制电梯前往该楼层,当到达该楼层时,电梯开门,当进入电梯后,电梯关门,此时按下要到达的楼层按钮,控制器响应该请求并控制电梯

21、前往该楼层,当到达前往楼层后,电梯开门,走出电梯,然后关门.,就这样往复的实现电梯的控制功能。在电梯运行时遵循如下规则:当电梯处于上升模式时,只响应比电梯所在位置高的上楼信号,由下至上依次执行;直到最后一个上楼请求执行完毕,如有更高层有下楼请求时,则直接升到有下降请求的最高楼,然后进入下降模式,电梯处于下降模式时,则与上升相反。电梯的输入信号主要包括外部输入信号和内部输入信号;对于电梯外部输入信号主要有:每一层电梯门外都有上升请求和下降请求按钮,其中一楼电梯门外只有上升请求按钮,6楼电梯门外只有下降请求按钮。对于电梯内部输入信号主要有:6个前往楼层的按钮、提前关门按钮、延时关门按钮、电梯异常按

22、钮。电梯输出信号也主要包括外部输出信号和内部输出信号;对于电梯外部输出信号包括上升请求按钮和下降按钮指示信号、电梯当前所在楼层指示信号、电梯运行方向指示信号。电梯内部输出信号包括6个前往楼层按钮指示信号、超重等警告指示信号、电梯当前所在楼层指示信号、电梯运行方面指示信号。5、电梯控制系统的设计内容本次设计是基于FPGA的电梯控制器的研究,是电梯控制的核心技术,通过电梯控制器可以对电梯运行模式和状态进行全面的控制,这也是次设计的研究重要性;电梯的层数为6层,本次设计采用模块化设计方法,主要分为四大模块:时钟分频模块、按键处理模块、电梯运行控制模块、数码管显示模块。具方框原理图5-0如下:按腱处理

23、响应显示电睇斫4楼图5-0电梯控制器原理图5.1时钟分频模块时钟分频模块功能是将系统频率分频为两种不同的频率,一个是2分频时钟供电梯运行控制模块使用,另一个8分频时钟供其他模块使用,具源代码如下:时钟分频模块:clkdiv.vhdLIBRARYieee;USEieee.std_logic_1164.all;useieee.std_logic_unsigned.all;-定义所用的标准库ENTITYclkdivIS-时钟分频寄存器(CLKDIV)PORT(clk:inoutstd_logic;-系统时钟频率clk_2hz:outstd_logic;-2分频脉冲(作为电梯控制时钟clk_8hz:o

24、utstd_logic-8分频脉冲(作为按键处理时钟);-定义输入输出变量endclkdiv;ARCHITECTUREbehaveOFclkdivISsignalcnt:std_logic_vector(7downto0);-定义个8位的变量beginprocess(clk)-时钟分频进程beginifclk'eventandclk='1'then-时钟脉冲上升沿有效cnt<=cnt+1;clk_8hz<=cnt(1);-变量cnt的第1位输出2分频clk_2hz<=cnt(4);-变量cnt的第3位输出8分频endif;endprocess;endb

25、ehave;源程序编写完成后,进行调试、运行并生成模块文件,确认没有错误之后进行功能仿真、时序分析。其模块原理图5-1如下:clkdiv=.|田-elkclk2-L5 clk8-L6 insti.图5-1时钟分频模块原理图5.2 按键处理模块按键处理模块的功能是把电梯外部与内部的按键信号进行处理,把处理好的按键信号送到电梯运行控制模块;根据电梯外部按键信号转化为电梯运行控制模块的外部请求信号,根据电梯内部的按键信号转化为电梯运行控制模块的电梯前往信号,根据电梯楼层信号及时清除电梯外部与内部按键信号。其源代码编写如下:按键处理模块:keypro.vhdlibraryieee;useieee.st

26、d_logic_1164.all;useieee.std_logic_arith.all;useieee.std_logic_unsigned.all;entitykeyproisport(clk:instd_logic;-按键时钟reset:instd_logic;-异步置位按键fup:instd_logic_vector(5downto1);-上升请求按键(低电平有fdn:instd_logic_vector(6downto2);-下降请求按键(低电平有效)fuplight:outstd_logic_vector(6downto1);-电梯外部上升请求指示灯fdnlight:outstd_

27、logic_vector(6downto1);-电梯外部下降请求指示灯st:instd_logic_vector(6downto1);-电梯内部各层请求按键stlight:outstd_logic_vector(6downto1);-电梯内部各层请求指示灯position:inintegerrange1to6;-电梯位置指示clearup:instd_logic;-用于消除上升请求指示灯的信号cleardn:instd_logic-用于消除下降请求指示灯的信号);endkeypro;architecturebehaveofkeyprois-控制按键信号灯进程beginprocess(reset

28、,clk)beginifreset='0'thenstlight<="000000"fuplight<="000000"fdnlight<="000000"elseifclk'eventandclk='1'then-清除电梯当前外部上升请求信号和电梯内部前往该楼层信号ifclearup='1'thenstlight(position)<='0'fuplight(position)<='0'elsefuplight<

29、;=(notfup)&'0'stlight<=notst;endif;-清除电梯当前外部下降请求信号和电梯内部前往该楼层信号ifcleardn='1'thenstlight(position)<='0'fdnlight(position)<='0'elsefdnlight<='0'&(notfdn);stlight<=notst;endif;endif;endif;endprocess;endbehave;源程序编写完成后,进行编译、运行并生成模块文件,确认没有错误之后

30、进行波形仿真、时序分析。其模块原理图5-2如下:图5-2按键处理模块原理图5.3 电梯运行控制模块电梯运行控制模块是此次设计的核心,电梯运行的模式和状的态控制效果完全取决于电梯控制模块,它的功能是在系统2分频时钟下,根据按键处理模块输出的信号,控制电梯上升与下降运行模式和状态,当电梯关门时输出相应的上升与下降消除信号,同时输出电梯当前所在楼层的数码管输出信号与电梯运行方向,本次是设计的6层电梯控制系统,在源程序中具体要体现一下功能:1)每层电梯(除1楼和6楼外,1楼只有上升请求按钮,6楼只有下降请求按钮)入口出设置有上升和下降请求按钮,电梯内部设有要到达楼层的请求按钮1-6楼。2)设有电梯所处

31、位置数码管显示部分,电梯运行模式的LED显示部分。3)电梯能记忆电梯外部所有信号请求,并按照电梯运行规则进行顺序响应,每个电梯请求信号保留到电梯响应结束。4)电梯运行规则:当电梯上升时候,只响应比电梯所在楼层高的上楼信号,由下到上依次执行,直到最后一个上升请求信号执行完毕,当电梯下降时候,只响应比电梯所在楼层低的下楼信号,由上到下依次执行,直到最后一下下降请求信号执行完毕。电梯运行控制模块的源程序如下:电梯运行控制模块:elevrun.vhdlibraryieee;useieee.std_logic_1164.all;useieee.std_logic_arith.all;useieee.st

32、d_logic_unsigned.all;entityelerunisport(clk:instd_logic;-电梯时钟alarm:instd_logic;reset:instd_logic;-异步置位按键fuplight:instd_logic_vector(6downto1);-电梯外部上升请求指示灯fdnlight:instd_logic_vector(6downto1);-电梯外部下降请求指示灯stlight:instd_logic_vector(6downto1);-电梯内部各层请求指示灯position:outintegerrange1to6;-电梯位置指示doorlight:o

33、utstd_logic;-电梯门开关指示灯clearup:outstd_logic;-用于消除上升请求指示灯的信号cleardn:outstd_logic;-用于清除下降请求指示灯的信号yanshi:instd_logic;tiqian:instd_logic;udsig:bufferstd_logic_vector(7downto0)-电梯升降指示);endelerun;architecturesixfliftofelerunistypelift_stateis(stopon1,dooropen,doorclose,doorwait1,doorwait2,doorwait3,doorwait

34、4,doorwait5,doorwait6,up,down,stop);signalmylift:lift_state;signalpos:integerrange6downto1;signaludflag:std_logic;signalposreg:integerrange1to6;signalone:std_logic_vector(6downto1);beginprocess(reset,clk)-控制电梯状态的进程beginif(reset='1'oralarm='1')thenmylift<=stopon1;clearup<='1

35、'cleardn<='1'elseif(clk'eventandclk='1')thencasemyliftiswhenstopon1=>doorlight<='0'posreg<=1;mylift<=doorwait1;clearup<='0'cleardn<='0'udsig<="00000010"whendoorwait1=>iftiqian='1'thenmylift<=doorclose;els

36、ifyanshi='1'thenmylift<=doorwait1;elsemylift<=doorwait2;endif;clearup<='0'cleardn<='0'whendoorwait2=>iftiqian='1'thenmylift<=doorclose;elsifyanshi='1'thenmylift<=doorwait1;elsemylift<=doorwait3;endif;clearup<='0'cleardn<=&

37、#39;0'whendoorwait3=>iftiqian='1'thenmylift<=doorclose;elsifyanshi='1'thenmylift<=doorwait1;elsemylift<=doorwait4;endif;clearup<='0'cleardn<='0'whendoorwait4=>iftiqian='1'thenmylift<=doorclose;elsifyanshi='1'thenmylift<=d

38、oorwait1;elsemylift<=doorwait5;endif;clearup<='0'cleardn<='0'whendoorwait5=>iftiqian='1'thenmylift<=doorclose;elsifyanshi='1'thenmylift<=doorwait1;elsemylift<=doorwait6;endif;clearup<='0'cleardn<='0'whendoorwait6=>mylift&l

39、t;=doorclose;cleardn<=(notudflag);clearup<=udflag;whendoorclose=>doorlight<='0'clearup<='0'cleardn<='0'ifposreg=6thenif(stlight="000000"andfuplight="000000"andfdnlight="000000")thenmylift<=doorclose;udsig<="00000010&q

40、uot;elsifstlight>"000000"orfdnlight>"000000"orfuplight>"000000"thenmylift<=down;udsig<="01111010"udflag<='1'endif;elsifposreg=1thenif(stlight="000000"andfuplight="000000"andfdnlight="000000")thenmylift<

41、;=doorclose;udsig<="00000010"elsifstlight>"000000"orfdnlight>"000000"orfuplight>"000000"thenmylift<=up;udsig<="01111100"udflag<='0'endif;elseif(stlight="000000"andfuplight="000000"andfdnlight="000

42、000")thenmylift<=doorclose;udsig<="00000010"elsifstlight>=(one+one)orfuplight>=(one+one)orfdnlight>=(one+one)thenmylift<=up;udsig<="01111100"udflag<='0'elsif(stlight+stlight)<=oneor(fuplight+fuplight)<=oneor(fdnlight+fdnlight)<=onethe

43、nmylift<=down;udsig<="01111010"udflag<='1'elsemylift<=doorclose;endif;endif;whenup=>clearup<='0'cleardn<='0'ifposreg<6and(stlight(posreg)='1'orfuplight(posreg)='1'or(stlight="000000"andfdnlight(posreg)='1')th

44、enmylift<=stop;if(stlight="000000"andfdnlight(posreg)='1'andfuplight="000000")thenudflag<='1'endif;elsifposreg=6and(stlight(posreg)='1'orfuplight(posreg)='1'or(fuplight="000000"andfdnlight(posreg)='1')thenmylift<=stop;els

45、ifposreg=6and(fdnlight>"000000"orfuplight>"000000")thenmylift<=stop;elsemylift<=up;udsig<="01111100"udflag<='0'ifposreg<6thenposreg<=(posreg+1);endif;endif;whendown=>clearup<='0'cleardn<='0'ifposreg>1and(stligh

46、t(posreg)='1'orfdnlight(posreg)='1'or(stlight="000000"andfuplight(posreg)='1')thenmylift<=stop;if(stlight="000000"andfuplight(posreg)='1'andfdnlight="000000")thenudflag<='0'endif;elsifposreg=1and(stlight(posreg)='1'o

47、rfdnlight(posreg)='1'or(fdnlight="000000"andfuplight(posreg)='1')thenmylift<=stop;elsifposreg=1and(fdnlight>"000000"orfuplight>"000000")thenmylift<=stop;elsemylift<=down;udsig<="01111010"udflag<='1'ifposreg>1then

48、posreg<=(posreg-1);endif;endif;whenstop=>mylift<=dooropen;clearup<='0'cleardn<='0'whendooropen=>doorlight<='1'clearup<='0'cleardn<='0'mylift<=doorwait1;whenothers=>mylift<=doorwait1;clearup<='0'cleardn<='0&

49、#39;endcase;endif;endif;endprocess;position<=posreg;process(clk,posreg)beginifclk'eventandclk='1'thencaseposregiswhen1=>one<="000001"when2=>one<="000010"when3=>one<="000100"when4=>one<="001000"when5=>one<="0100

50、00"when6=>one<="100000"endcase;endif;endprocess;end;电梯控制运行模块源程序编写完成后,进行编译、运行并生成模块文件,确clkalarmposition2.0doafhg'itclearupcleardnudsig7.O认没有错误之后进行波形仿真、时序分析。其模块原理图5-3如下:;nipigh4|61|fdnligrw6.1!yaiKhitiqian图5-3电梯运行控制模块原理图5.4数码管显示模块数码管显示模块的功能主要是把楼层信号转化为数字信号,通过数码管进行显示,显示电梯运行到的楼层指示

51、,本次设计用的是共阴极数码管,其源程序如下:数码管显示模块:floorled.vhdlibraryieee;useieee.std_logic_1164.all;-定义所用的标准库entityfloorledisport(clk:instd_logic;-系统时钟频率position:instd_logic_vector(2downto0);-电梯位置变量posled:outstd_logic_vector(7downto0)-电梯楼层显示变量);-定义输入输出变量endfloorled;architecturebehaveoffloorledisbeginprocess(clk)-时钟分频进

52、程beginifclk'eventandclk='1'then-时钟脉冲上升沿有效casepositioniswhen"001"=>posled<="01100000”;-显示数字1when"010"=>posled<="11011010”;-显示数字2when"011"=>posled<="11110010”;-显示数字3when"100"=>posled<="01100110”;-显示数字4when&

53、quot;101"=>posled<="10110110"-显示数字5when"110"=>posled<="10111110"-显示数字6whenothers=>posled<="01100000"-显示数字1endcase;endif;endprocess;endbehave;数码管显示模块源程序编写完成后,进行编译、运行并生成模块文件,确认没有错误之后进行波形仿真、时序分析。其模块原理图5-4如下:图5-4数码管显示模块原理图电梯控制器的所有模块都已经设计完成,然

54、后将这四个模块进行综合,将各个模块的相关信号进行连接,并进行功能仿真和时序分析。5.5电梯超重控制可行性分析经过我细心观察和亲自乘坐电梯的感受,现在很多电梯对于超重的处理存在一定的不完善,分析主要原因是在于对达到超重前的重量控制没有一定的预留,现在的电梯在运行过程中只要是没有达到超重值,那么在其运行过程中,无论是有上升还是下降请求信号,总会对其进行响应并开门,即使此时不能上一个人,但是由于没有达到超重值,门还是会开的;这样其实更浪费大家的时间,如果说,我们在这个过程中通过对这个超重范围进行一定的控制,就不会造成这样的情况,也正因为如此,本次设计提出对超重控制的改进分析。具体实现的原理方框图5-5如下:几电式传感器信号采集运放信号放大AAT)转换模数转换按键处珅模块通过对超重信号处理来控制电梯运行方式正常情况下电梯运行请求信号也

温馨提示

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

评论

0/150

提交评论