EDA技术设计课程设计四层电梯的控制

上传人:痛*** 文档编号:147806607 上传时间:2022-09-03 格式:DOC 页数:25 大小:408.54KB
返回 下载 相关 举报
EDA技术设计课程设计四层电梯的控制_第1页
第1页 / 共25页
EDA技术设计课程设计四层电梯的控制_第2页
第2页 / 共25页
EDA技术设计课程设计四层电梯的控制_第3页
第3页 / 共25页
点击查看更多>>
资源描述
课程设计说明书目 录1 引言11.1设计背景11.2设计基础11.2.1 EDA技术介绍11.2.2硬件描述语言(VHDL)介绍21.2.3 MAX+plusII软件介绍22 电梯控制器的具体设计42.1设计目的42.2设计要求42.3设计思路43 三层电梯控制器的综合设计(VHDL语言实现)53.1分析判断53.1.1电梯运行规则53.1.2 程序流程分析93.2程序端口和寄存器说明93.3各模块设计说明103.4具体语句设计说明124 三层电梯控制器调试、仿真和硬件测试134.1程序调试134.2程序波形仿真144.2.1波形输入建立144.2.2电梯运行情况仿真154.2.3电梯功能仿真174.3硬件测试184.3.1引脚锁定184.3.2硬件下载185 结论205.1 设计功能实现情况205.2 设计心得20参考文献21附录221 引言1.1设计背景近年来,随着我国房地产业的持续高速发展,高层建筑越来越多。因此,一种能使人们快速、便捷地到达目的楼层的电梯便应运而生了。分析近几年房地产业的发展趋势,特别是商品住宅的高速发展,将使住宅对电梯的需求量持续攀升。人们对电梯安全性、高效性、舒适性的不断追求也推动了电梯技术的进步。随着电梯技术的发展, 绿色化、低能耗、智能化、网络化、蓝牙技术的电梯成为一段时间内的发展趋势。为保证人们能更安全、更快捷地到达目的楼层,实现人性化的功能,对电梯系统中的控制部分进行优化设计是非常必要。因此这部分的设计也就成了在电梯设计领域里最为核心的技术。为了实现电梯的智能化,可以采用许多方法。它的智能化控制可以有以下几种形式:1.PLC控制;2.单板机控制;3.单片机控制;4.单微机控制;5.多微机控制; 6.人工智能控制。随着EDA技术的快速发展,电子设计自动化(EDA)逐渐成为重要的设计手段,已经广泛应用于模拟与数字电路系统等许多领域。它是一种实现电子系统或电子产品自动化设计的技术,与电子技术、微电子技术的发展密切相关,并吸收了计算机科学领域的大多数最新研究成果,以高性能的计算机作为工作平台,促进了工程发展。传统单片机设计的电梯控制外围电路复杂,性能不稳定,而采用EDA设计,却拥有电子系统小型化、低功耗、高可靠性、开发过程投资小、周期短等优点,而且还可以通过软件编程对硬件结构和工作方式进行重构,使得硬件设计如软件设计那般方便快捷。本次设计就是应用EDA电子电路技术来设计电梯控制器,从而使用一片芯片就可以实现对电梯的控制的。1.2设计基础EDA技术已成为现代电子设计技术的核心。基于EDA技术上开发的实六层电梯自动控制与目前主流的利用可编程逻辑控制器实现电梯控制紧密相连。硬件描述语言是EDA技术的重要组成部分,VHDL是作为电子设计主流硬件的描述语言。使用VHDL语言进行程序的设计,在MAX+plusII软件上对程序进行编译、仿真。在MAX+plusII平台上的开发具有编程软件具有采自易学易懂的梯形图语言、控制灵活方便、抗干扰能力强、运行稳定可靠等优点。1.2.1 EDA技术介绍EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。利用EDA技术进行电子系统的设计,具有以下几个特点:1.用软件的方式设计硬件;2.用软件方式设计的系统到硬件系统的转换是由有关的开发软件自动完成的;3.设计过程中可用有关软件进行各种仿真;4.系统可现场编程,在线升级;5.整个系统可集成在一个芯片上,体积小、功耗低、可靠性高。因此,EDA技术是现代电子设计的发展趋势。1.2.2硬件描述语言(VHDL)介绍VHDL(Very-High-Speed Integrated Circuit Hardware Description Language)主要用于描述数字系统的结构,行为,功能和接口3。它于1983年由美国国防部发起创建,由电工和电子工程师协会(the Institute of Electrical and Electronics Engineers)进一步发展并在1987年作为“IEEE 1076”发布。从此,VHDL成为硬件描述语言的业界标准之一。VHDL作为一个规范语言和建模语言,具有很强的电路描述和建模能力,能从多个层次对数字系统进行建模和描述,从而大大简化了硬件设计任务,提高了设计效率和可靠性。VHDL具有与具体硬件电路无关和设计平台无关的特性,并且具有良好的电路行为描述和系统描述的能力,并在语言易读性和层次化结构化设计方面,表现了强大的生命力和应用潜力。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。1.2.3 MAX+plusII软件介绍MAX+plusII是Altera公司提供的FPGA/CPLD开发集成环境,其界面友好,使用便捷,被誉为业界最易用意学的EDA软件。它提供了一种与结构无关的设计环境,使设计者能方便地进行设计输入、快速处理和器件编程5。在MAX+plusII平台上进行数字系统的设计过程一般要经过四个阶段4:设计输入、项目编译、项目校验和器件编程。首先根据系统的性能指标进行系统结构设计,对整个系统进行功能划分和模块划分。对各子模块分别进行逻辑设计、编译、仿真与验证。当不满足要求时,重新返回设计输入阶段,修改设计输入。之后将优化结果下载到所选可擦写可编程逻辑器件(Eraserable Programmable Logic Device)芯片中,进行动态仿真。最后则是测试芯片在系统中的实际运行性能。其具体的流程图如图1所示。设计要求设计输入设计编译功能检验时序检验器件编程修改设计图1 MAX+plusII设计流程该方法将问题的解决放在硬件组装之前,既简化了设计过程,又可以减少设备投资,缩短设计周期,增强设计者对设计过程的分析和制造的可控性。2 电梯控制器的具体设计2.1设计目的六层电梯广泛应用在大型的货运之中。其使用便捷,货运周期短,效率高,成本低,对货运事业具有相当的经济价值。在客运上,六层电梯虽然涉及楼层不高,应用范围不大,但就特殊而言,可以为一些上下楼层不方便的人们提供帮助,照顾这些特殊社会群体。因此,在某种层面上说,六层电梯的设计也具有一定的社会价值。2.2设计要求设计的六层电梯控制器实现如下功能:(1)电梯到达楼层时,能发出指示信号(数码管显示楼层号);(2)能指示电梯的运行状态(上行或下行);(3)电梯的门操作具有关门延时设置(当按下梯内关门按钮时立刻响应关门操作,否则延时固定时间后响应关门操作);(4)正确响应各楼层的上行和下行请求(各楼层设置上行和下行选择按钮)。独立设计完成VHDL代码的编写,利用MAX+plusII软件进行编译仿真,软件仿真结果正确(试验各楼层上行或下行请求的各种情况),使用实验室设备,将代码下载到实验板上进行硬件调试,功能正确。通过对电梯控制系统的设计,掌握所学EDA课程的基本知识和对VHDL语言的综合设计应用。通过课程设计,提高设计能力,提高分析解决实际问题的能力,并在设计中了解硬件编程的流程和思路,为以后工作和发挥技术打下基础。2.3设计思路本次设计的电梯控制器采用状态机来实现,思路比较较清晰1。可以将电梯的各个状态都看成一个独立的状态,如开门状态、关门状态、电梯在哪一层。根据电梯的实际工作情况,可以把状态机设置十个工作状态,分别是“电梯停留在第一层”、“电梯停留在第二层”、“电梯停留在第三层”、 “电梯停留在第四层”、 “电梯停留在第五层”、 “电梯停留在第六层”、“开门”、“关门或快速关门”、“运行过程计数并判断下一层” 、“判断各层是否有请求”。各个状态之间的转换条件可由上面的设计要求所决定2。电梯每到一层,指示该楼层号,电梯从低层到高层时,输出上行状态,反之,输出下行状态,但在到达一层或六层时,上行下行状态都清零。3 六层电梯控制器的综合设计(VHDL语言实现)3.1分析判断3.1.1电梯运行规则(1)请求信号分析:电梯的请求信号可分为梯内请求和梯外请求,如果从这个角度就很难去进行对电梯运行可能情况的分析,因为电梯的运行是根据梯外和梯内的请求信号、行程信号进行控制,而梯外和梯内的请求是随机且不能以有限的规则去对其进行说明的。因此,很难对电梯的运行情况作出一个统一的分析。出于这方面的考虑,本设计把电梯的请求信号划分为上升请求和下降请求。电梯接收到请求信号后,响应并判断是上升请求信号就是下降请求信号,然后电梯向下或向上运行。具体来说,就是当电梯所在楼层低于发出梯外请求的楼层或者低于梯内请求所要到达的目的楼层时,电梯必须在下一操作中作出上升运行。这时的请求信号就是上升请求信号。反之,则是下降请求信号。如电梯在二层并上一次电梯运行是向上或是向下,接收到的是上升请求还是下降请求。(2)电梯处于各楼层时的运行情况。1.处于一层时,不管是梯内梯外,电梯都只能接收上升的请求信号。此后,电梯就进入上升状态,作上升运行。如果电梯没有接收到请求信号,则电梯在一层待机,其分析图如图2所示。图2 电梯处于一层时的运行情况分析2.处于二至五层时,电梯则可能出现以下三种情况(因为二至五层的情况是一样的,仅以第二层举例): 电梯没有接收到梯内梯外的任何请求信号时,则电梯在二层待机; 电梯接收到上升请求信号,进入上升状态; 电梯接收到下降请求信号,进入下降状态,其分析图如图3所示。图3 电梯处于二层时的运行情况分析3.处于六层时,不管是梯内梯外,电梯都只能接收到下降的请求信号。此时,电梯就进入下降状态,作下降运行。如果电梯没有接收到请求信号,则电梯在六层待机,其分析图如图4所示。图4 电梯处于六层时的运行可能分析在电梯运行过程中,存在一个如何处理请求信号优先的问题。仅用顺序优先或逻辑优先不能满足控制要求。因此,控制系统需要同时采用顺序和逻辑来控制电梯的运行。即在以顺序逻辑控制实现电梯的基本控制要求的基础上,根据随机的输入信号,以及电梯当时运行状态(上升还是下降)适时的控制电梯下一个操作,使电梯向上或向下运行。例如,当电梯在三层时,二层、一层梯外均有上升请求信号:电梯向下运行,在接近二层时判别二层具有同向的请求信号,如没有继续下降到一层,经开关门后,然后再向上运行,在接近二层时判别二层具有同向的请求信号时,在二层停止载客。又假如,当电梯在三层时,梯内有到达一层的下降请求信号,而二层则有上升请求信号,电梯先向下运行,在接近二层时判别二层具有反向的请求信号,系统将把二层的上升请求保存到上升请求寄存器上,不在二层作停泊而继续下降到一层去载客,然后读取上升请求寄存中先前二层的上升请求,执行上升到二层载客的操作。执行完成后,被保存在寄存器中的数据清除,为下一次响应请求作准备。(3)对电梯开门、关门等内部信号处理的分析,其流程如图6所示。图6 电梯内外信号处理当电梯接收到请求信号后,运行到发出请求的楼层。运达后,开门使能信号促使电梯开门载客,同时驱动关门延时信号。在电梯进行完关门倒数计后,关门使能信号将促使电梯关门状态,然后上升或下降运行。如果此前出现提前关门信号,电梯立即关门,然后上升或下降运行。3.1.2 程序流程分析电梯的运行规则确定后,需对整个控制程序的设计作一个流程规范。对程序进行模块化构思。根据VHDL语言的规则,程序必须由最基本的实体和结构体构成。实体对控制器的端口进行定义,结构体对各端口的行为进行描述。因此程序运行时需经过以下流程:VHDL库调用;确立控制器的端口及相关的寄存器;根据电梯运行规则确定各个状态转换的条件;对电梯内外信号进行处理,具体流程图如图7所示。程序开始VHDL库调用设置控制器的端口设置相关的寄存器各状态转换条件描述电梯信号处理程序结束图7 电梯设计流程图3.2程序端口和寄存器说明(1)由功能要求得到本程序设计的端口必须包括:时钟信号(clk);提前关门信号(quick);一楼电梯外人的上升请求信号(up1)、二楼电梯外人的上升请求信号(up2);二楼电梯外人的下降请求信号(down2)、三楼电梯外人的下降请求信号(down3);电梯内人请求到达一楼信号(ting1)、电梯内人请求到达二楼信号(ting2)、电梯内人请求到达三楼信号(ting3);电梯开门控制信号(opendoor);电梯关门控制信号(closedoor);电梯所在楼层显示(current);电梯向上运行控制及显示信号up、电梯向下运行控制及显示信号(down)。(2)由相关端口得到程序要求的寄存器包括:电梯内人请求到达一楼信号寄存ting(1)、电梯内人请求到达二楼信号寄存ting(2)、 电梯内人请求到达三楼信号寄存ting(3); 一楼电梯外人上升请求信号寄存u(1)、二楼电梯外人上升请求信号寄存u(2); 二楼电梯外人下降请求信号寄存d(2)、三楼电梯外人下降请求信号寄存d(3)。3.3各模块设计说明本程序由三个基本模块组成,包括调用VHDL库模块、实体设计模块和结构体设计模块。而在结构体模块中又内嵌有进程执行单元。(1)调用VHDL库通过library语句,本程序应用了VHDL库中的“通用ieee库”和“标准std库”。library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;(2)entity实体设计模块entity dianti is port ()end dianti;实体语句用关键词entity开头,本程序以dianti(电梯的汉语拼音)作为所要描述的实体名,在结束实体语句的时候使用end dianti。在entity语句的实体说明部分,用port()语句描述实体对外界连接的端口(数目、方向和数据类型),输入模式是clk/up1/up2/down2/down3/quick /ting1/ting2/ting3;其余的都是输出模式,其中current是四位矢量数据的输出接口。(3)architecture结构化设计模块和process进程执行单元实体dianti以结构化与行为化描述的结构体如下:architecture dianti of dianti isbeginend dianti;由于篇幅的关系,结构体部分并不能尽录。本模块以关键字architecture做结构体的开头,描述dianti实体的结构体dianti。architecture和begin之间是结构体说明区,列举了电梯运行的各个状态;begin和end之间是结构体语句区,在此将嵌入process进程语句去对实体行为作出说明。process(clk)begincase when isend case;end process;关键字process后面括号中的信号为时钟信号,它列举可激活进程语句的信号,唯有这些信号上的事件能引起进程语句执行。关键字begin把进程语句分为进程说明和进程语句两部分。进程说明在时钟信号和begin之间,说明局部变量或某些仅在进程内部用的内容。进程语句部分在begin和end process之间,进程内的所有语句都是按顺序一个接一个执行的。其中的case语句是电梯七个运行状态的选择。下载程序成功后,电梯处于c1,即第一层。c1:处于第一层时,先令f1=0、f2=0、f3=0,down=0,up=0。表明电梯初始状态是待机模式。若u(1)=1 或者ting(1)=1 即第一层的任何请求都应该开门,因为已经到了第一层应该优先响应开门,进入time4开门状态并且使opendoor=1,否则若其它层有请求(u(2)、u(3)、d(2)、ting(2)、ting(3)中至少有一个值为1),则进入运行状态time3,并使f1=1,up=1。如在到达第一层经开关门后如没有任何请求,则使标志位f6=1,保持在第一层待机。c2 :处于第二层的时候需要根据当前的电梯状态来决定下一个状态。从其它层到二楼时先使状态标志f1=f2=f3=0,并且显示当前层是第二层,响应请求后使状态标志f2=1,表示是从第二层运行到其它层的。优先顺序是:电梯上升时二楼门外有上升请求,电梯下降时二楼门外的下降请求,电梯下降时电梯内一楼还没响应的停请求,电梯上升时电梯内三楼还没有响应的停请求,上升时三楼门外的下降请求,下降时三楼门外的上升请求,若以上的都没有则任何一个请求都响应。进入运行状态运行到该层或响应二楼的开门请求进入进入time4开门状态,并且上升时给up=1,down=0,下降时down=1,up=0。并输出显示电梯运行状态。如在到达第二层经开关门后如没有任何请求,则使标志位f5=1,保持在第二层待机。c3 :在进入c3时f1=f2=f3=0, down=0,up=0并且显示当前层是第三层,响应请求后使状态标志f3=1, 表示是从第三层运行到其它层的。每到第三层时都是优先响应三楼的下降请求进入time4开门状态,而后进入关门状态,再判断其它层是否有梯外梯内请求。否则只要有一层二层的任意请求存在都进入time3运行状态运行到该层响应请求。如在到达第三层经开关门后如没有任何请求,则使标志位f4=1,保持在第二层待机。time1 :判断是否保持在该层待机。time2 :关门状态。判断是否立即关门,如是,立即关门;否则延时关门。同时判断是否进入待机状态。如是,进入待机状态保持在该层;否则进入运行状态。time3 :运行状态。计数完成后,如果f1=1则进入c2,如果f3=1则进入c2。如果f2=1,是有优先响应顺序的:上升时则优先响应电梯内还没有响应的停ting(3)=1请求,进入c3,下降时优先响应电梯内还没有响应停ting(1)=1请求,经进入c1,上升时三楼门外有下降请求,进入c3,下降时一楼门外有上升请求,进入c1,剩下的请求只要有请求则响应( f1、f2、f3是不可能同时为1的,这样就保证了优先原则)。time4 :开门状态。只有开门状态计数时间到才进入关门状态time2。3.4具体语句设计说明上文已说明了构成VHDL程序的两大部分实体和结构体的相关语句。在这些语句里,赋值语句占了相当一部分。在VHDL语言里,对变量的赋值一般都是用“:=”符号,对输出信号赋值一般都是用“if f4=1 then state:=c3;elsif f5=1 then state:=c2;elsif f6=1 then state:=c1;end if;when time2 =if kuai=1 then js:=3; kuai:=0;-kuai=1提前关门-关门控制end if; if js=2 then js:=0;closedoor=0;if f4=1 or f5=1 or f6=1then state:=time1;else state:=time3;end if;else js:=js+1;opendoor=2 then closedoor -从一层到另一层的时间if js3 then js:=js+1;-从一层到另一层的时间 else js:=0;if f1=1 then state:=c2; elsif f2=1 thenif up=1 and ting(3)=1 then state:=c3;elsif down=1 and ting(1)=1 then state:=c1;elsif up=1 and d(3)=1 then state:=c3;elsif down=1 and u(1)=1 thenstate:=c1;elsif u(1)=1 or ting(1)=1 then state:=c1; DOWN=1;elsif d(3)=1 or ting(3)=1 then state:=c3; UPclosedoor=0;opendoor current=0001; f1:=0;f2:=0; f3:=0; down=0;up=0;if (u(1)=1 and u(2)=0 and ting(2)=0 and ting(3)=0 and d(3)=0 and d(2)=0) then f6:=1;u(1):=0;state:=time4;-优先判断第三层梯内外信号,如有进入开门状态elsif (ting(1)=1 and u(2)=0 and ting(2)=0 and ting(3)=0 and d(3)=0 and d(2)=0) then f6:=1;ting(1):=0;state:=time4;-优先判断第三层梯内外信号,如有进入开门状态elsif u(1)=1 or ting(1)=1 then f1:=1;f6:=0; u(1):=0; ting(1):=0; state:=time4;-优先判断第一层梯内外信号,如有进入开门状态elsif u(2)=1 or ting(2)=1 or d(3)=1 or ting(3)=1 or d(2)=1 then f1:=1;f6:=0;up current=0010;f1:=0; f2:=0; f3:=0; if d(2)=1 and u(1)=0 and ting(1)=0 and ting(3)=0 and d(3)=0 then f5:=1;d(2):=0;state:=time4;-优先判断第三层梯内外信号,如有进入开门状态elsif u(2)=1 and u(1)=0 and ting(1)=0 and ting(3)=0 and d(3)=0 then f5:=1;u(2):=0;state:=time4;-优先判断第三层梯内外信号,如有进入开门状态elsif ting(2)=1 and u(1)=0 and ting(1)=0 and ting(3)=0 and d(3)=0 then f5:=1;ting(2):=0;state:=time4;-优先判断第三层梯内外信号,如有进入开门状态elsif u(2)=1 and up=1 then u(2):=0; down=0;f2:=1;f5:=0; state:=time4;-到达第二层,处于上升状态,有上升请求,响应并转开门状态elsif d(2)=1 and down=1 then d(2):=0; up=0; f2:=1;f5:=0; state:=time4;-到达第二层,处于下降状态,有下降请求,转开门状态elsif ting(1)=1 and down=1 then f2:=1 ; down=0;f5:=0; state:=time3;-下降时响应梯内一层停信号elsif ting(3)=1 and up=1 thenf2:=1; up=0;f5:=0;state:=time3;-上升时响应梯内三层停信号elsif u(1)=1 and down=1 then f2:=1;up=0;f5:=0; state:=time3;-下降时响应梯外一层停信号elsif d(3)=1 and up=1 thenf2:=1;down=0;f5:=0; state:=time3;-上升时响应梯外三层停信号 elsif u(1)=1 or ting(1)=1 then f2:=1;f5:=0; up=0;down=1; state:=time3;-一层梯外或梯内有请求,下降elsif ting(3)=1 or d(3)=1 then f2:=1 ;f5:=0; up=1;down current=0011; f1:=0; f2:=0;f3:=0;up=0;down=0;if (d(3)=1 and u(1)=0 and ting(1)=0 and u(2)=0 and d(2)=0 and ting(1)=0) then f4:=1;d(3):=0;state:=time4;-优先判断第三层梯内外信号,如有进入开门状态elsif (ting(3)=1 and u(1)=0 and ting(1)=0 and u(2)=0 and d(2)=0 and ting(1)=0) then f4:=1;ting(3):=0;state:=time4;-优先判断第三层梯内外信号,如有进入开门状态elsif d(3)=1 or ting(3)=1 thenf3:=1;f4:=0;down=1;d(3):=0;ting(3):=0;state:=time4;-优先判断第三层梯内外信号,如有进入开门状态elsif u(1)=1 or ting(1)=1 or u(2)=1 or d(2)=1 or ting(2)=1 then f3:=1;f4:=0;down null;end case;end if;-clk信号上升沿判断的if结束 end process;end dianti;24
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 成人自考


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!