FPGA项目(13)——基于FPGA的电梯控制系统

1.摘要

随着科技的发展,电梯早在上个世纪就已进入人们的生活。对于电梯的控制,传统的方法是使用继电器——接触器控制系统进行控制。随着EDA技术的发展,FPGA已广泛应用于各项电子设计中,本设计即利用FPGA来实现对电梯控制系统的设计。

本此课程设计基于Verilog HDL集成电路硬件描述语言开发的四层电梯控制系统, 以Quartus II为开发环境,最终在FPGA开发板上实现四层电梯控制系统的基本功能,其功能主要包括:显示电梯楼层数、响应楼层请求、电梯升降指示、电梯开关门、电梯到达停站要求楼层后,蜂鸣器给出声音提示、快速开门、快速关门、电梯报警等。本文采用模块化设计的方法,整个系统主要分为四个模块,其中包括:矩阵键盘模块、电梯控制模块、复位模块、数码管显示模块。

首先,通过FPGA系统板上的矩阵键盘按键输入楼层请求,其中包括电梯内部楼层的请求、电梯外部上升的请求及电梯外部下降的请求;同时,利用LED灯和数码管来显示输入的请求;然后,遵照电梯运行时的方向优先原则及内部响应优先原则来逐次应答请求;并且外部增加快速开门、快速关门按键超重报警等功能,高度还原了现实生活中实际电梯的运行状况。

2.引言

当今社会,随着城市建设的不断发展,高层建筑的不断增多,电梯作为高层建筑中垂直运行的交通工具已与人们的日常生活密不可分。目前电梯的控制普遍采用了两种方式,一是采用微机作为信号控制单元,完成电梯信号的采样、运行状态和功能的设定,实现电梯的自动调度和集选运行功能,拖动控制则由变频器来完成;第二种控制方式用可编程控 制器取代微机实现信号控制。从控制方式和性质上来说,这两种方法并没有太大的区别。目前电梯控制系统主要有三种控制方式:继电路控制系统(“早期安装的电梯多位继电器控制系统”)、FPGA的控制系统、微机控制系统。继电器控制系统由于故障率高、可靠性差、 控制方式不灵活以及消耗功率大等缺点,目前已逐渐被淘汰,微机控制系统虽在智能控制方面有较强的功能,但也存在抗扰性差,系统设计复杂,一般维修人员难以掌握其维修技术等缺陷。而FPGA控制系统由于运行可靠性高,使用维修方便,抗干扰性强,设计和调试周期较短等优点,倍受人们重视等优点,已经成为目前在电梯控制系统中使用最多的控制方式,目前也广泛应用于传统继电器控制系统的技术改造。

3.功能设计

基本要求:

  1. 每层电梯入口处设有上、下请求按键各一个(注:一楼只有上请求按键,四楼只有下请求按键),电梯内设有到达层次的按键,每个请求按键按下时,都有相应的LED灯与之对应;
  2. 电梯所处楼层由数码管显示,电梯上、下状态由LED灯指示;
  3. 电梯每秒升(降)一层,到达某一层时,数码管显示对应的楼层;
  4. 电梯到达有停战要求的楼层后,蜂鸣器给出声音提示,经过0.5秒电梯门自动打开,开门指示灯亮,开门5秒后,电梯门自动关闭(开门指示灯灭),电梯继续运行;
  5. 能记忆电梯内、外所有请求信号,并有相应的指示LED显示,并按照电梯运行规则次第响应,每个请求信号保留至执行后撤除;
  6. 电梯运行规则:电梯处于上升模式时,只响应比电梯所在位置高的层次的上楼请求信号,由下而上逐个执行,直到最后一个请求执行完毕;如果高层有下楼请求,则直接升到有下楼请求的最高楼层接客,然后进入下降模式;电梯处于下降模式时与之相反,仅响应比电梯所在位置低的楼层的下楼请求,由上到下逐一解决,直到最后一个请求被处理完毕;如再低楼层有上升请求,则降至该楼层,并进入上行模式;电梯执行完所有请求后,应停在最后所在的位置不变,等待新的请求;
  7. 接通电源时,电梯应停留在一楼,而各种上行、下行请求皆被清除。

创新要求:

  1. 电梯内部设置快速开门、快速关门按键,且可在门开到一半或关到一半的中间状态触发。
  2. 电梯自带超载功能,即人员超载则电梯门不会关闭并发出警报,电梯停留在该层并停止运行,直至超载人员出电梯,电梯恢复正常运行。
  3. 电梯在关门状态中若有同方向请求及内部请求则电梯门打开。
  4. 电梯在开门状态,清除本楼层同方向外部请求及内部请求。

