




已阅读5页,还剩44页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
电梯仿真控制系统目 录第一章 绪论 -11.1 电梯行业背景及工作原理 -11.2 VHDL硬件描述语言出现及发展状况-41.3 MAX+PLUS软件及配套硬件介绍-61.4 电梯控制系统简述-10第二章 电梯仿真控制系统设计综述-11 2.1 设计目的及要求-11 2.2 方案论证及端口分配-12 2.2.1方案论证-12 2.2.2端口分配-12 2.3 论证各个信号量之间的关系-14 2.4 控制系统模块划分及总流程图-17第三章 软件及硬件实现-18 3.1电梯仿真控制系统软件设计-18 3.2 电梯仿真控制系统硬件设计-27第四章 总结-32致谢-34 参考文献-35附录-36第一章 绪论本章简单介绍该设计的背景知识,主要包括以下几个方面: 电梯行业背景及工作原理。 VHDL硬件描述语言出现及发展状况 MAX+PLUS 软件极其配套硬件介绍 电梯控制系统简述1.1电梯行业背景极其工作原理 近年来我国的经济飞速发展,人民生活水平、工作居住条件得到重大改善,高层建筑如雨后春笋般拔地而起。电梯作为高层建筑物内垂直运输工具,与人们工作生活日益紧密相关。目前我国电梯拥有量达20万左右,并且以每年15%左右的速度增加,因而电梯的技术及市场发展前景广阔。 这里所要介绍的是与本设计有关的垂直升降式电梯。一部电梯主要由轿厢、对重、曳引机、控制柜、导轨等主要部件组成。 电梯的机房通常设在建筑物顶楼,机房内设有电梯的控制柜曳引机及防止电梯超速运行的保护装置限速器。电梯轿厢和对重通过钢丝绳悬挂在曳引轮的两侧,靠曳引轮与钢丝绳之间的摩擦力带动轿厢运动。钢丝绳通常经过一套动、静滑轮组来吊住轿厢(对重亦然),这样可以起到进一步减速的作用,同时又可减轻钢丝绳的张力,从而可以选用较细的钢丝绳,而较细的钢丝绳有较好的柔韧性。在行程较大的电梯中,轿厢底部与对重底部还连有一个补偿链,用以补偿当轿厢在接近底部或顶部时,轿厢、对重两侧由于曳引钢丝绳长度不同造成的重量差。 轿厢内门的一侧装有一个操纵盘,盘上设有选层按纽及相应的 图1-1现代电梯的基本结构图1.电源开关 2.曳引机 3.限速器 4.导向轮 5.限速器钢丝绳 6.曳引钢丝绳 7.轿厢 8.随行电缆 9.对重 10.对重导靴 11.对重缓冲器 12.限速器张紧装置 13.轿厢缓冲器 14.轿厢导轨 15.轿厢门 16.极限开关钢丝绳 17.控制柜指示灯,还有开、关门按扭,有无司机开关及各种显示电梯 运行状态的指示灯,显示轿厢所在楼层的数码管通常装在操纵盘的上方,有时设在门的上方,轿厢底部或上部吊挂处装有称重装置(低文件电梯无此项功能),称重装置将轿厢的负载情况通报给控制系统,以便确定最佳控制规律,轿厢门的上方装有开门机。在门上或门框装有机械的或电子的门探测器,当门探测器发现门区有障碍时便发出信号给控制部分停止关门、重新开门,待障碍消除后,方可关门。从而防止关门时夹人夹物。在机房曳引 机的下方便是贯穿于建筑物通体高度的方型竖直信道,俗称井道。井道侧壁上安装有竖直的导轨,作为引导轿厢、对重运动的导向装置,在发生轿厢超速或坠落时,限速器会自动将安全钳的楔形钳块插入导轨和导靴之间,将轿厢停在导轨上,防止恶性事故的发生。井道的底部平面低于建筑物最底层的地面俗称底坑,在底坑对应着轿厢和对重重心的投影点处分别安装有缓冲器,以便在轿厢蹲底或冲顶时减缓冲击作用。底坑中还设有减速、平层开关的遮磁板,以便发送减速、停车信号用。有的电梯在井道中还设有各层的楼层编码开关的磁块(或磁铁),用做楼层指示信号。在井道对应各楼层侯梯厅一侧开有厅门,厅门平时是关闭的,只有当轿厢停靠在该层时,厅门被轿门的连动机构带动一起打开或关闭。在各层厅门的一侧面对候梯按扭和楼层显示装置,呼梯按扭通常有上行呼梯下行呼梯按扭各一个。按扭内装有呼梯响应指示灯,该灯亮表示呼梯信号被控制系统登记。楼层显示装置有时也设在门的上方。现在电梯的各种性能不断提高,把乘客运到目的不是唯一目的,更想让乘客体验到上上下下的享受,在电梯上下起速,减速时运动曲线要求圆滑,不同规格不同用途的电梯有不同的速度曲线.1.2 VHDL硬件描述语言出现及发展状况 硬件描述语言(HDL,Hardware Description Language),至今约有40年的历史,现在已成功地应用于ASIC自动设计的模拟验证和综合优化等方面。其最大特点使借鉴高级程序设计语言的功能特性对电路的行为与结构进行高度抽象化、规范化的形式描述,并对设计不同层次、不同领域的模拟验证与综合优化等处理,使设计过程达到高度自动化。至80年代末,硬件描述语言的发展趋势进入多领域、多层次并且迫切要求标准化和集成化。最终只有VHDL和Verilog适应了这种发展趋势,先后成为IEEE制定的硬件描述语言的工业标准。 VHDL语言的全称是“超高速集成电路硬件描述语言”(VHSIC Hardware Description Language)VHDL的结构和方法受到ADA语言的影响,并吸收了其它硬件描述语言的某些优点。1986年3月,IEEE开始致力于VHDL的标准化工作,为此,成立了审查和完善VHDL的标准化小组。美国空军全力支持这项工作,并与Intermetrics 签定发展VHDL(IEEE-1076)的支撑软件合同。1987年12月IEEE推出IEEE STD1076-1987。VHDL语言成为IEEE标准后,很快在世界各地得到广泛应用,逐渐成为数字系统ASIC设计中的主要硬件描述语言。1995年中国国家技术监督局组织编撰并出版“CAD通用技术规范”推荐VHDL 语言作为我国电子设计自动化硬件描述语言的国家标准。VHDL是一种独立于实现技术的语言,它不受某一特定工艺的束缚,允许设计者在其使用范围内选择工艺和方法。为了适应未来的数字硬件技术,VHDL还提供了将新技术引入现有设计的潜力。VHDL语言的最大特点是描述能力极强,覆盖了逻辑设计者的诸多领域和层次,并支持众多的硬件模型。具体而言,VHDL较其它的硬件描述语言有如下优越之处:1.支持从系统级到门级电路的描述,同时也支持多层次的混合描述;描述形式可以是结构描述,也可以是行为描述,或者二者兼而有之。2.支持自底向上(bottom-up)的设计也支持自顶向下(top-down)的设计;既支持模块化设计也支持多层次化设计;支持大规模设计的分解和者机重用。3.既支持同步电路,也支持异步电路;既支持同步方式也支持异步方式.4.支持传输延迟,也支持惯性延迟,可以更准确地建立复杂的电路硬件模型。5.数据类型丰富,既支持预定义的数据类型:VHDL是强类型语言,设计电路安全性好。6.支持过程与函数的概念,有助于设计者组织描述,对行为功能进一步分类。7.供了将独立的工艺集中于一个设计包的方法,便于作为标准的设计文档保存,也便于设计资源的重用。8.VHDL语言的类属提供了向设计实体传送环境信息的能力。9.VHDL语言的断言语句可用来描述设计者本身的约束信息,支持设计直接在描述中书写错误条件和特殊约束,不仅便于模拟调试,而且为综合化提供了重要信息。正是因为VHDL语言描述能力强,覆盖面广,抽象能力强,所以用VHDL语言作为硬件模型建模很合适。设计者的原始述是非常简练的硬件描述,经过EDA工具综合处理,最终生成附诸生产的电路描述或版图参数描述的工艺文件。整个过程通过EDA工具自动完成,大大减轻了设计人员的工作强度,提高设计质量,减少了出错机会。VHDL可读性好。VHDL既能被人容易读懂又能被计算机识别,作为技术人员编写的源文件,既是计算机程序、技术文文件和技术人员硬件信息交流文件,又是签约双方的合同文件。VHDL语言设计实体(Design Entity)、设计库(Library),为设计人员重复利用别人的设计提供了技术手段。重复利用他人的IP模块软核(Soft Core)是VHDL的特色,许多设计都不必个个从头再来,只要在更高层次上把IP模块利用起来,就能达到事半功倍的效果。另外VHDL语言可以在多种EDA工具设计环境中运行,硬件平台是工作站或高档微机。(EDA环境:Candence,menter,ALTERA等公司的工具均支持VHDL语言环境)1.3 MAX+PLUS 软件及其配套硬件介绍ALTERA公司的MAX+PLUS开发系统是一个完全集成化易学易懂的可编程逻辑设计环境,它可以在多种平台上运行其全称是Multiple Array Matrix And Programmable Logic User System.它具有原理图输入。文本输入波形输入等多种输入方式,利用它所配备的编译、编辑、仿真、综合、芯片编程等功能,可以完成数字电路设计、检查、模拟到下载的全过程,是EDA设计中不可缺少的一种有用工具。MAX+PLUS 所提供的灵活性和高效性是无可比拟的。其丰富的图形接口辅之以完整的、可实时访问的在线文档,则可使设计人员能够轻松地掌握和使用MAX+PLLUS 软件。MAX+PLUS 开发系统的主要特点有(1) 开放的接口MAX+PLUS 软件可与其它工业标准的设计输入、综合与校验工具相连接。设计人员可以使用Altera或标准的EDA设计工具来建立逻辑设计,使用MAX+PLUS 编译器(Compiler)对Altera 器件进行编译,并使用Altera或其它EDA校验工具进行器件或板级仿真.(2)与结构无关MAX+PLUS 系统的核心Compiler 支持Altera公司的FLEX 10K、FLEX 8000、FLEX 6000.MAX 9000、MAX 7000、MAX 5000和Classic可编程逻辑器件系列,提供了一个真正与结构无关的可编程逻辑设计环境。MAX+PLUS 编译器还提供了强大的逻辑综合与优化功能,使用户比较容易地将其设计集成到器件中。(3)多平台MAX+PLUS 软件在486、奔腾PC机的WindowsNT3.51或4.0 、Windows 9x下运行,也可在Sun SPAC Stations、HP9000 Series 700/800和IBM RISC System/6000工作站上运行。(4)完全集成化MAX+PLUS 的设计输入、处理与校验功能全部集成在统一的开发环境下,这样可以加快动态调试,缩短开发周期。(5)丰富的设计库MAX+PLUS 提供了丰富的库单元供设计者调用,其中包括74系列的全部器件和多种特殊的逻辑宏功能(Macro-Function)以及新型的兆功能(Mage-Function)。调用库单元进行设计,可以大大减轻设计人员的工作量,也可以成倍的缩短设计周期。(6)模块化工具设计人员可以从各种设计输入、处理和校验选项中进行选择从而使设计环境用户化,必要时还可以根据需要添加新功能。由于MAX+PLUS 支持各种器件系列,设计人员不必学习新工具即可支持新结构。(7)硬件描述语言(HDL)MAX+PLUS 软件支持各种HDL设计输入选项,包括VHDL、Verilog HDL和Altera自己的硬件描述语言AHDL。(8)Megacore功能Megacore 功能是为复杂的系统级功能提供的,经过校验的HDL网表文件,它能使FLEX 10K、FLEX 8000、FLEX 6000、MAX 9000和MAX 7000器件系列实现最优化的设计。充分利用这些Megacore功能会使设计人员的设计任务大大减轻,可把更多的精力投入到改进各种设计和最终的产品上。(9)Opencore 特性MAX+PLUS 软件具有开放核的特点,它允许设计人员添加自己认为有价值的宏函数。1.3.2本实验系统硬件设备是由ALTER公司的可编程器件7128LC8415和10K10LC84-4与丰富的可供选择的外围接口器件所组成。它采用20MHZ的石英晶体振荡器作为系统的主钟源,支持采用JTAG链的下载方式对板内的和跨板的可编程器件(7128LC8415和10K10LC84-4)进行在系统编程和配置。此外,它也支持对可编程器件10K10LC84-4的EPROM配置。逻辑设计输入设计修改项目的编译设计修改编辑分配模拟仿真器件编程器件功能验证 图1-2 MAX+PLUS 的设计过程其中主芯片7128LC84-15和10K10LC84-4共享系统的主钟源,复位键(RESET)和LED数显示器,并可通过他们周边的双列插针座实现互联。全部外围接口器件与主芯片7128LC84-15和10K10LC84-4之间的互联线采取了部分固连与部分分离的布线方案,并且引至布线区的供学者进一步拓展外围接口器件时使用的全部I/O线均加入有串连电阻保护,因此,可以有效地避免设计失误所造成的布线区I/O线的损坏。此设备布线区的I/O线主要由7128LC84-15芯片提供,10K10LC84-4只提供用配置EPROM实现的频率分组可选的连续脉冲信号线。本设备使用交流输入电压220伏,直流输出电压/电流为5伏的开关稳压电源供电,整机电流消耗约为0.5安。工作电源完好和编程/配置状态采用发光二极管指示。硬件设备的核心是2500门EPROM结构的7128SLC84-15和10000门SRAM结构的10K10LC84-4两片可编程器件,并提供了用于实验的一些输入、输出器件,它们主要是:用于输入的16个拨码开关、2个按键开关、1个系统复为键和一个单步脉冲键,用于输出的6个数码管、12个发光二极管、1个8*8LED点阵显示模块、1个喇叭,还有一个稳压电源和1个多频率信号发生器。此外,还有用于研发的模数转换器、数模转换器、波形变换等。1.4 电梯控制系统简述电梯控制系统主要由电力拖动部分和电气控制部分组成,电力拖动部分俗称主电路,由线引电动机暴闸和相应的开关电路及开门机组成,电气控制部分又称控制电路,可由继电器逻辑电路组成也可以由电子电路组成,还可以由微机硬件软件组成。电梯控制系统的框图如下 线引电动机、抱闸、门电路 电力拖动 开关元件(可控硅、大功率晶体管) 电梯控制系统 电气拖动控制(继电器、电子电路、计算机)电气控制 信号控制(继电器、电子电路、计算机)第二章 电梯仿真控制系统设计综述本章将详细介绍设计要求及方案,并对本设计可行性做讨论主要由以下几个部分组成: 设计目的及要求 方案论证、端口分配 论证各个信号量之间的关系 模块划分及其设计总图2.1 设计目的及其要求 设计一个四层电梯的仿真控制系统,使用VHDL语言、MAX+PLUS 的配套硬件盒结合使仿真效果更好 具体要求如下: 要有复位端,设置这项功能的主要目的是保证平层精度和维修方便。 有开门关门按扭,是所有电梯不可缺少的功能。 电梯内部电梯外部的要求及呼梯信号按扭。 超重警报,电梯在超过额定负载时不关门且发出警报声。 障碍警报,当电梯门口有人或有物时电梯重复开门、关门,直到无障碍。 用时间间隔表示电梯在开门、关门、层与层之间的运动。 数码显示所到达楼层。 动态显示电梯的运动方向。本设计主体部分采用VHDL语言编程以上所需要的端口都可以定义。定义部分在实体说明部分详细定义,并需要说明端口的性质及位矢量大小。2.2 方案论证及端口分配2.2.1方案论证由设计要求可知需要定义的输入端口有复位端,命名为RESET。开门关门信号都是由一个2进制信号表示。内部外部呼梯信号分别由一个4位2进制表示。这里我的想法是:为了节省端口可以用编码译码的方式解决,但是当给控制系统时钟信号时难以保证在同一个时钟脉冲时系统检测到正确的信号,这样定义虽然占用了端口,但输入准确率提高且输入方便。超重警报由外部引入,此项工作应由压力或拉力传感器完成对进入电梯实体重量进行称量,将信号反馈给电梯控制系统。障碍物警报也是如此应由热敏传感器或红外线传感器组成。这里面可以与开门信号并联。时间间隔定义较为随便,关键是时钟脉冲的大小,为了达到模拟效果好,所采用的时钟脉冲要模仿与真正的电梯差不多。数码显示部分因为是4层电梯,因此用一个数码管就可以表示出来了。电梯上下指示使用8乘8LED 点阵表示,(用上、下箭头表示)。用脉冲控制时间。电梯在每一层的时间间隔为3个时钟脉冲,电梯开门关门时间的间隔为10个时钟脉冲。这里的定义可以是任意的,但为了模拟效果好才这样定义。这里有一个问题就是电梯在井道里运行是并不是匀速的而是一个变加速的运动。这里不对此做过多讨论。2.2.2端口分配重启端口命名为RESET,按下重启键时电梯自动复位到达一楼,门关闭。复位的优先极是最高的。当按下复位键时其他操作都要停止执行此项操作。定义当RESET=1时起作用电梯内部的开门关门信号输入端口分别定义为OPENDOOR CLOSEDOOR 这两个按纽只有当电梯停靠之后才能起作用,其他时间按下此按纽,电梯不响应。这里定义当OPENDOOR=1CLOSEDOOR=1时执行开门关门操作。超重警报端口命名为OVERWEIGHT,每一次电梯在运行前都要进行检测,如果超重,则等待并且重复检测,直到电梯不在超重状态才执行关门运行操作。此处要引入循环系统。定义当OVERWEIGHT=1时为电梯超重状态。电梯内部的命令电梯到达的层数,电梯外部呼叫的层数端口分别为GOTO、CALL这里需要注意一个问题就是矢量的长度用0001表示第一层,0010表示第二层,0100表示第三层,1000表示第4层。这样烦琐的定义层数是有原因的。假设用0001表示第1层,用0010表示第2层,用0011表示第3层,用0100表示第4层。这样做是减少了一个输入端口,但其操作起来会有误差比如我们要到第3层输入0011。如果先拨动拨码开关的最后一位,系统会认为指令是要到第一层,既认为0001,如果先拨倒数第二个拨码开关,系统会认为指令为0010,既要到第二层,这样会引起控制混乱,因此选用了如上方法。DOOR 用于指示门的状态。当DOOR=1时表示门是开着的或者正在进行开门操作,定义用于指示电梯运行方向的输出端口为DIRECTION,当DIRECTION=1时表示电梯运动方向向上。这个输出端口所附加的外部电路是LED8*8点阵。楼层用FLOOR表示,这里选用在程序内部译码将其译为直接可以接在数码管的形式,定义对应输出端口为A1A6。这样FLOOR作为中间变量作不做输出都可以。名称性质作用CLK输入时钟脉冲输入(高电平起作用)RESET输入用于重启电梯(低电平起作用)OPENDOOR输入命令电梯开门(高电平起作用)CLOSEDOOR输入命令电梯关门(高电平起做用)OVERWEIGHT输入电梯超重指示(高电平时超重)CALL输入电梯外部呼叫信号GOTO输入电梯内部呼叫指示DIRECTION输出指示电梯方向(高电平时向上)FLOOR输出指示所到楼层DOOR输出指示门的状态(高电平时开门)表2.1 端口分配表2.3 论证各个信号量之间的关系所有按键指示都要等到时钟脉冲到来的时候才能起作用RESET 优先级最高,它不受任何信号输入输出的影响,在程序流程图上它只有输出而无输入。OPENDOOR起作用时前提是计数器达到3个脉冲时间的整数倍、即电梯恰好处于平层,OVERWEIGHT 直接影响电梯进行CLOSEDOOR操作,当OVERWEIGHT=1时电梯不能关门。进而不能运行。CLOSEDOOR 是电梯运行的前提,它可以自动关闭,也可以按下OPENDOOR键延迟开门时间。这里设置为开门后10个时钟脉冲无人按此键,门自动关闭。当进行关门操作时如果外部有OPENDOOR呼叫信号则DOOR=1即开门接人。这样,整个作成形成了一个循环,即回到前面所提到的开门状态。如果没有开门操作,关闭后电梯还是等待指示,即不运动,如果已经有指示则按要求运动CALL是电梯外部的呼叫信号,GOTO是电梯内部的命令,这两个部分要通过两个4个拨码开关来进行控制。这在选择优先性上就引入了一个中间变量CALLGOTO,进而手工编程进行判断所要到达的楼层。FLOOR,与FLOORS在现实意义中是相等的 ,但两个进程不能对同一个输出进行赋值,但在同一个进程中可以对信号进行修改,引入另外一个变量的目的就是防止编译不通过,通常是相等的。DOOR用于指示门的状态,这里的优先级是当DOOR=1时,电梯是不会运动的,无论任何情况,电梯的所有运动前提是DOOR=0另外,电梯的方向指示DIRECTION这里面通过楼层进行定义。假如电梯 停在2楼,第一个信号要求到3楼,第二个信号要求到4楼,优先级为3楼,这样,进行编程判断方向向上,所有的方向都是通过这样的方法判断的。当然,如果电梯停在2楼,第一个信号给3楼,第2个信号给4楼,这样电梯仍然方向向上,依照先后次序响应每个人的要求。另外,前面讲到过,整个控制系统是要求以时间间隔来模拟电梯在井道运行,因此引入两个计数器,COUNT1,COUNT2,COUNT1用于做开门关门时间的延迟,这里定义为10个时钟脉冲,如果开门后10脉冲无人进行关门操作,电梯自动关门。如果到了10个时钟脉冲,要关门,而门外有人还要进来,按下OPENDOOR键可以起到延时关门的作用。COUNT2是电梯在各个楼层间进行运行的时间间隔,定义为每一个楼层时间间隔为3个时钟脉冲,这与现实意义上的确有很大的差别,因为电梯为了讲究舒适,其电梯运动曲线是变加速,而且曲线平滑,绝对不是一个典型的匀速直线运动,而是一个变加速直线运动。2.4 控制系统模块划分及其总流程图根据目前电梯运行工作规律绘制电梯工作流程图RESET=0 复位WAIT 等待呼叫OPEDOOR=1?有呼叫吗响应DOOR=0CLOSDOOR=1DOOR=1 NO YES YES NO 超重吗? YES YES NO NOOPENDOOR=1 NO YES NO 第三章 软件及硬件实现本章将进行实体设计,具体内容为: 电梯仿真控制系统软件设计 电梯仿真控制系统硬件设计3.1 电梯仿真控制系统软件设计library ieee; (1)use ieee.std_logic_1164.all; (2)use ieee.std_logic_unsigned.all; (3)这部分主要是介绍本程序所要引用的库做以说明。(1)说明IEEE库可见(2)库中的程序包STD-LOGIC-1164.ALL 中的所有元件可见,允许调用(3)同理entity yindzbs isport(reset:in std_logic; . .door:buffer std_logic;floor:buffer std_logic_vector(3 downto 0);end yindzbs;以上是程序的实体说明部分实体名为yindzbs这里要注意,实体名字必须于该程序所起的文件名字一致,否则无法通过编译。生成宏功能块时名字就是yindzbs。实体说明以“ENTITY 实体名 IS”开始,以“END实体名“结束。大写字母或黑体字都是VHDL关键字。这里进行了端口命名,端口模式说明(IN(输入)OUT(输出)BUFFER(缓冲)INOUT(双向模式)这里面A0-A6定义成双向是因为单独定义成OUT时编译不能通过。另外EDA工具对VHDL语言的大小写字母不区分(单引号或双引号内文字除外)。设计实体是VHDL程序的基本单元,是最重要的电子抽象。它可以代表整个电子系统、一块电路板或一枚芯片,简单的可以是一个与门电路(AND GATE),复杂的可以是一个微处理器或一个数字电子系统。一个实体由实体说明和构造体说明两部分组成,本部分进行的是实体说明部分,下一个部分是构造体部分,即(ARCHITECTURE)。ARCHITECTURE bs OF yindzbs ISSignal sum:std_logic_vector(3 downto 0)SIGNAL floors: std_logic_vector(3 downto 0);signal callgoto: std_logic_vector(7 downto 0);signal floorsum: std_logic_vector(7 downto 0);signal directions: std_logic; -signal doors: std_logic; signal count1: std_logic_vector(3 downto 0);signal count2: std_logic_vector(3 downto 0);上面的程序是本设计的构造体(或称作结构体)。结构体具体指明了该设计计的实体行为,定义了该设计实体的功能,规定了该设计实体的数据流程,指派了实体中内部单元的连接关系。该部分对所有信号进行定义其中STD-LOGIC对于单位信号量进行定义,STD-LOGIC-VECTOR对多位信号量进行定义,阔号里面表示该信号量的实际长度。例如(3 DOWNTO 0)表示该信号量的实际长度为4位。从这里开始到本程序的最末尾都是属于构造体部分以END BS结尾(实体名为BS)以下将要进行的是进程描述将要对各个信号量、变量、常量进行分析说明。进而达到描述功能的目的process (clk,reset,opendoor,closedoor)begin. .end if;end process;从这部分开始就开始进行了进程描述。这个进程描述了CLK 、RESET、OPENDOOR、CLOSEDOOR和COUNT1之间的关系。定义开、关门的时间间隔为10个时钟脉冲,并且此处指明了当电梯延时开门的方法,即按下OPENDOOR键即可达到延长开门时间的目的。从这里开始,要进行PROCESS语句对所要实现的功能进行具体的描述。进程 1进程 1 P1 P12 P2 P14 P24进程 1进程 1 P3 P34 P4 P43图3.2 构造体多进程组织结构begin process(clk,reset,opendoor,count1,floor,closedoor)if(overweight=0 and (reset=0 or count1=1010 or closedoor=1) thendoor=0;else if (overweight=1 or opendoor=1 or (floor=0001 and sum=0001) or (floor=0010 and sum=0010) or (floor=0100 and sum=0100) or (floor=1000 and sum=1000) then door=1; end if; end if; end process;上一个进程主要对电梯门的状态进行了具体定义。当电梯不超重并且不重启,有关门操作且COUNT1计数为10秒既完成关门操作时电梯门是关着的状态,其他分析同理,beginif(reset=0) then count2=0000;. .end if;end process;这里要强调的是虽然这里定义每3个时钟脉冲为电梯运动1层的时间,但为了更容易以后的描述,约定COUNT2=“0000”时电梯在第一层“0011”表示电梯在第2层,其他依次类推。通过计数器2完成加1或者减1的动作,恰好能够达到监控电梯所到层数的目的process(floors,reset)beginif(reset=0) thenfloor=0001; else floor=floors;end if;end process;这里对复位时的电梯所在楼层进行了定义即。第一层。而且引入了中间变量,FLOORS之所以引入这个变量是因为在其他进程中同时会使用此变量,定义一个相同的量以保证它们在不同的进程中能够别被使用。process(clk,reset) begin. .end if;end process;此部分主要定义电梯的运动方向,在此进行了详细的分类,当电梯在第一层时,运动方向向上,第四层时方向向下,当电梯停在第二层,要求到第三层时,电梯运动方向向上,依次类推,列举出所有可能的情况,这里使用到了CASE语句。它的特点是语句无序,所有表达式的值都并行处理。而IF语句则有序,先处理最起始、最优先的条件,后处理次优先的条件。选用哪一种语句是根据所要实现的功能特点选择的。process(call,reset,goto)beginif(reset=0) thencallgoto=00000000;elsecallgoto=call & goto;end if;end process;上述进程出现了一个本设计中非常重要的中间量CALLGOTO,它是CALL与GOTO的联合拓展,下面要用到这个量进行电梯优先选择性的处理判断。process(clk,reset,floor,door,callgoto) begin if(reset=0) then floorssumsumsumsumsumsumsumsumsumsumsumsumsumfloorsfloorsfloorsfloorsfloorsfloors=0001 ; end case;end if; end if; end if;else if(door=1) thensum=0000;end if; end if;.floors=floors; end if;end if;end process;以上这部分进程处理是真个进程语句中最为复杂的一个,它主要是对电梯的优先选择性做为判断。整个程序可以划分为两部分,电梯最起始方向向上,围绕这个前提列举所有四层电梯可能的情况。同理电梯方向向下,不再讨论。这里面使用了大量的IF语句和CASE语句IF 语句使用时语句中的各个部分是按照逻辑顺序执行的,而CASE语句则不是,但是要注意这里面之所以出现了这么长的程序,其中一个主要原因,就是CASE语句在列举所有的情况的时候必须列举全部可能出现的情况,否则系统将提示出错,无法通过编译。 process(floor,a1,b1,c1,d1,e1,f1,g1)begin if(floor=0001)then a1=0; b1=1; c1=1; d1=0; e1=0; f1=0; g1=0; else if(floor=0010)then a1=1; b1=1; c1=0; d1=1; e1=1; f1=0; g1=1; else if(floor=0100)then a1=1; b1=1; c1=1; d1=1; e1=0; f1=0; g1=1; else if(floor=1000)then a1=0; b1=1; c1=1; d1=0; e1=0; f1=1; g1=1; end if; end if; end if; end if ;end process;END bs;以上部分是将电梯的楼层用编码的方法便于和外部的数码管直接相连接。实现显示的作用上述程序是经过反复调试才验证通过的,编译通过后生成模块YINDEBS,软件设计过程结束。为了能够更好的达到仿真效果,配以硬件电路3.2 电梯仿真控制系统硬件设计1.电路的主控部分:此部分是由VHDL生成的电梯主控功能模块端口命名与前面所述一致。2分频器:下图所示为分频器,以供给各种频率输入需要,其中:1.HF是系统内定的20兆HZ脉冲信号,通过多个74160将其分频为1HZ、1KHZ、20KHZ三个不同频率的脉冲信号。2.1HZ为提供给主控模块脉冲输入。3.1KHZ提供给扫描脉冲输入部分。4.20KHZ提供给分时复用电路。2,计数器通过VHDL语言自行设计具有进位输出的8进制计数器,其目的是控制LED8*8点阵字扫描系统的列数据线。3,扫描电路:由8进制通过74138转换成具有扫描功能的列数据线开关信号B0-B7,其中74138的使能端G1和输出端20KHZ共同接于分频器的20KHZ输出上,确保字点阵扫描数据和数码管的楼层数据能够使用同一组数据线进行传输,达到对数字显示器数据线和LED点阵显示模块行数据口线的分时复用的目的。1.字库数据存储电路:通过MAX+PLUS 系统所提供的参数化模块LPM_ROM设计电梯上下箭头指示器其内部字库参数如下图:其中SUM3.0为字库的读出地址线,DISPLAY7.0为LED点阵显示模块行数据。6.分时复用电路:使用三态门交互导通以进行数据传输,从而保证数字显示器数据线和LED点阵显示模块行数据口线的分时复用的目的。8.寻址电路:由于LPM_ROM中字数据共为2组16个,通过74283全加器加0或加8来寻址字数据的前8个和后8个,通过SUM0-3来输出地址数据到这里软件硬件的设计过程结束,软件生成的模块YINDZBS通过端口名字一致系统自动连接,因此没有复杂的整体电路。,整体完成后,通过编译,下载到硬件盒。仿真效果良好,达到预期效果。至此,设计过程结束。第四章 总结本次毕业设计历时百天,运用了几年来所学习的硬件和软件专业知识,自学并初步掌握了硬件描述语言的编程。进一步熟悉并掌握了MAX+PLUS的使用方法。虽然设计中还存在很多不足,距离现实的应用还有很大的差距,但其主要功能已经实现,并充分考虑现实电梯的功能,征得指导老师的同意做了很多改进。在设计过程中,遇到很多的问题,现总结如下:在设计初始,如何下手,从何处下手是最大的难题。经老师多次指导后开始进入了电梯主控部分的编程部分,此后,多数部分迎刃而解。硬件描述语言的学习过程中出现了很多问题及使用技巧,为此我参加了八系的硬件描述语言课程的学习,并经过指导老师的指导定义各个端口,依据设计要求绘制流程图,逐步完成主控部分
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 荆门市中储粮2025秋招财务资产岗高频笔试题库含答案
- 衢州市中储粮2025秋招面试专业追问题库仓储保管岗
- 中国广电林芝市2025秋招技术岗专业追问清单及参考回答
- 新疆地区中石油2025秋招笔试综合知识专练题库及答案
- 炼铁员工安全培训课件
- 榆林市中储粮2025秋招面试半结构化模拟题30问及答案
- 燃气泄漏培训考试题及答案
- 固原市中石化2025秋招笔试提升练习题含答案
- 国家能源阿拉善盟2025秋招化学工程类面试追问及参考回答
- 果洛藏族自治州中储粮2025秋招综合管理岗高频笔试题库含答案
- 儿科常用急救技术
- IT运维服务合同(模板)7篇
- 猫咖设计案例解析与方案模板
- 《模拟电子技术(第三版)》全套教学课件
- 子宫破裂护理常规课件
- (2025年)国家能源集团笔试试题(+答案)
- DB34∕T 4010-2021 水利工程外观质量评定规程
- 精神专科护士工作汇报
- 客户设备大修方案(3篇)
- 【01-暑假复习】初高衔接点03 因式分解含答案-2025年新高一数学暑假衔接讲练 (通)
- 2025年国有企业管理岗竞聘笔考试试题库及答案
评论
0/150
提交评论