基于FPGA芯片智能电梯控制专业系统设计.doc

上传人:牧羊曲112 文档编号:1627761 上传时间:2022-12-12 格式:DOC 页数:18 大小:139KB
返回 下载 相关 举报
基于FPGA芯片智能电梯控制专业系统设计.doc_第1页
第1页 / 共18页
基于FPGA芯片智能电梯控制专业系统设计.doc_第2页
第2页 / 共18页
基于FPGA芯片智能电梯控制专业系统设计.doc_第3页
第3页 / 共18页
基于FPGA芯片智能电梯控制专业系统设计.doc_第4页
第4页 / 共18页
基于FPGA芯片智能电梯控制专业系统设计.doc_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《基于FPGA芯片智能电梯控制专业系统设计.doc》由会员分享,可在线阅读,更多相关《基于FPGA芯片智能电梯控制专业系统设计.doc(18页珍藏版)》请在三一办公上搜索。

1、基于FPGA芯片智能电梯控制专业系统设计基于FPGA芯片的电梯自动控制系统学号: 姓名:聂丽霞摘要:本论文是基于FPGA的电梯控制器的研究,是电梯控制的核心技术,通过电梯控制器可以对电梯运行模式和状态进行全面的控制,这也是此次论文研究的重要性;由于FPGA技术近些年来蓬勃发展,而且在很多领域已经应用的十分成熟,所以用FPGA可以实现对电梯精确、稳定、实时性控制,同时用于FPGA开发的芯片都是一些微处理器芯片,便于集成和智能化设计。关键词: FPGA VHDL 电梯 状态机 一、电梯控制器的需求分析目前,电梯的设计、工艺不断提高,电梯的品种也逐渐增多,电梯的材质由黑白到彩色,样式由直式到斜式,在

