endEDA四层电梯控制器_第1页
endEDA四层电梯控制器_第2页
endEDA四层电梯控制器_第3页
endEDA四层电梯控制器_第4页
endEDA四层电梯控制器_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 电梯控制器目录 1绪论.11.1中国电梯的现状及发展趋势.11.2 EDA技术简介.31.3 硬件描述语言(VHDL).42设计电梯控制器的目的与要求.52.1 设计目的.5 2.2 设计要求.53电梯控制器的综合设计.5 3.1 电梯控制器功能要求.5 3.2 电梯控制器设计方案.6 3.3 电梯控制器实体设计.8 3.4 电梯控制器结构体设计.9 3.5 电梯控制器程序设计说明.10 4. 总结.17 5. 参考文献.19附录.201 绪论 随着EDA技术发展和应用领域的扩大与深入,EDA技术在电子信息、通讯、自动控制及计算机应用等领域的重要性突出。随着技术市场与人才市场对EDA的需求不

2、断提高,产品的市场需求和技术市场的要求也必然会反映到教学领域和科研领域中来。因此学好EDA技术对我们有很大的益处。  EDA功能强大,一台计算机、一套EDA软件和一片或几片大规模可编程芯(CPLD/FPGA或ispPAC),就能完成电子系统的设计。EDA技术涉及面广,内容丰富,但在教学和技术推广层面上,应用较为广泛的是基于可编程器件的EDA技术,它主要包括如下四大要素:1大规模可编程器件,它是利用EDA技术进行电子系统设计的载体; 2硬件描述语言,它是利用EDA技术进行电子系统设计的主要手段;3软件开发工具,它是利用EDA技术进行电子系统的智能化的自动化设计工具;4实验开发系统,它是

3、利用EDA技术进行电子系统设计的下载工具及硬件验证工具。  电梯行业也随着科技的发展,不断地出现在人们生活的各个场所,因此,对电梯控制器的设计是一个很实用的例子,对我们掌握EDA技术的应用也有很大的帮助。  1.1中国电梯的现状及发展趋势    1.1.1中国电梯市场的现状  近年来,随着中国房地产业的快速发展,与之配套的电梯生产制造业也经历了迅猛发展的阶段,电梯产量保持了每年20以上的增长速度。我国电梯的出口年均增长率将保持在35%以上,电梯行业逐步成为国内比较重要的行业。       随着我

4、国经济持续增长、城镇化建设的加速和房地产行业的进一步发展,对电梯的需求越来越大。估计未来50年中国新增住房面积将达到200亿平方米。国家规定20米以上高楼就应安装电梯,因此未来电梯最大的市场就是住宅市场。此外,机场、商场、地铁等大型公共设施建设对自动扶梯、观光电梯等电梯的需求量也十分可观。中国不但是全球最大的电梯市场,而且形成了全球最强的电梯生产能力,但由于缺乏自主的知识产权和核心技术,产品的附加价值不高,利润非常低。目前,全国注册电梯企业约400家,但美国奥的斯、瑞士迅达、芬兰通力、德国蒂森、日本三菱、日立、富士达、东芝等13家大型外企占据中国电梯市场75%左右的份额,而自主品牌只占25%左

5、右的市场份额。  电梯作为终端消费品,品牌在市场竞争中的作用非常明显。品牌往往成为人们在选择电梯产品时的重要考虑因素,电梯生产要想建立良好的品牌并获得市场的认可,也必须经过市场一定时间的不断考验。面对外资巨头的贴身进逼,我国电梯品牌在服务和营销上难以匹敌,其生存状况不容乐观。    1.1.2电梯的发展方向  电梯作为垂直方向的交通工具,在高层建筑和公共场所已经成为重要的建筑设备而不可或缺。电梯产业的前景和走势随着社会的需求而悄然发生着改变,除了考虑安全、舒适、豪华装修等要求外,市场对新一代的绿色电梯、节能电梯和智能电梯的需求越来越旺盛。国内外电梯企业顺

