




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
VHDL数字系统设计与测试实验报告基于VHDL的电梯控制系统设计一、设计背景及说明随着高层建筑的不断涌现,对电梯的需求也与日俱增,电梯已经成为我们日常生活中不可缺少的局部,稳定可靠性高的电梯系统成为了电梯领域的新需求。现在基于VHDL硬件描述语言,用FPGA为控制芯片控制完成一个简单的6层楼的电梯控制系统设计。我们常见的电梯控制系统功能都包括:上升请求、下降请求、电梯门控、楼层显示灯、电梯运动方向显示、超载、报警、电梯内请求信号等。根据这些常用的信号设计一个电梯系统,实现所要求的功能。控制方式的选择:内部请求优先控制方式内部请求控制方式类似于出租车的工作方式,先将车上的人送至目地,再去载客。作为通用型电梯应该效劳于大多数人,必须考虑电梯对内外请求的响应。在内部请求优先控制方式中,当电梯外部人的请求和电梯内部人的请求冲突时,外部人的请求信号可能被长时间忽略,因为它不能作为通用型电梯的设计方案。单层层停控制方案单层层停控制方式等同于火车运行方式,遇到站即停止、开门。这种方案保证所有的人的请求都能得到响应。然而这样对电梯的效率产生了消极的影响:不必要的等待消耗了大量时间,而且电梯的运作与用户的请求无关,当无请求时电梯也照常跑空车,浪费了大量的电能。对于用户而言这种控制方式的请求响应时间也不是很快,因而也不是理想的电梯控制设计方案。方向优先控制式方式方案方向优先控制是指电梯运行到某一层楼时,先考虑这一层楼是否有请求:有那么停止;无那么继续上升或者下降。停止后再启动时,考虑上方或者下方是否有请求,有那么继续前进,无那么停止。检测前方是否有请求,有请求那么转向运行,无请求那么维持停止状态。这种运作方式下,电梯对用户的请求相应率为100%,而且响应的时间较短。方向优先控制方式的效率远远大于单向层层停等控制方式的效率。而且,方向控制方式下,电梯在维持停止状态的时候可以进入省电模式,又能节省大量的电能。在本设计中采用方向优先控制方式。电梯的输入信号分析电梯的输入信号分析主要包括外部输入信号和内部输入信息的分析。对于电梯外部输入信号:每一层电梯门外需要有上升请求按钮和下降请求按钮,其中一楼电梯门外只有上升请求按钮,6楼电梯门外只有下降请求按钮。电梯内部输入信号包括6个前往楼层按钮、提前关门按钮、延时关门按钮、电梯异常求救按钮,另外还有超重等警告信号输入。电梯的输出信号分析:电梯的输出信号分析也主要包括外部输出信号和内部输出信息的分析。对于电梯外部信号包括上升请求按钮和下降请求按钮是否被按下指示信号灯、电梯当前所在楼层指示信号、电梯运行方向指示信号。电梯内部输出信号包括6个前往楼层按钮是否被按下指示信号、是否超重等告警指示信号、电梯当前所在楼层指示信号、以及电梯运行方向指示信号。电梯运行规那么分析:当电梯处于上升模式时,只响应比电梯所在位置更高的上楼信号,由下至上依次执行,直到最后一个上楼请求执行完毕,如果高层有下楼请求时,那么直接升到有下降请求的最高楼,然后进入下降模式,电梯处于下降模式时,那么与上升模式相反。电梯系统框图如下列图所示:按键输入乘坐电梯者所想要去的楼层,控制电梯门的开关,可编程逻辑芯片接收到信号后进行处理,发送信号给控制电机系统来控制电梯的上升下降等状态,同时通过LED数码管显示所在的楼层,以及电梯的运动状态。该控制器完成6层电梯的载客效劳,而且遵循方向优先原那么,并能相应提前关门、延时关门,并且有超载报警和故障报警。同时指示电梯的运行情况以及电梯内外请求信息。二、设计框图及模块说明设计电梯系统框图如下列图所示:电梯系统大致包括4个模块:外部数据采集模块对外部信号采集、处理要求电梯控制器:实现对外部请求信号的实时、准确采集;准确实时地捕捉到达楼层的信号;有效防止楼层到达信号、外部请求信号的误判。采用FPGA为系统控制核心,系统时钟频率足够满足此系统实时采集数据的要求。外部请求信号的输入形式为按键输入,到达楼层信号来自光敏传感器,关门中断信号及超载信号那么产生于压力传感器。信号存储模块电梯控制系统的请求输入信号有18个〔电梯外有6个上升请求和6个下降请求的用户输入端口,电梯内有6个请求用户输入端口〕,由于系统对内外请求没有设置优先级,各楼层的内外请求信号被采集后可先进行运算,再存到存储器内。要注意的是电梯运行过程中,由于用户的请求信号的输入是离散的,而且系统对请求的响应也是离散的,因此请求信号的存储要新的请求信号不能覆盖原来的请求信号,只有响应动作完成后才能去除存储器内对应的请求信号位。基于FPGA的中央处理器模块中央数据处理模块是系统的核心,通过对存储的数据〔含请求、到达楼层等信号〕进行比拟、判断以驱动系统状态的流转。电梯工作过程中共有9种状态:等待、上升、下降、开门、关门、停止、休眠、超载报警及故障报警状态。一般情况下电梯的工作始点是第一层,起始状态是等待状态,启动条件是接受上升请求。超载状态时电梯关门动作取消,同时发出警报,直到警报被去除〔看门狗信号有效的条件是一层楼连续发生关门中断情况超过3次〕。本系统由请求信号启动,运行中每检测到一个到达楼层信号,再参考原方向信号来决定是否停止,转向等动作。系统状态流程图如下列图所示:信号的输出、显示模块本系统的输出信号有两种:一种是电机的升降控制信号〔两位〕和开门/关门控制信号;另一种是面向用户的提示信号〔含楼层显示、方向显示、已接受请求显示等〕。电机控制信号一般需要两位,本系统中电机有3种工作状态:正转、反转和停转状态。两位控制信号作为一个三路开关的选通信号,此三路开关选用模拟电子开关。系统的显示输出包括数码管楼层显示、数码管请求信号显示和表征运动方向箭头指示灯的开关信号。LED七段数码管显示局部在前面的作业中已经做了详细的介绍及说明,在本系统中省略。本系统具有请求信号显示功能,结合方向显示,可以减少用户对同一请求的输入次数,这样就延长了电梯按键的寿命。三、电梯控制程序设计源代码及端口说明输入端口信号说明:clk:时钟信号,2Hz;clr:去除警报信号,高有效,去除故障报警;c_u1、c_u2、c_u3、c_u4、c_u5:电梯外人的上升请求;c_d2、c_d3、c_d4、c_d5、c_d6:电梯外人的下降请求;deng:关门中断,用于在需要等待时,让电梯门一直翻开,停止运动;d1、d2、d3、d4、d5、d6:电梯内人的请求信号;full:超载信号,高时表示电梯内的人过多,超载报警;g1、g2、g3、g4、g5、g6:到达楼层信号,数码管LED将显示其值;quick:提前关门信号,高有效,当为高时,电梯门马上关闭;输出端口信号说明:door[1:0]:电梯门控信号;led[6:0]:电梯所在楼层显示;led_c_u[5:0]:电梯外人上升请求信号显示;led_c_d[5:0]:电梯外人下降请求信号显示;led_d[5:0]:电梯内请求信号显示;alarm:超载警告信号;up:电梯运动状态显示,高时表示上升;down:电梯运动状态显示,高时表示为下降;ud:电机控制信号,控制电梯的上升下降,“1〞表示为上升,“0〞表示为下降;wawawa:看门狗报警信号,高时表示故障报警。源代码如下所示:----------------------------------------------------------------------------------libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;useieee.std_logic_arith.all;entitydiantiisport(clk:instd_logic;--时钟信号〔频率为2Hz〕full,deng,quick,clr:instd_logic;--超载、关门中断、提前关门去除报警信号c_u1,c_u2,c_u3,c_u4,c_u5:instd_logic;--电梯外人的上升请求信号c_d2,c_d3,c_d4,c_d5,c_d6:instd_logic;--电梯外人的下降请求信号d1,d2,d3,d4,d5,d6:instd_logic;--电梯内人的请求信号g1,g2,g3,g4,g5,g6:instd_logic;--到达楼层信号door:outstd_logic_vector(1downto0);--电梯门控制信号led:outstd_logic_vector(6downto0);--电梯所在楼层显示 led_c_u:outstd_logic_vector(5downto0);--电梯外人上升请求信号显示led_c_d:outstd_logic_vector(5downto0);--电梯外人下降请求信号显示led_d:outstd_logic_vector(5downto0);--电梯内请求信号显示 wahaha:outstd_logic;--看门狗报警信号ud,alarm:outstd_logic;--电梯运动方向显示,超载警告信号up,down:outstd_logic);--电机控制信号和电梯运动enddianti;architecturebehavofdiantiissignald11,d22,d33,d44,d55,d66:std_logic;--电梯内人请求信号存放信号signalc_u11,c_u22,c_u33,c_u44,c_u55:std_logic;--电梯外人上升请求信号存放信号signalc_d22,c_d33,c_d44,c_d55,c_d66:std_logic;--电梯外人下降请求信号存放信号signalq:integerrange0to1;--分频信号signalq1:integerrange0to6;--关门延时计数器signalq2:integerrange0to9;--看门狗计数器signaldd,cc_u,cc_d,dd_cc:std_logic_vector(5downto0);--电梯内外请求信号存放器signalopendoor:std_logic;--开门使能信号signalupdown:std_logic;--电梯运动方向信号存放器signalen_up,en_dw:std_logic;--预备上升、预备下降预操作使能信号begincom:process(clk)beginifclk'eventandclk='1'thenifclr='1'thenq1<=0;q2<=0;wahaha<='0';--去除故障报警elsiffull='1'thenalarm<='1';q1<=0;--超载报警ifq1>=3thendoor<="10";elsedoor<="00";endif;elsifq=1thenq<=0;alarm<='0';ifq2=3thenwahaha<='1';--故障报警elseifopendoor='1'thendoor<="10";q1<=0;q2<=0;up<='0';down<='0';--开门操作elsifen_up='1'then--上升预操作ifdeng='1'thendoor<="10";q1<=0;q2<=q2+1;--关门中断elsifquick='1'thenq1<=3;--提前关门elsifq1=6thendoor<="00";updown<='1';up<='1';--关门完毕,电梯进入上升状态elsifq1>=3thendoor<="01";q1<=q1+1;--电梯进入关门状态elseq1<=q1+1;door<="00";--电梯进入等待状态endif;elsifen_dw='1'then--下降预操作ifdeng='1'thendoor<="10";q1<=0;q2<=q2+1;elsifquick='1'thenq1<=3;elsifq1=6thendoor<="00";updown<='0';down<='1';elsifq1>=3thendoor<="01";q1<=q1+1;elseq1<=q1+1;door<="00";endif;endif;ifg1='1'thenled<="1001111";--电梯到达1楼,数码管显示1ifd11='1'orc_u11='1'thend11<='0';c_u11<='0';opendoor<='1';--有当前层的请求,那么电梯进入开门状态elsifdd_cc>"000001"thenen_up<='1';opendoor<='0';--有上升请求,那么电梯进入预备上升状态elsifdd_cc="000000"thenopendoor<='0';--无请求时,电梯停在1楼待机endif;elsifg2='1'thenled<="0010010";--电梯到达2楼,数码管显示2ifupdown='1'then--电梯前一运动状态位上升ifd22='1'orc_u22='1'thend22<='0';c_u22<='0';opendoor<='1';--有当前层的请求,那么电梯进入开门状态elsifdd_cc>"000011"thenen_up<='1';opendoor<='0';--有上升请求,那么电梯进入预备上升状态elsifdd_cc<"000010"thenen_dw<='1';opendoor<='0';--有下降请求,那么电梯进入预备下降状态endif;--电梯前一运动状态为下降elsifd22='1'orc_d22='1'thend22<='0';c_d22<='0';opendoor<='1';--有当前层的请求,那么电梯进入开门状态elsifdd_cc<"000010"thenen_dw<='1';opendoor<='0';--有下降请求,那么电梯进入预备下降状态elsifdd_cc>"000011"thenen_up<='1';opendoor<='0';--有上升请求,那么电梯进入预备上升状态endif;elsifg3='1'thenled<="0000110";--电梯到达3楼,数码管显示3ifupdown='1'thenifd33='1'orc_u33='1'thend33<='0';c_u33<='0';opendoor<='1';elsifdd_cc>"000111"thenen_up<='1';opendoor<='0';elsifdd_cc<"000100"thenen_dw<='1';opendoor<='0';endif;elsifd33='1'orc_d33='1'thend33<='0';c_d33<='0';opendoor<='1';elsifdd_cc<"000100"thenen_dw<='1';opendoor<='0';elsifdd_cc>"000111"thenen_up<='1';opendoor<='0';endif;elsifg4='1'thenled<="1001100";--电梯到达4楼,数码管显示4ifupdown='1'thenifd44='1'orc_u44='1'thend44<='0';c_u44<='0';opendoor<='1';elsifdd_cc>"001111"thenen_up<='1';opendoor<='0';elsifdd_cc<"001000"thenen_dw<='1';opendoor<='0';endif;elsifd44='1'orc_d44='1'thend44<='0';c_d44<='0';opendoor<='1';elsifdd_cc<"001000"thenen_dw<='1';opendoor<='0';elsifdd_cc>"001111"thenen_up<='1';opendoor<='0';endif;elsifg5='1'thenled<="0100100";--电梯到达5楼,数码管显示5ifupdown='1'thenifd55='1'orc_u55='1'thend55<='0';c_u55<='0';opendoor<='1';elsifdd_cc>"011111"thenen_up<='1';opendoor<='0';elsifdd_cc<"010000"thenen_dw<='1';opendoor<='0';endif;elsifd55='1'orc_d55='1'thend55<='0';c_d55<='0';opendoor<='1';elsifdd_cc<"010000"thenen_dw<='1';opendoor<='0';elsifdd_cc>"011111"thenen_up<='1';opendoor<='0';endif;elsifg6='1'thenled<="0100000";--电梯到达6楼,数码管显示6ifd66='1'orc_d66='1'thend66<='0';c_d66<='0';opendoor<='1';elsifdd_cc<"100000"thenen_dw<='1';opendoor<='0';endif;elseen_up<='0';en_dw<='0';--电梯进入上升或下降状态endif;endif;elseq<=1;alarm<='0';--去除超载报警ifd1='1'ord1='0'thend11<=d1;--对电梯内人请求信号进行检测和存放elsifd2='1'ord2='0'thend22<=d2;elsifd3='1'ord3='0'thend33<=d3;elsifd4='1'ord4='0'thend44<=d4;elsifd5='1'ord5='0'thend55<=d5;elsifd6='1'ord6='0'thend66<=d6;endif;ifc_u1='1'orc_u1='0'thenc_u11<=c_u1;--对电梯外人上升请求信号进行检测和存放elsifc_u2='1'orc_u2='0'thenc_u22<=c_u2;elsifc_u3='1'orc_u3='0'thenc_u33<=c_u3;elsifc_u4='1'orc_u4='0'thenc_u44<=c_u4;elsifc_u5='1'orc_u5='0'thenc_u55<=c_u5;endif;ifc_d2='1'orc_d2='0'thenc_d22<=c_d2;--对电梯外人下降请求信号进行检测和存放elsifc_d3='1'orc_d3='0'thenc_d33<=c_d3;elsifc_d4='1'orc_d4='0'thenc_d44<=c_d4;elsifc_d5='1'orc_d5='0'thenc_d55<=c_d5;elsifc_d6='1'orc_d6='0'thenc_d66<=c_d6;endif;dd<=d66&d55&d44&d33&d22&d11;--电梯内人请求信号并置cc_u<='0'&c_u55&c_u44&c_u33&c_u22&c_u11;--电梯外人上升请求信号并置cc_d<=c_d66&c_d55&c_d44&c_d33&c_d22&'0';--电梯外人下降请求信号并置dd_cc<=ddorcc_uorcc_d;--电梯内、外人请求信号进行综合endif;ud<=updown;--电梯运动状态显示led_d<=dd;--电梯内人请求信号显示led_c_u<=cc_u;--电梯外人上升请求信号显示led_c_d<=cc_d;--电梯外人下降请求信号显示endif;endprocess;endbehav;此次电梯控制系统设计使用的是Altera公司的MAX-II,由下资源使用情况图可见这款芯片足够满足本次设计需求。四
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论