基于FPGA的电梯控制器设计

上传人:都** 文档编号:6027315 上传时间:2020-02-14 格式:DOC 页数:33 大小:1,016KB
返回 下载 相关 举报
基于FPGA的电梯控制器设计_第1页
第1页 / 共33页
基于FPGA的电梯控制器设计_第2页
第2页 / 共33页
基于FPGA的电梯控制器设计_第3页
第3页 / 共33页
点击查看更多>>
资源描述
中国地质大学(武汉)远程与继续教育学院毕业设计(论文)远程与继续教育学院本科毕业论文(设计)基于FPGA的电梯控制器设计学习中心:内 蒙 古 学 习 中 心学 号: 090F27143002 姓 名: 朱 晓 峰 专 业: 机械设计制造及其自动化 指导教师: 曹 雪 林 2016年9月25日中国地质大学(武汉)远程与继续教育学院本科毕业论文(设计)指导教师指导意见表学生姓名:朱晓峰 学号:090F27143002 专业:机械设计制造及其自动化毕业设计(论文)题目:基于FPGA的电梯控制器设计 指导教师意见:(请对论文的学术水平做出简要评述。包括选题意义;文献资料的掌握;所用资料、实验结果和计算数据的可靠性;写作规范和逻辑性;文献引用的规范性等。还须明确指出论文中存在的问题和不足之处。)论文选题符合本专业方向,经多次修改内容及格式基本满足地大本科论文撰写要求。内容叙述条理较清晰、层次分明、逻辑性较强。语言表达较为流畅。文献、图的引入恰当、准确。对文章阐述起到支撑作用。不足之处:该控制器与其他控制方式的优越性未在文中阐述且无案例说明缺乏其实用性与创新性不足。指导教师结论:合格指导教师姓名曹雪林所在单位呼和浩特职业学院指导时间2016.7.1010.4中国地质大学(武汉)远程与继续教育学院 本科毕业设计(论文)评阅教师评阅意见表 学生姓名:朱晓峰 学号:090F27143002 专业:机械设计制造及其自动化毕业设计(论文)题目:基于FPGA的电梯控制器设计 评阅意见:(请对论文的学术水平做出简要评述。包括选题意义;文献资料的掌握;所用资料、实验结果和计算数据的可靠性;写作规范和逻辑性;文献引用的规范性等。还须明确指出论文中存在的问题和不足之处。)论文选题符合专业培养要求,具有一定的实用价值。论文介绍了基于FPGA的电梯控制器设计,并对设计的电梯控制器进行了仿真。论文参考资料详实,结构完整,论述逻辑结构合理,层次比较清晰,语言通顺,格式基本规范,字数符合要求。总的来说,论文基本达到了本科毕业设计的要求。修改意见:(针对上面提出的问题和不足之处提出具体修改意见。评阅成绩合格,并可不用修改直接参加答辩的不必填此意见。)修改意见在文中批注,请按批注进行修改。毕业设计(论文)评阅成绩 (百分制):83评阅结论:同意答辩评阅人姓名李昌平所在单位中国地质大学(武汉)评阅时间2016-10-17论文原创性声明本人郑重声明:本人所呈交的本科毕业论文基于FPGA的电梯控制器设计,是本人在导师的指导下独立进行研究工作所取得的成果。论文中引用他人的文献、资料均已明确注出,论文中的结论和结果为本人独立完成,不包含他人成果及使用过的材料。对论文的完成提供过帮助的有关人员已在文中说明并致以谢意。本人所呈交的本科毕业论文没有违反学术道德和学术规范,没有侵权行为,并愿意承担由此而产生的法律责任和法律后果。 论文作者(签字):朱晓峰 日期:2016年9月20日摘 要本设计采用的正式FPGA来控制电梯的逻辑运行,具有编程灵活,性能可靠等优点,而且FPGA在去电后配置数据自动消失,用户可以控制加载进程,在现场修改器件的逻辑功能。在设计过程中我们首先把整个电梯设计根据功能分成若干个功能模块,然后理清各个模块的时序,一以便将各个功能模块综合在一起,能够公用书籍总线,使其能正常工作不受干扰,有些程序在仿真的时候其时序是完全正确的,但是当程序下载到芯片上之后就会发现错误了。这主要是因为各个功能在实现时会有延时,但这在仿真时是显示不出来的。因此编程时要注意在选芯片之前,要先将计算出的数据信号先放到数据总线上。FPGA在实现电梯控制方面比较灵活,可以通过对程序的修改来达到控制多个楼层,本设计在电梯控制方面做的比较全面,比如设计了内外电梯的指示系统和当前电梯运行情况显示,以及超载报警等,能够满足一般的载客电梯的工作功能需要。关键词: 1、电梯 2、设计 3、FPGA/CPLD 4、控制器目 录 前言1一、FPGA概述2(一)FPGE的定义2(二)FPGE的特点2(三)FPGA工作原理3二、总体设计方案介绍4(一)利用FPGA/CPLD进行电梯控制器设计的一般流程4(二)电梯控制器的系统设计方案14(三)电梯控制器的系统设计方案25三、单元模块设计7(一)电梯控制系统的设计7(二)电梯控制器系统组成及模块设计介绍8(三)模块设计程序硬件分析和软件分析9(四)顶层文件原理图及其各部件仿真19四、系统功能23五、设计总结24致谢25参考文献26 前言现代社会,伴随着不断发展的城市建设,日趋增多的高层建筑,作为高层建筑中垂直运行的交通工具,电梯已经与人们的日常生活密不可分。目前电梯控制系统主要有三种控制方式:继电器控制系统(“早期安装的电梯多位继电器控制系统”)、FPGA/CPLD的控制系统、微机控制系统。继电器控制系统由于可靠性差、故障率高、控制方式不灵活以及消耗功率大等缺点,目前已逐渐被淘汰。微机控制系统虽然在智能控制方面有较强的功能,但也存在一些缺陷,例如:抗扰性差,系统设计复杂,一般维修人员难以掌握其维修技术等。FPGA/CPLD控制系统由于具有设计和调试周期较短,抗干扰性强,运行可靠性高,使用维修方便等优点,而倍受人们的重视,已经成为目前在电梯控制系统中使用最多的控制方式,同时也广泛用于传统继电器控制系统的技术改造。一、FPGA概述(一)FPGE的定义FPGE?FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。以硬件描述语言(Verilog或VHDL)所完成的电路设计,可以经过简单的综合与布局,快速的烧录至 FPGA 上进行测试,是现代 IC设计验证的技术主流。这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如AND、OR、XOR、NOT)或者更复杂一些的组合功能比如解码器或数学方程式。在大多数的FPGA里面,这些可编辑的元件里也包含记忆元件例如触发器(Flipflop)或者其他更加完整的记忆块。系统设计师可以根据需要通过可编辑的连接把FPGA内部的逻辑块连接起来,就好像一个电路试验板被放在了一个芯片里。一个出厂后的成品FPGA的逻辑块和连接可以按照设计者而改变,所以FPGA可以完成所需要的逻辑功能。FPGA一般来说比ASIC(专用集成电路)的速度要慢,实现同样的功能比ASIC电路面积要大。但是他们也有很多的优点比如可以快速成品,可以被修改来改正程序中的错误和更便宜的造价。厂商也可能会提供便宜的但是编辑能力差的FPGA。因为这些芯片有比较差的可编辑能力,所以这些设计的开发是在普通的FPGA上完成的,然后将设计转移到一个类似于ASIC的芯片上。另外一种方法是用CPLD(Complex Programmable Logic Device,复杂可编程逻辑器件)。(二)FPGE的特点FPGE?1)采用FPGA设计ASIC电路(专用集成电路),用户不需要投片生产,就能得到合用的芯片。2)FPGA可做其它全定制或半定制ASIC电路的中试样片。3)FPGA内部有丰富的触发器和I/O引脚。4)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。5) FPGA采用高速CMOS工艺,功耗低,可以与CMOS、TTL电平兼容。可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活。(三)FPGA工作原理FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输入输出模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。 现场可编程门阵列(FPGA)是可编程器件,与传统逻辑电路和门阵列(如PAL,GAL及CPLD器件)相比,FPGA具有不同的结构。FPGA利用小型查找表(161RAM)来实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器再来驱动其他逻辑电路或驱动I/O,由此构成了既可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到I/O模块。FPGA的逻辑是通过向内部静态存储单元加载编程数据来实现的,存储在存储器单元中的值决定了逻辑单元的逻辑功能以及各模块之间或模块与I/O间的联接方式,并最终决定了FPGA所能实现的功能,FPGA允许无限次的编程。二、总体设计方案介绍(一)利用FPGA/CPLD进行电梯控制器设计的一般流程通常归纳为以下7个步骤。第1步:设计输入。在传统设计中,设计人员是应该传统的原理图输入方法来开始设计的。自90年代初,Verilog、VHDL、AHDL等硬件描述语言的输入方法得到了广大工程设计人员的认可。第2步:前仿真。所设计的电路必须在布局线前验证,目的主要是在仿真时,验证电路功能是否有效。在ASIC设计中,这一步骤称为第一次Sign-Off。第3步:设计输入编译。设计输入之后就有一个从高层次系统行为设计向低层次门级逻辑电路的转化翻译过程,即把设计输入的某种或某几种数据格式(网表),以求达到与工艺无关。第4步:设计输入的优化。对于上述综合生成的网表,根据布尔方程功能等效的原则,用更小更快的综合结果替代一些复杂的单元,并与指定的库映射生成新的网表,这是硬件描述语言输入方式中减小电路规模的一条必由之路。第5步:布局布线。当初步的仿真被验证后,就开始布局布线。这一布局布线相对规划出ASIC和FPGA/CPLD的设计第6步:后仿真。设计人员需要利用在布局布线中获得的更精确的RC参数再次验证电路的功能和时序。在ASIC设计中,这一步骤称为第二次Sign-off。第7步:流片。布局布线和后仿真完成之后,当需要大批量生产该芯片时,就可以开始ASIC芯片的投产。(二)电梯控制器的系统设计方案1设计方案1与设计方案2没有什么区别,为什么要列出两个方案?本次试验主要完成4层电梯控制器的设计,实现原理主要利用EDA层次设计思想,运用QuartusII软件的操作方法,首先完成三个模块的底层文件设计,此三个模块分别是控制器,报警器,显示器(分别用VHDL语言程序作出后,并打包成模块);利用原理图输入设计的方法将此三个模块做成整个控制器的设计。原理框图如图2-1图2-1 模块原理图框图其原理图输入如下:图2-2 原理图设计图(三)电梯控制器的系统设计方案2本次试验试验基于FPGA电梯控制器的设计流程主要完成4层电梯控制器的设计,实现原理主要利用EDA层次设计思想,运用QuartusII软件的操作方法,首先完成两个模块的底层文件设计,此三个模块分别是主控制器(超重警告,到达下楼信号,外人请求信号)、分频器,最后分别用VHDL语言程序作出后,并打包成模块;利用原理图输入设计的方法将此三个模块做成整个控制器的设计。原理框图如图1-3图2-3 电梯方向优先控制方式控制系统方框图三、单元模块设计(一)电梯控制系统的设计在此本组采用方案(二),控制器的功能模块如图3-1所示,包括主控制器、分控制器、楼层选择器、状态显示器、译码器和楼层显示器。乘客在电梯中选择所要到达的楼层,通过主控制器的处理,电梯开始运行,状态显示器显示电梯的运行状态,电梯所在的楼层数通过译码器译码从而在楼层显示器中显示。分控制器把有效的请求传给主控的楼层数。由于分控制器相对简单很多,所以主控制器是核心部分。图3-1 电梯控制器原理框图1、电梯控制器系统一般要求1)每层电梯入口处设有上下请求开关各1个,电梯内设有乘客到达层次的数字开关。电梯当前所在的楼层位置用两位数码管显示,用两只发光二极管显示开门/关门状态,用发光二极管显示每层的上下请求状态。2)显示电梯当前所处位置和电梯上行、下行及开门、关门状态。3)电梯到达有停靠站请求的楼层后,电梯门就会自动打开门指示灯亮,开门6秒后,电梯门自动关闭(开门指示等灭)电梯继续运行。4)能记忆电梯内外的所有请求信号,并按照电梯运行的规则次第响应,即电梯上升时只能响应高层的呼唤的请求,下降时只响应低层的呼唤请求,每个请求信号保留到执行后撤出。5)当没有请求信号时,电梯停在一楼。6)电梯有超载提示。当电梯内部超载过电梯规定的人数或重量后,电梯会自动报警,提示电梯已超载。(二)电梯控制器系统组成及模块设计介绍1、系统组成:该设计采用方向优先控制方案,方向优先控制是指电梯运行到某一楼层时先考虑这一楼层是否有请求:有,则停止;无,则继续前进。停下来后再启动时的步骤:考虑前方上方或下方是否有请求:有,则继续前进;无,则停止;检测后方是否有请求,有请求则转向运行,无请求则维持停止状态。2、模块设计(1)设计原理电梯升降原理是利用步进电机在控制器的驱动下旋转固定角度到达指定楼层的即:高度H=R楼层数N=HL式中L为单位楼层的高度;R为步进电机的转轴半径;为步进电机旋转的角度。(2)设计思想及设计方案解释 电梯升降控制的方法有多种,电机也是多种多样,步进电机能准确的旋转指定角度并具有锁死功能是一种理想的电梯驱动电机。本课程设计介绍的是用FPGA进行控制步进电机升降从而模拟出电梯的功能。本系统采用了多CPU协同操作,这样简化明晰了各个模块的功能,便于调试和维护。两个大的模块分别为:主控制器模块(电梯外控制模块,电梯内控制模块,中央运算模块),分频器模块。电梯内、外控制模块:完成对电梯外部4个楼层的按键识别,并点亮与用户按键对应的指示灯通知用语系统已经接收按键请求。当接收到请求后,该模块将向中央运算器发送请求楼层信号,便于中央运算处理。同时当电梯到达当前楼层时该模块还将熄灭相应的指示灯。中央运算模块:负责对电梯外控制模块,电梯内控制模块,传过来的信息进行分类收集,按照给定的算法做出相的计算和任务调度,并将运算结果交由步进电机控制模块,同时,中央运算模块将相应楼层送入液晶显示器显示。分频器模块:接受中央运算模块的楼层和方向数据旋转相应的转数后停止,发出作业完成信号等待中央运算模块的再次调度上下行时间控制:电梯的行驶速度设定为常数,上下行一层需时2秒。用计数器count2控制。上电锁控制:电梯有控制锁,用lock信号表示。开锁上电,锁上时电梯不能运行。电梯运行锁用拨动开关代替,低电平上锁,高电平解锁。上电后初始化系统各按钮指示灯,内部变量。故障控制:电梯有重量限制,超重用一拨动开关代替,用overweight信号表示,在关门时检测,高电平有效,超载时电梯不能运行,直到超载信号被清除,电梯内设有超载灯;电梯内设有事故报警trouble按钮(通话器),用一拨动开关代替,用trouble信号表示,高电平有效,任何时候报警时电梯不能继续运行,保持当前状态不变,并有warning指示灯,信号保留至事故消除。电梯门控制:到达停靠层时电梯门自动打开,设有开关门LED指示开关门情况,用door表示。默认开门停留时间是6秒,电梯内设有手动开关门按钮,可以人为控制延长开门时间或立即关门。(3)设计方案总结1)外部数据高速采集模块设计外部信号采集、处理要求电梯控制器对外部请求信号的实时、准确采集准确、实时的捕捉楼层到达信号;有防止楼层到达信号、外部请求信号的误判。2)信号存储模块电梯控制器的请求输入信号有27个(电梯外有9个上升请求和9个下降请求的用户输入端口,电梯内有9个请求用户输入端口),由于系统对内、外请求没有设置优先级,各楼层的内、外请求信号被采集后可先进行运算,再存到存储器内。3)基于FPGA的中央处理模块中央数据处理模块是系统的核心,通过对存储的数据(含请求、到达楼层等信号)进行比较、判断以驱动系统状态的流转。电梯工作过程中共有9种状态:等待、上升、下降、开门、关门、停止、休眠、超载报警以及故障报警状态。一般情况下,电梯工作起始点是第一层,起始状态是等待状态,启动条件是收到上升请求。(三)模块设计程序硬件分析和软件分析1、电梯硬件控制模块外控制模块电梯外控制模块是负责收集电梯外部的人员按键和控制相应LED灯亮灭的模块,考虑到每一层楼都会有向上和向下两个运行方向,所以在4个楼层里一共需要4个按键和4个LED灯。而每个按键按下时会点亮亮对应的LED灯,当电梯到达该楼层时就熄灭该楼层对应运动方向的LED灯。当灯熄灭的时候就表示电梯已经执行了相应的操作了。考虑到系统I/O资源有限。其模块电路如图3-2所示:3-2 电梯外硬件电路2、电梯硬件控制模块内控制模块电梯内控制模块是负责收集电梯内部的人员按键和控制相应LED灯亮灭的模块。它安装在电梯内部,一共需要4个按键和4个LED灯。而每个按键按下时会点亮亮对应的LED灯,当电梯到达该楼层时就熄灭该楼层的LED灯。考虑到系统I/O资源需求,4个按键值采用挂在PORTB口。其模块电路如图3-3所示:图3-3电梯内硬件电路3、电梯硬件控制模块软件设计(1)主控制器的功能1)完成4个楼层多用户的载客服务控制。 2)电梯运行时显示电梯的运行方向和所在的楼层。 3)当电梯到达选择的楼层时,电梯自动开门。 4)具有提前关电梯门和延时关电梯门的功能。 5)响应分控制器的有效请求,如果到达有请求的楼层,电梯自动开门。程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity tenlift is port ( clk : in std_logic; -时钟信号overweight,close,quick,clr : in std_logic; -超载up1,up2,up3,up4,up5,up6,up7,up8,up9: in std_logic; -电梯外人的上升请求信号down2,down3,down4,down5,down6,down7,down8,down9,down10 : in std_logic; -电梯外人的下降请求信号a1,a2,a3,a4,a5,a6,a7,a8,a9,a10 : in std_logic; -电梯内人的请求信号gate1,gate2,gate3,gate4,gate5,gate6,gate7,gate8,gate9,gate10 : in std_logic; -到达楼层信号door : out std_logic_vector(1 downto 0); -电梯门控制信号led_c_f : out std_logic_vector(6 downto 0); -电梯所在楼层显示led_o_u:out std_logic_vector(9 downto 0); -电梯外人上升请求信号显示led_o_d:out std_logic_vector(9 downto 0); -电梯外人下降请求信号显示led_i_a : out std_logic_vector(9 downto 0); -电梯内请求信号显示warning : out std_logic; -看门狗报警信号up_down,overweight_warning : out std_logic; -电梯运动方向显示,超载警告信号up,down : out std_logic ); -电机控制信号和电梯运动end ;architecture oo of tenlift issignal ina1,ina2,ina3,ina4,ina5,ina6,ina7,ina8,ina9,ina10:std_logic; -电梯内人请求信号寄存信号signal upo1,upo2,upo3,upo4,upo5,upo6,upo7,upo8,upo9:std_logic; -电梯外人上升请求信号寄存信号signal downo2,downo3,downo4,downo5,downo6,downo7,downo8,downo9,downo10:std_logic; -电梯外人下降请求信号寄存信号signal q:integer range 0 to 1; signal q1:integer range 0 to 6; signal q2:integer range 0 to 9; -看门狗计数器signal dd,cc_u,cc_d,dd_cc:std_logic_vector(9 downto 0); -电梯内外请求信号寄存器signal opendoor:std_logic; -开门信号signal updown:std_logic; -电梯运动方向信号寄存器signal en_up,en_dw:std_logic; -预上升、预下降使能信号begincom:process(clk)beginif clkevent and clk=1 then if clr=0 then q1=0;q2=0;warning=0; -清除故障报警 elsif overweight=0 then overweight_warning=1; q1=3 then door=10; else door=00;end if; elsif q=1 then q=0;overweight_warning=0;if q2=3 then warning=1; -故障报警elseif opendoor=1 then door=10;q1=0;q2=0;up=0;down=0; -开门操作elsif en_up=1 then if close=0 then door=10;q1=0;q2=q2+1; elsif quick=0 then q1=3; -提前关门elsif q1=6 then door=00;updown=1;up=3 then door=01;q1=q1+1; -电梯进入关门状态else q1=q1+1;door=00; end if;elsif en_dw=1 then -下降预操作if close=0 then door=10;q1=0;q2=q2+1; elsif quick=0 then q1=3; elsif q1=6 then door=00;updown=0;down=3 then door=01;q1=q1+1; else q1=q1+1;door=00; end if;end if; if gate1=0 then led_c_f=1001111; -电梯到达1楼,数码管显示1 if ina1=0 or upo1=0 then ina1=1; upo1=1;opendoor0000000001 then en_up=1; opendoor=0; -有上升请求,则电梯进入预备上升状态elsif dd_cc=0000000000 then opendoor=0; -无请求时,电梯停在1楼待机 end if; elsif gate2=0 then led_c_f=0100100; -电梯到达2楼,数码管显示2if updown=0 then if ina2=0 or upo2=0 then ina2=1; upo2=1; opendoor0000000011 then en_up=1; opendoor=0; -有上升请求,则电梯进入预备上升状态 elsif dd_cc0000000010 then en_dw=1; opendoor=0; -有下降请求,则电梯进入预备下降状态 end if; elsif ina2=0 or downo2=0 then ina2=1; downo2=1;opendoor=1; -电梯前一运动状态为下降,有当前层的请求,则电梯进入开门状态elsif dd_cc0000000010 then en_dw=1; opendoor0000000011 then en_up=1; opendoor=0; -有上升请求,则电梯进入预备上升状态 end if;elsif gate3=0 then led_c_f=0110000; -电梯到达3楼,数码管显示3 if updown=0 then if ina3=0 or upo3=0 then ina3=1; upo3=1;opendoor0000000111 then en_up=1; opendoor=0; elsif dd_cc0000000100 then en_dw=1; opendoor=0; end if;elsif ina3=0 or downo3=0 then ina3=1; downo3=1; opendoor=1; elsif dd_cc0000000100 then en_dw=1; opendoor0000000111 then en_up=1; opendoor=0; end if;elsif gate4=0 then led_c_f=0011001; -电梯到达4楼,数码管显示4 if updown=0 then if ina4=0 or upo4=0 then ina4=1; upo4=1; opendoor0000001111 then en_up=1; opendoor=0; elsif dd_cc0000001000 then en_dw=1; opendoor=0; end if;elsif ina4=0 or downo4=0 then ina4=1; downo4=1; opendoor=1; elsif dd_cc0000001000 then en_dw=1; opendoor0000001111 then en_up=1; opendoor=0; end if;elsif gate5=0 then led_c_f=0010010; -电梯到达5楼,数码管显示5 if updown=0 then if ina5=0 or upo5=0 then ina5=1; upo5=1;opendoor0000011111 then en_up=1; opendoor=0; elsif dd_cc0000010000 then en_dw=1; opendoor=0; end if;elsif ina5=0 or downo5=0 then ina5=1; downo5=1;opendoor=1; elsif dd_cc0000010000 then en_dw=1; opendoor0000011111 then en_up=1; opendoor=0; end if;elsif gate6=0 then led_c_f=0000010; -电梯到达6楼,数码管显示6if updown=0 then if ina6=0 or upo6=0 then ina6=1; upo6=1; opendoor0000111111 then en_up=1; opendoor=0; elsif dd_cc0000100000 then en_dw=1; opendoor=0; end if;elsif ina6=0 or downo6=0 then ina6=1; downo6=1; opendoor=1; elsif dd_cc0000100000 then en_dw=1; opendoor0000111111 then en_up=1; opendoor=0; end if;elsif gate7=0 then led_c_f=1111000; -电梯到达7楼,数码管显示7 if updown=0 then if ina7=0 or upo7=0 then ina7=1; upo7=1; opendoor0001111111 then en_up=1; opendoor=0; elsif dd_cc0001000000 then en_dw=1; opendoor=0; end if;elsif ina7=0 or downo7=0 then ina7=1; downo7=1; opendoor=1; elsif dd_cc0001000000 then en_dw=1; opendoor0001111111 then en_up=1; opendoor=0; end if;elsif gate8=0 then led_c_f=0000000; -电梯到达8楼,数码管显示8if updown=0 then if ina8=0 or upo8=0 then ina8=1; upo8=1; opendoor0011111111 then en_up=1; opendoor=0; elsif dd_cc0010000000 then en_dw=1; opendoor=0; end if;elsif ina8=0 or downo8=0 then ina8=1; downo8=1; opendoor=1; elsif dd_cc0010000000 then en_dw=1; opendoor0011111111 then en_up=1; opendoor=0; end if;elsif gate9=0 then led_c_f=0010000; -电梯到达9楼,数码管显示9if updown=0 then if ina9=0 or upo9=0 then ina9=1; upo9=1; opendoor0111111111 then en_up=1; opendoor=0; elsif dd_cc0100000000 then en_dw=1; opendoor=0; end if;elsif ina9=0 or downo9=0 then ina9=1; downo9=1; opendoor=1; elsif dd_cc0100000000 then en_dw=1; opendoor0111111111 then en_up=1; opendoor=0; end if;elsif gate10=0 then led_c_f=1000000;if updown=0 then -电梯到达10楼,数码管显示0 if ina10=0 or downo10=0 then ina10=1; downo10=1;opendoor=1; elsif dd_cc1000000000 then en_dw=1; opendoor=0; end if;else en_up=0;en_dw=0; -电梯进入上升或下降状态end if;end if;end if;else q=1;overweight_warning=0; -清除超载报警if a1=0 then ina1=a1; -对电梯内人请求信号进行检测和寄存 elsif a2=0 then ina2=a2;elsif a3=0 then ina3=a3;elsif a4=0 then ina4=a4;elsif a5=0 then ina5=a5;elsif a6=0 then ina6=a6;elsif a7=0 then ina7=a7;elsif a8=0 then ina8=a8;elsif a9=0 then ina9=a9;elsif a10=0 then ina10=a10;end if;if up1=0 then upo1=up1; elsif up2=0 then upo2=up2;elsif up3=0 then upo3=up3;elsif up4=0 then upo4=up4;elsif up5=0 then upo5=up5;elsif up6=0 then upo6=up6;elsif up7=0 then upo7=up7;elsif up8=0 then upo8=up8;elsif up9=0 then upo9=up9;end if; if down2=0 then downo2=down2; elsif down3=0 then downo3=down3;elsif down4=0 then downo4=down4;elsif down5=0 then downo5=down5;elsif down6=0 then downo6=down6;elsif down7=0 then downo7=down7;elsif down8=0 then downo8=down8;elsif down9=0 then downo9=down9;elsif down10=0 then downo10=down10;end if; dd=ina10&ina9&ina8&ina7&ina6&ina5&ina4&ina3&ina2&ina1; -电梯内人请求信号并置 cc_u=0&upo9&upo8&upo7&upo6&upo5&upo4&upo3&upo2&upo1; -电梯外人上升请求信号并置 cc_d=downo10&downo9&downo8&downo7&downo6&downo5&downo4&downo3&downo2&0; dd_cc=dd or cc_u or cc_d; end if; up_down=updown; led_i_a=dd; led_o_u=cc_u; led_o_d=cc_d; end if; end process; end oo;4、分频制器的功能:1)显示电梯的运行状态和所在的楼层。 2)显示乘客的上升和下降请求。程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity fenping isport(clk50 : in std_logic;clk1: out std_logic);end ;architecture oo of fenping issignal c0 : std_logic;beginprocess(clk50,c0)variable num : integer range 0 to 2;beginif(rising_edge(clk50) thenif(num=2) thennum:=0;c0=not c0;elsenum:=num+1;end if;end if;clk1=c0;end process;end oo;5、系统误差分析为了防止在测量过程中测距仪的抖动而引起的测量误差,一般情况下应该测量几次而取其平均植。以上数据都是在固定测距仪的情况下所测得的。但是由于系统的分辨率为1us,系统引起的固定误差约为0.3mm,再加上本设计只转动角度,而没有考虑其它因素(如:摩擦等)的影响,所以在测量的时候给测量结果带来了一定的误差。从以上数据可见精度达到设计要求,并有实际使用价值。最后经过设计的基于PIC单片机的电梯升降系统参数如下:系统升降范围14楼。测量误差1cm。工作温度范围:常温。工作电压范围:510V。(四)顶层文件原理图及其各部件仿真1、顶层文件原理图图3-4原理图设计图2、仿真波形图到达楼下信号仿真如图图3-5楼下信号仿真图图太大,请调整大小;图名的字体大小不符合要求。下同超重警告仿真如图图3-6 超重信号仿真图同上外人请求信号:注解:由2HZ时钟信号充当敏感信号,触发各个上升或者下降请求,在电梯内外各有数码管显示楼层、请求和电梯运动方向信号,由电梯门控制信号控制电梯到达楼层的开、关门,电梯设有超载、关门中断、提前关门、和看们狗等警报系统,硬件上使用FPGA来实现,FPGA在实现电梯控制方面比较灵活,可以通过对程序的修改来达到控制多个楼层,能够满足一般的载客电梯的工作功能需要。图3-7 外人请求信号仿真图同上分频器仿真:图3-8分频器仿真图控制系统信号列表:表3-1 控制系统信号列表表名字体大小不符合要求,请检查全文,并修改四、系统功能此系统是个4层楼的电梯控制器设计。该控制器可控制电梯完成4层楼的载客服务而且遵循方向优先原则,关门过程可开门,任何时候可报警,关门时检测超载,报警为闪烁显示。要求设计的电子作品结构简单、使用灵活、通用性强。内部请求优先控制方式方案:类似于出租车的工作方式,先将车上的人送至目的地,再去载客。作为通用型电梯应该服务于大多数人,必须考虑电梯对内外请求的响应频率。在内部请求优先控制方式中,当电梯外部人的请求和电梯内部人的请求冲突时,外部人的请求信号可能被长时间忽略,因而它不能作为通用型电梯的设计方案。单向层层停控制方式方案:等同火车头的运行方式,遇到即停止、开门。这种方案的优点在于“面面俱到”,可以保证所有人的请求都能得到响应。方向优先控制方案:指电梯运行到某一楼层的时先考虑这一楼层是否有请求:有则停止;无则继续前进。五、设计总结通过以上设计调试和改进并通过较长时间的反复测试。可以根据要求打印出各项指标参数和曲线图及仿真图,且重复一次性好。用VHDL硬件描述语言的形式进行数字系统的设计方便灵活,利用EDA软件进行编译优化仿真极大地减少了电路设计时间和可能发生的错误。降低了开发成本,这中设计方法必将在未来的数字系统设计中发挥越来越重的作用。本设计采用的正式FPGA来控制电梯的逻辑运行,具有编程灵活,性能可靠等优点,而且FPGA在去电后配置数据自动消失,用户可以控制加载进程,在现场修改器件的逻辑功能。在设计过程中我们首先把整个电梯设计根据功能分成若干个功能模块,然后理清个模块的时序,一以便将各个功能模块综合在一起,能够公用书籍总线,使其能正常工作不受干扰,有些程序在仿真的时候其时序是完全正确的,但是当程序下载到芯片上之后就会发现错误了。这主要是因为各个功能在实现时会有延时,但这在仿真时是显示不出来的。因此编程时要注意在选芯片之前,要先将计算出的数据信号先放到数据总线上。FPGA在实现电梯控制方面比较灵活,可以通过对程序的修改来达到控制多个楼层,本设计在电梯控制方面做的比较全面,比如设计了内外电梯的指示系统和当前电梯运行情况显示,以及超载报警等,能够满足一般的载客电梯的工作功能需要。致谢我在设计本系统时,得到导师的精心指导,他为我的设计方案提出修改建议,使我少走弯路。我在FPGA设计方面存在不足,通过导师的指导,我弥补了自己的不足。在此,我对导师表示由衷的感谢!另外,我还得到我们班同学的技术支持,我得到同学的鼎力相助,我向她们表示感谢!还得感谢我的父母,是他们辛辛苦苦送我上学,学习科学知识,我今天才能有能力设计此系统。我对我的指导老师、我的同学、我的父母和所有帮组我的人表示衷心的感谢!参考文献1陈亮. 基于PLC的电梯控制系统探讨J. 电子世界. 2012(07)2庞大智.PLC在电梯控制中的运用J. 中国新技术新产品. 2012(04)3覃琴,庄晓平.电梯控制器的FPGA设计与实现J. 三峡大学学报(自然科学版). 2011(06)4田红光.FPGA在电梯控制系统中的应用J. 微型机与应用. 2011(24)5巩玉滨,陈继文,于复生,常国雷,邱冬. 基于单片机的电梯控制仿真系统J. 计算机系统应用. 2011(11)6郭景全. 基于单片机的三层货运电梯控制系统设计J. 重庆电子工程职业学院学报.2011(04)7修淑英. PLC在三层电梯呼梯控制中的应用J. 硅谷. 2012(07)8殷勤,潘斌.PLC在电梯教学模型控制系统中的应用J. 机电工程技术. 2012(11)9高胜利,王知谟.货运电梯的单片机控制J. 天津纺织工学院学报. 1997(04)10黄凯东.电梯PLC控制系统的硬件设计分析J. 科技致富向导. 2010(26)11刘跃敏,亢亚庆.蓝牙技术在电梯断电平层控制中的应用J. 通信技术. 2010(01)12金沙.模拟电梯运行的控制系统J. 渤海大学学报(自然科学版). 2004(02)13诸小鹏.电梯曳引系统控制及节能技术的研究J.中国制造业信息化. 2006(23)14 朱品昌,黄龙,倪继锋.电梯智能化控制硬件电路架构方案设计及应用J. 上海师范大学学报(自然科学版). 2007(03)15肖兵,刘华东.电梯的变频器控制软件与设计.计算机应用与软件. 2009(02)27
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸设计 > 毕业论文


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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