6、应市场需要,加大研发投入,都准备在未来新概念电梯产业发展中占得先机。 1电梯的节能和环保  “绿色”已成为21世纪的主流色调,一个全球性的绿色市场为企业的发展提供了广阔的空间,当今社会谁先推出绿色产品,抢占绿色营销市场,谁就能掌握竞争的主动权。有关人士预言,绿色环保电梯将成为今后电梯市场的主导性产品,谁拥有了它的核心技术,谁就在竞争中获得了优势。老式电梯噪音、占用空间、耗能等形成的危害积累起来是相当大的,因此,在城市环保社区建设中,如何尽量减少电梯对环境的危害是相当重要的课题之一。目前,我国市场每年销售各种类型的电梯达4.5万部,如果这些电梯全部实现环保化,其环境效益是难以

7、估量的。  电梯现在越来越多,在对宾馆、写字楼等的用电情况调查统计中,电梯用电量占总用电量的17%-25%以上,仅次于空调用电量,高于照明、供水等的用电量。负责任的开发商,都会为业主的长远利益着想,购买节能型的电梯。近年来,节能型电梯的市场越来越好,电梯制造商也越来越注重电梯的“节能”性能。在上世纪90年代,在电梯驱动上开始应用变频调压调速系统,能耗大幅度地降低。近几年,又出现了永磁同步电机驱动的电梯,能耗又有大幅度的下降,有的电梯还能利用太阳能对机房的电能进行补充。 2电梯的智能化 随着城市化的高速发展,越来越多的摩天大楼拔地而起。就摩天大楼的高度而言,不仅受建

8、筑技术上的制约,而且还有电梯升高方面的困惑,因而,在摩天大楼日益完备智能化的趋势中,电梯的智能化也不容忽视。它不仅是人们上上下下的代步工具,同时,也是摩天大楼智能化的一个重要标志。尽管电梯在摩天大楼中只是个细节,但电梯智能化程度的高低却决定着它服务质量的优劣。因而,电梯的智能化在一定程度上反映出智能大厦的智能程度。计算机技术,通讯技术与控制技术的发展使大厦的智能化成为现实,而电梯是智能建筑中的重要交通工具,其技术发展及智能化程度也倍受世人关注。智能化的电梯要与智能大厦中所有自动化系统联网,如与楼宇控制系统、消防系统、保安监控系统等交互联系,使电梯成为高效优质、安全舒适的服务工具。1.2 EDA

9、技术简介 EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。1.2 .1EDA技术的特点利用EDA技术进行电子系统的设计,具有以下几个特点: 用软件的方式设计硬件; 用软件方式设计的系统到硬件系统

10、的转换是由有关的开发软件自动完成的; 设计过程中可用有关软件进行各种仿真; 系统可现场编程,在线升级; 整个系统可集成在一个芯片上,体积小、功耗低、可靠性高。因此,EDA技术是现代电子设计的发展趋势。1.2.2 EDA设计流程典型的EDA设计流程如下:1)文本/原理图编辑与修改。首先利用EDA工具的文本或图形编辑器将设计者的设计意图用文本或图形方式表达出来。 2)编译。完成设计描述后即可通过编译器进行排错编译,变成特定的文本格式,为下一步的综合做准备。 3)综合。将软件设计与硬件的可实现性挂钩,是将软件转化为硬件电路的关键步骤。4)行为仿真和功能仿真。利用产生的网表文件进行功能仿真,以便了解设

11、计描述与设计意图的一致性。5)适配。利用FPGA/CPLD布局布线适配器将综合后的网表文件针对某一具体的目标器件进行逻辑映射操作,其中包括底层器件配置、逻辑分割、逻辑优化、布局布线。适配报告指明了芯片内资源的分配与利用、引脚锁定、设计的布尔方程描述情况。 6) 功能仿真和时序仿真。7)下载。如果以上的所有过程都没有发现问题,就可以将适配器产生的下载文件通过FPGA/CPLD下载电缆载入目标芯片中。8)硬件仿真与测试。1.3硬件描述语言(VHDL)VHDL(Very-High-Speed Integrated Circuit Hardware Description Language)主要用于描

12、述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本。1)用VHDL代码而不是用原理图进行设计,意味着整个电路板的模型及性能可用计算机模拟进行验证。2)VHDL元件的设计与工艺无关

