基于FSM的电梯控制系统的设计与实现
1 引言
Max+PlusⅡ是Altera公司提供的FPGA/CPLD开发集成环境,它可独立完成简单VHDL程序的编译。然而控制工程网版权所有,自动电梯控制程序是一个复杂的状态机描述,Max+PlusⅡ无法独立完成该程序的综合编译。Synplify Pro是 Synplicity 公司针对复杂可编程逻辑设计的 FPGA 综合工具,它带来了无与伦比的电路性能和最有效的可编程设计的资源利用率,所独有的对电路的调试与优化功能和极快的运算速度使之成为了业界倍受欢迎的的综合工具。Synplify pro所特有的FSM综合器可以自动识别有限状态机并根据约束条件选择最佳的编码方式。通过Max+PlusⅡ中的接口,把Synplify pro 用于对电梯控制程序的综合与优化,可大大提高设计效率,仿真和实验结果证实了该方法的有效性。
2 系统设计
2.1 系统的整体设计
在电梯控制系统的设计中www.cechina.cn,核心是电梯运行的状态控制器的设计。为突出状态之间的转换关系,令电梯以同一速率升降。主要需要考虑:(1)电梯的人工手动控制;(2)电梯的运行状态显示;(3)电梯的安全性控制;(4)电梯的策略控制设计。
电梯状态控制器部分用状态机来实现。基本模型如下:(1) 每一层电梯的入口处设有上下请求开关,电梯内设有顾客到达层次的停站请求开关;(2)设有电梯所处位置指示装置以及电梯运行模式(上升或下降)指示装置;(3)电梯初始状态为第一层开门,电梯每一秒升(降)一层楼;(4)设计一个异步的置位端口控制工程网版权所有,用于在系统不正常的时候回到初始状态;(5)电梯到达有停站请求楼层,经过1 秒电梯门打开,开门4 秒后,电梯门关闭(开门指示灯熄灭),电梯继续运行,直至执行完最后一个请求信号后停留在当前楼层;(6)能记忆电梯内外的所有请求信号,并按照电梯运行规则按顺序响应,每个请求信号保留至执行完后消除;(7)电梯运行规则:当电梯处于上升模式时,只响应比电梯所在位置高的上楼请求信号,由下而上逐个执行,直到最后一个上楼请求执行完毕;如果高层有下楼请求www.cechina.cn,则直接升至有下楼请求的最高楼层,然后进入下降模式。当电梯处于下降模式的时候与上升模式相反。
整个电梯控制系统将由一片CPLD来实现。外围的电路主要包括:分频器,七段数码显示模块、发光二极管显示模块,以及按键开关模块。
各模块的功能:电梯状态控制模块,是整个系统设计的核心,完成电梯的状态控制;显示模块,主要是将系统信息显示出来,判断电梯运行是否正常;分频器模块,由4MHZ的原始频率分频得到系统所需要的频率;按键开关模块,消除由于机械按键输入的误操作和防抖动。
图1 电梯的结构图
2.2 电梯状态控制器的设计
2.2.1 设计思路
(1)电梯输入输出端口设计。输入端口包括:一个异步的置位端口,用于在系统不正常的时候回到初始状态;在电梯外部的升降的请求端口,一层不需要有下降请求,最高层不需要上升请求,中间层上升、下降请求端口都应具备;在电梯内部的各层停留的请求端口;一个用于驱动电梯的上升下降以及开门关门等动作时钟输入端口以及一个时钟频率比电梯高得多的按键时钟输入端口。而响应的输出端口包括:升降请求信号响应端口,有请求信号以后,该输出端口的输出逻辑“1”,被响应后则恢复到逻辑“0”;电梯内部的各层停留响应端口;在电梯外部指示电梯的位置端口;电梯开门关门的状态指示端口以及电梯升降指示端口。
(2)电梯控制器的实现通过状态机实现,将电梯等待的每秒钟以及开门关门都看成一个独立的状态。由于电梯每一秒升(降)一层,所以就可以通过一个统一的1 秒为周期的时钟来触发状态机。由此,状态机设置了10 个状态,分别是“stopon1(电梯停留在1 层)”、“dooropen(开门)”、 “doorclose(关门)”、“doorwait1(开门等待第1 秒)”、“doorwait2(开门等待第2 秒)”、“doorwait3(开门等待第3 秒)”、“doorwait3(开门等待第4 秒)”、“up(上升)”、“down(下降)”和“stop(停止)”状态。每个状态之间的转换条件由设计要求决定。
2.2.2程序设计
在构造体的设计中www.cechina.cn,设计了两个进程相互配合,一个是状态机进程,另外一个是信号灯控制进程。状态机进程中的很多判断条件是以信号灯进程产生的信号灯信号为依据的,而信号灯进程中信号灯的熄灭又是由状态机进程中传出来的“up(上升)”和“down(下降)”信号来控制的。
在状态机进程中,在电梯处于上升状态时,通过对信号灯来判断,决定下一个状态是继续上升还是停止;在电梯下降状态中www.cechina.cn,也是通过对信号灯的判断,决定下一个状态时继续下降还是停止;在电梯停止状态中,判断是最为复杂的,通过对信号灯的判断,决定电梯是上升、下降还是停止。
在信号灯控制进程中,由于使用了专用的按键时钟,频率较高,所以使得按键的灵敏度增大,但是时钟频率不能过高,否则容易使按键过于灵敏,按键后产生的点亮的信号灯(逻辑值为‘1’)用于作为状态机进程的判断条件,而up和down信号逻辑‘1’使得相应的信号灯熄灭。
2.3显示模块的设计
采用动态显示模式,循环点亮三个数码管,在扫描频率大于人眼睛的视觉暂留频率(24HZ)以上,就可以达到点亮单个七段数码管显示器,却能像有3个数码管同时点亮的视觉效果。
将楼层上升、下降以及楼层停止的信号用七段数码管显示出来,电梯上升、下降、停止输出的信号用3位二进制数表示,通过七段译码器将电梯状态控制器输出的3位二进制数译码为七段数码管的输入所需要的7位二进制数。最简的真值表如表2.3所示.相应的译码程序以及多路选择显示程序从略。
- 基于Verilog应用(06-06)
- 硬件描述语言Verilog HDL设计进阶之:有限状态机的设计原理及其代码风格(06-05)
- SDIO_FATFS_MDK 调试记录(12-03)
- STM32 FSMC LCD 液晶的驱动—ILI9320(12-03)
- FSMC只使用数据口地址线没有用 调试也没问题(11-27)
- 100引脚的stm32f103v如何使用FSMC连接LCD(11-27)