2、操纵控制方面更是步步出新:手柄开关操纵、按钮控制、信号控制、集选控制、人机对话等;多台电梯还出现了并联控制、智能群控;双层轿箱电梯展示出节省井道空间,提升运输能力的优势,变速式自动人行道扶梯大大节省了行人的时间;不同外形的电梯则使身处其中的乘客的视线不再封闭。电梯的结构分为:四大空间,八大系统;四大空间:机房部分、井道及地坑部分、轿厢部分、层站部分;八大系统:曳引系统、导向系统、轿厢、门系统、重量平衡系统、电力拖动系统、电气控制系统、安全保护系统;电梯的功能结构决定电梯的八大应用技术:全数字识别乘客技术(所有乘客进入电梯前进行识别,其中包括眼球识别、指纹识别)2 数字智能型安全控制技术(通过乘

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

4、的模块,重点在对响应的信号进行处理,并将处理结果反馈给对应功能的控制端口,实现对电梯运行的全面控制。电梯方向优先控制方式控制系统方框图二、论文研究的主要内容本论文的电梯控制器所有的程序可以集成在一个FPGA开发芯片上面,不用在用其他功能的分立逻辑元件,达到集成度高、响应快、功耗低的特点。本论文是基于FPGA的电梯控制器的研究,是电梯控制的核心技术,通过电梯控制器可以对电梯运行模式和状态进行全面的控制,这也是次论文的研究重要性;电梯的层数为6层,本次论文采用模块化设计,主要分为四大模块:时钟分频模块、按键处理模块、电梯运行控制模块、数码管显示模块。由于FPGA技术近些年来蓬勃发展,而且在很多领域

5、已经应用的十分成熟,用FPGA可以实现对电梯精确、实时性控制,而且用于FPGA开发的芯片都是一些微处理器芯片,便于集成和智能化设计,而且大大缩短了开发周期。三、FPGA概述FPGA(Field Programmable Gate Arry)即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点;FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括可配置逻辑模块CLB(Configurable Lo

6、gic Block)、输入输出模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。四、FPGA硬件体系结构FPGA采用逻辑单元阵列(LCA,Logic Cell Array)新概念,内部包括可配置逻辑模块(CLB,Configurable Logic Block)、输入输出模块(IOB,Input Output Block)和内部互连资源(IR,Interconnect Resources)三部分组成。1 可配置逻辑块(CLB,Configurable Logic Block)是FPGA的主要组成部分,主要是由逻辑函数发生器、触发器、数据选择器等电

7、路组成。2 输入输出模块(IOB,Input Output Block)提供了器件引脚和内部逻辑阵列之间的连接,主要是由输入触发器、输入缓冲器和输出触发、锁存器、输出缓冲器组成。3 可编程互连资源(IR,Interconnect Resources)可以将FPGA内部的CLB和CLB之间、CLB和IOB之间连接起来,构成各种具有复杂功能的系统,IR主要由许多金属线段构成,这些金属线段带有可编程开关,通过自动布线实现各种电路的连接。五、电梯控制器的工作原理本次论文是实现6层电梯的运行控制,当在某一楼层按下上升或者下降请求按钮时,控制器响应该请求并控制电梯前往该楼层,当到达该楼层时,电梯开门,当进

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

9、入信号主要有:6个前往楼层的按钮、提前关门按钮、延时关门按钮、电梯异常按钮。电梯输出信号也主要包括外部输出信号和内部输出信号;对于电梯外部输出信号包括上升请求按钮和下降按钮指示信号、电梯当前所在楼层指示信号、电梯运行方向指示信号。电梯内部输出信号包括6个前往楼层按钮指示信号、超重等警告指示信号、电梯当前所在楼层指示信号、电梯运行方面指示信号。六、电梯控制系统的设计内容本次论文是基于FPGA的电梯控制器的研究,是电梯控制的核心技术,通过电梯控制器可以对电梯运行模式和状态进行全面的控制,这也是次论文的研究重要性;电梯的层数为6层,本次论文采用模块化设计方法,主要分为四大模块:时钟分频模块、按键处理

10、模块、电梯运行控制模块、数码管显示模块。本论文是基于FPGA的电梯控制器的研究,是电梯控制的核心技术,通过电梯控制器可以对电梯运行模式和状态进行全面的控制,这也是次论文的研究重要性;电梯的层数为6层,本次论文采用模块化设计方法,主要分为四大模块:时钟分频模块、按键处理模块、电梯运行控制模块、数码管显示模块。其方框原理图如下:时钟分频数码管显示按键处理电梯运行控制系统时钟2倍分频8倍分频按键请求按键处理响应显示电梯所在楼层电梯控制器原理图七、时钟分频模块时钟分频模块功能是将系统频率分频为两种不同的频率,一个是2分频时钟供电梯运行控制模块使用,另一个8分频时钟供其他模块使用,其源代码如下:时钟分频

11、模块:clkdiv.vhdLibrary Ieee; Use Ieee.Std_Logic_1164.All;Use Ieee.Std_Logic_unsigned.All; / 定义所用的标准库 Port( clk: In Std_Logic; /系统时钟频率 clk_2: Out Std_Logic; /2分频脉冲(作为电梯控制时钟) clk_8: Out Std_Logic /8分频脉冲(作为按键处理时钟) ); /定义输入输出变量End clkdiv;Signal cnt: Std_Logic_Vector(7 Downto 0); /定义一个8位的变量Begin Process(cl

12、k) /时钟分频进程Begin If clkevent and clk=1 Then /时钟脉冲上升沿有效 cnt=cnt+1; clk_2=cnt(1); /变量cnt的第1位输出2分频 clk_8=cnt(4); /变量cnt的第3位输出8分频 End Process;End one;源程序编写完成后,进行调试、运行并生成模块文件,确认没有错误之后进行功能仿真、时序分析。其模块原理图如下: 时钟分频模块原理图八、电梯运行控制模块 电梯运行控制模块是此次设计的核心,电梯运行的模式和状的态控制效果完全取决于电梯控制模块,它的功能是在系统2分频时钟下,根据按键处理模块输出的信号,控制电梯上升与下

13、降运行模式和状态,当电梯关门时输出相应的上升与下降清除信号,同时输出电梯当前所在楼层的数码管输出信号与电梯运行方向,本次是设计的6层电梯控制系统,在源程序中具体要体现一下功能:1 每层电梯(除1楼和6楼外,1楼只有上升请求按钮,6楼只有下降请求按钮)入口出设置有上升和下降请求按钮,电梯内部设有要到达楼层的请求按钮1-6楼。2 设有电梯所处位置数码管显示部分,电梯运行模式的LED显示部分。3 电梯能记忆电梯外部所有信号请求,并按照电梯运行规则进行顺序响应,每个电梯请求信号保留到电梯响应结束。4 电梯运行规则:当电梯上升时候,只响应比电梯所在楼层高的上楼信号,由下到上依次执行,直到最后一个上升请求

14、信号执行完毕,当电梯下降时候,只响应比电梯所在楼层低的下楼信号,由上到下依次执行,直到最后一下下降请求信号执行完毕。电梯运行控制模块的源程序如下:电梯运行控制模块:elevator_run.vhdLibrary Ieee;Use Ieee.Std_Logic_1164.All;Use Ieee.Std_Logic_Arith.All;Use Ieee.Std_Logic_unsigned.All; / 定义所用的标准库Entity elevator_run IsPort( clk: In Std_Logic; /电梯时钟 rst: In Std_Logic; /异步置位按键 alarm: in

15、 Std_Logic; up_light: in Std_Logic_Vector(6 Downto 1); /电梯外部上升请求指示灯 down_light: in Std_Logic_Vector(6 Downto 1);/电梯外部下降请求指示灯 inside_light: in Std_Logic_Vector(6 Downto 1); /电梯内部楼层请求指示灯 position: out integer range 1 to 6; /电梯位置变量 door_light: Out Std_Logic; /电梯门开关指示灯 clear_up: out Std_Logic; /用于清除上升请求

16、指示灯信号 clear_down: out Std_Logic /用于清除下降请求指示灯信号 delay: In Std_Logic; /延时关门变量 advance: In Std_Logic; /提前关门变量updown_light: Buffer Std_Logic_Vector(7 Downto 0); /电梯升降显示 ); /定义输入输出变量End elevator_run;Architecture six_floor of elevator_run is type lift_state is(stop_1,door_open,door_close,door_wait1,door_w

17、ait2,door_wait3,door_wait4, door_wait5,door_wait6,up,down,stop);signal my_lift:lift_state;signal pos:integer range 6 downto 0;signal updown_flag:Std_Logic;signal posreg:integer range 1 to 6;signal one:Std_Logic_Vector(6 Downto 1);Begin /控制电梯状态进程U1:Process(rst,clk) Begin If (rst=0 or alarm=0) Then my

18、_lift=stop_1; clear_up=1; clear_down /初试状态在第一层 door_lght=0; position=1; my_lift=door_wait1; clear_up=0; clear_down=0; updown_light If advance=1 Then my_lift=door_close; Elsif delay=1 Then my_lift=door_wait1; Else my_lift=door_wait2; End If; clear_up=0; clear_down If advance=1 Then my_lift=door_close

19、; Elsif delay=1 Then my_lift=door_wait1; Else my_lift=door_wait3; End If; clear_up=0; clear_down If advance=1 Then my_lift=door_close; Elsif delay=1 Then my_lift=door_wait1; Else my_lift=door_wait4; End If; clear_up=0; clear_down If advance=1 Then my_lift=door_close; Elsif delay=1 Then my_lift=door_

20、wait1; Else my_lift=door_wait5; End If; clear_up=0; clear_down If advance=1 Then my_lift=door_close; Elsif delay=1 Then my_lift=door_wait1; Else my_lift=door_wait6; End If; clear_up=0; clear_down my_lift=door_close; clear_up=0; clear_down door_light=0; clear_up=0; clear_down=0; If posreg=6 Then /如果电

21、梯在第6层,且电梯外部与内部没有任何按键请求,电梯进入关门状态/电梯运行状态指示停止If(inside_light= and up_light= and down_light=)Then my_lift=door_close;/数码管显示横杠,表示电梯停止,没有向上和向下运行updown_light or up_light or down_light)Then my_lift=down;/数码管显示小写d字,表示电梯下降运行updown_light=; updown_flag=1;End If; /如果电梯在第1层 If posreg=1 Then /如果电梯在第1层,且电梯外部与内部没有任何