13、,与工艺独立,方便工艺转换。3)VHDL支持各种设计方法,自顶向下、自底向上或者混合的都可以。4)可以进行从系统级到逻辑级的描述,即混合描述。5)VHDL区别于其他的HDL,其代码在不同的系统中可交换建模。2设计电梯控制器的目的与要求2.1 设计目的 1) 在设计中理解EDA技术并掌握VHDL硬件描述语言的设计方法和思想。2) 通过学习的VHDL语言结合电子电路的设计知识理论联系实际,掌握所学的课程知识和基本单元电路的综合设计应用。3) 通过对实用电梯控制系统的设计,巩固和综合所学知识,提高设计能力,提高分析、解决计算机技术实际问题的独立工作能力,并在设计中体会硬件编程的流程和思路,为以后工作

14、和发挥技术打下基础。2.2设计要求电梯控制器是控制电梯按顾客要求自动上下的装置。本文采用VHDL语言来设计实用四层电梯控制器,其代码具有良好的可读性和易理解性,源程序经A1tera公司的quartus II软件仿真。通过对四层电梯控制器的设计,可以发现本设计有一定的扩展性,而且可以作为更多层电梯控制器实现的基础。3电梯控制器的综合设计   3.1 电梯控制器功能要求在本课程设计中使用Altera公司的EP2C35系列的FPGA芯片,利用SOPC-NIOSII-EP2C35开发板的资源,实现全自动的电梯控制器:1)每层楼有上、下请求按钮,电梯内部有到达层数请求按钮,有指示电梯

15、到达层数指示。2) 能记忆电梯内外所有请求,并能依一定规则响应,响应后自动消除请求电梯运行规则:当电梯上行时,只响应比电梯高的层的请求,从下至上依次响应,如更高层有下行请求,则上升直最高层,电梯下行则反之。没有请求则电梯自动停在第1层。3.2 电梯控制器设计方案 控制器的功能模块如图1所示,包括主控制器、分控制器、楼层选择器、状态显示器、译码器和楼层显示器。乘客在电梯中选择所要到达的楼层,通过主控制器的处理,电梯开始运行,状态显示器显示电梯的运行状态,电梯所在楼层数通过译码器译码从而在楼层显示器中显示。分控制器把有效的请求传给主控制器进行处理,同时显示电梯的运行状态和电梯所在楼层数。由于分控制

16、器相对简单很多,所以主控制器是核心部分。图1 电梯控制器原理图电梯控制器采用状态机来实现,思路比较清晰。可以将电梯等待的每秒钟以及开门、关门都看成一个独立的状态。由于电梯又是每秒上升或下降一层,所以就可以通过一个统一的1秒为周期的时钟来触发状态机。根据电梯的实际工作情况,可以把状态机设置10个状态,分别是“电梯停留在第1层”、“开门”、“关门”、“开门等待第1秒”、“开门等待第2秒”、“开门等待第3秒”、“开门等待第4秒”、“上升”、“下降”和“停止状态”。各个状态之间的转换条件可由上面的设计要求所决定。外部按键请求信号寄存器状态寄存器内部软件执行机构外部硬件执行机构图2总流程图总流程图初始化

17、判定电梯运行方向是否有请求?等待电梯运行楼层检测否电梯停止目标层与本层是否同层?是是否目标层?开门延时关门是否停止运行?是否是否是否停止图3 电梯控制主流程图3.3电梯控制器实体设计首先考虑输入端口,一个异步复位端口reset,用于在系统不正常时回到初始状态;在电梯外部,必须有升降请求端口,一层最低,不需要下降请求,四层是最高层。不需要有上升请求,二层与三层则上升,下降请求端口都有;在电梯内部,应该设有各层停留的请求端口;一个电梯时钟输入端口,该输入时钟以1秒为周期,用于驱动电梯的升降及开门关门等动作;另有一个是按键时钟输入端口,时钟频率比电梯时钟高。 其次是输出端口,有升降请求信号,就得有一

