基于FSM的电梯控制系统的设计与实现
2.4分频器的设计 图2 Synplify pro 综合后的状态转移图 3.2 仿真 图3 三层电梯的仿真波形图四 3.3 实验结果 图4 系统电路原理图 整个系统设计完成后,经过编译生成.pof文件,仿真成功后,下载到EPM7128SLC84-15芯片中。根据管脚分配图对已有的硬件电路进行连线,实验电路如图5所示。 图5 实验电路图 3.4 结果分析
分频器是将输入的4MHZ信号分频为1Hz的信号,提供给状态机作为输入信号,另外分频器分频到4000HZ给动态显示模块以及按键模块作为扫描信号。根据设计的需要设计了三个分频器。
2.5 输入端口设计
在状态机的设计中www.cechina.cn,针对CPLD的容量,以三层电梯运行为例,定义了8个按键输入端。分别是:(1) 异步置位按键、(2)1层上升请求按键、(3) 2层上升请求按键、(4) 2层下降请求按键、(5) 3层下降请求按键 、(6)电梯1层停止请求按键、(7)电梯2层停止请求按键、(8)电梯3层停止请求按键。
3 设计结果及分析
3.1 电梯状态控制器的Synplify综合
使用Synplify pro对用VHDL语言编制的有限状态机的状态变化控制程序进行综合,经过综合之后的“RTL”(寄存器传输级)方式的电路原理图如图2所示。
综合编译完成后,值reset信号高电平有效,置为0,选择liftclk时钟信号为1HZ、buttonclk信号时钟为4000HZ。配置适当的输入信号,得到如图3的仿真结果。
原先电梯停留在第一层,电梯外第三层有下降请求,电梯上升到三层,乘客进入电梯以后要求下降一层,此时,电梯二层有下降请求,接着又有上升请求,电梯首先在第二层停留,然后下降到一层,随后再在响应第二层上升请求,上升到二层,乘客进入电梯以后要求上升到三层,所以电梯最后停留的位置是三层。
在完整的系统设计中使用 Max+Plus II完成VHDL描述和原理图的层次设计。在底层设计中,用VHDL分别实现每一个模块的功能,将每个模块生成可供Max+Plus II调用的器件符号,再将这些器件符号连接在一起构成整个系统原理图,如图4所示。
通过对实际的硬件测试,数码管正确显示了楼层,发光二极管响应显示了电梯的状态,通过对不同初始状态的测试,发现除了由按键抖动带来的部分误操作外,电梯的状态转换完全符合电梯运行规则。说明这种设计方法是有效的。
由于很容易通过编程改变CPLD器件的控制功能,而且电梯运行的基本状态变换规律是不随楼层数变化的,因此,只需要改变相应的输入、输出端口设计就可满足不同楼层数的设计需要。
4 结束语
本次设计基于自顶向下的设计方法,用vhdl实现了电梯各状态之间的转换程序控制。在Max+Plus II环境下通过使用Synplify Pro 软件特有的综合功能,从对软件程序的编译、仿真到可编程逻辑芯片的功能实现都进行了优化,大大提高了设计效率。这种方法可广泛用于各种复杂状态机控制的设计之中。
- 基于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)