基于FPGA的电梯控制系统设计
扫描二维码
随时随地手机看文章
摘要:介绍了基于FPGA的四层电梯控制系统的设计。该系统采用Altera公司的CycloneⅡ系列FPGA芯片EP2C5T144作为主控制芯片,采用Verilog-HDL编程描述,实现对电梯的智能控制,经仿真验证,完成所要求功能。该设计采用模块化编程,升级可实现任意多层电梯系统,具有很强的适应性和实用性。
关键词:电梯控制;FPGA;Verilog;控制模块
0 引言
随着社会的发展,电梯的使用越来越普遍,对电梯功能的要求也不断提高,其相应控制方式也在不断发生变化。电梯的微机化控制主要有:PLC控制、单板机控制、单片机控制、单微机控制、多微机控制和人工智能控制等。随着专用集成电路ASIC设计技术和EDA技术的发展,可编程逻辑器件的广泛使用,为数字系统设计带来了革命性的变化,改变了传统的电路设计中使用的芯片多、电路复杂、出现问题不易查找、不易进行功能扩展的缺点。本设计使用FPGA器件作为主控制芯片,采用Verilog-HDL语言设计一个四楼层单个载客箱的电梯控制系统,设计采用模块化设计,便于修改和升级,可稍加改进,实现多层电梯控制。
1 电梯控制系统总体设计
1.1 设计任务及要求
设计一个四层电梯控制系统,要求如下:
(1)各层电梯内部信号:各楼层请求按键、开关门请求按键,所在楼层显示,电梯运行状态显示。外部信号:上升下降请求按键,所在楼层显示,电梯运行状态显示。
(2)能够存储请求信号,电梯上升(下降)过程中,根据电梯的运行状态,首先按方向优先、循环次序响应各请求。
(3)到达请求楼层后,该层的指示灯亮,电梯门自动打开,开门指示灯亮。延时等待时间后,电梯门自动关闭(开门指示灯灭),电梯继续运行。电梯空闲时,停在0层。
(4)具有超载报警功能。
1.2 电梯控制系统硬件结构
电梯控制系统硬件结构如图1所示。
如图1所示,该系统主要由FPGA控制器、各输入信号模块、输出驱动模块组成。FPGA控制模块的输入信号有:电梯内外请求信号、楼层到达信号、重启超载报警等信号;其输出信号分别驱动显示电路、电梯开关门电路、电机驱动电路、以及其他如报警电路等。FPGA控制模块是本设计的核心。
2 FPGA控制器的设计与实现
本设计的开发软件使用Altera公司的QuartusⅡ集成开发环境,采用自上而下的设计方法,模块设计与Verilog-HDL描述相结合的输入方式,便于程序的维护与升级。FPGA控制器整体设计如图2所示。
[!--empirenews.page--]
如图2所示,FPGA控制编程主要由六个模块组成:按键请求模块、状态控制模块、电机驱动模块、显示及报警模块、开关门控模块、分频模块。各模块的信号及功能如下:
模块1:按键请求模块
该模块的接口信号如表1所示,模块功能如下:
(1)利用锁存器对输入的请求信号进行存储,当请求满足后清0。为了数据表示方便,本设计的后缀0~3分别表示1~4层。
(2)根据电梯的运行状态,按照方向优先、循环执行的原则,在请求信号中提取电梯下一站的楼层信号并输出。如目前楼层为2层,状态为升,那么判断优先级为:p2/up2→p3/down3→down2→downl→p0/up0。
(3)当无请求信号时,下一站楼层为0。
模块2:状态控制模块
本模块是系统设计的核心控制模块。本文把电梯运行划分为4个状态,分别为:上升、下降、停止、空闲。控制系统的状态转换图如图3所示。
[!--empirenews.page--]
系统重启时(res=1),进入空闲状态(Idle),空闲状态下,输出信号posit=up=down=open=0,当输入信号goto为0时,保持空闲状态;当goto信号不为0时,进入上升状态(Stop)。当第一层上升信号触发时,进入停止状态。停止状态下,open信号上升沿触发电梯开门;up=down =0,posit=goto。在电梯开门延时期间(dooropen=1),保持停止状态;当电梯门关上时(dooropen=0),判断下一站楼层,若大于目前楼层,进入上升状态,若小于目前楼层,进入下降状态。上升状态下,up=1,updown=01,posit=goto,触发电机控制模块拖拽电机上升。楼层达到信号,使系统进入停止状态。下降状态同理。本模块接口信号如表2所示。
模块3:电机控制模块
本模块输入信号有:上升触发信号(up)、下降触发信号(down)、所在楼层(posit)以及下一站楼层(goto),输出信号:4个位不同相位的电机驱动信号。模块由升降信号触发,经电机状态控制器,产生4个相位的电机驱动信号P[3:0],输出至电机驱动电路,其频率决定电机转动,其相位决定电机的转动方向。P[3:0]的各频率信号由分频器模块提供。
模块4:显示模块
本模块功能用于电梯所在楼层(posit)、电梯运行状态(updown)的七段码显示或LED显示。以及超载信号(over)的报警和显示。
模块5:门控模块
本模块用来控制电梯门状态,由输入门控信号open信号触发开门(doorstat=1),经过延时,电梯门自动闭合(doorstat=0)。所超载(over=1),则电梯门不合,电梯保持开门状态,直到超载信号清除。
模块6:分频模块
分频模块用来对系统时钟信号分频,产生向电机控制模块提供的各频率信号。
3 仿真验证
本设计顶层采用模块化设计,各模块采用VerilogHDL硬件描述语言。自顶向下的设计方式,便于程序查错、升级、改进,本设计稍加修改,即可实现任意楼层电梯控制。对所设计程序进行分析、编译、综合、布线后产生的电路进行功能仿真和时序仿真,均可获得符合设计要求的逻辑值。时序仿真波形如图4所示。
由图4可以看出:控制器始终能有效存储各楼层请求信号,能按照方向优先、循环次序执行各楼层请求。各信号状态符合设计要求。信号延时为10 ns级,在允许范围内。
本设计硬件实现采用康芯KX_7CH最小系统版。程序经引脚锁定并编程下载到器件,经测试,逻辑完全正确,达到设计要求。
4 结论
基于FPGA的数字电路设计方式在可靠性、体积、成本上的优势是巨大的,它已经成为实现数字电路的主要手段之一。本文设计的四层电梯控制器,稍加改进即适合于任意楼层,灵活性强,运行可靠,具有很强的适应性和实用性。