18、个输出端口来指示请求是否被响应,有请求信号以后,该输出端口输出逻辑1,被响应以后则恢复逻辑0;同样,在电梯内部也应该有这样的输出端口来显示各层停留是否被响应;在电梯外部,需要一个端口来指示电梯现在所处的位置;电梯开门关门的状态也能用一个输出端口来指示;为了观察电梯的运行是否正确,可以设置一个输出端口来指示电梯的升降状态。 时钟clk请求信号显示 控 制 模 块楼层请求输出显示模块请求信号输入模式运行状态显示提前关门所在楼层显示关门中断门控制信号清除报警图4 电梯控制系统图在端口的定义中定义position时选用的是整型数据类型(INTEGRER),主要是为了在电梯运行是便于观察。整型直接可以看

19、出电梯运行是楼层的变化,在第一层就显示1,第二层就显示2,很直观。当然,position的定义也可以用标准逻辑矢量(STD_LOGIC_VECTOR)来定义,但是如果选用标准逻辑矢量,在电梯运行时就不是那么好观察。这里是四层的电梯控制器,那么只需定义一个两位的就足够显示了。”00”的时候对应电梯的第一层,”11”的时候就对应第四层。但是”11”的十进制值为3,没有和层次显示的第四层想对应起,所以就放弃选用标准逻辑矢量来定义position,而选用的整型。 3.4电梯控制器结构体设计 首先说明一下状态。状态机设置了10个状态,分别是电梯停留在1层(stopon1)、开门(dooropen)、关门

20、(doorclose)、开门等待第1秒(doorwait1)、开门等待第2秒(doorwait2)、开门等待第3秒(doorwait3)、开门等待第4秒(doorwait4)、上升(up)、下降(down)和停止(stop)。在实体说明中定义完端口之后,在结构体个之间需要有如下的定义语句,来定义状态机。TYPE lift_state IS (stopon1,dooropen,doorclose,doorwait1,doorwait2,doorwait3, doorwait4,up,down,stop) -电梯的10个状态 SIGNAL mylift:lift_state; -定义为lift类型

21、的信号mylift 在结构体中,设计了两个进程互相配合,一个状态机进程作为主要进程,另外一个是信号灯控制进程作为辅助进程。状态机进程中的很多判断条件是以信号灯进程产生的信号灯信号为依据的,而信号灯进程中信号灯的熄灭又是有状态机进程中传出clearup和cleardn信号来控制。 在状态机进程中,在电梯上升状态中,通过对信号灯的判断,决定下一个状态是继续上升还是停止;在电梯下降状态中,也是通过对信号灯的判断,决定下一个状态是继续下降还是是停止;在电梯停止状态中,判断是最复杂的,通过对信号的判断,决定电梯是上升、下降还是停止。 在信号灯控制进程中,由于使用了专门的频率较高的按键时钟,所以使得按键的

22、灵敏度增大,但是时钟频率不能过高,否则容易使按键过于灵敏。按键后产生的点亮的信号灯(逻辑值为1)用于作为状态机进程中的判断条件,而clearup和cleardn信号为逻辑1使得相应的信号灯熄灭。表1 控制信号灯的译码电路说明Buttonclk按键时钟Liftclk电梯时钟Reset异步复位信号f1upbutton第一层上升请求f2upbutton第二层上升请求f3upbutton第三层上升请求f2dnbutton第二层下降请求f3dnbutton第三层下降请求f4dnbutton第四层下降请求Fuplight上升指示灯(1 到4)Fdnlight下降指示灯(1 到4)sto

