版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一、设计要求:要求用FPGA设计实现一个3层电梯的控制系统。系统的要求如下:(1)电梯运行规则:当电梯处在上升模式时,只响应比电梯所在位置高的上楼请求,由下向上逐个执行,直到最后一个上楼请求执行完毕。如果高层有下楼请求,直接升到有下楼请求的最高楼层,然后进入下降模式。当电梯处在下降模式时,工作方式与上升模式相反。设电梯共有3层,每秒上升或下降一层。(2)电梯初始状态为一层,处在开门状态,开门指示灯亮。(3)一层电梯入口处设有上楼请求开关,二层电梯入口处设有上、下楼请求开关,三层电梯入口处设有下楼请求开关,电梯内部设有乘客到达楼层的停站请求开关及其显示。(4)设置电梯所处位置指示及电梯上升或下降指示。(5)电梯到达有停站请求的楼层后,电梯门打开,开门指示灯亮。开门4s后,电梯门开关闭,开门指示灯灭,电梯继续运行,直至执行完最后一请求信号后停在当前层。(6)电梯控制系统能记忆电梯内外的请求信号,并按照电梯运行规则工作,每个请求信号执行完毕后随即清除。一、设计方案和论证1.控制器的设计方案控制器的功能模块如图1所示,包括主控制器、分控制器、楼层选择器、状态显示器、译码器和楼层显示器。乘客在电梯中选择所要到达的楼层,通过主控制器的处理,电梯开始运行,状态显示器显示电梯的运行状态,电梯所在楼层数通过译码器译码从而在楼层显示器中显示。分控制器把有效的请求传给主控制器进行处理,同时显示电梯的运行状态和电梯所在楼层数。由于分控制器相对简单很多,所以主控制器是核心部分。2.三层电梯控制器的设计思路电梯控制器采用状态机来实现,思路比较清晰。可以将电梯等待的每秒钟以及开门、关门都看成一个独立的状态。由于电梯又是每秒上升或下降一层,所以就可以通过一个统一的1秒为周期的时钟来触发状态机。根据电梯的实际工作情况,可以把状态机设置10个状态,分别是“电梯停留在第1层”、“开门”、“关门”、“开门等待第1秒”、“开门等待第2秒”、“开门等待第3秒”、“开门等待第4秒”、“上升”、“下降”和“停止状态”。各个状态之间的转换条件可由上面的设计要求所决定。二、三层电梯控制器的综合设计2.三层电梯控制器的实体设计首先考虑输入端口,一个异步复位端口reset,用于在系统不正常时回到初始状态;在电梯外部,必须有升降请求端口,一层是最低层,不需要有下降请求,三层是最高层,不需要有上升请求,二层则上升、下降请求端口都有;在电梯的内部,应该设有各层停留的请求端口:一个电梯时钟输入端口,该输入时钟以1秒为周期,用于驱动电梯的升降及开门关门等动作;另有一个按键时钟输入端口,时钟频率比电梯时钟高。其次是输出端口,有升降请求信号以后,就得有一个输出端口来指示请求是否被响应,有请求信号以后,该输出端口输出逻辑‘l’。被响应以后则恢复逻辑‘O’;同样,在电梯内部也应该有这样的输出端口来显示各层停留是否被响应;在电梯外部,需要一个端口来指示电梯现在所处的位置;电梯开门关门的状态也能用一个输出端口来指示;为了观察电梯的运行是否正确,可以设置一个输出端口来指示电梯的升降状态。2.三层电梯控制器的结构体设计首先说明一下状态。状态机设置了lO个状态,分别是电梯停留在l层(stoponl)、开门(dooropen)、关门(doorclose)、开门等待第1秒(doorwaitl)、开门等待第2秒(doorwait2)、开门等待第3秒(doorwait3)、开门等待第4秒(doorwait4)、上升(up)、下降(down)和停止(stop)。在实体说明定义完端口之后,在结构体architecture和begin之间需要有如下的定义语句,来定义状态机。TYPElift_stateIS(stoponl,dooropen,doorclose,doorwaitl,doorwait2,doorwait3,door。wait4,up,down,stop):SIGNALmylift:lift_state:在结构体中,设计了俩个进程互相配合,一个是状态机进程作为主要进程,另外一个是信号灯控制进程作为辅助进程。状态机进程中的很多判断条件是以信号灯进程产生的信号灯信号为依据的,而信号灯进程中信号灯的熄灭又是由状态机进程中传出的clearup和cleardn信号来控制。在状态机进程中,在电梯的上升状态中,通过对信号灯的判断,决定下一个状态是继续上升还是停止;在电梯下降状态中,也是通过对信号灯的判断,决定下一个状态是继续下降还是停止;在电梯停止状态中,判断是最复杂的,通过对信号的判断,决定电梯是上升、下降还是停止。在信号灯控制进程中,由于使用了专门的频率较高的按键时钟,所以使得按键的灵敏度增大,但是时钟频率不能过高,否则容易使按键过于灵敏。按键后产生的点亮的信号灯(逻辑值为‘1’)用于作为状态机进程中的判断条件,而clearup和cleardn信号为逻辑‘l’使得相应的信号灯熄灭。3.三层电梯控制器VHDL设计三层电梯控制器的VHDL描述模块流程如图2所示。三层电梯控制器的源代码(见附录)可知:(1)本程序设计调用了IEEE库,IEEE库是VHDL设计中最为常用的库,它包含有IEEE标准的程序包和其他一些支持工业标准的程序包。本设计采用了STD_LOGIC_1164、STD_LOGIC_ARITH、STD_LOGIC_UNSIGNED程序包。(2)以关键词ENTITY引导,ENDENTITYthreeflift结尾的语句部分,称为实体。VHDL的实体描述了电路器件的外部情况及各信号端口的基本性质。本设计定义了关于三层电梯控制器用到的各类时钟、异步复位按键、信号灯指示、电梯的请求。端口模式主要就是IN、BUFFER、OUT端口。及定义了各端口信号的数据类型,主要是STD_LOGIC(标准逻辑位数据类型)、INTEGER(整数类型)、STD_LOGIC_VECTOR(标准逻辑矢量数据类型)。这些都满足上面调用的IEEE库中的程序包。(3)以关键词ARCHITECTURE引导,ENDARCHITECTUREa结尾的语句部分,称为结构体。结构体负责描述电路器件的内部逻辑功能或电路结构。本设计定义了lO个状态。描述了在三层电梯中出现的各种可能的情况作为控制电梯的主要进程。信号灯控制作为辅助进程。4.三层电梯控制器的模块三、三层电梯控制器的仿真模块模块(一):图4所示仿真的是在第二层电梯外部有上升请求,也就是f2upbuttton信号的一个脉冲,可以看到电梯从一层上升到二层,position信号由1变到2,doorlight信号‘1’表示开门,‘0’表示关门。当乘客进入电梯以后,在电梯内部要求上升到第三层,也就是stop3button产生一个脉冲,电梯上升到第3层,开门4秒以后关门,停留在第三层,position最后的值为3。在仿真图中看不到buttonclk,只显示为一条黑色的线,是因为采用了频率较大的时钟。再看fuplight信号灯,当二层有上升请求的时候,它的值由0变到2。(注意fuplight和fdnlight是3位的二进制向量,这里的2代表“010”,表示二层有请求;“100”也就是4,表示三层有请求)。当电梯停留到第二层以后,表明该请求被响应,所以它的值变为0,由于没有下降请求信号,所以fdnlight信号灯的值一盲都为O。模块(二):图5是有下降请求的情况,它是图4的继续,当电梯停留在第三层的时候,在电梯外第二层有下降请求,这时候fdnlight信号灯由0变为2,说明第二层有下降请求。电梯下降到第二层,响应了下降请求,所以fdnlight信号灯清0。这时候,在电梯内部没有停留在哪层的请求,所以电梯就停留在第二层,position信号的值保持在2。模块(三):同时有上升和下降请求信号时,电梯的运行情况如图6所示。图6仿真的情况是,原先电梯停留在第一层,这时候电梯外第三层有下降请求,电梯上升到第三层,乘客进入电梯以后要求下降到一层,与此同时,在电梯外第二层有上升请求,电梯首先要响应下降请求然后再响应这个上升请求,所以电梯得先下降到一层,然后再上升到第二层来,这是符合常理的。从仿真的波形看,电梯的位置变化和想象是一致的。电梯的运行情况完全正确。最后乘客在电梯内部要求上升到三层,所以电梯最后的停留位置为三层。模块(四):图7所示的仿真,原先电梯停留在第一层,电梯外第三层有下降请求,电梯上升到三层,乘客进入电梯以后要求下降到一层,此时,二层有下降请求,接着又有上升请求,电梯首先在二层停留。然后下降到一层。随后要响应二层上升请求,上升到二层,乘客进入电梯以后要求上升到三层,所以电梯最后的停留位置在三层。四、vhdl程序整体设计附加功能:1.显示开门时间2.当电梯在5秒内无任何请求时电梯自动下降到一楼并停在一楼。
根据电梯控制系统的设计要求,除了具备两个时钟信号CLK,一个是电梯时钟信号,另一个是按键时钟信号。以外,还应该定义输入信号和输出信号。输入信号定义如下:
系统复位信号:RESET,高电平有效;
电梯入口处一层、二层的上楼请求开关:F1UPBUTTION、F2UPBUTTION;
电梯入口处二层、三层的下楼请求开关:F2DNBUTTION、F3DNBUTTION;
电梯内部到达楼层的停站请求开关:STOPlBUTTION、STOP2BUTTION、STOP3BUTTION。
所有输入信号的规定为:输入信号等于1,表示有请求,信号等于0,表示无请求。
输出信号定义如下:
电梯外部上升和下降请求指示灯:UPLIGHT和DOWNLIGHT,这些信号与F1UPBUTTION、F2UPBUTTION、F2DNBUTTION、F3DNBUTTION信号相对应;
电梯内部乘客到达楼层的停站请求灯:STOPLIGHT,该信号与STOPlBUTTION、STOP2BUTTION、STOP3BUTTION信号相对应;
电梯运行模式指示:UDSIG,1代表下降模式,0代表上升模式;
电梯所在楼层指示:POSITION,表示电梯在对应楼层;
电梯门状态指示:DOORLIGHT,1表示开门,0表示关门。
程序设计
1.三层电梯控制器的实体设计
首先考虑输入端口,一个复位端口RESET,用于系统不正常时回到初始状态;在电梯外部必须有升降请求端口,一层不需要有下降请求,三层不需要有上升请求,二层则上升下降请求端口都有;在电梯内部应该有各层的停止请求按钮;一个电梯时钟输入端口,以1秒为周期,用于驱动电梯的上升,下降。开门以及关门动作;另外一个按键时钟输入端口,频率要比电梯的高得多在这里要64HZ。
其次是输出端口,有升降请求信号以后,就得有一个输出端口指示是否被响应,同样,在电梯内部也应该有输出端口来显示各层停留是否响应。在电梯外部需要一个端口来显示电梯所在的位置,电梯开门,关门状态也要用一个端口来显示;为了观察电梯的升降状态,也要有一个端口来指示电梯的升降状态。最后还要显示开门时间,就要有一个端口来输出。
2.三层电梯的控制器设计
首先说明一下状态。状态机设计了10个状态,分别是电梯停留在一层(STOPON1),开门(DOOROPEN),关门(DOORCLOSE),开门等待1秒(DOORWAIT1),开门等待2秒(DOORWAIT2),开门等待3秒(DOORWAIT3),开门等待4秒(DOORWAIT4),上升(UP),下降(DOWN),和停止(STOP)。
在结构体中,设计两个进程互相配合,一个是状态机进程的主要进程,另一个是信号灯控制进程作为补助的进程。状态机进程中的很多判断条件是以信号灯进程产生的信号为依据的,而信号灯进程中信号的熄灭又是以状态机进程中传出的CLEARUP,CLEARDN信号来控制的。
在状态机进程中,在电梯上升状态中,通过对信号灯的判断,决定下一个状态是继续还是停止;在电梯下降状态中,也是通过对信号灯的判断,决定下一个状态是继续下降还是停止。
在信号灯控制进程中,由于使用了专门的频率比较高的按键时钟,所以按键灵敏度增大,但是时钟频率不能太高,否则容易按键过于灵敏。按下按键后产生的点亮的信号灯用于作为状态机进程中判断条件,而CLEARUP和CLEARDN信号为逻辑‘1’时相应的信号灯熄灭。
根据电梯的状态变化画出它的状态流程图如附件1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 44290-2024木材与木制品生物碳含量计算方法
- 眼部化妆品项目运营指导方案
- 石灰制药剂项目营销计划书
- 创意雕塑艺术行业市场调研分析报告
- 家用除湿机产业链招商引资的调研报告
- 加油站用汽油泵产品供应链分析
- 化妆用芦荟凝胶产品供应链分析
- 在线出租服装行业市场调研分析报告
- 剥制加工行业相关项目经营管理报告
- 云身份和访问管理行业相关项目经营管理报告
- 家居维修在线服务平台调度优化算法研究
- 肛肠科护理个案
- 2024年师德师风培训学习内容-(含多场景)
- 工业园区控制性详细规划说明书(范)
- 车辆维修保养知识课件
- 酒店优势劣势分析报告模板
- 动物骨架仿生学应用
- 《婴幼儿的教养》课件
- 环境工程的工程伦理问题探讨
- 串串香配方:如何在家自己做串串香课件
- 肝性脑病的护理个案课件
评论
0/150
提交评论