版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目录一、设计题目2二、设计目的2三、设计要求2四、设计的基础依据2(一)FPGA芯片介绍2(二)VHDL语言介绍3五、电梯控制器的基本设计原理4(一)电梯控制器的工作原理4(二)电梯控制器的设计7七、参考文献10附录1、VHDL源代码11附录2、三层电梯的电路总图17一、设计题目基于VHDL的三层电梯控制器设计二、设计目的掌握电梯控制器的工作原理,对系统进行基于VHDL的设计与实现。三、设计要求1、阐述电梯控制器系统工作原理2、画出电梯控制器的结构方框图 3、基于VHDL的设计实现4、写出详细的设计报告四、设计的基础依据(一)FPGA芯片介绍FPGA是FieldProgrammable Gat
2、e Array(现场可编程门阵列)的缩写,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是专用集成电路中一种半定制电路。具克服了传统可编程器件数有限的缺点,又具有可编程的特点。FPGA器件是由美国XILINX公司于1985年首先推出。一般把FPGA定义为基于查找表技术(LOOK-UP Tablc,LUT)和SRAM工艺的PLD,目前的FPGA已远超出先前产品的基本功能,并且整合了许多常用功能(如RAM、时钟管理和DSP),在新型的的系统级可编程逻辑器件中还可以以IP核的形式来进行功能设计,或许只需要一块FPGA芯片就可以实现所有功能,成为片上系统。FPGA芯片的结构如图
3、4-1所示。图4-1 FPGA芯片结构图近几年来FPGA有了很快的发展,按照传统观点,FPGA仅用于产品原型设计和ASIC的验证,用于大规模的数字系统开发就过于昂贵且功耗巨大。随着FPGA的研究突破了低功率、低成本和先进工艺的瓶颈后,FPGA的应用领域日益扩张,随着功能和性能的进一步提高,FPGA应用领域已成可编程逻辑领域扩展到了高性能DSP、高性能嵌入式等领域。2(二)VHDL语言介绍VHDL的英文全名是Very-High-Speed Integrated Circuit Hardware Description Language,于1983年由美国国防部(DOD)发起创建,由IEEE(Th
4、e Institute of Electrical and Engineers)进一步发展并在1987年作为“IEEE标准1076”发布,从此VHDL成为硬件描述语言的业界标准之一。至IEEE公司发布了VHDL语言标准版之后,各EDA公司相继推出了自己的VHDL设计环境,或宣布自己的设计工具支持VHDl。此后VHDL语言在电子设计领域的得到了广泛的应用,并逐步取代了原有的非标准硬件描述语言。VHDL语言作为一个规范语言和建模语言,具有和强的电路描述和建模能力,能从多个多个层次对数字系统进行建模和描述,从而大大简化了硬件设计任务,提高了设计效率和可靠性。VHDL具有与具体硬件无关和与设计平台无关
5、的特性,并且具有良好的电路行为描述和系统描述能力。用VHDL语言进行电子系统设计的最大优点是设计者专心致力于其功能的实现,而不需要对不影响功能的与工艺有关的因素花费过多的时间和精力。其具体的流程图如图4-2所示。设计输入设计思想及模块化设计实现设计仿真器件编程系统测试图4-2 VHDL语言的设计流程五、电梯控制器的基本设计原理(一)电梯控制器的工作原理1、请求信号分析:电梯控制器的请求信号分为电梯内部请求和外部请求,如果从这角度就很难对电梯运行情况进行分析,因为电梯梯内梯外的请求是随机且不能以有限的规则去对进行说明的,因此本设计把电梯的请求信号划分为上升信号和下降信号。电梯收到请求信号后,都必
6、需做预操作。使电梯进入预上升状态的请求信号就是上升请求信号,具体来说就是当电梯所在楼层低于发出电梯外部请求的楼层或者低于楼内请求所要达到的目的楼层时,电梯必需在下一操作中上升,这时的请求信号就是上升信号。反之,则是下降信号。2、电梯处于各层时的情况:当电梯在一楼时,不管电梯内部还是外部,电梯只能收到上升请求信号,此时电梯进入预上升状态,准备上升,如果没有收到上升请求,则电梯待在一楼。如图5-1a所示。当电梯在二楼时,如电梯外部内部均没有收到任何请求,电梯将返回一楼待机;如电梯接收到上升请求信号,则进入预上升状态;如电梯接收到下降请求信号,电梯进入预下降状态。如图5-1b所示。当电梯在三楼时,电
7、梯只能接收到下降请求信号,此时电梯进入预下降状态,准备下降,没有收到请求信号则返回一楼。如图5-1c所示。一楼预上升待机上升请求无请求图5-1a电梯处于一楼的情况分析二楼预上升返回一楼预下降上升请求无信号下降请求图5-1b 电梯处于二楼的情况分析三楼预下升返回一楼下降请求无请求图5-1c 电梯处于三楼的情况分析对三个楼层的情况进行汇总,可得到如图5-2的状态图。二楼一楼三楼待机预上升预上升预下降预下降上升请求无请求下降请求上升请求下降请求 图5-2电梯运行状态图电梯运行过程中,还存在处理信号优先的问题,单纯的顺序优先或逻辑优先是不能满足控制要求的,因此采用随机逻辑的方式控制去解决信号优先的问题
8、,即在顺序逻辑控制的基础上根据随机的信号输入,以及电梯的相应状态适时的控制电梯运行,如当电梯在三楼时,一楼、二楼均有上升请求,电梯则在二楼不停止,先直接到一楼接客。(二)电梯控制器的设计本设计由3个模块组成:控制模块、楼层显示模块、电梯状态显示模块。电梯控制的结构框图如图5-3所示,电梯控制器的电路总图见附录1。 时钟输入控制电路译码显示电梯状态显示图5-3 电梯控制器整体框图1、控制模块控制模块如图5-4,该模块是整个程序的核心,设计思想是将电梯的状态分为四个状态:一层状态c1,二层状态c2,三层状态c3,开门状态kai,对每一个状态分析其所有可能。程序见附录1。图5-4控制模块端口up1,
9、up2,down2,down3分别是电梯外部一层上升请求、二层上升请求、二层下降请求、三层下降请求。端口k1、k2、k3是电梯内部所要到达的楼层请求。端口clk为时钟信号。端口site3.1输出的是电梯所在的楼层。端口mode输出的是电梯运行状态。端口door是电梯开门关门状态。3、楼层显示模块楼层显示模块如图5-5,该模块的主要功能是将电梯所在的楼层显示的信号转换成数码管显示信号。图5-5楼层显示模块端口a3.1输入的是电梯楼层信号。端口clk为时钟信号。端口p6.0为输出数码管显示信号。七段数码管显示的原理是:当a、b、c、d、e、f、g输入正电源时,对应的LED灯就会亮,如当b、c接入正
10、电源时,数码管就的b、c所对应的LED灯亮,达到显示“1”的效果。数码管显示器的发光排列如图5-6.图5-6七段数码管4、电梯状态显示模块电梯状态显示模块图5-7译码显示模块端口clk为时钟输入信号。端口mode为电梯状态信号输入。端口sel3.0为输出sel信号。端口q0.15输出的是点阵显示信号。5、VHDL源代码语法的说明(1)本程序设计调用了ieee库,ieee库是VHDL设计中最为常用的库,它包含有ieee标准的程序包和其他一些支持工业标准的程序包。本设计采用std-logic-1164、std-logic-unsigned、std-logic-arith程序包。(2)以关键词ent
11、ity引导,end entity threelift结尾的部分是程序的实体部分。VHDL的实体描述了电路器件的外部情况,本设计定义了关于三层电梯控制器用到的各类时钟、异步复位按键、信号灯指示端口、电梯的请求端口。它描述了端口模式主要有in、buffer、out,以及各端口信号的数据类型主要有std-logic、std-logic-vector、integer。(3)以关键词architecture引导,end architecture one结尾的语句部分是结构体部分,结构体描述电路器件的内部逻辑功能。VHDL源代码见附录1七、参考文献1陈雪松,VHDL入门与应用.北京人民邮电出版社20002
12、侯伯亨,VHDL硬件描述语言与数字逻设计.西安电子科技大学出版社20013臧春华,蒋璇.数字系统设计与PLD应用.北京电子工业出版社20094段吉海,数字通信系统建模与设计. 电子工业出版社20045程佩青,数字信号处理教程.清华大学出版社2013附录1、VHDL源代码library ieee; -库的说明use ieee.std_logic_1164.all; -程序包的说明use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity threelift is -实体 port(buttonclk:in std_log
13、ic; -按键时钟信号 liftclk:in std_logic; -电梯时钟信号 reset:in std_logic; -异步复位端口 f1upbutton:in std_logic; -一层上升请求端口 f2upbutton:in std_logic; -二层上升请求端口 f2dnbutton:in std_logic; -二层下降请求端口 f3dnbutton:in std_logic; -三层下降请求端口 stop1button:in std_logic; -一层停站请求端口 stop2button:in std_logic; -二层停站请求端口 stop3button:in std
14、_logic; -三层停站请求端口 position:buffer integer range 1 to 3; -电梯位置信号 udsig:buffer std_logic; -电梯模式(上升或下降)信号 fuplight,fdnlight,stoplight:buffer std_logic_vector(3 downto 1); -上升、下降、停站请求寄存信号doorlight:out std_logic; -开关门信号 dout1:out std_logic_vector(3 downto 0); end entity threelift;architecture one of thre
15、elift 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; -下降和停站请求清除信号beginctrlift:process(reset,liftclk) -状态机进程variable pos:integer range 3 downto
16、1;beginif reset='1' then -异步复位,电梯的初始状态为一层开门状态 mylift<=stopon1; clearup<='0' cleardn<='0'else if liftclk'event and liftclk='1' then case mylift is when stopon1=> doorlight<='1' position<=1; pos:=1; mylift<=doorwait1; -电梯等待4s when doorwa
17、it1=> mylift<=doorwait2; when doorwait2=> clearup<='0' cleardn<='0' mylift<=doorwait3; when doorwait3=> mylift<=doorwait4; when doorwait4=> mylift<=doorclose; when doorclose=> -关门,判定电梯下一个运行方式 doorlight<='0' if udsig='1' then -电梯处在上升
18、模式 if position=3 then if fuplight="000" and fdnlight="000" and stoplight="000" then -没有请求信号时,电梯停在当前层 udsig<='0' mylift<=doorclose; elsif fdnlight(3)='1' or stoplight(3)='1' then -本层有请求信号是,电梯开门 udsig<='0' mylift<=dooropen; else
19、 -否则下降 udsig<='0' mylift<=down; end if; elsif position=2 then if fuplight="000" and fdnlight="000" and stoplight="000" then udsig<='1' mylift<=doorclose;elsif fuplight(2)='1' or stoplight(2)='1' then -本层有上升或停站请求时时,电梯开门 udsig&l
20、t;='1' mylift<=dooropen; elsif fuplight="000" and stoplight="000" and fdnlight="010" then -只有二层有下降请求时,电梯开门 udsig<='0' mylift<=dooropen; elsif stoplight(3)='1' or fdnlight(3)='1' then -三层有停站请求或下降请求,则上升 udsig<='1' mylift
21、<=up; else udsig<='0' mylift<=down; end if; elsif position=1 then if fuplight="000" and fdnlight="000" and stoplight="000" then udsig<='1' mylift<=doorclose; elsif stoplight(1)='1' or fuplight(1)='1' then udsig<='1
22、39; mylift<=dooropen; else udsig<='1' mylift<=up; end if; end if; elsif udsig='0' then -电梯处在下降模式 if position=3 then if fuplight="000" and fdnlight="000" and stoplight="000" then udsig<='0' mylift<=doorclose; elsif fdnlight(3)='
23、1' or stoplight(3)='1' then udsig<='0' mylift<=dooropen; else udsig<='0' mylift<=down; end if; elsif position=2 then if fuplight="000" and fdnlight="000" and stoplight="000" then udsig<='0' mylift<=doorclose; elsif f
24、dnlight(2)='1' or stoplight(2)='1' then udsig<='0' mylift<=dooropen; elsif fdnlight="000" and stoplight="000" and fuplight="010" then udsig<='1' mylift<=dooropen; elsif fuplight(1)='1' or stoplight(1)='1' then
25、-一层有停站请求或上升请求,则下降 udsig<='0' mylift<=down; else udsig<='1' mylift<=up; end if; elsif position=1 then if fuplight="000" and fdnlight="000" and stoplight="000" then udsig<='1' mylift<=doorclose; elsif stoplight(1)='1' or f
26、uplight(1)='1' then udsig<='1' mylift<=dooropen; else udsig<='1' mylift<=up; end if; end if; end if; when up=> -电梯处于上升状态 position<=position+1; -电梯楼层数加一 pos:=pos+1; if pos<3 and (stoplight(pos)='1' or fuplight(pos)='1') then mylift<=stop
27、; -电梯在一层或二层,本层有停站或上升请求时,则停止 elsif pos=3 and (stoplight(pos)='1' or fdnlight(pos)='1') then mylift<=stop;-电梯处在三层,并且有三层停站或下降请求,则停止 else mylift<=doorclose; end if; when down=> -电梯处在下降状态 position<=position-1; -电梯楼层数减一 pos:=pos-1; if pos>1 and (stoplight(pos)='1' an
28、d fdnlight(pos)='1') then mylift<=stop; elsif pos=1 and (stoplight(pos)='1' or fuplight(pos)='1') then mylift<=stop; else mylift<=doorclose; end if; when stop=> mylift<=dooropen; when dooropen=> doorlight<='1' if udsig='1' then if position
29、<3 and (fuplight(pos)='1' or stoplight(pos)='1') then clearup<='1' -清除当前层上升和停站请求 else clearup<='1' cleardn<='1' end if; elsif udsig='0' then if position>1 and (fdnlight(pos)='1' or stoplight(pos)='1') then cleardn<=
30、9;1' -清除当前层下降和停站请求 else clearup<='1' cleardn<='1' end if; end if; mylift<=doorwait1; end case; end if;end if;end process ctrlift;ctrlight:process(reset,buttonclk) -信号灯控制进程beginif reset='1' then -复位,寄存信号清零 fuplight<="000" fdnlight<="000" stoplight<="000"else if buttonclk'event and buttonclk=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【长沙】2025年湖南长沙市教育局直属单位公开招聘备案制教职工111人笔试历年典型考题及考点剖析附带答案详解
- 中央国家药品监督管理局药品和医疗器械审评检查京津冀分中心华中分中心西南分中心2025年招聘27人笔试历年参考题库附带答案详解(5卷)
- 防护网栏刺丝滚笼安装施工工艺方案
- 化工生产事故应急处理办法
- 黑龙江七台河市调整2025年下半年事业单位公开招聘岗位笔试历年典型考题及考点剖析附带答案详解
- 【邢台】2025年河北省邢台市柏乡县公开招聘事业单位工作人员37人笔试历年典型考题及考点剖析附带答案详解
- 2025版腰椎间盘突出症运动康复专家共识解读
- 2025版成人患者营养不良诊断与应用指南课件
- 2024年版中国全凭静脉麻醉临床实践指南课件
- 麻纺厂消防安全教育准则
- 2024年燃气项目立项申请报告模范
- 2022病毒疣基层诊疗指南
- 消防安全评估消防安全评估方案
- 一级注册建筑师执业资格考试建筑方案作图应用指南-课件
- 仿生蝴蝶机械设计说明书
- 中建公寓楼装配式施工方案(B类)
- 2019外研社版高中英语选修一 Unit 3 单词短语句子复习默写单
- 三年级下册数学《面积》单元作业设计
- 江苏省船舶行业智能化改造数字化转型实施指南(第二版)
- 2023年广西中烟招聘笔试参考题库附带答案详解
- 初中语文修改病句专题课件
评论
0/150
提交评论