23、p1button第一层到站请求stop2button第二层到站请求stop3button第三层到站请求stop4button第四层到站请求Stoplight停止指示灯(1 到4)Position电梯位置(1 到4)Doorlight门灯3.5电梯控制器程序设计说明3.5.1端口、寄存器设计说明(1)由功能要求得到本程序设计的端口必须包括:输入端口:时钟(clk,频率为2Hz)超载(full)关门中断(deng)提前关门(quick)清除报警(clr)电梯外的上升请求信号(c_u1,c_u2,c_u3)电梯外的下降请求信号(c_d2,c_d3,c_d4)电梯内的请求信号(d1

24、,d2,d3,d4)到达楼层信号(g1,g2,g3,g4)。  输出端口:电梯门控制信号(door)电梯所在楼层显示(led)电梯外上升请求信号显示(led_c_u)电梯外下降请求信号显示(led_c_d)电梯内请求信号显示(led_d)看门狗报警信号(wahaha)电梯运动方向显示(ud)超载警告信号(alarm)电机控制信号(up,down)图5 电梯控制器端口分布图(2)程序要求的寄存器(中间信号)包括:  电梯内请求信号寄存信号(d11,d22,d33,d44)电梯外上升请求信号寄存信号(c_u11,c_u22,c_u33)电梯外下降请求信号寄存信号(c_d22,c

25、_d33,c_d44)分频信号(q)关门延时计数器(q1)看门狗计数器(q2)电梯内外请求信号寄存器(dd,cc_u,cc_d,dd_cc)开门使能信号(opendoor)电梯运动方向信号寄存器(updown)预备上升、预备下降预操作使能信号(en_up,en_dw)3.5.2模块设计说明  本程序由三个基本模块组成,包括调用VHDL库模块、实体设计模块和结构体设计模块。而在结构体模块中又内嵌有进程执行单元。 (1) 调用VHDL库 使用library语句,本程序应用了VHDL库中的“通用ieee库”和“标准std库” 。library iee

26、e;  use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; use ieee.std_logic_arith.all; (2) entity实体设计模块 Entity zx is port ( clk : in std_logic;-时钟信号(频率为2Hz)         full,deng,q

27、uick,clr : in std_logic;  -超载、关门中断、提前关门、清除报警信号c_u1,c_u2,c_u3: in std_logic; -电梯外的上升请求信号c_d2,c_d3,c_d4: in std_logic; -电梯外的下降请求信号d1,d2,d3,d4, : in std_logic;-电梯内的请求信号g1,g2,g3,g4: in std_logic;-到达楼层信号 door : 

28、;out std_logic_vector(1 downto 0);-电梯门控制信号  led : out std_logic_vector(4 downto 0);-电梯所在楼层显示(数码管显示)led_c_u:out std_logic_vector(3 downto 0);-电梯外上升请求信号显示 led_c_d:out std_logic_vector(3 downto 0);-电梯外下降请求信号显示  &#

29、160;      led_d : out std_logic_vector(3 downto 0);-电梯内请求信号显示wahaha : out std_logic;-看门狗报警信号 ud,alarm : out std_logic;-电梯运动方向显示,超载警告信号up,down : out std_logic );-电机控制信号和电梯运动end zx; 

30、 (3)archi结构体设计模块和process进程执行单元 architecture behav of zx is signal d11,d22,d33,d44:std_logic; -电梯内请求信号寄存信号 signal c_u11,c_u22,c_u33:std_logic;-电梯外上升请求信号寄存信号  signal c_d22,c_d33,c_d44:std_logic;-电梯外下降请求信号寄存信号  signal q:integer 

31、range 0 to 1;-分频信号  signal q1:integer range 0 to 4;-关门延时计数器   signal q2:integer range 0 to 9;-看门狗计数器  signal dd,cc_u,cc_d,dd_cc:std_logic vector(4 downto 0);-电梯请求信号寄存器  signal opendoor:

32、std_logic;-开门使能信号signal updown:std_logic;-电梯运动方向信号寄存器  signal en_up,en_dw:std_logic;-预备上升、预备下降预操作使能信号 begin process(clk) begin (进程语句具体看附录) end behav;  3.5.3具体语句设计说明  上文已说明了构成VHDL程序的两大部分实体和结构体的相关语句。在这些语句里,赋值语句占了相当一部分。在VHDL语言里,赋值符号一般都是“<=” 

33、;符号,具体形式如下: begin  if clk'event and clk='1' then   if clr='1' then q1<=0;q2<=0;wahaha<='0' elsif full='1' then  alarm<='1' q1<=0;  if q1>=3

34、0;then door<="10"          else door<="00"         end if; VHDL语言也具有与一般编程语言相同的一些语句逻辑结构,如上述中的“ifthenelsifthen;”等。这是VHDL中的顺序语句,与我们常见的C语言中的if作为条件语句不同。在结构体中对电梯的运行行为作出描述

