基于FPGA的六层电梯控制系统课程设计打印终稿.docx
- 文档编号:7260557
- 上传时间:2023-05-11
- 格式:DOCX
- 页数:30
- 大小:1,006.57KB
基于FPGA的六层电梯控制系统课程设计打印终稿.docx
《基于FPGA的六层电梯控制系统课程设计打印终稿.docx》由会员分享,可在线阅读,更多相关《基于FPGA的六层电梯控制系统课程设计打印终稿.docx(30页珍藏版)》请在冰点文库上搜索。
基于FPGA的六层电梯控制系统课程设计打印终稿
郑州轻工业学院
电子技术课程设计
题目基于FPGA的
六层电梯控制系统
学生姓名
专业班级电子信息工程10-01
学号541001030136
院(系)电气信息工程学院
指导教师杜海明
完成时间2013年06月22日
郑州轻工业学院
课程设计任务书
题目基于FPGA的六层电梯控制系统
专业、班级电子信息工程10-01学号541001030136姓名
主要内容、基本要求、主要参考资料等:
主要内容:
要求学生使用硬件描述语言设计六层电梯控制系统的FPGA源程序,实现如下功能:
(1)每层电梯入口处设有上下请求开关,电梯内设有顾客到达层次的停站请求开关。
(2)设有电梯入口处位置指示装置及电梯运行模式(上升或下降)指示装置。
(3)电梯到达有停站请求的楼层,开门指示灯亮,开门后,经一段时延后,电梯门关闭电梯继续进行,直至执行完最后一个请求信号后停留在当前层。
(4)电梯运行规则:
当处于上升模式时,只响应比所在位置高的请求信号,由下而上逐个执行,直到最后一个上楼请求执行完毕;高层有下楼请求,则直接升到请求层,进入下降模式。
当电梯处于下降模式时则与上升模式相反。
基本要求:
1、掌握FPGA的程序设计方法。
2、掌握硬件描述语言语法。
3、掌握有限状态机的原理与实现方法。
4、程序设计完成后要求在软件中实现功能仿真。
主要参考资料:
1、王锁萍.电子设计自动化(EDA)教程[M].成都:
成都电子科技大学出版社,2006.
2、何立民.EDA应用技术选编[M].北京:
北京航空航天大学出版社,2008.
完成期限:
2013.6.21—2013.6.25
指导教师签名:
课程负责人签名:
2013年6月18
基于FPGA的六层电梯控制系统
摘要
本设计是基于电子设计自动化(EDA)技术中的甚高速集成电路硬件描述语言(VHDL)语言,运用FPGA所开发的四层电梯控制程序,采用QuartusII软件仿真。
运用有限状态机的设计方法,设计了两个进程相互配合,状态机进程作为主要进程,信号灯控制进程作为辅助进程。
在主进程中定义了7个状态,在电梯时钟的触发下,通过当前状态和信号灯信号判定下一状态。
信号灯控制进程中,信号灯存储按键请求情况,它的熄灭是由状态机进程中传出的信号来控制。
通过程序调试及运行仿真,结果表明,本程序可以完成电梯运行所在楼层显示、电梯运行方向指示、关门延时设置等。
关键词:
电梯控制器VHDL状态机FPGA
1概述
1.1课题背景及意义
随高层楼宇的增加,电梯越来越多的走进了人们的生活,对人们的生活的影响越来越大。
为了让电梯更好的服务人们,各种电梯新技术不断地发展起来。
随着人们生活水平的不断提高,经济的快速发展和生产生活的需要,城市高层建筑如雨后春笋拔地而起。
与此相应,作为一种可以垂直升降运输的工具一电梯也得到迅猛的发展。
现在,电梯已完全融入我们的生活、工作及学习中,人们越来越离不开它。
因此,它的安全可靠性、迅速准确性、舒适性,对人们来说都是非常重要的。
为了确保电梯正常运行、安全使用,一般电梯都有专业的维修管理人员。
他们必须对电梯原理、性能、特点、控制、运行要全面认识和掌握,才能做到对电梯的正确使用、管理及维护。
根据我国有关部门的规定,电梯作业属于特种作业,其作业人员必须经过专门培训,并经理论考试和实践考核合格后,发给《特种作业操作证》方可上岗操作。
同时,对电梯操作人员定期考核,让他们定期参加安全技术学习,扎扎实实地做好电梯维护和保养工作,才能使人们平安长久的使用电梯。
电梯控制系统是一个相当复杂的逻辑控制系统.系统要同时对几百个信号进行接收、处理。
由于用户对电梯功能的要求不断提高.其相应控制方式也在不断发生变化。
随着EDA技术的快速发展.基于FPGA的微机化控制已广泛应用于电梯电路设计与控制的各个方面。
在经济不断发展,科学技术日新月异的今天,楼的高度已和经济发展同样的速度成长起来。
作为建筑的中枢神经,电梯起着不可或缺的作用,电梯作为建筑物内的主要运输工具,像其他的交通工具一样,已经成为我们日常生活的一个不可缺少的组成部分。
一个国家的电梯需求总量,主要受其经济增长速度、城市化水平、人口密度及数量、国家产业结构等综合因素的影响。
在全球经济持续低迷的情况下,我国国民经济仍然以较高的速度持续增长,城市化水平不断提高。
这从客观上导致了我国电梯行业的空前繁荣景象,我国已经成为全球最大的电梯市场。
上世纪80年代以来,随着经济建设的持续高速发展,我国电梯需求量越来越大。
总趋势是上升的,电梯行业进入了“第三次浪潮”。
如此庞大的市场需求为我国电梯行业的发展创造了广阔的舞台!
1.2EDA技术及实现方法概述
1.2.1EDA技术简介
EDA代表了当今电子设计技术的最新发展方向,它的基本特征是:
设计人员按照“自顶向下”的设计方法,对整个系统进行方案设计和功能划分,系统的关键电路用一片或几片专用集成电路(ASIC)实现,然后采用硬件描述语言(HDL)完成系统行为级设计,最后通过综合器和适配器生成最终的目标器件,这样的设计方法被称为高层次的电子设计方法。
下面介绍与EDA基本特征有关的几个概念。
1.“自顶向下”的设计方法,10年前,电子设计的基本思路还是选用标准集成电路“自底向上”地构造出一个新的系统,这样的设计方法就如同一砖一瓦建造金字塔,不仅效率低、成本高而且容易出错。
高层次设计是一种“自顶向下”的全新设计方法,这种设计方法首先从系统设计入手,在顶层进行功能方框图的划分和结构设计。
在方框图一级进行仿真、纠错,并用硬件描述语言对高层次的系统行为进行描述,在系统一级进行验证。
然后,用综合优化工具生成具体门电路的网络表,其对应的物理实现级可以是印刷电路板或专用集成电路。
由于设计的主要仿真和调试过程是在高层次上完成的,这既有利于早期发现结构设计上的错误,避免设计工作的浪费,又减少了逻辑功能仿真的工作量,提高了设计的一次成功率。
2.ASIC设计现代电子产品的复杂度日益提高,一个电子系统可能由数万个中小规模集成电路构成,这就带来了体积大、功耗大、可靠性差的问题。
解决这一问题的有效方法就是采用ASIC芯片进行设计。
ASIC按照设计方法的不同可分为全定制ASIC、半定制ASIC和可编程ASIC(也称为可编程逻辑器件)。
设计全定制ASIC芯片时,设计师要定义芯片上所有晶体管的几何图形和工艺规则,最后将设计结果交由IC厂家去进行掩模制造,做出产品。
这种设计方法的优点是芯片可以获得最优的性能,即面积利用率高、速度快、功耗低,而缺点是开发周期长,费用高,只适合大批量产品开发。
半定制ASIC芯片的版图设计方法分为门阵列设计法和标准单元设计法,这两种方法都是约束性的设计方法,其主要目的就是简化设计,以牺牲芯片性能为代价来缩短开发时间可编程逻辑芯片与上述掩模ASIC的不同之处在于:
设计人员完成版图设计后,在实验室内就可以烧制出自己的芯片,无须IC厂家的参与,大大缩短了开发周期。
可编程逻辑器件自70年代以来,经历了PAL、GAL、CPLD、FPGA几个发展阶段,其中CPLD/FPGA属高密度可编程逻辑器件,目前集成度已高达200万门/片,它将掩模ASIC集成度高的优点和可编程逻辑器件设计生产方便的特点结合在一起,特别适合于样品研制或小批量产品开发,使产品能以最快的速度上市,而当市场扩大时,它可以很容易地转由掩模ASIC实现,因此开发风险也大为降低。
上述ASIC芯片,尤其是CPLD/FPGA器件,已成为现代高层次电子设计方法的实现载体
1.2.2FPGA简介
目前以硬件描述语言(Verilog或VHDL)所完成的电路设计,可以经过简单的综合与布局,快速的烧录至FPGA上进行测试,是现代IC设计验证的技术主流。
这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如AND、OR、XOR、NOT)或者更复杂一些的组合功能比如解码器或数学方程式。
在大多数的FPGA里面,这些可编辑的元件里也包含记忆元件例如触发器(Flip-flop)或者其他更加完整的记忆块。
系统设计师可以根据需要通过可编辑的连接把FPGA内部的逻辑块连接起来,就好像一个电路试验板被放在了一个芯片里。
一个出厂后的成品FPGA的逻辑块和连接可以按照设计者而改变,所以FPGA可以完成所需要的逻辑功能。
FPGA一般来说比ASIC(专用集成芯片)的速度要慢,无法完成复杂的设计,而且消耗更多的电能。
但是他们也有很多的优点比如可以快速成品,可以被修改来改正程序中的错误和更便宜的造价。
厂商也可能会提供便宜的但是编辑能力差的FPGA。
因为这些芯片有比较差的可编辑能力,所以这些设计的开发是在普通的FPGA上完成的,然后将设计转移到一个类似于ASIC的芯片上。
另外一种方法是用CPLD(复杂可编程逻辑器件备)。
FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。
用户可以根据不同的配置模式,采用不同的编程方式。
加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。
掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。
FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。
当需要修改FPGA功能时,只需换一片EPROM即可。
这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。
因此,FPGA的使用非常灵活。
1.2.3VHDL语言介绍
VHDL的英文全名是Very-High-SpeedIntegratedCircuitHardwareDescriptionLanguage,诞生于1982年。
1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言。
VHDL主要用于描述数字系统的结构,行为,功能和接口。
除了含有许多具有硬件特征的语句外,VHDL的语言形式、描述风格以及语法是十分类似于一般的计算机高级语言。
VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。
在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。
这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。
VHDL具有功能强大的语言结构,可以用简洁明确的源代码来描述复杂的逻辑控制。
它具有多层次的设计描述功能,层层细化,最后可直接生成电路级描述。
VHDL支持同步电路、异步电路和随机电路的设计,这是其他硬件描述语言所不能比拟的。
VHDL还支持各种设计方法,既支持自底向上的设计,又支持自顶向下的设计;既支持模块化设计,又支持层次化设计。
VHDL语言具有多层次的电路设计描述功能,既可描述系统级电路,也可以描述门级电路;描述方式既可以采用行为描述、寄存器传输描述或者结构描述,也可以采用三者的混合描述方式。
同时,VHDL语言也支持惯性延迟和传输延迟,这样可以准确地建立硬件电路的模型。
VHDL语言的强大描述能力还体现在它具有丰富的数据类型。
VHDL语言既支持标准定义的数据类型,也支持用户定义的数据类型,这样便会给硬件描述带来较大的自由度。
VHDL语言很强的移植能力主要体现在:
对于同一个硬件电路的VHDL语言描述,它可以从一个模拟器移植到另一个模拟器上、从一个综合器移植到另一个综合器上或者从一个工作平台移植到另一个工作平台上去执行。
采用VHDL语言描述硬件电路时,设计人员并不需要首先考虑选择进行设计的器件。
这样做的好处是可以使设计人员集中精力进行电路设计的优化,而不需要考虑其他的问题。
当硬件电路的设计描述完成以后,VHDL语言允许采用多种不同的器件结构来实现。
VHDL语言采用基于库(library)的设计方法。
在设计过程中,设计人员可以建立各种可再次利用的模块,一个大规模的硬件电路的设计不可能从门级电路开始一步步地进行设计,而是一些模块的累加。
这些模块可以预先设计或者使用以前设计中的存档模块,将这些模块存放在库中,就可以在以后的设计中进行复用。
由于VHDL语言是一种描述、模拟、综合、优化和布线的标准硬件描述语言,因此它可以使设计成果在设计人员之间方便地进行交流和共享,从而减
小硬件电路设计的工作量,缩短开发周期
1.3状态机简介
关于状态机的一个极度确切的描述是它是一个有向图形,由一组节点和一组相应的转移函数组成。
状态机通过响应一系列事件而“运行”。
每个事件都在属于“当前”节点的转移函数的控制范围内,其中函数的范围是节点的一个子集。
函数返回“下一个”(也许是同一个)节点。
这些节点中至少有一个必须是终态。
当到达终态,状态机停止。
包含一组状态集(states)、一个起始状态(startstate)、一组输入符号集(alphabet)、一个映射输入符号和当前状态到下一状态的转换函(transitionfunction)的计算模型。
当输入符号串,模型随即进入起始状态。
它要改变到新的状态,依赖于转换函数。
在有限状态机中,会有有许多变量,例如,状态机有很多与动作(actions)转换(Mealy机)或状态(摩尔机)关联的动作,多重起始状态,基于没有输入符号的转换,或者指定符号和状态(非定有限状态机)的多个转换,指派给接收状态(识别者)的一个或多个状态,等等。
传统应用程序的控制流程基本是顺序的:
遵循事先设定的逻辑,从头到尾地执行。
很少有事件能改变标准执行流程;而且这些事件主要涉及异常情况。
“命令行实用程序”是这种传统应用程序的典型例子。
有限状态机是一种概念性机器,它能采取某种操作来响应一个外部事件。
具体采取的操作不仅能取决于接收到的事件,还能取决于各个事件的相对发生顺序。
之所以能做到这一点,是因为机器能跟踪一个内部状态,它会在收到事件后进行更新。
为一个事件而响应的行动不仅取决于事件本身,还取决于机器的内部状态。
另外,采取的行动还会决定并更新机器的状态。
这样一来,任何逻辑都可建模成一系列事件/状态组合。
状态机可归纳为4个要素,即现态、条件、动作、次态。
这样的归纳,主要是出于对状态机的内在因果关系的考虑。
“现态”和“条件”是因,“动作”和“次态”是果。
详解如下:
①现态:
是指当前所处的状态。
②条件:
又称为“事件”。
当一个条件被满足,将会触发一个动作,或者执行一次状态的迁移。
③动作:
条件满足后执行的动作。
动作执行完毕后,可以迁移到新的状态,也可以仍旧保持原状态。
动作不是必需的,当条件满足后,也可以不执行任何动作,直接迁移到新状态。
④次态:
条件满足后要迁往的新状态。
“次态”是相对于“现态”而言的,“次态”一旦被激活,就转变成新的“现态”了。
2系统方案设计
2.1设计要求
(1)每层电梯入口处设有上下请求开关,电梯内设有顾客到达层次的停站请求开关。
(2)设有电梯入口处位置指示装置及电梯运行模式(上升或下降)指示装置。
(3)电梯到达有停站请求的楼层,开门指示灯亮,开门后,经一段时延后,电梯门关闭电梯继续进行,直至执行完最后一个请求信号后停留在当前层。
(4)电梯运行规则:
当处于上升模式时,只响应比所在位置高的请求信号,由下而上逐个执行,直到最后一个上楼请求执行完毕;高层有下楼请求,则直接升到请求层,进入下降模式。
当电梯处于下降模式时则与上升模式相反。
2.2总体设计方案
2.2.1控制器模块化概述
控制器的功能模块如图2.1所示,包括主控制器、楼层选择器、状态显示器、译码器和楼层显示器。
乘客在电梯中选择所要到达的楼层,通过主控制器的处理,电梯开始运行,状态显示器显示电梯的运行状态,电梯所在楼层数通过译码器译码从而在楼层显示器中显示。
由于其他模块相对简单很多,所以主控制器是核心部分。
图2-1总体设计方案
2.2.2电梯上下层运行流程图
电梯上升流程图,如图2-2:
图2-2电梯上升流程图
电梯下降流程图,如图2.3:
图2-3电梯下降流程图
2.2.3电梯运行控制流程图
如图2.4:
图2-4电梯运行控制流程图
2.2.4电梯控制器设计思路
电梯控制器运用状态机的设计方法,思路比较清晰。
可以将电梯等待的每秒钟以及开门、关门都看成一个独立的状态。
由于电梯又是每秒上升或下降一层,所以就可以通过一个统一的1秒为周期的时钟来触发状态机。
根据电梯的实际工作情况,可以把状态机设置7个状态,分别是“电梯停留在第1层”、“开门”、“关门”、“开门等待4秒”、“上升”、“下降”和“停止状态”。
各个状态之间的转换条件可由上面的设计要求所决定。
初始化状态为1楼等待门是关闭的。
各状态机之间转换图如图2.5:
图2-5状态机转换图
2.3设计的VHDL实现
2.3.1控制器实体设计
首先考虑输入端口,一个异步复位端口reset,用于在系统不正常时回到初始状态;在电梯外部,必须有升降请求端口,一层是最低层,不需要有下降请求,六层是最高层,不需要有上升请求[3],二三四五层则上升、下降请求端口都有;在电梯的内部,应该设有各层停留的请求端口:
一个电梯时钟输入端口,该输入时钟以1秒为周期,用于驱动电梯的升降及开门关门等动作;另有一个按键时钟输入端口,时钟频率比电梯时钟高。
其次是输出端口,有升降请求信号以后,就得有一个输出端口来指示请求是否被响应,有请求信号以后,该输出端口输出逻辑‘l’。
被响应以后则恢复逻辑‘0’;同样,在电梯内部也应该有这样的输出端口来显示各层停留是否被响应;在电梯外部,需要一个端口来指示电梯现在所处的位置;电梯开门关门的状态也能用一个输出端口来指示;为了观察电梯的运行是否正确,可以设置一个输出端口来指示电梯的升降状态。
2.3.2控制器结构体设计
首先说明一下状态。
状态机设置了7个状态,分别是电梯停留在l层(stoponl)、开门(dooropen)、关门(doorclose)、开门等待4秒(doorwait4)、上升(up)、下降(down)和停止(stop)。
在实体说明定义完端口之后,在结构体architecture和begin之间需要有如下的定义语句,来定义状态机。
typelift_stateis
(stoponl,dooropen,doorclose,doorwait4,up,down,stop):
signalmylift:
lift_state:
在结构体中,设计了两个进程互相配合,一个是状态机进程作为主要进程,另外一个是信号灯控制进程作为辅助进程。
状态机进程中的很多判断条件是以信号灯进程产生的信号灯信号为依据的,而信号灯进程中信号灯的熄灭又是由状态机进程中传出的clearup和cleardn信号来控制。
在状态机进程中,在电梯的上升状态中,通过对信号灯的判断,决定下一个状态是继续上升还是停止;在电梯下降状态中,也是通过对信号灯的判断,决定下一个状态是继续下降还是停止;在电梯停止状态中,判断是最复杂的,通过对信号的判断,决定电梯是上升、下降还是停止。
在信号灯控制进程中,由于使用了专门的频率较高的按键时钟,所以使得按键的灵敏度增大,但是时钟频率不能过高,否则容易使按键过于灵敏。
(由于时间限制本设计并未考虑按键消抖)按键后产生的点亮的信号灯(逻辑值为‘1’)用于作为状态机进程中的判断条件,而clearup和cleardn信号为逻辑‘l’使得相应的信号灯熄灭。
3器件选型
3.1FPGA芯片选型
主控芯片选用Altera公司ACEX系列FPGA芯片EP1K30TC144-3,Altera公司是20世纪90年代以来发展较快的可编程逻辑器件生产厂家,在激烈的市场竞争中,凭借其雄厚的技术实力,独特的设计构思和功能齐全的芯片系列,跻身于世界最大的器件供应商之列。
EP1K30TC144-3芯片属于Altera公司的ACEX1K系列,集成典型逻辑门数达30000个,工作频率最高可达178.6MHz,最小传输延时为5.0ns,它将查找表(LUT)与嵌入式阵列块(EAB)结合起来,提供了一种具有高效管芯的低成本结构。
该芯片支持1.8到2.5V供电电压,其I/O接口支持多电压的连接:
1.8V,2.5V,3.3V,5V仅在外接电阻时可承受,还提供可编程的节能工作模式。
在编程工艺上,采用SRAM(静态随机存储器)工艺,可插写上万次。
这些特点使该芯片适用于复杂的逻辑功能和存储功能的应用场合。
3.2功能模块
3.2.1主控器模块
如图3-1:
图3-1电梯主控制模块
电梯主控制模块端口说明:
buttonclk按钮时钟信号liftclk电梯时钟信号
reset复位键f1upbutton一楼上楼按钮
f2upbutton二楼上楼按钮f3upbutton三楼上楼按钮
f4upbutton四楼上楼按钮f5upbutton五楼上楼按钮
f2dnbutton二楼下楼按钮f3dnbutton三楼下楼按钮
f4dnbutton四楼下楼按钮f5dnbutton五楼下楼按钮
f6dnbutton六楼下楼按钮stop1button电梯内部一楼按钮
stop2button电梯内部二楼按钮stop3button电梯内部三楼按钮
stop4button电梯内部四楼按钮stop5button电梯内部五楼按钮
stop6button电梯内部六楼按钮fuplight[6..1]每楼层上升指示灯
fdnlight[6..1]每楼层下降指示灯stoplight[6..1]电梯内部楼层指示灯
position[2..0]楼层位置显示doorlight电梯门状态显示
udsig电梯上升下降显示
3.2.2分频器模块
如图3-2:
图3-2分频器模块
模块端口说明:
clk_in电源输入端div_out分频后时钟输出端
3.2.3译码器模块
如图3-3:
图3-3译码器模块
aaa[2..0]楼层位置输出端bbb[3..0]译码输出端
译码器逻辑功能表如表3-1
表3-1译码器逻辑功能表
3.2.4数据选择器模块
如图3-4:
图3-4数据选择器模块
数据选择器模块端口说明:
input[3..0]译码器输入端output[6..0]数据选择器输出端
译码器逻辑功能表如表3-2
表3-2译码器逻辑功能表
4程序仿真
4.1电梯控制器仿真分析
仿真示例1:
图4-1所示仿真的是在第五层电梯外部有上升请求,也就是f5upbuttton信号的一个脉冲[9],可以看到电梯从一层上升到五层,position信号由1变到5,doorlight信号‘1’表示开门,‘0’表示关门。
当乘客进入电梯以后,在电梯内部要求上升到第六层,也就是stop6button产生一个脉冲,电梯上升到第6层,开门4秒以后关门,停留在第六层,position最后的值为6。
在仿真图中看不到buttonclk,只显示为一条黑色的线,是因为采用了频率较大的时钟。
再看fuplight信号灯,当五层有上升请求的时候,它的值由0变到16。
(注意fuplight和fdnlight是6位的二进制向量,这里的“010000”,表示五层有请求;“000100”也就是4,表示三层有请求)。
当电梯停留到第五
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 FPGA 电梯 控制系统 课程设计 打印
![提示](https://static.bingdoc.com/images/bang_tan.gif)