4.设计原理

设计一个电梯运行控器,该电梯有4层楼,设计的电梯调度算法满足提高服务质量、降低运行成本的原则;电梯的内部有一个控制面板它负责按下请求到的楼层,并且显示当前尚未完成的目的地请求,当到达该楼层以后自动撤销本楼层的请求即将面板灯熄灭;除1层和4层分别只有上和下按钮外,其余每个楼层(电梯门口旁)的召唤面板都有两个按钮,分别指示上楼和下楼请求。当按下后,对应按钮灯亮。如果电梯已经到达该楼层,按钮灯熄灭;电梯的外部面板会显示电梯当前所在的楼层及上行还是下行(暂停则上下行指示灯灭);电梯向一个方向运行时,只对当前方向前方的请求进行应答,直到本方向前方无请求时,才对反方向的请求进行应答。当前内部控制面板上有的请求只要经过所在楼层均会立即响应,在所有内部外部请求都已完成后,电梯转入等待。设计思路采用经典的有限状态机[1]的设计方法,有限状态机可以认为是组合逻辑和寄存器逻辑的特殊组合,它一般包括组合逻辑和寄存器逻辑两个部分,寄存器逻辑用于存储状态,组合逻辑,用于状态译码和产生输出信号。

电梯模型图:

本次设计的rtl框图

5.实物图

 

6.完整工程 

(或者私我便宜拿,还可以提供设计报告、答辩ppt,功能演示视频等等!!)

基于FPGA的电梯控制资源-CSDN文库icon-default.png?t=N7T8https://download.csdn.net/download/guangali/88678501?spm=1001.2014.3001.5501

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/590777.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

助力打造智慧数字课堂,基于YOLOv7【tiny/l/x】开发构建教学课堂场景下学生课堂行为检测识别分析系统

近年来,随着行为检测技术的发展,分析学生在课堂视频中的行为,以获取他们的课堂状态和学习表现信息已经成为可能。这项技术对学校的教师、管理人员、学生和家长都非常重要。使用深度学习方法自动检测学生的课堂行为是分析学生课堂表现和提高教…

【数值分析】线性方程组的迭代方法,jacobi,高斯赛德尔GS,SOR

线性方程组的迭代解法 2024年1月1日 #analysis 文章目录 线性方程组的迭代解法基本迭代法Jacobi迭代高斯-赛德尔(GS)迭代SOR迭代 迭代的收敛性分析和误差估计下链 基本迭代法 Jacobi迭代 A D − L − U AD-L-U AD−L−U D x ( k 1 ) ( L U ) x ( …

【LMM 006】LLaVA-Plus:可以学习如何使用工具的多模态Agent

论文标题:LLaVA-Plus: Learning to Use Tools for Creating Multimodal Agents 论文作者:Shilong Liu, Hao Cheng, Haotian Liu, Hao Zhang, Feng Li, Tianhe Ren, Xueyan Zou, Jianwei Yang, Hang Su, Jun Zhu, Lei Zhang, Jianfeng Gao, Chunyuan Li 作…

【大数据面试知识点】Spark的DAGScheduler

Spark数据本地化是在哪个阶段计算首选位置的? 先看一下DAGScheduler的注释,可以看到DAGScheduler除了Stage和Task的划分外,还做了缓存的跟踪和首选运行位置的计算。 DAGScheduler注释: The high-level scheduling layer that i…

大数据 - Hadoop系列《三》- HDFS(分布式文件系统)概述

🐶5.1 hdfs的概念 HDFS分布式文件系统,全称为:Hadoop Distributed File System。 它是一个文件系统,用于存储文件,通过目录树来定位文件;其次,它是分布式的,由很多服务器联合起来实现其功能,集…

(五)分文件编程

文章目录 为什么要引入分文件编程.C文件怎么添加.H文件怎么书写以及如何进行链接.H书写格式:“有头有尾标识符”例如(timer.h) .H链接链接到头文件所在路径的文件夹路径即可 提供一个分文件编程的一种代码最后附上视频演示 为什么要引入分文件编程 C程序…

neovim调试xv6-riscv过程中索引不到对应头文件问题

大家好,我叫徐锦桐,个人博客地址为www.xujintong.com,github地址为https://github.com/jintongxu。平时记录一下学习计算机过程中获取的知识,还有日常折腾的经验,欢迎大家访问。 和这篇文章neovim调试linux内核过程中索…

2024最新前端React面试题:JSX是什么,它和JS有什么区别