35、,以其中电梯处于二楼时为例。 elsif g2='1' then led<="0010010"    -电梯到达2楼,数码管显示2 if updown='1' then -电梯前一运动状态为上升  if d22='1' or c_u22='1' then  d22<='0' c_u22&

36、lt;='0' opendoor<='1' -有当前层请求,电梯进入开门状态            elsif dd_cc>"00000011" then   en_up<='1'en_dw<='0' opendoor<='0' -有上升请求,电梯预备上升  

37、       elsif dd_cc<"00000010" then   en_dw<='1'en_up<='0'  opendoor<='0'-有下降请求,电梯预备下降         end if;   -电梯前一运动状态为下降   

38、                     elsif d22='1' or c_d22='1' then  d22<='0' c_d22<='0'opendoor<='1' -有当前层请求,电梯进入开门状态  e

39、lsif dd_cc<"00000010" then   en_dw<='1'en_up<='0'  opendoor<='0' -有下降请求,电梯预备下降elsif dd_cc>"00000011" then  en_up<='1'en_dw<='0' opendoor<='0' -有上升请求

40、,电梯预备上升end if;  在上述语句中的“elsif g2=1then led<=“0010010;”,led的赋值之所以为“0010010”是根据共阳极七段数字显示器的发光段排列的,如图所示。图6 七段数字显示器 可发光段a、b、c、e、g形成一个2字。在进程执行单元里,对电梯在楼层时的操作情况作出了描述,例如:开门、关门延时、超载报警、故障报警以及电梯内的请求信号处理,具体说明给出如下: process(clk) begin  if clk'event and 

41、clk='1' then   if clr='1' then q1<=0;q2<=0;wahaha<='0'-清除故障报警  elsif full='1' then  alarm<='1' q1<=0;-超载报警if q1>=3 then door<="10"   &

42、#160;               else door<="00"          end if;                  &#

43、160;                        elsif q=1 then q<=0;alarm<='0'       if q2=3 then wahaha<='1'&

44、#160; -故障报警       else          if opendoor='1' then   door<="10"q1<=0;q2<=0;up<='0'down<='0'-开门操作         

45、; elsif en_up='1' then -上升预操作              if deng='1' then door<="10"q1<=0;q2<=q2+1;-关门中断           elsif

46、0;quick='1' then q1<=3;-提前关门            elsif q1=6 then door<="00"updown<='1'up<='1' -关门完毕,电梯进入上升状态 elsif q1>=3 then door<="01"q1<

47、=q1+1; -电梯进入关门状态else q1<=q1+1;door<="00" -电梯进入等待状态end if; elsif  en_dw='1' then -下降预操作if deng='1' then door<="10"q1<=0;q2<=q2+1;elsif quick='1' then q1<=3;elsif

48、60;q1=6 then door<="00"updown<='0'down<='1' elsif q1>=3 then door<="01"q1<=q1+1; else q1<=q1+1;door<="00"end if;         end if;else

49、60; q<=1;alarm<='0' -清除超载报警        if d1='1' then d11<=d1; -对电梯内请求信号进行检测和寄存elsif d2='1' then d22<=d2; elsif d3='1' then d33<=d3; elsif d4='

50、1' then d44<=d4;  end if;if c_u1='1' then c_u11<=c_u1; -对电梯外上升请求信号进行检测和寄存elsif c_u2='1' then c_u22<=c_u2;elsif c_u3='1' then c_u33<=c_u3; end if;      

51、;   if c_d2='1' then c_d22<=c_d2; -对电梯外下降请求信号进行检测和寄存elsif c_d3='1' then c_d33<=c_d3; elsif c_d4='1' then c_d44<=c_d4;   end if;        dd<=

52、 d44&d33&d22&d11; -电梯内请求信号并置             cc_u<='0' &c_u33&c_u22&c_u11;    -电梯外上升请求信号并置         cc_d<= c_d44&c_d33&c_d22&'

53、0'    -电梯外下降请求信号并置           dd_cc<=dd or cc_u or cc_d; -电梯内、外请求信号进行综合     end if;       ud<=updown; -电梯运动状态显示   &#

