




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数字系统设计大作业题目:电梯控制器姓名:温庆学号:031241214班级:0312412指导老师:黄双林目录摘要3正文41设计目的及要求42设计原理4设计实现原理4项目分块及其实现方案6电梯控制器的流程图73设计内容8基本状态设计8模块设计10波形仿真10总结与致谢14参考文献15附录16电梯作为垂直方向的交通工具,在高层建筑和公共场所已成为不可或缺的设备。中国是全球最大的电梯市场,也具有最强的电梯生产能力,但由于缺乏自主知识产权和核心技术,自主品牌占市场的份额很少。因此要加大对电梯技术的创新和发展,提升电梯的性能,就需要引进更好的技术,电梯控制器就是很好的装置,大力开发控制器是很必要的。电梯
2、的微机化控制主要有以下几种形式:PLC控制;单片机控制;单板机控制;单微机控制;多微机控制;人工智能控制。本次课程设计采用了EDA技术进行操作EDA技术打破了软件和硬件间的壁垒,使计算机的软件技术与硬件实现、设计效率与产品性能合二为一,它代表了电子设计技术和应用技术的发展方向。本设计采用VerilogHDL语言的编程技术,源程序Altera公司的QuartusII软件仿真。关键字:EDAK术;VerilogHDL语言;QuartusII软件正文1设计目的及要求1、进一步巩固理论知识,培养所学理论知识的在实际中的应用能力;掌握EDAS计的一般方法;熟悉一种EDAa件,掌握一般EDAS统的调试方法
3、;利用EDAa件设计一个电子技术综合问题,培养VerilogHDL编程、书写技术报告的能力。为以后进行工程实际问题的研究打下设计基础。2、设计一个6层电梯控制器电路,用数码管显示电梯所在楼层号,电梯初始状态为第一楼层;每楼层电梯外都有上、下楼请求开关,电梯内设有乘客到达楼层的请求开关、电梯所处楼层、上升模式及下降模式的指示;电梯每2秒升降一层,到达有停站请求的楼层后,经4秒电梯门打开,开门指示灯亮,开门4秒后,指示灯灭,关门,关门时间3秒,电梯继续运行。可以通过快速关门和关门中断信号控制;能记忆电梯内外的请求信号,当电梯处于上升模式时,只响应比电梯所在位置高的楼请求信号,直到最后一个上楼请求执
4、行完毕,再进入下降模式。2设计原理2.1设计实现原理根据系统设计要求,并考虑到系统的可检验性,整个系统的输入输出接口设计如图1所示:系统工作用2Hz基准时钟信号CLKIN,楼层上升请求键UPIN,楼层下降请求键DOWNING层选择键入键ST_CH提前关门输入键CLOS郎迟关门输入键DELAY电梯运行的开关键RUN_STQP电梯运行或停止指示键LAMP,电梯运行或等待时间指示键RUN_WAIT1梯所在楼层指示数码管ST_OUTt层选择指示数码管DIRECTDTKZQCLKINLAMPUPINDOWNINST_CH1RU_WAITCLOSEST_OUTDELAYDIRECTRUN_STOP图1.电
5、梯控制器DTKZQ勺输入输出接口图各输入端口的功能如下:CLKIN:基准时钟信号,为系统提供2Hz的时钟脉冲,上升沿有效;UPIN:电梯上升请求键。由用户向电梯控制器发出上升请求。高电平有效;DOWNIN:电梯下降请求键,由用户向电梯控制器发出下降请求。高电平有效;ST_CH2.0:楼层选择键入键,结合DIRECT完成楼层选择的键入,高电平有效;CLOSE:提前关门输入键。可实现无等待时间的提前关门操作,高电平有效;DELAY:延迟关门输入键。可实现有等待时间的延迟关门操作,高电平有效;RUN_STOP:电梯运行或停止开关键。可实现由管理员控制电梯的运行或停止,高电平有效。一下为输出端口:LA
6、MP:电梯运行或等待指示键,指示电梯的运行或等待状况。高电平有效;RUN_WAIT:电梯运行或等待时间指示键,指示电梯运行状况或等待时间的长短,高电平有效;ST_OUT:电梯所在楼层指示数码管,只是电梯当前所在的楼层数。即16层,高电平有效;DIRECT:楼层选择指示数码管,指示用户所要选择的楼层数,高电平有效。2.2项目分块及其实现方案电梯的控制状态包括运行状态、停止状态及等待状态,其中运行状态又包含向上状态和向下状态。主要动作有开、关门,乘客可通过键入开、关门按键,呼唤按键,指定楼层按钮等来控制电梯的行与停。据此,整个电梯控制器DTLZQ应包括如下几个组成部分:时序输出及楼选计数器;电梯服
7、务请求处理器;电梯升降控制器;上升及下降寄存器;电梯次态生成器。该电梯控制器设计的关键是确定上升及下降寄存器的置位与复位。整个系统的内部组成结构图2所示。DRECT时序输出及楼选计数器(DIR)UOIN“电梯服DOWNING攵主十*务请求STCH:处理器DELAYRUNSTOCLOSE电梯升降控制器(LIFTOR电梯次态生成器(LADD)上升请求寄存器(UR)7下降请求寄存器(DR)LAMPRUNWAITSTOU图2.电梯控制器的内部组成结构图时钟CLK图3.电梯控制器系统框图2.3电梯控制器的流程图图4总流程图是否目标层?图5电梯控制主流程图3设计内容3.1基本状态设计1、采用信号并置处理很
8、多输入信号的方式:always(call_up_1orcall_up_2orcall_up_3orcall_up_4orcall_up_5)up_all=1b0,call_up_5,call_up_4,call_up_3,call_up_2,call_up_1;7/M各下降请求信号实时地合并(1楼为底层,无下降请求,考虑到通用性,将第1位填零)always(calldown2orcalldown3orcalldown4orcalldown5orcall_down_6)downall=calldown6,calldown5,calldown4,calldown3,call_down_2,1b0;
9、将A停靠请求信号实时地合并always(request_1orrequest_2orrequest_3orrequest_4orrequest_5orrequest_6)request_all=request_6,request_5,request_4,request_3,request_2,request;2、通过参数定义把信号并置的方法和有限状态机联系起来parameterWAIT=7b0000001,UP=7b0000010,DOWN=7b0000100,UPSTOP=7b0001000,DOWNSTOP=7b0010000,OPENDOOR=7b0100000,CLOSEDOOR=7b
10、1000000;/定义楼层的符号常量parameterFLOOR1=6b000001,FLOOR2=6b000010,FLOOR3=6b000100,FLOOR4=6b001000,FLOOR5=6b010000,FLOOR6=6b100000;parameterTRUE=1b1,FALSE=1b0;/定义门打开和门关闭的符号常量parameterOPEN=1b1,CLOSED=1b0;/定义电梯上升,下降和静止的符号常量parameterUPFLAG=2b01,DNFLAG=2b10,STATIC=2b00;3、采用了七个状态实现了有限状态机图6.状态转换图黑线:WAITTOUPTOUPST
11、OPTOOPENDOORTOCLOSEDOORTOWAIT粉红线:WAITTODOWNTODOWNSTOPTOOPENDOORTOCLOSEDOORTOWAIT3.2模块设计1、电梯主控制器模块elevator_controller:此段智能电梯控制器由三个重四部分组成的。(a)信号并置部分,完成对5路向上请求、5路向下请求、6路内部请求的信号并置,化繁为简。(b)三段式有限状态机部分。在有请求的情况下,电梯控制器还要根据电梯的当前状态和当前的楼层去判断电梯的下一步该如何运作。(c)计数器部分。完成电梯的开门、关门的时间管理。elevaioi_connolleiralueecp_50Mout6
12、.0clkLiftState6.0resetover_alarmforbidcount_out6.0call_up_1count2.0call_up_2call_up_3call_up_4call_up_5call_down_2call_down_3call_down_4call_down_5call_down_6request_1request_2request_3request_4request_5request_6inst3图7.电梯主控模块2、分频模块frequence_div:这段分频器完成对50Mhz的1分频操作。技巧。采用传统的“一半就翻转”的计数frequence_divcp_
13、50Mcp_1inst2图8.分频模块3、数码管译码模块3.3波形仿真1、当电梯处于初始状态时,电梯在高层有向下的请求时:u-oL1213由必*1113lM115I16117l馋i193940rp_50WelkfartidkeyjEili_dom_2call_do_3gallL_domi_4eall_d&wn_5call_dom_&ealljapcXl_qp_2e411_upjtall_yp_广O1,4,IS116IT一加3巴3838L39240cp_5MHelkfwbidktyciU_dfl!wn_2call_d.own_3eall_dowii_4cftll_down_5eall_down_
14、&callMup_lcall.W春ccalljap_4lcJirqu3t_lrequest/rtutstJ5request_4lrequestJ5resuest_6resetLJfloQjdiwitT国LJ_DiLTA.ITD_ElffITD_0NLCD_BSLDD_RWOer_41armTLrLrtnjwwwwiirwurvirLrLrLrLruuuLnAruijnJUinTLnLnLnLrLnnj泣re耨泡正冶,一f一至lio!IheriIIiiiII|iiiIIIhtidIIIhiIIiihnjuuuuiwuuuuuuuuuuuuuuuuuuuuuuuiwmjuuuuuuuuuuuuum
15、njuuuuuuuuuuuumj3、当电梯停在1楼处于等待状态时,在6楼和5楼同时有向下的请求时:口-I333中5J三:一=KLD“1713WW1=36=37-ET38-ET395_5口朋elkforbidlt4yc-all_d.0Mm_2cill_do!rn_3c411_口口!ra_4c*ll_d.OBrn_5c&ll_up_5request_lrequesrequest=3request=requestSrequest_GresitfiloorditLCD_BDJMLCDJ3ATADCD.EHDCDJ3HLCD_RSLCDJIWover_alvm图114、当电梯停在6楼时,有在5楼的向下的
16、请求时,电梯应该先到五楼,电梯内部请求到1楼,如果电梯在下降的过程中,有在2楼的向上的请求时,电梯应该先相应内部请求,然后相应外部请求:0mSOB31alkforbidkay45call_dlown_3ECOill_dloWIL_RS3用LCD_BI40ovsr_alijrm-1012W1314F016LITLZ185、电梯的强制运行按钮forbid*0jT3n56叵09图13总结与致谢通过本次课程设计进一步熟悉QuartusII软件的使用和操作方法,以及硬件实现时的下载方法与运行方法;对VerilogHDL语言的自顶向下设计方法有了进一步的认识,对其中的许多语句也有了新了解,掌握;对自己独立
17、思考和解决问题的能力也有了很大的锻炼。短暂的课程设计就要结束了,在此,感谢所有在学习和生活中给予我关心和帮助的人们。首先我要感谢杨红娟、王涛两位位老师,本次课程设计设计的选题、课题调研与撰写工作实在和老师的指导下完成的。和老师渊博的知识、严谨的治学态度、一丝不苟的工作作风、和不厌其烦的精神对我影响至深,使我受益终生,在此我向和老师表示崇高的敬意和衷心的感谢。其次,在我的课程设计期间,同课题的同学都给予了我热情的帮助和无私的指导,在此向这些同学们表示衷心的感谢。最后,向所有曾给予我关心和帮助的老师和同学们再次致以最衷心的感谢,向参加报告评审、答辩的老师表示衷心的感谢和崇高的敬意。参考文献1黄仁欣
18、.ED徽术实用教程.北京:清华大学出版社,20062潘松,黄继业.ED徽术与VHDL北京:清华大学出版社,20093江国强编著.EDAK术与应用(第三版).北京:电子工业出版社,20104夏宇闻编著.VerilogHDL数字系统设计教程.北京:北京航空航天大学出版社,20085周祖成,程晓军,马卓钊编著.数字电路与系统教学实验教程.北京:科学出版社,20106周润景,苏良碧.基于QuartusII的数字系统VerilogHDL设计实例详解.北京:电子工业出版社,20107(美国)SanirPalnitkar译者:夏宇闻胡燕祥刁岚松.VerilogHDL数字设计与综合(第2版).北京:电子工业出
19、版社,20098云创工作室.VerilogHDL程序设计与实践.北京:人民邮电出版社,20099刘福奇,刘波.VerilogHDLfi用程序设计实例精讲.北京:电子工业出版社,200910张延伟,杨金岩,葛爱学.veriloghdl程序设计实例详解.北京:人民邮电出版社,2008附录1、分频模块modulefrequence_div(cp_50M,cp_1);inputcp_50M;板子提供的最高时钟outputcp_1;/要求得到的秒脉冲reg27:0counter_1;计数器regcp_1;类型声明always(posedgecp_50M)beginif(counter_1=28h17D7
20、840)/50M的一半到了,秒脉冲翻转begincp_1=cp_1;翻转counter_1=28h0000000;endelsecounter_1=counter_1+1b1;/否贝U力口1endendmodule2、智能电梯主控制模块moduleelevator_controller(/inputports:cp_50M,clk,reset,forbid,call_up_1,call_up_2,call_up_3,call_up_4,call_up_5,call_down_2,call_down_3,call_down_4,call_down_5,call_down_6,request_1,
21、request_2,request_3,request_4,request_5,request_6,/outputports:out,LiftState,over_alarm,count_out,count);/outputports:output6:0out;输出楼层output6:0LiftState;输出电梯状态outputover_alarm;出错output6:0count_out;计数器输出,便于我控制开关门的状态显示output2:0count;计数器/inputports:inputcp_50M;inputclk,reset,call_up_1,call_up_2,call_u
22、p_3,call_up_4,call_up_5,call_down_2,call_down_3,call_down_4,call_down_5,call_down_6,request_1,request_2,request_3,request_4,request_5,request_6;inputforbid;/pos与Posout的关系:当前状态一改变,pos立即作相应改变,而PosOut则是当前状态在要变到下一状态的瞬间,将PosOut作相应改变。如从WAIT切换到第一个UP时,pos立即加一,而PosOut则要等到第一个UP即将切换到第二个UP时,才加一。这个说的简单一点,就是移位寄存器
23、,便于对电梯状态的实时的控制wireover_alarm;wire6:0out;wire6:0count_out;reg5:0pos,PosOut;reg2:0count;/门开后要持续5个时钟周期,用count来计数regDoorFlag;reg1:0UpDnFlag;reg6:0LiftState,NextState;分别表示电梯的当前状态和下一状态wirereal_clk;/up_all,down_all,request_all分别用来合并向上请求的各信号,向下请求的各信号和停靠请求的各信号以便判断电梯在状态间如何转移时更简洁reg5:0up_all,down_all,request_a
24、ll;定义电梯7种状态的符号常量parameterWAIT=7b0000001,UP=7b0000010,DOWN=7b0000100,UPSTOP=7b0001000,DOWNSTOP=7b0010000,OPENDOOR=7b0100000,CLOSEDOOR=7b1000000;定义楼层的符号常量parameterFLOOR1=6b000001,FLOOR2=6b000010,FLOOR3=6b000100,FLOOR4=6b001000,FLOOR5=6b010000,FLOOR6=6b100000;parameterTRUE=1b1,FALSE=1b0;/定义门打开和门关闭的符号常量
25、parameterOPEN=1b1,CLOSED=1b0;定义电梯上升,下降和静止的符号常量parameterUPFLAG=2b01,DNFLAG=2b10,STATIC=2b00;assignreal_clk=(clk&(forbid);采用屏蔽时钟的方法来实现“电梯强制禁止运行”。方法虽然违反了“同步电路最好没有时钟门控”的要求,但是在此只要“负面影响”不是很大还是可以接受的。将各上升请求信号实时地合并(6楼为顶层,无上升请求,考虑到通用性,将第4位填零)always(call_up_1orcall_up_2orcall_up_3orcall_up_4orcall_up_5)upall=1
26、b0,callup_5,call_up_4,callup3,call_up_2,callup1;将各下降请求信号实时地合并(1楼为底层,无下降请求,考虑到通用性,将第1位填零)always(call_down_2orcall_down_3orcall_down_4orcall_down_5orcall_down_6)down_all=call_down_6,call_down_5,call_down_4,call_down_3,call_down_2,1b0;将各停靠请求信号实时地合并always(request_1orrequest_2orrequest_3orrequest_4orrequ
27、est_5orrequest_6)request_all=request_6,request_5,request_4,request_3,request_2,request;always(posedgereal_clkorposedgereset)if(reset)count=0;elseif(NextState=OPENDOOR)&(count5)/orelseif(NextState=OPENDOOR)count=count+1;/如果计数不到5且下一状态为OPENDOOR的话,继续计数elsecount=0;/清零,以备下次计数/displaywhichfloortheelevatori
28、sdisplay_decodeh1(cp_50M,PosOut,out,over_alarm);display_decode_counth2(cp_50M,count,count_out);/finitestatemachineinthestyleofthreesegments,三段式/1stStateShiftalwaysblock,sequentialstatetransition,有限状态机第一段always(posedgereal_clkorposedgereset)if(reset)beginLiftState=WAIT;endelseLiftState0)有停靠请求否beginif
29、(request_all&pos)0)停靠请求中有当前楼层停靠请求否NextState=OPENDOOR,有当前楼层请求,则下一状态转开门elseif(request_allpos)/有当前楼层之上的停靠请求否(优先向上的请求)NextState=UP;有则,下一状态转上升elseNextState=DOWN;只有当前楼层之下的停靠请求,下一状态转下降endelseif(up_all&pos)|(down_all&pos)上下请求中有当前楼层请求否beginNextState=OPENDOOR;endelseif(up_allpos)|(down_allpos)/上下请求中有当前楼层之上的请求
30、否NextState=UP;elseif(up_all|down_all)上下请求中有当前楼层之下的请求否NextState=DOWN;elseNextState=WAIT;/无任何请求,继续处于WAIT模式endUP:beginif(request_all&pos)|(up_all&pos)/停靠或上升请求中有当前楼层的请求否NextState=UPSTOP;/有,下一状态转为UPSTOP(停靠后要1s才开门,UPSTOP即为这1s的过渡期)elseif(request_allpos)|(up_allpos)/停靠或上升请求中有当前楼层之上的请求否NextState=UP;elseif(do
31、wn_all0)/有下降请求否beginif(down_allpos)&(down_allApos)pos)下降请求中有当前楼层的请求否NextState=UP;elseif(down_all&pos)|(posFLOOR6)其实这样做意义不大,只是使上下标志提前变化NextState=UPSTOP;elseif(down_all&pos)&(pos=FLOOR6)事实上不满足第一条件的话,电梯根本不会到达第四层NextState=DOWNSTOP;else/下降请求中只有当前楼层之下的请求NextState=DOWN;endelseif(request_all|up_all)/只有当前楼层之
32、上的停靠或上升请求否NextState=DOWN;elseNextState=WAIT;/无任何请求,转为WAIT模式end/DOWN的状态转移请参见UP的状态转移DOWN:beginif(request_all&pos)|(down_all&pos)NextState=DOWNSTOP;elseif(request_all&FLOOR1)pos&(request_all&FLOOR1)|(request_all&FLOOR2)pos&(request_all&FLOOR2)|(request_all&FLOOR3)pos&(request_all&FLOOR3)|(request_all&F
33、LOOR4)pos&(request_all&FLOOR4)|(request_all&FLOOR5)pos&(request_all&FLOOR5)|(request_all&FLOOR6)pos&(request_all&FLOOR6)NextState=DOWN;elseif(down_all&FLOOR1)pos&(down_all&FLOOR1)|(down_all&FLOOR2)pos&(down_all&FLOOR2)|(down_all&FLOOR3)pos&(down_all&FLOOR3)|(down_all&FLOOR4)pos&(down_all&FLOOR4)|(do
34、wn_all&FLOOR5)pos&(down_all&FLOOR5)|(down_all&FLOOR6)0)beginif(up_all&FLOOR1)pos&(up_all&FLOOR1)|(up_all&FLOOR2)pos&(up_all&FLOOR2)|(up_all&FLOOR3)pos&(up_all&FLOOR3)|(up_all&FLOOR4)pos&(up_all&FLOOR4)|(up_all&FLOOR5)pos&(up_all&FLOOR5)|(up_all&FLOOR6)FLOOR1)NextState=DOWNSTOP;elseif(up_all&pos)&(po
35、s=FLOOR1)NextState=UPSTOP;elseNextState=UP;endelseif(request_all|down_all)NextState=UP;elseNextState=WAIT;endUPSTOP:beginNextState=OPENDOOR;/停靠1时钟周期后开门endDOWNSTOP:beginNextState=OPENDOOR;/停靠1时钟周期后开门endOPENDOOR:beginif(countpos)|(up_allpos)上升或停靠请求中有当前楼层之上的请求否NextState=UP;elseif(down_all0)/有下降请求否begin
36、if(down_allpos)&(down_akpos)pos)NextState=UP;/有当前楼层之上的下降请求,则下一状态转移上升elseif(down_all&pos)0)有当前楼层的下降请求信号,且更上层无下降请求NextState=OPENDOOR;else/只有低于当前层的下降请求NextState=DOWN;endelseif(request_all|up_all)上升和停靠请求中有当前层的请求且只有当前层下的请求NextState=DOWN;elseNextState=WAIT;/无任何请求,转为WAIT模式end请参考UpDnFlag=UPFLAG的注释elseif(UpD
37、nFlag=DNFLAG)beginif(request_all&pos)|(down_all&pos)NextState=OPENDOOR;elseif(request_all&FLOOR1)pos&(request_all&FLOOR1)|(request_all&FLOOR2)pos&(request_all&FLOOR2)|(request_all&FLOOR3)pos&(request_all&FLOOR3)|(request_all&FLOOR4)pos&(request_all&FLOOR4)|(request_all&FLOOR5)pos&(request_all&FLOOR5
38、)|(request_all&FLOOR6)pos&(request_all&FLOOR6)NextState=DOWN;elseif(down_all&FLOOR1)pos&(down_all&FLOOR1)|(down_all&FLOOR2)pos&(down_all&FLOOR2)|(down_all&FLOOR3)pos&(down_all&FLOOR3)|(down_all&FLOOR4)pos&(down_all&FLOOR4)|(down_all&FLOOR5)pos&(down_all&FLOOR5)|(down_all&FLOOR6)0)beginif(up_all&FLOO
39、R1)pos&(up_all&FLOOR1)|(up_all&FLOOR2)pos&(up_all&FLOOR2)|(up_all&FLOOR3)pos&(up_all&FLOOR3)|(up_all&FLOOR4)pos&(up_all&FLOOR4)|(up_all&FLOOR5)pos&(up_all&FLOOR5)|(up_all&FLOOR6)0)NextState=OPENDOOR;elseNextState=UP;/endelseif(request_all|down_all)NextState=UP;elseNextState=WAIT;/end请参考WAIT模式的注释elsebeginif(request_all0)beginif(request_all&pos)0)NextState=OPENDOOR;elseif(request_allpos)NextState=UP;elseNextState=DOWN;endelseif(up_all&pos)|(down_all
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论