22、按键请求,电梯进入关门状态/电梯运行状态指示停止If(inside_light= and up_light= and down_light=)Then my_lift=door_close;/数码管显示横杠,表示电梯停止,没有向上和向下运行updown_light or up_light or down_light)Then my_lift=up;/数码管显示小写u字,表示电梯上升运行updown_light=; updown_flag=0;End If;/如果电梯在其他楼层时候Else/如果电梯在其他楼层,且电梯外部与内部没有任何按键请求,电梯进入关门状态/电梯运行状态指示停止If(insi

23、de_light= and up_light= and down_light=)Then my_lift=door_close;/数码管显示横杠,表示电梯停止,没有向上和向下运行updown_light=(one+one) or up_light=(one+one) or down_light(one+one)Then my_lift=up;/数码管显示小写u字,表示电梯下降运行updown_light=; updown_flag=0;/如果电梯外部上升请求或下降请求所在的楼层比电梯当前楼层低,或电梯内部前往的楼层比电梯当前楼层低,则电梯转到下降状态/电梯运行状态指示下降Elsif(insid

24、e_light+inside_light)=one or (up_light+up_light)=one or (down_light+down_light)=oneThen my_lift=down;/数码管显示小写u字,表示电梯下降运行updown_light=; updown_flag=1; Else my_lift /当电梯在上升状态时 clear_up=0; clear_down=0;/当电梯所在楼层低于6层,当前楼层是电梯前往楼层之一,或者是当前楼层有人请求上升,或者电梯内部没有请求信号但是当前楼层有人请求下降,电梯则转向到停止状态If posreg6 and (inside_li

25、ght(posreg)=1 or up_light(posreg)=1 or (inside_light= and down_light(posreg)=1)Then my_lift=stop;/如果电梯内部没有请求信号,电梯外部没有上升请求信号,且当前楼层有电梯外部下降请求信号,则电梯运行时转到下降状态If (inside_light= and up_light= and down_light(posreg)=1)Then updown_flag=1;End If;/当电梯所在楼层为6层,有人前往第6层,或者第6层有人下降请求时,电梯则转到停止状态Elsif posreg=6 and (in

26、side_light(posreg)=1 or down_light(posreg)=1)Then my_lift or up_light)Then my_lift=stop;/其他情况,电梯继续上升运行,电梯所在楼层加1Elsemy_lift=up;updown_light=; updown_flag=0; If posreg6 Then Posreg /当电梯在下降状态时 clear_up=0; clear_down=0;/当电梯所在楼层高于1层时,当前楼层是电梯前往楼层之上,或者是当前楼层有人请求下降,或者电梯内部没有前往请求信号但是楼层有人请求上升,电梯则转向到停止状态If posre