54、160;          led_d<=dd; -电梯内请求信号显示     led_c_u<=cc_u; -电梯外上升请求信号显示     led_c_d<=cc_d; -电梯外下降请求信号显示 end if;    4总结4.1设计总结VHDL语言既具有高级编程语言的优点,又有并行执行

55、的特性,使设计者脱离了底层电梯,而在更高的层次上考虑电路的各种时序和逻辑关系。这样设计者可以采用自顶向下的设计方法和并行工作的设计原则。用VHDL硬件描述语言的形式来进行数字系统的设计方便灵活,利用EDA软件进行编译优化仿真极大的减少了电路设计时间和可能发生的错误,降低了开发成本,这种设计方法必将在将来的数字系统设计中发挥越来越重要的作用。(1) 在进行设计时,最主要的是先设计理清时序。在单个实现各个模块功能时比较简单。但将各个功能模块综合在一起后就需要理清他们的时序才能够共用数据总线,使其互不干扰地工作。(2) 设计完成后要在模板上仿真,来验证所编程序的正确性和可行性。在仿真的时候会出现比较

56、多的问题,如果能够耐心的解决会受益良多。(3) 有的程序可能在仿真时时序是完全正确的,而将程序下载到板子上之后却发现不对。这主要是由于各个功能实现会有延时,这在仿真时是反映不出来的。因此编程时要注意在选中某个片子之前,要先将计算出的数据信号先放到数据总线上。(4) 要仔细研究仿真时所获得的波形图,确定所做的设计稳定又实用。在此次设计中,我掌握了一些使用VHDL语言编程的基本方法。在设计的过程中我深深地体会到VHDL语言所具有的强大生命力和应用潜力,它必将成为数字系统设计中的一种重要工具。4.2设计心得与体会在做本次课程设计之前,我从没有注意过每天都看到的、习以为常的电梯,当我知道自己的设计任务

57、是做电梯控制器时,我开始关注它,并思考它的构造。 动手设计之前我到图书馆、上网查阅了与电梯控制器相关的资料,对其构造有了初步的了解,脑海中也有了大体思路,于是便迫不及待的开始了自己的设计。本以为电梯控制器是一个很简单的数字电子系统,自己可以很容易地完成任务,但在实际操作中还是遇到了一些障碍。虽然最终的电梯控制器满足了课设要求但是由于我的水平有限,电路并不是最合理最完善的电路,其中存在许多需要改进的地方。为时两周的EDA课程设计虽然短暂却使我受益匪浅:进一步熟悉 Quartus II软件的操作方法以及硬件实现时的下载方法与运行方法,很好的弥补了我们平时只学不用的缺陷;对VHDL语言的自顶向下设计

58、方法有了进一步的认识,对其中的许多语句也有了新的理解和掌握;提高了我们的逻辑思维能力,使我们在逻辑电路的分析与设计上有了很大的进步,加深了我们对组合逻辑电路与时序逻辑电路的认识。另外,我们还更加充分的认识到,EDA应用技术这门课程在科学发展中的至关重要性。查阅参考书的独立思考的能力以及培养也同样重要,我们在设计电路时,遇到很多不理解的东西,有的我们通过查阅参考书弄明白,有的通过网络查到,但由于时间和资料有限我们更多的还是独立思考。理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考

59、的能力。 这次课程设计能够如期完成也离不开老师与同学的帮助。在考虑这个课题时,我们组的成员都能积极思想,提出意见。在程序编译出错时,是感觉最无奈的时候,每个错误都需要很耐心的查找,有时错误太多就会头脑发麻,找同学们帮忙时他们都会很耐心的帮我查找错误,老师也会给出好的建议。同时,我们也需要自己多多思考,现在查阅资料的渠道有很多,我们需要充分利用资源,这样才能充实自己的知识。非常感谢老师能在我们做课程设计的途中一直陪着我们,为我们讲解难题,在日后的学习中,我们一定会更加努力。5参考文献1 SOPCIIEDA实验指导书(第二版)2 SOPCII使用手册(第二版)3 4EDA技术基础. 谭会生编著.

