【电梯控制系统】基于VHDL语言和状态机实现的电梯控制系统的设计,使用了状态机

本文介绍了使用FPGA和VHDL语言设计的电梯控制系统,该系统利用状态机实现,具有高可靠性、抗干扰性强等特点。系统包括上下请求开关、位置指示、运行模式指示等功能,并详细阐述了各个功能模块的设计与实现,如请求记忆、电梯运行规则等。通过仿真验证了电梯控制系统的正确性。

1.软件版本

quartusii/Maxplusii

2.系统概述

       电梯作为高层建筑物的重要交通工具与人们的工作和生活日益紧密联系。 电梯的三种主要控制方式中,继电器控制系统由于故障率高、可靠性差、控制方式不灵活以及消耗功率大等缺点,目前已逐渐被淘汰。微机控制系统虽在智能控制方面有较强的功能,但也存在抗扰性差,系统设计复杂,一般维修人员难以掌握其维修技术等缺陷。而FPGA/CPLD控制系统由于运行可靠性高,使用维修方便,抗干扰性强,设计和调试周期较短等优点,倍受人们重视等优点,已成为目前在电梯控制系统中使用最多的控制方式,目前也广泛用于传统继电器控制系统的技术改造。 FPGA作为新一代工业控制器,以其高可靠性和技术先进性,在电梯控制中得到广泛应用,从而使电梯由传统的继电器控制方式发展为计算机控制的一个重要方向,成为当前电梯控制和技术改造的热点之一。 FPGA是一种专门从事逻辑控制的微型计算机系统。由于FPGA具有性能稳定、抗干扰能力强、设计配置灵活等特点。因此在工业控制方面得到了广泛应用。自90年代后期FPGA引入我国电梯行业以来,由FPGA组成的电梯控制系统被许多电梯制造厂家普遍采用,并形成了一系列的定型产品。在传统继电器系统的改造工程中,FPGA系统一直是主流控制系统。电梯控制系统分为调速部分和逻辑控制部分。调速部分的性能对电梯运行是乘客的舒适感有着重要影响,而逻辑控制部分则是电梯安全可靠运行的关键。为了改善电梯的舒适感和运行的可靠性,现在都改为用F

基于FPGA设计的智能电梯控制器设计WORD文档+quartus13.0工程Verilog源码文件,可以做为你的课程设计参考。 1.1 设计要求 ① 楼层的高度大于等于6,根据降低运行成本的原则,设计实现一个以方向优先电梯调度算法。 ②要求能够使用按键模拟对电梯的控制,为了便于观察,将电梯所在的楼层(1~6)用数码管显示出来,将电梯的上下楼状态(上,下,开门,关门,静止)用发光管或数码管显示出来,并且能够实现对电梯实现锁定禁止运行。 ③ 画出电梯控制器状态机,写出状态编码方案。 ④ 用Verilog语言设计进行描述,并下载到实验板上调试成功,适当增加比较符合现实的控制限制。 ⑤ 写出设计性实验报告,并打印各层次的源文件仿真波形,然后作简要说明。 并谈谈此次实验的收获、感想及建议 1.2 设计思路 我把电梯的状态分为三种:上升、下降、停留(其中包括开门、关门、禁止),状态分别编码为00、01、10来识别。楼层设计为六层,一般的电梯在每层外面都有上下请求的按钮,还有电梯内部的一楼到六楼的请求,以及持续开门、关门的请求。我们可以通过按键的输入对各种变量进行赋值,代表不同的请求,然后用case语句分各个楼层进行条件判断,每层分为两大块的响应,即本层有无需求,若有需求,则进行开门动作,若无需求,则分上升的状态下降停留的状态,分别又有不同的请求(除第一层第六层特殊,只有上升的或下降的请求),上升下降分别作不同的响应(主要对i值进行变化)即可 输入主要用按键实现(六个楼层加向上向下两个,共八个),电梯的状态分为4种,上升,下降,停留,禁止分别用4个LED灯来表示,用数码管显示电梯所在楼层。对电梯的锁定操作,是同时按上下两个按键,电梯锁定的操作是电梯自动回到一楼,并对请求无任何响应。 之后对该系统进行了改进,对于开门与关门的区别,我采用LCD显示,主要是对停留状态进行进一步分解,停留时对LCD显示进行控制,从而显示开门关门状态。 module dianti(ledup,leddown,ledforbid,ledstay,A,B,c1,c2,c3,c4,c5,c6,clock,out,LCD_DATA,LCD_EN, LCD_RS, LCD_RW, LCD_ON, LCD_BLON,test); output ledup,leddown,ledstay,ledforbid; output [6:0]out; output LCD_EN, LCD_RS, LCD_RW, LCD_ON, LCD_BLON; output [1:0]test;//用于测试开门关门状态 input A,B,clock,c1,c2,c3,c4,c5,c6; inout [7:0]LCD_DATA; //.输入输出变量的声明 reg [4:0] floor1; reg [5:1] floor2; reg [5:0] floor3; reg [3:0] i; reg [1:0] s; reg [6:0]out; reg [3:0]t; reg [1:0]control; //寄存器变量 wire clk_out;//分频后的输出时钟 wire [1:0]test; reg ledup,leddown,ledforbid,ledstay; assign test=control; Clock c(clock,clk_out); //分频 LCD d(clock,control,LCD_DATA,LCD_EN, LCD_RS, LCD_RW, LCD_ON, LCD_BLON);//LCD显示 always @(posedge clk_out) begin t<=t+4'b0001; ledup<=(s==2'b01 &&!(A==1 && B==1) ); //电梯上升中 leddown<=(s==2'b10 &&!(A==1 && B==1));//电梯下降中 ledforbid<=(A==1 && B==1);// 电梯处于锁定 ledstay<=(s==2'b00&&!(A==1 && B==1));//电梯停留 if( A==1 && B==0) begin // request up if(c5==1) floor1[4]<=1; if(c4==1) floor1[3]<=1; if(c3==1) floor1[2]<=1;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fpga和matlab

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值