预览加载中,请您耐心等待几秒...
1/4
2/4
3/4
4/4

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

基于FPGA的电梯控制系统设计 摘要: 本设计介绍了基于FPGA的四层电梯控制系统的设计。该系统采用Altera公司的CycloneⅡ系列FPGA芯片EP2C5T144作为主控制芯片,采用Verilog-HDL编程描述,实现对电梯的智能控制,经仿真验证,实现了上升下降请求按键、所在楼层显示、电梯运行状态显示、开门指示、超载报警等功能。该设计采用模块化编程,升级可实现任意多层电梯系统,具有很强的适应性和实用性。 关键词:电梯控制、FPGA、Verilog、控制模块 ThedesignofcontrolsystemofelevatorbasedonFPGA Abstract: ThisdesignintroducedthedesignoffourlayerelevatorcontrolsystembasedonFPGA.ThesystemadoptstheAlteracompany'sCycloneseriesFPGAchipEP2C5T144asthemaincontrolchip,usingVerilog-HDLprogramming,toachievecontroloftheelevatorintelligent,simulationresultsshowthat,theriseandfalloftherequest,floordisplay,keyoperationstateofelevatordoordisplay,indicating,overloadalarmfunction.Thedesignusesthemodularprogramming,upgradecanbearbitrarymultilayerelevatorsystem,hasstrongadaptabilityandpracticability Keywords:elevatorcontrol、FPGA、Verilog、controlmodule 引言 随着社会的发展,电梯的使用越来越普遍,对电梯功能的要求也不断提高,其相应控制方式也在不断发生变化。电梯的微机化控制主要有:PLC控制、单板机控制单片机控制、单微机控制、多微机控制和人工智能控制等。随着专用集电路ASIC设计技术和EDA技术的发展,可编程逻辑器件的广泛使用,为数字系统设计带来了革命性的变化,改变了传统的电路设计中使用的芯片多、电路复杂、出现问题不易查找、不易进行功能扩展的缺点。本设计使用FPGA器件作为主控制芯片,采用Verilog-HDL语言设计一个四楼层单个载客箱的电梯控制系统,设计采用模块化设计,便于修改和升级,可稍加改进,实现多层电梯控制。 1电梯控制系统总体设计 1.1电梯控制系统硬件结构 电梯控制系统硬件结构如图1所示。 FPGA 控 制 器 电梯内外请求信号 楼层传感器传感器检测电路 重启、超载信号等 开关门电路 电机驱动电路 显示电路 其他电路 图1系统硬件结构框图 该统主要由FPGA控制器、各输入信号模块、输出驱动模块组成。FPGA控制模块的输入信号有:电梯内外请求信号、楼层到达信号、重启超载报警等信号;其输出信号分别驱动显示电路、电梯开关门电路、电机驱动电路、以及其他如报警电路等。FPGA控制模块是本设计的核心。 2FPGA控制器的模块设计与实现 FPGA控制编程主要由六个模块组成:按键请求模块、状态控制模块、电机驱动模块、显示及报警模块、开关门控模块、分频模块。 2.1按键请求模块 该模块的接口信号如表1所示, (1)利用锁存器对输入的请求信号进行存储,当请求满足后清0。为了数据表示方便,本设计的后缀0~3分别表示1~4层。 (2)根据电梯的运行状态,按照方向优先、循环执行的原则,在请求信号中提取电梯下一站的楼层信号并输出。如目前楼层为2层,状态为升,那么判断优先级为:p2/up2→p3/down3→down2→down1→p0/up0。 (3)当无请求信号时,下一站楼层为0。 2.2状态控制模块 本模块是系统设计的核心控制模块。把电梯运行划分为4个状态,分别为:上升、下降、停止、空闲。控制系统的状态转换图如图3所示。 系统重启时(res=1),进入空闲状态(Idle),空闲状态下,输出信号posit=up=down=open=0,当输入信号goto为0时,保持空闲状态;当goto信号不为0时,进入上升状态(Stop)。当第一层上升信号触发时,进入停止状态。停止状态下,open信号上升沿触发电梯开门;up=down=0,posit=goto。在电梯开门延时期间(dooropen=1),保持停止状态;当电梯门关上时(dooropen=0),判断下一站楼层,若大于目前楼