《基于FPGA的三层电梯设计(共25页).doc》由会员分享,可在线阅读,更多相关《基于FPGA的三层电梯设计(共25页).doc(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上数字电子技术课程设计题目:基于FPGA的三层电梯设计 学 院: 工学院 专业班级: 通信工程11秋2班 学生姓名: 学 号: 小组成员: 指导教师: 完成日期 2013年 12月专心-专注-专业目录1 课题背景1.1 课题的作用和意义电梯作为高层大厦的主要垂直交通工具,电梯系统服务质量和效率的提高对建筑的有效利用和性能发挥将产生极为重要的影响。信息化时代的到来,推动了电梯的发展,电梯控制器已成为当今世界性开发的热点,也是各国综合实力的表现。电梯系统作为建筑楼宇自动化的重要组成部分,也要求向满足大厦中大量人流、物流的垂直输送需要,电梯制造商利用先进的技术,开发出各种高性
2、能的电梯系统以满足乘客生理和心理要求,实现高效的垂直输送。1.2 国内外的现状和发展趋势等情况随着科学技术的发展,近年来我国的电梯生产技术得到了迅速发展一些电梯厂也在不断改进设计、修改工艺。更新换代生产更新型的电梯,电梯主要分为机械系统与控制系统两大部份,随着自动控制理论与微电子技术的发展,电梯的拖动方式与控制手段均发生了很大的变化,交流调速是当前电梯拖动的主要发展方向。目前电梯控制系统主要有三种控制方式:继电路控制系统、FPGA控制系统、微机控制系统。继电器控制系统由于故障率高、可靠性差、控制方式不灵活以及消耗功率大等缺点,目前已逐渐被淘汰。微机控制系统虽在智能控制方面有较强的功能,但也存在
3、抗扰性差,系统设计复杂,一般维修人员难以掌握其维修技术等缺陷。而FPGA/CPLD控制系统由于运行可靠性高,使用维修方便,抗干扰性强,设计和调试周期较短等优点,倍受人们重视等优点,已成为目前在电梯控制系统中使用最多的控制方式,目前也广泛用于传统继电器控制系统的技术改造。2 Quartus II软件、FPGA硬件介绍2.1 QuartusII软件介绍QuartusII是Altera公司继Max+plusII之后开发的一种针对其公司生产的系列CPLD/PGFA器件的综合性开发软件,它的版本不断升级,从4.0版到10.0版,这里介绍的是QuartusII8.0版。Quartus II软件的设计流程为
4、:设计输入、综合和编译、适配器、仿真、下载。Max+plusII作为Altera的上一代PLD设计软件,由于其出色的易用性而得到了广泛的应用。目前Altera已经停止了对Max+plusII的更新支持。Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。2.1.1 QuartusII对器件的支持QuartusII支持Altera公司的MAX3000A系列、MAX7000系列、MAX9000系列、ACEX1K系列、APEX20K系列、APEXII系列、FLEX6000系列、FLEX10
5、K系列,支持MAX7000/MAX3000等乘积项器件。支持MAXIICPLD系列、Cyclone系列、CycloneII、StratixII系列、StratixGX系列等。支持IP核,包含了LPM/MegaFunction宏功能模块库,用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。此外,QuartusII通过和DSPBuilder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。软件具有开放性、与结构无关、多平台、完全集成
6、化、丰富的设计库、模块化工具等特点,支持原理图、VHDL、VerilogHDL以及AHDL(AlteraHardwareDescriptionLanguage)等多种设计输入形式,内嵌自有的综合器以及仿真器,可完成从设计输入到硬件配置的完整PLD设计流程。2.2 FPGA硬件介绍2.2.1 FPGA基本简介FPGA(FieldProgrammable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是专用集成电路中一种半定制电路。具克服了传统可编程器件数有限的缺点,又具有可编程的特点。FPGA是由存放在片内RAM中的程序来设置其
7、工作状态的,因此,工作时需要对片内的RAM进行。用户可以根据不同的配置模式,采用不同的编程方式。2.2.2 FPGA的优点 目前的FPGA已远超出先前产品的基本功能,并且整合了许多常用功能( 如RAM、时钟管理和DSP),在新型的的系统级可编程逻辑器件中还可以以IP核的形式来进行功能设计,或许只需要一块FPGA芯片就可以实现所有功能,成为片上系统。FPGA运行速度快, 内部集成锁项环,可以把外部时钟倍频,核心频率可以到几百M,克服了单片机在高速场合中运行速度低的缺点。 3 设计思路及运行流程3.1 电梯主要功能(1)每层电梯处设有上下请求开关,电梯内设有乘客到达层次的停站请求开关。 (2)设有
8、电梯所处位置指示装置及电梯运行情况指示。(3)电梯的初始状态为第一楼层。3.2电梯运行设计思路实现此系统分为三个模块,分别为总控制模块、电梯位置显示的译码模块,及电梯运行状态显示的译码模块。我们通过开发板中的开关模拟电梯外部和内部的楼层上升及下降请求,由数码管显示电梯的位置状态及所在楼层层数。通过LED灯的亮与灭表示电梯的开门状态。例:从1楼上至2楼,即需要将开发板中代表1楼上升请求及3楼停止请求的开关拨上,则数码管显示0102。3.3 电梯的运行流程电梯的请求信号划分为上升信号和下降信号。电梯收到请求信号后,都必需做预操作。使电梯进入预上升状态的请求信号就是上升,得到上升和下降及所到楼层的请
9、求后作出相应的动作实现。以下为电梯在各楼层时的状态:当电梯在一楼时,不管电梯内部还是外部,电梯只能收到上升请求信号,此时电梯进入预上升状态,准备上升,如果没有收到上升请求,则电梯待在一楼。当电梯在二楼时,如电梯外部内部均没有收到任何请求,电梯将返回一楼待机;如电梯接收到上升请求信号,则进入预上升状态;如电梯接收到下降请求信号,电梯进入预下降状态。当电梯在三楼时,电梯只能接收到下降请求信号,此时电梯进入预下降状态,准备下降。流程图如(图3.1)所示图3.1电梯运行流程图3.4 模块介绍3.4.1 电梯控制模块介绍控制模块代码见(附录一),原理图如(图3.2)具体引脚分配见(附录二)图3.2 电梯
10、顶层模块开关输入引脚:“REST”是复位开关,实现电梯无请求时手动复位至1楼的功能;“LIFTCLK”是时钟脉冲;“F1UPBUTTON”是1楼上升的请求开关,实现产生1楼有上升请求;“F2UPBUTTON”是2楼上升的请求开关,实现产生2楼有上升请求;“F2DNBUTTON”是2楼下降的请求开关,实现产生2楼有下降请求;“F3DNBUTTON”是3楼下降的请求开关,实现产生3楼有下降请求;“STOP13BUTTON”是13楼停止的请求开关,实现产生到13楼时停止的请求;数码管输出引脚:“jm6.0”是电梯所在位置显示引脚;“led6.0”是电梯上升下降状态显示。LED灯输出引脚:“DOORL
11、IGHT”时开门灯显示引脚。3.4.2译码器模块介绍(1)楼层上升及下降状态译码器模块,楼层上升及下降状态显示如(图3.3): 图3.3上升及下降状态显示译码模块“SEG”表示输入一个1位二进制数0或1; “Q36.0”引脚分别输出7位二进制:和即显示为0和1。 (2)楼层楼层位置显示译码器模块原理图如(图3.4):图3.4楼层楼层位置显示译码器模块SEG2.1表示输入一个2位二进制数01、10、11;“ Q36.0”引脚分别输出7位二进制: 显示为1,显示为2,显示为3。3.4.3 总模块介绍图3.5 电梯主控系统和译码器模块连接图控制模块的下降信号输出作为运行状态译码模块的输入,控制模块的
12、位置输出作为电梯位置显示译码模块的输入。4 各模块功能仿真图4.1 电梯控制模块功能仿真图4.1电梯控制模块功能仿真上图表示:电梯从1楼上至3楼再下至2楼的情况波形说明:步骤1:给予2楼上升请求一个脉冲步骤2:给予3楼停一个脉冲步骤3:给予2楼上升请求一个脉冲步骤4:下降输出信号UDSIG在电梯响应下降至2楼时为1表示下降其余为0上升;开门灯DOORLIGHT在1楼和到3楼及2楼时为1表示亮;电梯位置显示POSITION相应显示1232。以上仿真与所要求情况一致。4.2 译码模块功能仿真图4.2译码器功能仿真上图表示:(译码显示的是数码管的引脚,低电平为亮,高电平为不亮)Jm分别为:即1232
13、符合电梯所在位置显示。Led分别为:即01上升到下降符合电梯运行状态。5 实物展示1 电梯初始状态如图(5.1)图5.1电梯初始状态说明:上图显示01,即电梯处于1楼待上升状态。当没有任何请求时电梯则自动复位至此状态2 电梯1楼上升至3楼模拟如图(5.2)图5.2 电梯1楼上至3楼说明:要实现电梯从1楼上升至3楼则需要F1UPBUTTON即开关SW3为高电平,STOP3BUTTON即开关SW9为高电平,同时BUTTONCLK即开关SW2为高电平,手动拨动LIFTCLK即开关SW1一次上升一层楼。图示为电梯已经上至三楼的状态。DOORLIGHT为高电平即LED灯亮表示电梯开门。3 电梯3楼下降至
14、1楼模拟如图(5.3a)、图(5.2b)图5.3(a)电梯处于3楼待下降状态说明:电梯要实现从3楼下降至1楼则需要3DNBUTTON即SW6为高电平,STOP1BUTTON为高电平,同时BUTTONCLK即开关SW2为高电平,手动拨动LIFTCLK即开关SW1一次下降一层楼。图示为电梯在3楼待下降的状态。图5.3(b)电梯已下降至1楼的状态说明:拨LIFTCLK两次电梯已下降至1楼的状态。DOORLIGHT为高电平即LED灯亮表示电梯开门。6 心得体会两周的课程设计实际的操作了整套电梯控制的设计,从刚开始的开题报告,到着手编写代码、连接模块原理图、仿真、分配引脚到最后下载到开发板验证。在课程设
15、计前都是进行某个部分的操作,经过此次整套程序下来对FPGA及VHDL语言都有了更深的认识。开始面对着书上的大段大段代码感到恐惧,但通过之后的一点一点输入修改,特别是在代码修改中体会到了耐心及细心的重要性,例如一个标题不吻合或少个引号在句末少个分号这些看似简单甚至不起眼的符号都足以让我们头疼找半天,但是随着这些错误的逐个排解也会产生极大的喜悦感。从刚开始的看着代码什么都不懂,到最后能够看懂一点,真的有很大的收获。刚开始还算比较顺利,但在译码模块出现了许多问题,不断的仿真失败、下载失败,不断的尝试最后能够成功的实现电梯控制的基本功能是这两周来和我的队友共同努力的结果。同时还学到了再完成一项任务时应
16、该如何与自己的队友合作完成,要有自己的想法但也要善于尝试队友的建议。不论最后的成绩如何,都是自己努力来的成果。7 谢 辞在取得这些成果的同时当然少不了两位老师的辛苦指导,两位老师在进行其他班级正常授课的同时还要过来指导我们完成课程设计,要较于平时辛苦很多。有几次同学的代码总是修改不成功,周老师在下班的时间依旧帮助他查找错误帮忙修改。上课时不停的有人喊“老师”老师这边”,你们依旧可以耐心的为我们一一解释错误的原因并指导我们解决那些问题。 在这里衷心的感谢两位老师为我们的付出。参考文献1朱正伟,王其红,韩学超. EDA技术及应用(第二版)M.北京:清华大学出版社,2013.3:p315-323 附
17、录一总程序模块:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY THREEFLIFT ISPORT(BUTTONCLK: IN STD_LOGIC; LIFTCLK: IN STD_LOGIC; RESET: IN STD_LOGIC; F1UPBUTTON: IN STD_LOGIC; F2UPBUTTON: IN STD_LOGIC; F2DNBUTTON: IN STD_LOGIC; F3DNBUTTON: IN STD
18、_LOGIC; FUPLIGHT: BUFFER STD_LOGIC_VECTOR(3 DOWNTO 1); FDNLIGHT: BUFFER STD_LOGIC_VECTOR(3 DOWNTO 1); STOP1BUTTON,STOP2BUTTON,STOP3BUTTON: IN STD_LOGIC; STOPLIGHT: BUFFER STD_LOGIC_VECTOR(3 DOWNTO 1); POSITION: BUFFER INTEGER RANGE 1 TO 3; DOORLIGHT: OUT STD_LOGIC; UDSIG: BUFFER STD_LOGIC); END THRE
19、EFLIFT;ARCHITECTURE a OF THREEFLIFT IS TYPE LIFT_STATE IS(STOPON1,DOOROPEN,DOORCLOSE,DOORWAIT1,DOORWAIT2,DOORWAIT3,DOORWAIT4,UP,DOWN,STOP); SIGNAL MYLIFT: LIFT_STATE; SIGNAL CLEARUP: STD_LOGIC; SIGNAL CLEARDN: STD_LOGIC; BEGIN CTRLIFT: PROCESS(RESET,LIFTCLK) VARIABLE POS: INTEGER RANGE 3 DOWNTO 1; B
20、EGIN IF RESET=1 THEN MYLIFT=STOPON1; CLEARUP=0; CLEARDN DOORLIGHT=1; POSITION=1; POS:=1; MYLIFT MYLIFT CLEARUP=0;CLEARDN=0;MYLIFTMYLIFTMYLIFT DOORLIGHT=0; IF UDSIG=0 THEN IF POSITION=3 THEN IFSTOPLIGHT=000 AND FUPLIGHT=000 AND FDNLIGHT=000 THENUDSIG=1; MYLIFT=DOORCLOSE; ELSE UDSIG=1;MYLIFT=DOWN; END
21、 IF;ELSIF POSITION=2 THEN IF STOPLIGHT=000 AND FUPLIGHT=000 AND FDNLIGHT=000 THENUDSIG=0; MYLIFT=DOORCLOSE; ELSIFSTOPLIGHT(3)=1 OR (STOPLIGHT(3)=0 AND FDNLIGHT(3)=1)THEN UDSIG=0; MYLIFT=UP;ELSE UDSIG=1;MYLIFT=DOWN; END IF;ELSIF POSITION=1 THEN IFSTOPLIGHT=000 AND FUPLIGHT=000 AND FDNLIGHT=000 THENUD
22、SIG=0; MYLIFT=DOORCLOSE; ELSE UDSIG=0;MYLIFT=UP; END IF;END IF;ELSIF UDSIG=1 THEN IF POSITION=1 THEN IFSTOPLIGHT=000 AND FUPLIGHT=000 AND FDNLIGHT=000 THENUDSIG=0; MYLIFT=DOORCLOSE; ELSE UDSIG=0;MYLIFT=UP; END IF;ELSIF POSITION=2 THEN IFSTOPLIGHT=000 AND FUPLIGHT=000 AND FDNLIGHT=000 THENUDSIG=1; MY
23、LIFT=DOORCLOSE; ELSIFSTOPLIGHT(1)=1 OR (STOPLIGHT(1)=0 AND FDNLIGHT(1)=1) THEN UDSIG=1; MYLIFT=DOWN;ELSE UDSIG=0;MYLIFT=UP; END IF;ELSIF POSITION=3 THEN IF STOPLIGHT=000 AND FUPLIGHT=000 AND FDNLIGHT=000 THENUDSIG=1; MYLIFT=DOORCLOSE; ELSE UDSIG=1;MYLIFT POSITION=POSITION+1; POS:=POS+1; IF POS3 AND(
24、STOPLIGHT(POS)=1 OR FDNLIGHT(POS)=1) THEN MYLIFT=STOP;ELSIF POS=3 AND(STOPLIGHT(POS)=1 OR FDNLIGHT(POS)=1)THEN MYLIFT=STOP; ELSEMYLIFT POSITION1 AND(STOPLIGHT(POS)=1 OR FUPLIGHT(POS)=1) THEN MYLIFT=STOP;ELSIF POS=1 AND(STOPLIGHT(POS)=1 OR FDNLIGHT(POS)=1)THEN MYLIFT=STOP; ELSE MYLIFT MYLIFT DOORLIGH
25、T=1;IF UDSIG=0 THEN IF POSITION=2 AND (STOPLIGHT(POSITION)=1 OR FUPLIGHT(POSITION)=1) THEN CLEARUP=1;ELSE CLEARUP=1;CLEARDN=2 AND (STOPLIGHT(POSITION)=1 OR fDNLIGHT(POSITION)=1) THEN CLEARDN=1; ELSE CLEARUP=1; CLEARDN=1;END IF;END IF;MYLIFT=DOORWAIT1;END CASE;END IF;END IF;END PROCESS CTRLIFT;CTRLIG
26、HT: PROCESS(RESET,BUTTONCLK) BEGINIF RESET=1 THEN STOPLIGHT=000;FUPLIGHT=000;FDNLIGHT=000;ELSEIF BUTTONCLKEVENT AND BUTTONCLK=1 THENIF CLEARUP=1 THEN STOPLIGHT(POSITION)=0;FUPLIGHT(POSITION)=0; ELSEIF F1UPBUTTON=1 THEN FUPLIGHT(1)=1;ELSIF F2UPBUTTON=1 THEN FUPLIGHT(2)=1; END IF;END IF;IF CLEARDN=1 T
27、HEN STOPLIGHT(POSITION)=0;FDNLIGHT(POSITION)=0; ELSEIF F2DNBUTTON=1 THEN FDNLIGHT(2)=1;ELSIF F3DNBUTTON=1 THEN FDNLIGHT(3)=1; END IF;END IF;IF STOP1BUTTON=1 THEN STOPLIGHT(1)=1;ELSIF STOP2BUTTON=1 THEN STOPLIGHT(2)=1;ELSIF STOP3BUTTON=1 THEN STOPLIGHT(3) Q3 Q3 Q3 Q3 Q3 Q3 Q3=;END CASE;END PROCESS; END ART;附录二图9.1输入引脚分配上图为所有模块中的输入引脚分配图。图9.2输出引脚分配上图为所有模块中的输出引脚分配图。开关和数码管对应引脚及功能在3.3模块介绍中已说明。