欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    基于FPGA的电梯控制器设计.doc

    • 资源ID:2392654       资源大小:337KB        全文页数:25页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于FPGA的电梯控制器设计.doc

    唐 山 学 院 EDA技术 课 程 设 计 题 目 基于FPGA的电梯控制器设计系 (部) 信息工程系 班 级 姓 名 学 号 指导教师 2013 年 1 月 7 日至 1 月 11 日 共 1 周2013年 1 月 10 日 EDA技术 课程设计任务书一、设计题目、内容及要求设计题目:基于FPGA的电梯控制器设计设计内容:设计一个三层电梯控制器,具体要求:(1)每层电梯设有上下请求开关,电梯轿厢内设有乘客到达层次的停站请求开关。(2)设有电梯所处位置指示装置及电梯运行情况指示。(3)当电梯处于上升时,只响应比电梯所在位置高的上楼请求信号,直到最后一个上楼请求执行完毕,再进入下降模式。(4)当电梯处于下降时,只响应比电梯所在位置低的下楼请求信号,直到最后一个下楼请求执行完毕,再进入上升模式。(5)电梯的初始状态为第一楼层。(6)设计超载报警功能。设计要求:(1)根据任务要求确定电路各功能模块; (2)写出设计代码;(3)给出时序仿真结果和硬件调试结果; (4)最后要有设计总结。二、设计原始资料Quartus软件,EDA实验箱。三、要求的设计成果(课程设计说明书、设计实物、图纸等)软件仿真和硬件仿真结果;课程设计说明书。四、进程安排周1-周4: 查阅资料,上机编写并调试代码;周5: 课程设计答辩并提交设计说明书。五、主要参考资料1.Voknei A.Pedroni.VHDL数字电路设计教程M.电子工业出版社,2008.52.潘松,黄继业.EDA技术实用教程(第二版)M.科学出版社,2005.23.焦素敏.EDA应用技术M.清华大学出版社,2002.4指导教师(签名):教研室主任(签名):课程设计成绩评定表出勤情况出勤天数 缺勤天数成绩评定出勤情况及设计过程表现(20分)课设答辩(20分)设计成果(60分)总成绩(100分)提问(答辩)问题情况综合评定 指导教师签名: 年 月 日目录1 前言12 EDA技术介绍22.1 EDA技术简介22.2 EDA技术的发展23 电梯控制器设计33.1 电梯控制器设计总体框图33.2 电梯控制器设计思路33.3 电梯处于各楼层的具体分析43.4 电梯外部端口具体说明63.4.1 定义各个端口63.4.2 引脚锁定64 仿真结果与说明85 总结10参考文献11附录 程序代码121 前言当今社会,随着城市建设的不断发展,高层建筑的不断增多,电梯作为高层建筑中垂直运行的交通工具已与人们的日常生活密不可分。目前电梯控制系统主要有三种控制方式:继电路控制系统(“早期安装的电梯多位继电器控制系统”)、FPGA/CPLD的控制系统、微机控制系统。继电器控制系统由于故障率高、可靠性差、控制方式不灵活以及消耗功率大等缺点,目前已逐渐被淘汰,微机控制系统虽在智能控制方面有较强的功能,但也存在抗扰性差,系统设计复杂,一般维修人员难以掌握其维修技术等缺陷。而FPGA/CPLD控制系统由于运行可靠性高,使用维修方便,抗干扰性强,设计和调试周期较短等优点,倍受人们重视等优点,已经成为目前在电梯控制系统中使用最多的控制方式,目前也广泛用于传统继电器控制系统的技术改造。随着EDA技术的快速发展,电子设计自动化(EDA)逐渐成为重要的设计手段,已经广泛应用于模拟与数字电路系统等许多领域。采用EDA设计,拥有电子系统小型化、低功耗、高可靠性、开发过程投资小、周期短等优点,而且还可以通过软件编程对硬件结构和工作方式进行重构,使得硬件设计如软件设计那般方便快捷。本次设计就是应用EDA电子电路技术来设计电梯控制器,从而使用一片芯片就可以实现对电梯的控制的。2 EDA技术介绍2.1 EDA技术简介EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言VHDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。EDA技术是指以计算机为工作平台,融合了应用电子技术、计算机技术、信息处理及智能化技术的最新成果,进行电子产品的自动设计。利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程的计算机上自动处理完成。2.2 EDA技术的发展从目前的EDA技术来看,其发展趋势是政府重视、使用普及、应用广泛、工具多样、软件功能强大。现在对EDA的概念或范畴用得很宽。包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有EDA的应用。目前EDA技术已在各大公司、企事业单位和科研教学部门广泛使用。例如在飞机制造过程中,从设计、性能测试及特性分析直到飞行模拟,都可能涉及到EDA技术。EDA设计可分为系统级、电路级和物理实现级。在EDA软件开发方面,目前主要集中在美国。但各国也正在努力开发相应的工具。日本、韩国都有ASIC设计工具,但不对外开放。中国华大集成电路设计中心,也提供IC设计软件,但性能不是很强。相信在不久的将来会有更多更好的设计工具在各地开花并结果。据最新统计显示,中国和印度正在成为电子设计自动化领域发展最快的两个市场,年夏合增长率分别达到了50%和30%。3 电梯控制器设计3.1 电梯控制器设计总体框图状态显示器主控制器楼层显示器译码器分控制器楼层选择器图 3 1 总体框图电梯控制器的功能模块如图所示,包括主控制器、分控制器、楼层选择器、状态显示器、译码器和楼层显示器。乘客在电梯中选择所要到达的楼层,通过主控制器的处理,电梯开始运行,状态显示器显示电梯的运行状态,电梯所在楼层数通过译码器译码从而在楼层显示器中显示。分控制器把有效的请求传给主控制器进行处理,同时显示电梯的运行状态和电梯所在楼层数。由于分控制器相对简单很多,所以主控制器是核心部分。3.2 电梯控制器设计思路本系统的主要输入有电梯外上下控制按钮Button(其中Button(0)表示一楼电梯外上升请求,Button(1)表示二楼电梯外上升请求, Button(2)表示二楼电梯外下降请求, Button(3)表示三楼电梯外下降请求);电梯内到达楼层控制按钮floor(其中floor(0)表示请求到达一层, floor(1)表示请求到达二层, floor(2)表示请求到达三层)。系统的输出包括电梯位置标识position,表示电梯当前所在楼层;电梯开门关门显示按钮door(当door=1时表示开门,door=0表示关门);电梯当前运行状态按钮up_down(当up_down=1时表示电梯处于上升状态,当up_down=0时表示电梯处于下降状态)。系统主要通过当前所在楼层以及运行状态、后续请求判断运行方式。电梯处在第一层时,当它收到二层电梯外上下楼请求、三层电梯外下楼请求、一层电梯内到达二层和三层请求时,电梯会按照指令上升到相应楼层并开门、关门;若收到一层电梯外上楼请求只做开门响应,随后根据使用者进入电梯后请求进行响应;其他请求不响应。当电梯处在第二层时,若系统收到二层电梯外上下楼请求只做开门响应;若收到三层电梯外下楼或二层电梯内到达三层请求,则做上楼响应、开门;若收到一层电梯外上楼或二层电梯内到达一层请求,则做下楼楼响应并开门;其他请求不响应。当电梯处在第三层时,若它收到二层电梯外上下楼请求、一层电梯外上楼请求、电梯内到达二层和一层请求时,电梯会按照指令下降到相应楼层并开门、关门;若收到三层电梯外下楼请求只做开门响应,随后根据使用者进入电梯后请求进行响应;其他请求不响应。若电梯正处在上升状态中收到外部请求,则只响应比当前所在楼层高的楼层的请求,到达需要到达最高楼层时再响应低层请求。若电梯正处在下降状态中收到外部请求,则只响应比当前所在楼层低的楼层的请求,到达需要到达最低楼层时再响应高层请求。3.3 电梯处于各楼层的具体分析处于一楼时,不管是电梯内或电梯外,电梯都只可能接收到上升的请求信号。此时,电梯就进入预上升状态,准备作上升运行,如果电梯没有接收到请求信号,电梯则在一楼待机。有信号将上升处于一楼等待信号图 3 - 2 电梯处于一楼处于二楼时,电梯则可能出现三种情况:1.电梯并没有接受到电梯内或电梯外的任何请求信号时,电梯则停留在当前楼层。2.电梯接收到上升请求信号,进入预上升状态。3.电梯接收到下降请求信号,进入预下降状态。有信号等待上升等待信号处于二楼有信号等待下降图 3 - 3 电梯处于二楼处于三楼时,不管电梯内或电梯外电梯都只可能接收到下降的请求信号。此时,电梯就进入预下降状态,准备作下降运行。如果电梯没有接收到请求信号,电梯则停留在三楼。有信号等待下降处于三楼等待信号图 3 - 4 电梯处于三楼电梯的运行规则确立后,需对整个控制程序的设计做一个流程规范。对程序进行模块化构思。根据VHDL语言的规则,程序必须由最基本的实体和结构体构成。实体对控制器的端口进行定义,结构体对各端口的行为进行描述。因此程序运行需经过以下流程:VHDL库调用:确立控制器的端口及相关的寄存器;根据电梯运行规则,设计相关运行描述;对电梯内信号进行处理。总流程图如下图 3 - 5 总流程图3.4 电梯外部端口具体说明3.4.1 定义各个端口1. 时钟信号(clk);2. 一楼电梯外人的上升请求信号(Button0),二楼电梯外人的上升请求信号(Button1);二楼电梯外人的下降请求信号(Button2),三楼电梯外人的下降请求信号(Button3);3. 电梯内人请求到达一楼的信号(fllor0),电梯内人请求到大二楼的信号(floor1),电梯内人请求到大三楼的信号(floor2);4. 电梯控制复位信号(reset);5. 电梯所在楼层显示(position3.0);6. 电梯开门状态(door);7. 电梯上下指示(up-down);3.4.2 引脚锁定表 3 - 1 :输入引脚锁定输入信号锁定的引脚clkPIN(76)Button3PIN(68)Button2PIN(69)Button1PIN(70)Button0PIN(73)floor2PIN(80)floor1PIN(81)floor0PIN(82)resetPIN(83)warmPIN (57)输入共10个信号,clk为输入脉冲,提供时钟,信号Button3为三楼外下降请求信号,Button2为二楼外下降请求信号,Button1为二楼外上升请求信号,Button0为一楼外上升请求信号;floor2为电梯内三层请求信号,floor1为电梯内二层请求信号,floor0为电梯内一层请求信号;reset为复位信号;warm为警告信号。表 3 - 2 :输出引脚锁定输出信号锁定的引脚doorPIN(78)Position3PIN(46)Position2PIN(45)Position1PIN(44)Position0PIN(39)qPIN(94)up_downPIN(95)输出信号共7个door为门信号,当door=1时表示为门开,当door=0时表示门关;position3、position2、position1、position0,为控制数码管显示的输出引脚;q为警告指示信号,当触发警告warm时q=1则超载,当q=0时则没事;up_down为上下楼层显示信号,当up_down=1时表示电梯正在向上运行,当up_down=0时表示电梯正在向下运行。4 仿真结果与说明图 4 - 1 从一楼到三楼使用者在一楼给予电梯上升请求信号,即button0置1,随后门打开,即door置1,使用者在电梯内给予三楼请求信号,随后门关闭,即door置0,并电梯上升,即up_down置1,最后到达三楼后门打开,door置1。图 4 - 2 三楼下一楼同时二楼有上升请求使用者在三楼给予电梯一下降请求,即button3置1,随后门打开,即door置1,使用者在电梯内给予一层请求信号,随后门关闭,即door置0,当到达一楼时门打开,即door置1,随后门关闭,door置0,到达二楼后,门打开,door置1.图 4 - 3 一楼到三楼在二楼时接另一人电梯上升过程中可以接收较高楼层的要求。开始时有人按下一层外上升(Button(0)=1)按钮,电梯开门使用者进入并按下到达三层(floor(2)=1)请求,此时电梯关门并上升。在电梯上升但未到达二层时,二层外有人按下上楼(Button(1)=1)请求,因此当电梯到达二层(position=2)后停止并开门,待二层使用者进入后再完成第一个使用者的请求到达三层。图 4- 4 有警告信号存在时当有超载信号时警报指示等亮起,即q置1,电梯将一直在一楼。当警告信号结束时电梯才正常运行。5 总结这次EDA课程设计虽然时间较短但是收获普丰,使得我对 VHDL 语言的理解与应用能力得到了较大的提升,让我认识到只要深入学习,提升的空间永远是存在的。在本次课程设计中凸显了我的不足之处,比如软件运用不太熟练,对VHDL 语言语法有诸多不清楚的认识,使在课程设计中遇到诸多困难。但是好在通过查阅资料和老师同学的帮助得以解决,使课程设计顺利完成。用VHDL硬件描述语言的形式进行数字系统的设计方便灵活,利用EDA软件进行编译优化仿真极大地减少了电路设计时间和可能发生的错误。降低了开发成本,这中设计方法必将在未来的数字系统设计中发挥越来越重的作用。动手实践是理论知识得以灵活运用的必要前提,也是今后走上工作岗位之后能够很好的完成设计工作的技术保证。只有遇到实际问题并根据自己对课堂上获得的专业知识的理解来解决才能真正的提高自己的能力。这也提醒我在平时的学习生活中不能一味埋头于课本知识,当今社会竞争越来越激烈,社会对人才的要求越来越全面,只有理论知识是远远不够的,必须靠实践作支撑。时间是检验真理的唯一标准这句话在这里同样适用。想要更加了解EDA技术这一领域必然还要经过更多的实践与努力,了解更多的这方面的知识,与时代共同进步,达到学以致用的效果。再次感谢在本次课程设计中帮助我完成设计的老师与同学们,没有你们的帮助我不能顺利的完成此次课程设计,在这里提前祝老师与同学新年快乐。参考文献1.Voknei A.Pedroni.VHDL数字电路设计教程M.电子工业出版社, 2008.52.潘松,黄继业.EDA技术实用教程(第二版)M.科学出版社,2005.23.焦素敏.EDA应用技术M.清华大学出版社,2002.44梁延东主编。电梯控制技术M。中国建筑工业出版社,1997 5李鼎培,当前电梯研制开发技术动态J,中国电梯,1995附录 程序代码LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.all;USE IEEE.STD_LOGIC_UNSIGNED.all;ENTITY li ISPORT(CLK: IN STD_LOGIC;reset,warm: IN STD_LOGIC; Button : IN STD_LOGIC_VECTOR(3 DOWNTO 0); -button(0)为一层外上升请求,button(1)为二层外上升请求button(2)为二楼外下降请求,Button(3)为三层外下降请求; floor : IN STD_LOGIC_VECTOR(2 DOWNTO 0); -floor(0)为电梯内一层请求按钮, floor(1)为电梯内二层请求按钮, -floor(2)为电梯内三层请求按钮; position: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);-position表示电梯当前位置信息; door : OUT STD_LOGIC; - '1'为开门,'0'为关门; up_down,q: OUT STD_LOGIC - '1'为上楼,'0'为下楼; );END li;ARCHITECTURE happen OF li ISTYPE State IS (S0,S1U,S1D,S2); -S1U为二楼上状态,S1D为二楼下状态; SIGNAL current_state : State; -中间变量:当前状态 SIGNAL next_state : State; -中间变量:下一状态 SIGNAL up : STD_LOGIC; -中间变量:上升下降状态 SIGNAL dor : STD_LOGIC; -中间变量:开门关门状态BEGINP1:PROCESS(CLK) -状态转换进程;BEGIN IF CLK'EVENT AND CLK='1' THEN -检测时钟上升沿if warm='0'then current_state <= next_state; END IF;end if;END PROCESS; P2:PROCESS(reset,clk,current_state,up,button,floor) VARIABLE button_var: STD_LOGIC_VECTOR( 3 DOWNTO 0); VARIABLE floor_var : STD_LOGIC_VECTOR( 2 DOWNTO 0); VARIABLE cat : STD_LOGIC; VARIABLE ca_time : STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN IF reset = '1' THEN -复位处理,初始状态为一层next_state <= S0;position <= "0001" cat:='0' ca_time:="0000" up<='Z' dor<='0' button_var( 3 DOWNTO 0):="0000" floor_var(2 DOWNTO 0):="000" ELSIF clk'event and clk='1' THEN -若无复位信号,则将外部按钮信号存储到7个变量之中; IF button(0) ='1' THEN button_var(0):='1' ELSE NULL; END IF; IF button(1) ='1' THEN button_var(1):='1' ELSE NULL; END IF; IF button(2) ='1' THEN button_var(2):='1' ELSE NULL; END IF; IF button(3) ='1' THEN button_var(3):='1' ELSE NULL; END IF; IF floor(0)='1' THEN floor_var(0):='1' ELSE NULL; END IF; IF floor(1)='1' THEN floor_var(1):='1' ELSE NULL; END IF; IF floor(2)='1' THEN floor_var(2):='1' ELSE NULL; END IF; IF cat='0' THEN ca_time:=ca_time+1; END IF; -开门,关门计时; CASE current_state IS WHEN S0 => -一楼状态处理; position <= "0001" cat:='0'IF (button_var(0) or floor_var(0)='1' THENCASE ca_time IS WHEN "0011" => dor<='1' WHEN "1101" => dor<='0' button_var(0):='0' floor_var(0):='0' IF (floor_var(1) or floor_var(2)='1' THEN next_state<=S1U; ca_time:="0000" up<='1' ELSE next_state<=S0; ca_time:="0000" END IF; WHEN others => NULL; END CASE; ELSIF (button_var(1) OR button_var(2) or button_var(3) or floor_var(2) or floor_var(1)='1' THENnext_state <= S1U; ca_time:="0000"up <= '1'ELSE next_state <= S0; ca_time:="0000"END IF; WHEN S1U => -二楼上状态处理;position <= "0010" cat:='0' IF floor_var(1)='1' THEN -二楼内上升请求; CASE ca_time IS WHEN "0011" => dor<='1' WHEN"1101"=> dor<='0' floor_var(1):='0' IF (button_var(1) or button_var(3) or floor_var(2)='1' THEN next_state<=S2; ca_time:="0000" button_var(1):='0' ELSIF ( button_var(0) or button_var(2) or floor_var(0)='1' THEN next_state<=s0; ca_time:="0000" button_var(2):='0' ELSE next_state<=S1U; ca_time:="0000" END IF; WHEN others => NULL; END CASE; ELSE IF button_var(1)='1' THEN -二楼外上升请求; CASE ca_time IS WHEN "0011" => dor<='1' WHEN "1101" => dor<='0' button_var(1):='0' IF (floor_var(2) or button_var(3)='1' THEN next_state<=S2; ca_time:="0000" ELSIF ( button_var(0) or floor_var(0) or button_var(2)='1' THEN next_state<=s0; ca_time:="0000" up<='0' ELSE next_state<=S1U; button_var(1):='0' END IF; WHEN others => NULL; END CASE; ELSE IF (button_var(3) or floor_var(2)='1' THEN -二楼无上楼,开门请求,但三层有下楼或开门请求; next_state<=S2; ca_time:="0000" ELSIF button_var(2)='1' THEN -二楼无上楼,开门请求,三层也无下楼或开门请求,此-时二楼有下楼请求; CASE ca_time IS WHEN "0011" => dor<='1' WHEN "1101" => dor<='0' button_var(2):='0' IF(floor_var(0) or button_var(0)='1' THEN next_state<=s0; ca_time:="0000" up<='0' ELSE next_state<=S1U; ca_time:="0000" END IF; WHEN others => NULL; END CASE; ELSIF (button_var(0) or floor_var(0)='1' THEN -电梯处于二楼上状态,仅有一楼信号要处理 next_state<=s0; ca_time:="0000" up<='0' ELSE next_state<=S1U; -无任何信号,保持当前状态不变; ca_time:="0000" END IF; END IF; END IF; WHEN S1D => - up='0' 时的情况; position <= "0010" cat:='0' IF floor_var(1)='1' THEN CASE ca_time IS WHEN "0011" => dor<='1' WHEN "1101" => dor<='0' floor_var(1):='0' IF (button_var(2) or button_var(0) or floor_var(0)='1' THEN next_state<=s0; ca_time:="0000" button_var(2):='0' ELSIF ( button_var(1) or button_var(3) or floor_var(2)='1' THEN next_state<=S2; ca_time:="0000" button_var(1):='0' ELSE next_state<=S1D; ca_time:="0000" END IF; WHEN others => NULL; END CASE; ELS

    注意事项

    本文(基于FPGA的电梯控制器设计.doc)为本站会员(文库蛋蛋多)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开