60、湖南大学出版社,20045EDA技术实用教程(第三版),潘松、黄继业编著 ,科学出版社 ,2010附录 电梯控制器VHDL总程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity zx isport(clk:in std_logic;       full,deng,quick,clr:in&

61、#160;std_logic;       c_u1,c_u2,c_u3:in std_logic;       c_d2,c_d3,c_d4:in std_logic;       d1,d2,d3,d4:in std_logic;       g1,g2,g3,g4:in s

62、td_logic;       door:out std_logic_vector(1 downto 0);       led:out std_logic_vector(6 downto 0);       led_c_u:out std_logic_vector(3 downto 0);

63、0;      led_c_d:out std_logic_vector(3 downto 0);       led_d:out std_logic_vector(3 downto 0);       wahaha:out std_logic; ud,alarm:out std_logic; up

64、,down:out std_logic);end zx;architecture behave of zx issignal d11,d22,d33,d44:std_logic;signal c_u11,c_u22,c_u33:std_logic;signal c_d22,c_d33,c_d44:std_logic;signal q:integer range 0 to 1;signal q1:integer range 0&

65、#160;to 6;signal q2:integer range 0 to 9;signal dd,cc_u,cc_d,dd_cc:std_logic_vector(3 downto 0);signal opendoor:std_logic;signal updown:std_logic;signal en_up,en_dw:std_logic;begincom:process(clk)beginif(clk'event and clk='

66、;1')thenif (clr='1')then q1<=0;q2<=0;wahaha<='0'elsif full='1'then alarm<='1'q<=0;if (q1>=3)then door<="10"        else door<="00"  

67、60;     end if;     elsif q=1 then q<=0;alarm<='0'        if q2=3 then wahaha<='1'        else  

68、0;       if(opendoor='1')then door<="10"             q1<=0;q2<=0;up<='0'down<='0'          elsif

69、 en_up='1'then             if(deng='1')then door<="10"q1<=0;q2<=q2+1;             elsif quick='1' then 

70、;q1<=3;             elsif q1=6 then door<="00"updown<='1'up<='1'             elsif q1>=3 then door&

71、lt;="01"q1<=q1+1;             else q1<=q1+1;door<="00"          end if;          elsif en_d

72、w='1'then          if(deng='1')then door<="10"q1<=0;q2<=q2+1;          elsif quick='1' then q1<=3;      

73、    elsif q1=6 then door<="00"updown<='0'down<='1'          elsif q1>=3 then door<="01"q1<=q1+1;        &#

74、160; else q1<=q1+1;door<="00"          end if;       end if;       if(g1='1')then led<="1001111"   

75、0;      if d11='1'or c_u11='1'then d11<='0'c_u11<='0'opendoor<='1'          elsif dd_cc>"0001"then en_up<='1'opendoor<=

76、'0'          elsif dd_cc="0000"then opendoor<='0'          end if;       elsif g2='1' then led<

77、="0010010"         if updown='1'then           if d22='1'or c_u22='1'then d22<='0'c_u22<='0'opendoor<='1' &#

78、160;         elsif dd_cc>"0011"then en_up<='1'opendoor<='0'           elsif dd_cc<"0010"then en_dw<='1'opendoor<='

79、0'           end if;          elsif d22='1'or c_d22 ='1'then d22<='0'c_d22<='0'opendoor<='1'    &

80、#160;     elsif dd_cc>"0011"then en_up<='1'opendoor<='0'          elsif dd_cc<"0010"then en_dw<='1'opendoor<='0'    

81、;      end if;          elsif g3='1' then led<="0000110"           if updown='1'then    

82、60;      if d33='1'or c_u33 ='1'then d33<='0'c_u33<='0'opendoor<='1'           elsif dd_cc>"0111"then en_up<='1'

83、opendoor<='0'           elsif dd_cc<"0100"then en_dw<='1'opendoor<='0'           end if;       

84、;   elsif d33='1'or c_d33='1'then d33<='0'c_d33<='0'opendoor<='1'          elsif dd_cc>"0111"then en_up<='1'opendoor<='0'   

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论