基于FPGA的智能电梯控制系统的实现毕业论文.docx
《基于FPGA的智能电梯控制系统的实现毕业论文.docx》由会员分享,可在线阅读,更多相关《基于FPGA的智能电梯控制系统的实现毕业论文.docx(44页珍藏版)》请在冰豆网上搜索。
基于FPGA的智能电梯控制系统的实现毕业论文
基于FPGA的智能电梯控制系统的实现毕业论文
第一章概述摘要5
1.1EDA概述5
1.1.1什么是EDA5
1.1.2EDA的特6
1.1.3EDA的应用6
1.2FPGA的简介及特点7
1.3VHDL语言及程序概述8
1.3.1VHDL语言的发展.9
1.3.2VHDL语言的特点9
1.3.3VHDL语言程序的基本结构10
1.4状态机的简介10
第二章电梯控制系统的分析12
2.1选题的背景12
2.2电梯控制的研究背景12
2.3我国电梯的发展概况13
2.4电梯设计的具体目的及控制要求13
2.5电梯控制器设计原理及思路14
2.6电梯控制系统状态图分析15
第三章电梯控制系统的设计与实现17
3.1MAX+PLUSII的介绍17
3.2电梯控制系统的VHDL语言设计及仿真18
3.2.1模块示意图和输入输出描述18
3.2.2模块设计过程20
3.2.3波形仿真21
3.3电梯控制系统的实验平台实现27
结论与体会.28
致谢.30
附件程序.31
参考文献.43
第一章概述摘要
1.1EDA概述
EDA在通信行业(电信)里的另一个解释是企业数据架构,EDA给出了一个企业级的数据架构的总体视图,并按照电信企业的特征,进行了框架和层级的划分。
EDA是电子设计自动化(ElectronicDesignAutomation)的缩写,在20世纪60年代中期从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。
1.1.1什么是EDA
20世纪90年代,国际上电子和计算机技术较先进的国家,一直在积极探索新的电子电路设计方法,并在设计方法、工具等方面进行了彻底的变革,取得了巨大成功。
在电子技术设计领域,可编程逻辑器件(如CPLD、FPGA)的应用,已得到广泛的普及,这些器件为数字系统的设计带来了极大的灵活性。
这些器件可以通过软件编程而对其硬件结构和工作方式进行重构,从而使得硬件的设计可以如同软件设计那样方便快捷。
这一切极大地改变了传统的数字系统设计方法、设计过程和设计观念,促进了EDA技术的迅速发展。
EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。
EDA技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。
利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程的计算机上自动处理完成。
现在对EDA的概念或畴用得很宽。
包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有EDA的应用。
目前EDA技术已在各大公司、企事业单位和科研教学部门广泛使用。
例如在飞机制造过程中,从设计、性能测试及特性分析直到飞行模拟,都可能涉及到EDA技术。
1.1.2EDA的特点
(1)高层综合和优化
为了能更好地支持自顶向下的设计方法,现代的EDA工具能够在系统进行综合和优化,这样就缩短了设计的周期,提高了设计效率。
(2)采用硬件描述语言进行设计
采用硬件描述语言进行电路与系统的描述是当前EDA技术的另一个特征。
与传统的原理图设计方法相比,HDL语言更适合描述规模大的数字系统,它能够使设计者在比较抽象的层次上对所设计系统的结构和逻辑功能进行描述。
采用HDL语言设计的突出优点是:
语言的公开性和利用性;设计与工艺的无关性;宽围的描述能力;便于组织大规模系统的设计;便于设计的复用,交流,保存和修改等。
目前最常用的硬件描述语言有VHDL和VerilogHDL,它们都已经成为IEEE标准。
(3)开放性和标准化
现代EDA工具普遍采用标准化和开放性框架结构,任何一个EDA系统只要建立了一个符合标准的开放式框架结构,就可以接纳其他厂商的EDA工具仪器进行设计工作。
这样就可以实现各种EDA工具的优化组合,并集成在一个易于管理的统一环境下,实现资源共享。
1.1.3EDA的应用
随着电子技术的发展,可编程逻辑器件和eda技术已广泛应用于通信、工业自动化、智能仪表、图像处理、计算机等领域。
EDA(ElectronincDesignAutomation,电子设计自动化)技术是现代电子工程领域的一门新技术,它提供了基于计算机和信息技术的电路系统设计方法。
EDA技术的发展和推广应用极大地推动了电子工业的发展。
随着EDA技术的发展,硬件电子电路的设计几乎全部可以依靠计算机来完成,这样就大大缩短了硬件电子电路设计的周期,从而使制造商可以快速开发出品种多、批量小的产品,以满足市场的众多需求。
EDA教学和产业界的技术推广是当今世界的一个技术热点,EDA技术是现代电子工业中不可缺少的一项技术。
1.2FPGA的简介及特点
背景
目前以硬件描述语言(Verilog或VHDL)所完成的电路设计,可以经过简单的综合与布局,快速的烧录至FPGA上进行测试,是现代IC设计验证的技术主流。
这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如AND、OR、XOR、NOT)或者更复杂一些的组合功能比如解码器或数学方程式。
在大多数的FPGA里面,这些可编辑的元件里也包含记忆元件例如触发器(Flip-flop)或者其他更加完整的记忆块。
系统设计师可以根据需要通过可编辑的连接把FPGA部的逻辑块连接起来,就好像一个电路试验板被放在了一个芯片里。
一个出厂后的成品FPGA的逻辑块和连接可以按照设计者而改变,所以FPGA可以完成所需要的逻辑功能。
FPGA一般来说比ASIC(专用集成芯片)的速度要慢,无法完成复杂的设计,而且消耗更多的电能。
但是他们也有很多的优点比如可以快速成品,可以被修改来改正程序中的错误和更便宜的造价。
厂商也可能会提供便宜的但是编辑能力差的FPGA。
因为这些芯片有比较差的可编辑能力,所以这些设计的开发是在普通的FPGA上完成的,然后将设计转移到一个类似于ASIC的芯片上。
另外一种方法是用CPLD(复杂可编程逻辑器件备)。
CPLD与FPGA的关系
早在1980年代中期,FPGA已经在PLD设备中扎根。
CPLD和FPGA包括了一些相对大数量的可以编辑逻辑单元。
CPLD逻辑门的密度在几千到几万个逻辑单元之间,而FPGA通常是在几万到几百万。
CPLD和FPGA的主要区别是他们的系统结构。
CPLD是一个有点限制性的结构。
这个结构由一个或者多个可编辑的结果之和的逻辑组列和一些相对少量的锁定的寄存器。
这样的结果是缺乏编辑灵活性,但是却有可以预计的延迟时间和逻辑单元对连接单元高比率的优点。
而FPGA却是有很多的连接单元,这样虽然让它可以更加灵活的编辑,但是结构却复杂的多。
CPLD和FPGA另外一个区别是大多数的FPGA含有高层次的置模块(比如加法器和乘法器)和置的记忆体。
一个因此有关的重要区别是很多新的FPGA支持完全的或者部分的系统重新配置。
允许他们的设计随着系统升级或者动态重新配置而改变。
一些FPGA可以让设备的一部分重新编辑而其他部分继续正常运行。
FPGA工作原理
FPGA采用了逻辑单元阵列LCA(LogicCellArray)这样一个概念,部包括可配置逻辑模块CLB(ConfigurableLogicBlock)、输出输入模块IOB(InputOutputBlock)和部连线(Interconnect)三个部分。
FPGA的基本特点
1)采用FPGA设计ASIC电路(特定用途集成电路),用户不需要投片生产,就能得到合用的芯片。
2)FPGA可做其它全定制或半定制ASIC电路的中试样片。
3)FPGA部有丰富的触发器和I/O引脚。
4)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。
5)FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。
可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。
FPGA是由存放在片RAM中的程序来设置其工作状态的,因此,工作时需要对片的RAM进行编程。
用户可以根据不同的配置模式,采用不同的编程方式。
加电时,FPGA芯片将EPROM中数据读入片编程RAM中,配置完成后,FPGA进入工作状态。
掉电后,FPGA恢复成白片,部逻辑关系消失,因此,FPGA能够反复使用。
FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。
当需要修改FPGA功能时,只需换一片EPROM即可。
这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。
因此,FPGA的使用非常灵活。
1.3VHDL语言及程序概述
VHDL的英文全名是Very-High-SpeedIntegratedCircuitHardwareDescriptionLanguage,诞生于1982年。
1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言。
VHDL主要用于描述数字系统的结构,行为,功能和接口。
除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。
VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口)和部(或称不可视部分),既涉及实体的部功能和算法完成部分。
在对一个设计实体定义了外部界面后,一旦其部开发完成后,其他的设计就可以直接调用这个实体。
这种将设计实体分成外部分的概念是VHDL系统设计的基本点。
1.3.1VHDL语言的发展
在集成电路制造工艺的发展的过程中,微电子设计工艺已经达到了深亚微米时代,在EDA设计中主要有软硬件协作设计的要求,现有的工具支持SOC设计尚有难度,迫切需要提高设计能力。
在设计语言中,由于VHL和VerilogHDL是目前通用的设计语言,在设计大系统时,不够方便直观,所以需要进一步完善。
电子产品随着技术的进步,更新换代日新月异,而掌握电子产品开发研制的动力源—EDA技术,是我们国家工程技术人员不可推卸的责任,因为中国的设计公司大多还处在发展的初级阶段,所使用的设计工具都是几年前国外的主流工具。
1.3.2VHDL语言的特点
VHDL语言能够成为标准化的硬件描述语言并获得广泛应用,它自身必然具有很多其他硬件描述语言所不具备的优点。
归纳起来,VHDL语言主要具有以下优点:
[1]
(1)VHDL语言功能强大,设计方式多样
VHDL语言具有强大的语言结构,只需采用简单明确的VHDL语言程序就可以描述十分复杂的硬件电路。
同时,它还具有多层次的电路设计描述功能。
此外,VHDL语言能够同时支持同步电路、异步电路和随机电路的设计实现,这是其他硬件描述语言所不能比拟的。
VHDL语言设计方法灵活多样,既支持自顶向下的设计方式,也支持自底向上的设计方法;既支持模块化设计方法,也支持层次化设计方法。
(2)VHDL语言具有强大的硬件描述能力
VHDL语言具有多层次的电路设计描述功能,既可描述系统级电路,也可以描述门级电路;描述方式既可以采用行为描述、寄存器传输描述或者结构描述,也可以采用三者的混合描述方式。
同时,VHDL语言也支持惯性延迟和传输延迟,这样可以准确地建立硬件电路的模型。
VHDL语言的强大描述能力还体现在它具有丰富的数据类型。
VHDL语言既支持标准定义的数据类型,也支持用户定义的数据类型,这样便会给硬件描述带来较大的自由度。
(3)VHDL语言具有很强的移植能力
VHDL语言很强的移植能力主要体现在:
对于同一个硬件电路的VHDL语言描述,它可以从一个模拟器移植到另一个模拟器上、从一个综合器移植到另一个综合器上或者从一个工作平台移植到另一个工作平台上去执行。
(4)VHDL语言的设计描述与器件无关
采用VHDL语言描述硬件电路时,设计人员并不需要首先考虑选择进行设计的器件。
这样做的好处是可以使设计人员集中精力进行电路设计的优化,而不需要考虑其他的问题。
当硬件电路的设计描述完成以后,VHDL语言允许采用多种不同的器件结构来实现。
(5)VHDL语言程序易于共享和复用
VHDL语言采用基于库(library)的设计方法。
在设计过程中,设计人员可以建立各种可再次利用的模块,一个大规模的硬件电路的设计不可能从门级电路开始一步步地进行设计,而是一些模块的累加。
这些模块可以预先设计或者使用以前设计中的存档模块,将这些模块存放在库中,就可以在以后的设计中进行复用。
由于VHDL语言是一种描述、模拟、综合、优化和布线的标准硬件描述语言,因此它可以使设计成果在设计人员之间方便地进行交流和共享,从而减小硬件电路设计的工作量,缩短开发周期。
1.3.3VHDL语言程序的基本结构
实体(Entity)结构体(Architecture)包集合(Package)配(Configuration)库(Library)
1.4状态机的简介
关于状态机的一个极度确切的描述是它是一个有向图形,由一组节点和一组相应的转移函数组成。
状态机通过响应一系列事件而“运行”。
每个事件都在属于“当前”节点的转移函数的控制围,其中函数的围是节点的一个子集。
函数返回“下一个”(也许是同一个)节点。
这些节点中至少有一个必须是终态。
当到达终态,状态机停止。
包含一组状态集(states)、一个起始状态(startstate)、一组输入符号集(alphabet)、一个映射输入符号和当前状态到下一状态的转换函数(transitionfunction)的计算模型。
当输入符号串,模型随即进入起始状态。
它要改变到新的状态,依赖于转换函数。
在有限状态机中,会有有许多变量,例如,状态机有很多与动作(actions)转换(Mealy机)或状态(摩尔机)关联的动作,多重起始状态,基于没有输入符号的转换,或者指定符号和状态(非定有限状态机)的多个转换,指派给接收状态(识别者)的一个或多个状态,等等。
传统应用程序的控制流程基本是顺序的:
遵循事先设定的逻辑,从头到尾地执行。
很少有事件能改变标准执行流程;而且这些事件主要涉及异常情况。
“命令行实用程序”是这种传统应用程序的典型例子。
另一类应用程序由外部发生的事件来驱动——换言之,事件在应用程序之外生成,无法由应用程序或程序员来控制。
具体需要执行的代码取决于接收到的事件,或者它相对于其他事件的抵达时间。
所以,控制流程既不能是顺序的,也不能是事先设定好的,因为它要依赖于外部事件。
事件驱动的GUI应用程序是这种应用程序的典型例子,它们由命令和选择(也就是用户造成的事件)来驱动。
Web应用程序由提交的表单和用户请求的网页来驱动,它们也可划归到上述类别。
但是,GUI应用程序对于接收到的事件仍有一定程度的控制,因为这些事件要依赖于向用户显示的窗口和控件,而窗口和控件是由程序员控制的。
Web应用程序则不然,因为一旦用户采取不在预料之中的操作(比如使用浏览器的历史记录、手工输入以及模拟一次表单提交等等),就很容易打乱设计好的应用程序逻辑。
显然,必须采取不同的技术来处理这些情况。
它能处理任何顺序的事件,并能提供有意义的响应——即使这些事件发生的顺序和预计的不同。
有限状态机正是为了满足这方面的要求而设计的。
有限状态机是一种概念性机器,它能采取某种操作来响应一个外部事件。
具体采取的操作不仅能取决于接收到的事件,还能取决于各个事件的相对发生顺序。
之所以能做到这一点,是因为机器能跟踪一个部状态,它会在收到事件后进行更新。
为一个事件而响应的行动不仅取决于事件本身,还取决于机器的部状态。
另外,采取的行动还会决定并更新机器的状态。
这样一来,任何逻辑都可建模成一系列事件/状态组合。
状态机可归纳为4个要素,即现态、条件、动作、次态。
这样的归纳,主要是出于对状态机的在因果关系的考虑。
“现态”和“条件”是因,“动作”和“次态”是果。
详解如下:
①现态:
是指当前所处的状态。
②条件:
又称为“事件”。
当一个条件被满足,将会触发一个动作,或者执行一次状态的迁移。
③动作:
条件满足后执行的动作。
动作执行完毕后,可以迁移到新的状态,也可以仍旧保持原状态。
动作不是必需的,当条件满足后,也可以不执行任何动作,直接迁移到新状态。
④次态:
条件满足后要迁往的新状态。
“次态”是相对于“现态”而言的,“次态”一旦被激活,就转变成新的“现态”了。
第二章电梯控制系统的分析
2.1选题的背景
随高层楼宇的增加,电梯越来越多的走进了人们的生活,对人们的生活的影响越来越大。
为了让电梯更好的服务人们,各种电梯新技术不断地发展起来。
随着人们生活水平的不断提高,经济的快速发展和生产生活的需要,城市高层建筑如雨后春笋拔地而起。
与此相应,作为一种可以垂直升降运输的工具一电梯也得到迅猛的发展。
现在,电梯己完全融入我们的生活、工作及学习中,人们越来越离不开它。
因此,它的安全可靠性、迅速准确性、舒适性,对人们来说都是非常重要的。
为了确保电梯正常运行、安全使用,一般电梯都有专业的维修管理人员。
他们必须对电梯原理、性能、特点、控制、运行要全面认识和掌握,才能做到对电梯的正确使用、管理及维护。
根据我国有关部门的规定,电梯作业属于特种作业,其作业人员必须经过专门培训,并经理论考试和实践考核合格后,发给《特种作业操作证》方可上岗操作。
同时,对电梯操作人员定期考核,让他们定期参加安全技术学习,扎扎实实地做好电梯维护和保养工作,才能使人们平安长久的使用电梯少,
2.2电梯控制的研究背景
电梯控制系统是一个相当复杂的逻辑控制系统.系统要同时对几百个信号进行接收、处理。
由于用户对电梯功能的要求不断提高.其相应控制方式也在不断发生变化。
随着EDA技术的快速发展.基于FPGA的微机化控制已广泛应用于电梯电路设计与控制的各个方面。
2.3我国电梯的发展概况
电梯控制是属于机电一体化研究领域,它涉及到多个方面,包括:
机械工程、电子技术、电力电子技术、电机与拖动理论、自动控制理论、电力拖动自动控制系统、微机技术和土建工程等多个科学领域。
100多年来,我国电梯行业的发展经历以下几个阶段:
①对进口电梯的销售、安装、维护阶段(1900-1949年),这一阶段我国电梯拥有数量仅约1100多台;②独立自主、艰苦研制、生产阶段(1950-1979年),这一阶段我国共生产安装电梯
约1万台;③建立三资企业,行业快速发展阶段(自1980年至今),这一阶段我国
共生产安装电梯约40万台。
目前,我国已经成为世界最大的新装电梯市场和最
大的电梯生产国。
并且还有着巨大市场和发展潜力空间。
2002年,中国电梯行
业电梯年产量首次突破6万台。
中国电梯行业自改革开放以来第三次发展浪潮正
在掀起。
第一次出现在1986-1988年,当时适逢我国高层建筑业的大规模浪潮的
第一次兴起。
第二次出现在1995^-1997年。
应该说,随着我国经济的增长,电
梯市场一直保持着旺盛的需求。
其次表现在企业的规模效益逐步展现。
随着我国
经济平稳持续的发展,尤其是住宅产业作为国民经济新增长点的提出,为电梯业
的发展提供了良好的机遇。
今后几年,我国将年建住宅3.5亿平方米,公建项目
1.2亿平方米。
随着城市向大型化、高层化的发展,我国每年将需要电梯在40000
台以上。
如此大的市场需求,将是电梯业再创辉煌的最好契机。
2.4电梯设计的具体目的及控制要求
使用FPGA完场6层的电梯控制系统。
可以使用状态机实现。
要求指示电梯所在楼层位置等其他必要的信号。
通过仿真结果验证其正确性,并在开发板上进行硬件测试。
系统的要求如下:
(1)电梯共有6层。
电梯运行规则:
上升时:
响应比当前位置高的上楼要求,由下往上逐个执行;如果楼层有下楼请求,直接升到由此请求的最高层,然后进入下降模式。
进入下降模式后,只响应比当前位置低的下楼请求,由上到下逐个执行。
电梯有6层,每1秒上升或者下降1层。
(2)有信号灯指示电梯处于上升或者下降状态,并有数码管显示电梯到达层数。
(3)每一层有信号灯指示该层电梯门状态,有两个按键分别响应上升或下降的请求
(4)每一层电梯部有乘客到达楼层的停站请求开关及其显示
(5)电梯到达有停站请求的楼层后,电梯门打开,指示灯亮,4秒后电梯门关闭,指示灯灭,直至执行完。
最后停在发出最后一个请求的楼层。
(6)电梯的初始位置为一层,处于开门状态。
2.5电梯控制器设计原理及思路
原理与系统设计
思想来源:
平时我们上课或者是上自习都去过东十二楼或者去过科技楼、南一楼,免不了坐坐电梯,对它的基本工作原理我们有知道多少了,这次我们要制作一个智能电梯控制器,必须对它的工作原理有十分清晰的了解。
我们设计的智能电梯控制器应该可以实时接受各楼层的上下请求信号及电梯部的停靠请求,然后根据这些请求实现对电梯正确的控制:
1、除了顶层和底层外,各楼层均设有上下请求开关,顶层和底层分别设有下降和上升请求开关,这一点应该不难理解;电梯设有乘客到达层次的请求开关。
2、电梯每1s上升或下降一层
3、电梯到达有停站请求的楼层后,经过1s后电梯门打开,开门指示灯亮,开门5s后电梯指示灯灭,电梯继续运行,直至运行完最后一个请求后停靠在当前层。
以上是我们所应实现的基本功能。
我在序言中也讲到了,“应用有限状态机”实现电梯的实时控制是最好不过的方法了,通过我的分析以及参考图书馆的有关书籍,也少不了参照一些网上的程序,最后总结出了电梯正常运行的七个状态:
上升、下降、上升的过程中途停止、下降的过程中途停止、开门、关门、等待状态。
电梯在上述七个状态间的转移是通过三段式状态机来实现的,各状态间的转移大体与生活中的电梯运转一致,有如下的基本原则:
1、方向为第一优先准则,这就是曾老师给我们的技术指标。
电梯在运转时先响应同方向上的请求,只有当同方向上的请求响应完后,才能转而响应不同方向上的请求。
2、初始化状态为1楼等待门是关闭的。
这个就不用多解释了。
除了我对电梯的运行规律做出如上的分析外,我的另一个选择开发智能电梯控制器的原因是我想锻炼一下自己的逻辑思维和分析复杂问题的能力。
2.6电梯控制系统状态图分析
最开始我根据DE2板子所能提供的资源,把楼层数设为6层。
从我查阅的书籍中我总结了两点是我可以借鉴的。
首先,是怎样处理数量繁多的电梯输入信号,如果采用分情况讨论的话,程序一路写完,复杂度肯定是不堪设想,而且我还不敢保证是否分析到所有的情况了。
always(call_up_1orcall_up_2orcall_up_3orcall_up_4orcall_up_5)
up_all={1'b0,call_up_5,call_up_4,call_up_3,call_up_2,call_up_1};
//将各下降请求信号实时地合并(1楼为底层,无下降请求,考虑到通用性,将第1位填零)
always(call_down_2orcall_down_3orcall_down_4orcall_down_5orcall_down_6)
down_all