JSX是什么,它和JS有什么区别 回答思路:1.编写方式--->2.分别是什么?--->3.分别是怎么编译的?1.编写方式2.分别是什么?3.分别是怎么编译的? 回答思路:1.编写方式—>2.分别是什么&#x…

中国电科网安C++开发工程师校招一面面经

本文介绍2024届秋招中,中国电子科技网络信息安全有限公司的C/C开发工程师岗位一面的面试基本情况、提问问题等。 10月投递了中国电子科技网络信息安全有限公司的C/C开发工程师岗位,并不清楚所在的部门。目前完成了一面,在这里记录一下一面经历…

mysqlbinlog查看binlog

根据位置 mysqlbinlog --no-defaults -v --base64-outputdecode-rows --databasedbname --start-position1180 --stop-position1313 /www/server/data/mysql-bin.000007 > /path/db.sql根据时间 mysqlbinlog -v --base64-outputdecode-rows --databasedbname --start-date…

Oracle exists和in的效率问题

使用exists: select * from T1 where exists(select 1 from T2 where T1.aT2.a) ; 使用exists写法时,其中 “select 1 from T2 where T1.aT2.a” 相当于一个关联表查询,相当于“select 1 from T1,T2 where T1.aT2.a”, “selec…

git的使用基础教程

最近项目在搞自动化测试,需要将各种测试脚本集成到自动化框架里边,这个就需要用到版本管理系统了,下面简单价绍一下git的使用。 首先从官网下载并安装git工具,下面以wins系统为例子说明 https://git-scm.com/downloads wins安装好后&#xff…

灸哥问答:软件架构在软件研发中的作用

软件架构在软件开发中扮演着至关重要的角色。我们在软件研发的过程中,类比于建造一座公寓楼,而软件架构就像是盖楼之前的设计图纸,如果没有设计图纸就直接盖楼,可想而知带来的后果是什么。我对软件架构的作用表现总结如下&#xf…

[C语言]时间戳

时间戳的概念 时间戳就是定义一个时间点作为0秒, 之后每过一秒依此加一, 将当前的时间戳换算成年月日, 再加上起点, 获得的就是现在时刻的时间. 根据地球时区的偏移, 比如北京时间是东八区, 做一个偏移量的加减. 0起点: 1900年1月1日0时0分0秒. 0偏移地点: 英国伦敦 时间戳…

gradio-osprey-demo

创建需要的dockerfle ################### # 使用 Ubuntu 作为基础镜像 FROM nvcr.io/nvidia/cuda:11.8.0-devel-ubuntu22.04 # 更新软件包列表并安装依赖项 RUN apt update && \ apt install -y python3 python3-pip git ffmpeg libsm6 libxext6 curl wget …

JS变量和函数提升

JS变量和函数提升 JS变量提升编译阶段执行阶段相同变量或函数 变量提升带来的问题变量容易不被察觉的遭覆盖本应销毁的变量未被销毁 如何解决变量提升带来的问题 JS变量提升 sayHi()console.log(myname)var myname yyfunction sayHi() {console.log(Hi) }// 执行结果: // Hi …

[蓝桥杯 2023省模拟题]判断蓝桥

问题描述 输入一个字符串,请判断这个字符串是否正好是 lanqiao 。在输入时如果只是大小写不同也算作相同。 输入格式 输入一行包含一个字符串。 输出格式 如果是 lanqiao ,输出全小写的字符串 yes ,否则输出全小写的字符串 no 。 样例输…

深度学习——PIL和OpenCV

PIL 官方文档 格式互转 opencv cv2.imread() 参数: filepath:读入imge的完整路径 flags:标志位,{cv2.IMREAD_COLOR,cv2.IMREAD_GRAYSCALE,cv2.IMREAD_UNCHANGED} cv2.IMREAD_COLOR:默认参数&…

Attention机制

前置知识&#xff1a;RNN&#xff0c;LSTM/GRU 提出背景 Attention模型是基于Encoder-Decoder框架提出的。Encoder-Decoder框架&#xff0c;也就是编码-解码框架&#xff0c;主要被用来处理序列-序列问题。 Encoder&#xff1a;编码器&#xff0c;将输入的序列<x1,x2,x3……

如何理解IoC和DI?(小知识)

IOC就是控制反转&#xff0c;通俗的说就是我们不用自己创建实例对象&#xff0c;这些都交给Spring的bean工厂帮我们创建管理。这也是Spring的核心思想&#xff0c;通过面向接口编程的方式来是实现对业务组件的动态依赖。这就意味着IOC是Spring针对解决程序耦合而存在的。在实际…