27、g1 and (inside_light(posreg)=1 or down_light(posreg)=1 or (inside_light= and up_light(posreg)=1) Then my_lift=stop;/如果电梯内部没有前往信号,电梯外部也没有下降请求信号,且当前楼层有电梯外部上升请求信号,则电梯运行时转到上升状态 If (inside_light= and up_light(posreg)=1 and down_light=) Then updown_flag=0; End If;/其他情况,电梯继续下降运行,电梯所在楼层减1Else my_lift=down;

28、updown_light=; updown_flag1 Then Posreg mylift=door_open; clear_up=not updown_flag; clear_down door_light=1; clear_up=0; clear_down=0; my_lift my_lift=door_wait1;End case; End If; End If; position one one one one one one=; End case; End If; End Process U2;End six_floor;电梯控制运行模块源程序编写完成后,进行编译、运行并生成模块文

29、件,确认没有错误之后进行波形仿真、时序分析。其模块原理图如下: 电梯运行控制模块原理图数码管显示模块源程序编写完成后,进行编译、运行并生成模块文件,确认没有错误之后进行波形仿真、时序分析。其模块原理图如下: 数码管显示模块原理图电梯控制器的所有模块都已经设计完成,然后将这四个模块进行综合,将各个模块的相关信号进行连接,并进行功能仿真和时序分析。九、电梯超重控制可行性分析压电式传感器运放A/D转换按键处理模块电梯运行控制模块电梯载重信号采集信号放大模数转换通过对超重信号处理来控制电梯运行方式正常情况下电梯运行请求信号经过我细心观察和亲自乘坐电梯的感受,现在很多电梯对于超重的处理存在一定的不完善,

30、分析主要原因是在于对达到超重前的重量控制没有一定的预留,现在的电梯在运行过程中只要是没有达到超重值,那么在其运行过程中,无论是有上升还是下降请求信号,总会对其进行响应并开门,即使此时不能上一个人,但是由于没有达到超重值,门还是会开的;这样其实更浪费大家的时间,如果说,我们在这个过程中通过对这个超重范围进行一定的控制,就不会造成这样的情况,也正因为如此,本次论文提出对超重控制的改进分析。具体实现的原理方框图如下: 电梯超重控制原理方框图具体的实现方法是对超重的范围预留一个平均体重的重量,当电梯的载重在这个范围内时,电梯在运行过程中不再开门,直到有人出电梯,然后再按照电梯的运行规则运行。此次设计提

31、出的方案是通过传感器与FPGA芯片进行处理,将压电式传感器对压力这种非电量信号进行采集,然后经过信号放大、A/D转换,最终将生成的数字信号送入FPGA芯片进行处理,然后控制电梯运行;实现超重优先级,控制超重在一定范围内,不做开门响应,直到有人出电梯,电梯载重在正常范围内。十 、结论本论文是基于FPGA的6层电梯控制器的研究,设计过程中采用模块化设计方法,主要分为四大模块:时钟分频模块、按键处理模块、电梯运行控制模块、数码管显示模块,其中,电梯运行控制模块是整个设计的核心,主要负责对电梯运行模式和状态的控制,采用VHDL硬件描述语言编程,在控制电梯的状态方面,采用状态机的方法对电梯的状态进行控制,使得电梯运行过程变得简单、快捷、稳定,此次设计过程中提出使用传感器对电梯超重情况进行控制,更让电梯变得智能化、人性化。此次设计让我对FPGA有的更深刻的认识,对VHDL/Verilog HDL硬件描述语言进行了深入的学习,为以后对这方面的研究做了铺垫,也为以后的工作和学习提供了理论基础。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号