【基于FPGA的电梯控制器的探究设计8100字(论文)】_第1页
【基于FPGA的电梯控制器的探究设计8100字(论文)】_第2页
【基于FPGA的电梯控制器的探究设计8100字(论文)】_第3页
【基于FPGA的电梯控制器的探究设计8100字(论文)】_第4页
【基于FPGA的电梯控制器的探究设计8100字(论文)】_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

基于FPGA的电梯控制器的研究设计目录TOC\o"1-3"\h\u9947摘要 Ⅰ25904第一章绪论 1215041.1研究背景 192481.2设计思想与方案论证 1221801.3EDA概述 2236921.4EDA功能 3129721.5FPGA 3307701.6FPGA功能 345131.7本文主要内容 4574第二章设计特点和要求 5186502.1电梯控制器的任务和要求 5322862.2电梯控制器的设计思路 529952.3电梯控制器系统配置和模块设计 6165792.3.1系统配置 657222.3.2模块设计 6196332.4模块设计程序的硬件分析 710302.4.1总电路图 740692.4.2电梯核心控制子模块 865542.4.3电梯模拟子模块 8312622.4.4楼层号显示子模块 9203302.4.5按钮清零控制子模块 918342.4.6时钟分频模块 1093262.4.7附加模块 1031944第三章软件设计 11108093.1电梯核心控制子模块的功能 11270273.2电梯模拟子模块的功能 15212313.3楼层号显示子模块的功能 摘要电梯现在成为了现代化社会不可缺少的运载工具。电梯是隐藏的资源消耗者。起动或制动时的负载经常变化,并且运动方向保持着持续变化。电梯控制系统需要在各种负载下进行适当调整,以确保安全可靠的电梯运行和乘客舒适度。速度性能电梯控制系统为电梯提供动力,以控制电梯的启动加速度,稳定的速度运行和制动减速度。使用FPGA组装件的主动型的控制芯片和模块化研发方法,采用Verilog的硬件描述语言对电梯控制器的每个功能区域进行精准编程,用来实现四层电梯控制器的准确设计。然后使用软件仿真和硬件来完成,最终表示这个方案基本符合设计要求,可以拓展到多楼层的电梯,是十分实用的。关键词:FPGA;Verilog;控制器第一章绪论1.1研究背景目前在人口稠密的地区,劳动力的极度短缺和土地资源匮乏之间的冲突变得越来越严重。目的是使用合理利用土地的方法来解决人地矛盾。建造摩天大楼是有效的措施之一。随着时间的流逝,出现了一部电梯,电梯能够快速,轻松地到达目的地。在一些国家和地区,每个人使用电梯数量超过每10,000人30台,在其他部分国家里,电梯的使用数量可能已经超过每10,000人120台。城市化程度越高,电梯的市场前景就越广阔。当前,每年的增长率为15-18%。因为现在使用电梯的地方越来越多,人们对电梯运输的方便的需求越来越高。电梯的最主要的特点就是安全和快速地抵达所想要到达的楼层。因此,研发控制器已经作为了电梯的设计领域里的关键性技术。伴随如今电子技术的高水平快速发展,科技化时代的电子信息科技产品现在几乎影响到了社会的每个领域之中,十分有效地促进了世界生产力的快速发展,提升了世界的计算机化程度。与此同时,我们也优化了现代化电子产品,还加速了电子设计的开发、技术升级和技术的不断创新的过程。对于这些广阔的电梯市场前景,所谓的"科技至关重要的生产力"电子设计技术自然会超过电梯技术的标准,这对设计师而言是至关重要的绝佳的设计空间。所以,这个设计需要在综合电子化设计技术的前提条件之下设计安全高效的电梯控制系统。1.2设计思想与方案论证方案一:基于FPGA的电梯控制器研发程序使用Altera公司开发的QuartusII集成化的研发环境,采取自上而下的模块化设计方法,有利于程序的优化和升级,设计语言使用语法十分严谨且广泛的Verilog语言。在关键组装器件的选择中,因为想到Cyclo-neII系列芯片要比一代芯片在设计和研究上、内部的逻辑关系上都具有较大的优化,而且价格方面也能被多数用户们所接受。方案二:基于嵌入式的电梯控制器使用将电梯核心控制器为主要控制器的嵌入式软件发开平台来编译Linux电梯核心控制器的每个独立的功能模块的驱动程序,为符合控制器的功能的基本要求,研发电梯控制器的数据流图,在这个条件上对电梯控制器的功能进行结构改造,还使用Linux的编程方法来研发完成控制器的基础逻辑控制功能。最终,搭建虚拟检验平台,对电梯控制器的硬件和软件的功能进行模拟测试。方案三:基于蚁群算法的电梯群控制器的研发设计使用DSP芯片通过CAN总线协议与现场数据收集的信息通讯来研发电梯群控制器的一部分硬件系统。使用VisualBasic6.0语言进行电梯系统的监控界面的编译,在与群控制器采用的传输速度更快的USB通讯技术,这样通过信息的交互,电梯的监管人员能够实时地观察电梯运行情况。总结,如果用基于FPGA的方法来进行设计和优化电梯控制器,不仅优化了电路的设计和提升控制器的抗干扰能力,而且具有节能的功能,降低了功耗,拥有广阔的发展前景。1.3EDA概述在1990年代,因电子及计算机技术领域方面十分成功,所以世界的许多国家纷纷寻找新的电子电路的设计方法,并且彻底地改变了这些设计方法和工具。只有硬件设计和软件设计才是方便、快捷的。这些器件可通过运用软件编程的方法来重新配置这些硬件的构造和结构。所以,这些都已经完全地更改了普通的系统开发方法和概念,促进了EDA核心技术的飞速提升。EDA技术使用计算机作为工具。研发人员运用HDL硬件的描述语言把研发信息储存于EDA软件平台里。之后,计算机会自行地进行逻辑编译,优化,区分,综合,布置,连线及仿真,持续到完成相关的编译和逻辑过程。因为EDA技术的发明,设计电路所花费的时间和可操作程度得到极大的优化,研发人员们的工作强度得到适当降低。电子研发人员运用EDA工具依靠相关理念,规则,协议等来研发相关的电子系统,并且使用计算机来达目的,包含完全的电路设计和功能检验过程。现在,EDA概念或类别已被广泛使用。EDA用于各种领域,例如机械,电子,电信,航空,化学工业,矿物学,生物学,医学和军事。如今,EDA技术已广泛用于大型公司,企业,机构,科学研究和教育部门。1.4EDA功能(1)为了优化自上而下的设计技术,最新的EDA工具可以对系统进行优化和改良,来有效的减短设计时所花费的时间周期并且提高在设计时候的效率。(2)运用硬件描述语言来实施设计。运用硬件编程语言搭建电路和系统是目前EDA技术的一种功能。和目前使用的电路设计技术相比,HDL语言十分适合于搭建较大的数字系统。这使设计人员可以在相对抽象的级别上解释系统的结构和逻辑。使用HDL语言设计的主要优点是语言的开放性和易用性,独立的设计和过程,广泛的写入功能,易于配置,重用,大型系统的通信和设计,以及保存和修改。目前全球世界使用最广的硬件描述语言为IEEEVHDL标准及VerilogHDL。(3)对于标准化最新的EDA工具一般会采取标准化的框架结构。EDA系统可以容纳第三方EDA工具和设备,以进行符合标准的设计工作,从而构建开放的框架结构。这样,可以完成多种EDA工具的结构优化,将其集成于一种可以编辑管理的环境中,并可以进行相关的资源共享。1.5FPGA使用目前的硬件编程语言来搭建的电路设计能在FPGA上以较快的速度生成,还拥有简化的综合和检验功能,这是现代化电路验证技术的趋势。这些可编辑组件可用于实现更复杂的组合功能,例如某些基本逻辑门电路(AND,OR,XOR,NOT等)或解码器和表达式。在大部分的FPGA里,这一些可进行编辑的组件也包含了存储组件,例如触发器和其他更完整的存储块。系统研发人员可依据需要通过可修改的连接(例如,芯片电路板放置)来连接FPGA逻辑模块。研发人员可以通过编辑FPGA逻辑模块和工厂端口的连接,来使FPGA可以完成所需的逻辑功能。FPGA一般情况下相比ASIC较慢,可以完成十分繁琐的设计,并且不会损失掉过多的功率。但是,快速完成产品具有许多优势,例如修复程序错误和降低成本。制造商还会供应十分便宜的FPGA,而其编辑能力不足。由于这些芯片的可编辑性较低,因此这一些设计的研发早于现有FPGA上使用的下一个ASIC型芯片。另一种方法是运用CPLD。1.6FPGA功能(1)通过使用FPGA设计ASIC(专用集成电路),即使用户不制造芯片,也可以获得合适的芯片。(2)FPGA可使用在完全定制或半定制ASIC电路的样本。(3)FPGA拥有较多的触发器和I/O引脚。(4)FPGA是ASIC电路里研发时间、费用、风险程度最低的器件之一。(5)FPGA采用高速CHMOS技术和低功耗来支持CMOS和TTL电平。FPGA芯片是用来使较少的系统提升系统集成度和稳定性的最优芯片之一。FPGA由存储在芯片RAM中的程序组成,以设置工作状态。所以,要对芯片中的RAM进行具体化编译。使用者可以为此外不一样的配置模式来运用不同的编程方法。通电之后,FPGA芯片从RAM中读取EPROM数据。配置完成后,FPGA将运行。断电之后,FPGA重新成为空白,内部的逻辑取消关联。因此,FPGA可以重复使用。FPGA的编译是不需要使用专门的FPGA编程器的,通常仅需要EPROM和PROM编程器。如果需要更改FPGA的功能,则只需更改一个EPROM。这样,同一FPGA,其他编程数据可以创建其他电路的功能。1.7本文主要内容第一章基于FPGA的电梯控制器的发展,对比当前多种电梯控制器的设计方案并进行方案分析论证,介绍设计相关FPGA技术等,了解现如今的一些研究现状,说明了本研究的意义。第二章介绍FPGA的电梯控制器的功能要求,并阐述电梯控制器的设计思路及原理图,介绍系统配置和具体的模块设计和硬件功能的分析。(如:1.电梯核心控制子模块2.电梯模拟子模块3.楼层号显示子模块4.按钮清零控制子模块5.时钟分频模块6.附加模块)第三章介绍电梯核心控制子模块、电梯模拟子模块、楼层号显示子模块、按钮清零控制子模块、时钟分频模块和附加模块的具体功能还有其程序代码展示。第四章进行设计总结和期望;表示在完成这次电梯控制器设计时,FPGA更加灵活。可以修改程序以控制多层,十分适合电梯控制器的设计。表达对老师和同学的感谢!第二章设计特点和要求2.1电梯控制器的任务和要求Verilog硬件描述语言用于对电梯控制器系统的每个模块进行编程。该系统至少具有以下特征:(1)电梯在4楼完成了乘客服务,并且可以根据方向优先原则进行控制。(2)运行模式和下班模式。(3)有司机和无司机功能。(4)显示功能。2.2电梯控制器的设计思路图2-1是控制器的功能模块,例如主控制器,分控制器,楼层选择器,状态指示器,解码器和楼层指示器。用户选择想要抵达的楼层,主控制器使电梯运行,且状态显示屏展示电梯目前的工作状态。解码器使用电梯解码楼层数,并将其显示在楼层显示器上。子控制器将有效请求发送到主控制器的楼层数。分控制器比较简单,所以主控制器是核心部分。状态显示状态显示分控制器主控制器译码器楼层显示分控制器主控制器译码器楼层显示楼层选择楼层选择图2-1电梯控制器原理框图电梯控制器系统的一般要求(1)在电梯的每一层的进门口有上下请求开关,使乘客可以到达电梯的高度。电梯楼层的当前位置用两位数显管显示。(2)显示电梯的当前位置。(3)当电梯响应停止请求到达地板时,电梯门自动打开,门灯点亮。如果开门3秒钟,电梯门将自动关闭(开门指示灯将熄灭),电梯将继续运行。(4)可以存储和响应电梯内部及外部的所有请求信号,这些信息基于电梯的运行规则。保留每个请求令牌,直到执行为止。2.3电梯控制器系统配置和模块设计2.3.1系统配置该设计采用了定向优先级控制方法。方向优先级控制意味着,当电梯到达某个特定层时,它首先会考虑是否需要该层。显示消息时停止。如果没有消息,请继续移动。停止后恢复的步骤:考虑请求是来自上方还是下方。出现提示时,单击继续。如果没有,请继续。否则它将停止。进入运行状态之前,请确保存在一个请求或一个请求。2.3.2模块设计(1)设计原理电梯上升和下降的原理是依靠步进电机在控制器的带动下通过旋转固定的角度来抵达指定的楼层:高度H=R×Φ式2.1楼层数N=H÷L式2.2公式里L为单位楼层的高度;R为步进电机的转轴半径;Φ为步进电机旋转的角度。(2)设计思路和设计方案说明电梯具有许多电梯控制方法和多种类型的电动机。步进电机可以准确地旋转指定角度。该过程的设计展示了如何使用FPGA控制步进电机的上升和下降以模拟电梯的功能。这个系统使用了多个CPU的协同配合来进行优化和阐述各模块的功能,从而有助于调试和维护。两个核心的模块是主控制器模块(电梯核心控制子模块,电梯模拟子模块)和分频器模块。电梯核心控制子模块:实现电梯的相关调度算法,通过接收楼层信号和按钮信号来生成电梯的运行方向指示信号、控制信号及请求电梯停止信号、控制电梯停止信号。电梯模拟子模块:模拟电梯在不同工作模式下的实际运行,即根据电梯当前的运行方向控制信号控制电梯的楼层转移并输出楼层号;根据该控制信号使电梯停止,产生用于打开和关闭电梯门的控制信号,并关闭电梯门1s,然后产生按钮复位控制信号。楼层号显示子模块:用于显示楼层号。当电梯悬挂在某个楼层上时,电梯中的数字管会对应的楼层数进行闪烁,并以每秒1次的频率显示楼层号。在其他情况下,电梯中的数字管会稳定显示电梯当前通过的楼层号。按钮清零控制子模块:将10个按钮信号调整为正脉冲有效模式,并控制按钮信号的存储和清除。首先,将10个按钮信号调整为正脉冲有效模式;一旦脉冲按钮信号ipt到来,则对应的输出opt为高。时钟分频模块:对1KHz进行100分频得到10Hz时钟信号,再进行10分频,得到1Hz时钟信号。附加模块:调整按钮信号均为正脉冲有效模式。2.4模块设计程序的硬件分析2.4.1总电路图图3-1总电路2.4.2电梯核心控制子模块实现电梯的相关调度算法,通过接收楼层信号和按钮信号来生成电梯的运行方向指示信号、控制信号及请求电梯停止信号、控制电梯停止信号。模块电路如图3-2所示:图3-2电梯核心控制子模块2.4.3电梯模拟子模块用来模拟电梯在不同工作模式下的实际运行情况,根据电梯当前运行方向控制信号来控制电梯的楼层移动并输出楼层号;根据该控制信号使电梯停止,产生用于打开和关闭电梯门的控制信号,并关闭电梯门1s,然后产生按钮复位控制信号。模块电路如图3-3所示:图3-3电梯模拟子模块2.4.4楼层号显示子模块用于显示楼层号。当电梯悬挂在某个楼层上时,电梯中的数字管会对应的楼层数进行闪烁,并以每秒1次的频率显示楼层号。在其他情况下,电梯中的数字管会稳定显示电梯当前通过的楼层号。模块电路如图3-4所示:图3-4楼层号显示子模块2.4.5按钮清零控制子模块将10个按钮信号调整为正脉冲有效模式,并控制按钮信号的存储和清除。首先,将10个按钮信号调整为正脉冲有效模式;一旦脉冲按钮信号ipt到来,则对应的输出opt为高。当电梯到达地板时,它响应地板的按钮信号。暂停,打开门并关闭门1秒钟后,应清除按钮信号。此时,按钮清除控制信号c[9..0]中的相应位为高,使输出变低。模块电路如图3-5所示:图3-5按钮清零控制子模块2.4.6时钟分频模块时钟分频模块对1KHz进行100分频得到10Hz时钟信号,再进行10分频,得到1Hz时钟信号。模块电路如图3-6所示:图3-6时钟分频模2.4.7附加模块附加模块调整按钮信号均为正脉冲有效模式。模块电路如图3-7所示:图3-7附加模块第三章软件设计3.1电梯核心控制子模块的功能(1)实现电梯的调度算法(2)根据当前楼层和按钮信号产生电梯的运行方向指示信号、控制信号及请求电梯停止信号、控制电梯停止信号。程序如下:modulecorecontrol(dirup,dirdown,ctrlup,ctrldown,ask_stop,stop,clk,status,opt,run_cnt,ds0,ds1);inputclk;input[2:0]status;input[9:0]opt;input[4:0]run_cnt;outputdirup,dirdown;outputctrlup,ctrldown;outputask_stop;outputstop;outputds0,ds1;regdirup,dirdown;wirectrlup,ctrldown;regup,down;regask_stop;regds0,ds1;wiref1_up,f2_up,f2_down,f3_up,f3_down,f4_down,cmd1,cmd2,cmd3,cmd4;wirestop;assignf1_up=opt[0];assignf2_up=opt[1];assignf2_down=opt[2];assignf3_up=opt[3];assignf3_down=opt[4];assignf4_down=opt[5];assigncmd1=opt[6];assigncmd2=opt[7];assigncmd3=opt[8];assigncmd4=opt[9];always@(posedgeclk)begin case(status)3'd1:beginup=f2_up|f2_down|f3_up|f3_down||f4_down|cmd2|cmd3|cmd4;ask_stop=f1_up|cmd1;down=0;end 3'd2:begin up=f3_up|f3_down|f4_down|cmd3|cmd4;down=f1_up|cmd1;ask_stop=ds0&f2_up|ds1&f2_down|ds0&(f2_down)&(~f3_up)&(~f3_down)&(~f4_down)&(~cmd3)&(~cmd4)|ds1&(f2_up)&(~f1_up)&(~cmd1)|cmd2;end3'd3:beginup=f4_down|cmd4;down=f2_up|f2_down|f1_up|cmd1|cmd2;ask_stop=ds0&f3_up|ds1&f3_down|ds0&(f3_down)&(~f4_down)&(~cmd4)| ds1&(f3_up)&(~f2_up)&(~f2_down)&(~f1_up)&(~cmd2)&(~cmd1)|cmd3;end 3'd4:beginup=0;down=f3_up|f3_down|f2_up|f2_down|f1_up|cmd1|cmd2|cmd3;ask_stop=ds1&f4_down|ds0&f4_down|cmd4;end default: begin up=0; down=0; ask_stop=0; end endcase endalways@(posedgeclk)begin if(ds0==0&&ds1==0)beginds0=1;ds1=1;end elseif((ds0==1)&&(up==1))begindirup=1;dirdown=0;ds0=1;ds1=0;end elseif((ds0==1)&&(up==0)&&(ask_stop==1))begindirup=0;dirdown=0;ds0=1;ds1=1;end elseif((ds1==1)&&(down==1))begindirup=0;dirdown=1;ds0=0;ds1=1;end elseif((ds1==1)&&(down==0)&&(ask_stop==1))begindirup=0;dirdown=0;ds0=1;ds1=1;end elsebegindirup=0;dirdown=0;ds0=1;ds1=1;end //elseif((up==1)&&(down==0)&&(ask_stop==0))begindirup=1;dirdown=0;ds0=1;ds1=0;end endassignstop=(ask_stop&(run_cnt==0));assignctrlup=dirup&!stop;assignctrldown=dirdown&!stop;endmodule3.2电梯模拟子模块的功能(1)模拟电梯在不同工作模式下的实际运行情况。(2)根据电梯当前运行方向控制信号,控制电梯的楼层转移并输出楼层号。(3)令电梯停止的控制信号,产生开、关电梯门控制信号,关门1s后产生按钮清零控制信号。程序如下:modulesimulator(cnt,run_cnt,status,open_door,close_door,c,clk,ctrlup,ctrldown,stop,power,admin,open,close);inputclk;inputctrlup,ctrldown;inputstop;inputpower;inputadmin;inputopen;inputclose;output[4:0]cnt;output[4:0]run_cnt;output[2:0]status;outputopen_door,close_door;output[9:0]c;reg[2:0]status;reg[9:0]c;regclose_door;reg[4:0]cnt;reg[4:0]run_cnt;assignopen_door=power&(stop==1)&(!close_door);initialstatus=0;always@(posedgeclkornegedgepower)begin if(!power) begin close_door=1; c=16'h3fff; cnt=0; run_cnt=0; end else begin if(status==0)beginstatus=1;close_door=0;endif(ctrlup)beginif(run_cnt==19)beginrun_cnt=0;status=status+1'b1;endelsebeginrun_cnt=run_cnt+1'b1;endend elseif(ctrldown) begin if(run_cnt==19) beginrun_cnt=0;status=status-1'b1;end elsebeginrun_cnt=run_cnt+1'b1;end end elseif(stop) begin if(!admin&&(close_door==0)&&(cnt==29))begin if(open) close_door=0; else begin cnt=0; close_door=1; end end elseif((close_door==0)&&(open==0)&&(close)) begin cnt=0; close_door=1; end elseif((cnt==9)&&(close_door==1)) begin cnt=0; close_door=0; case(status)3'd1:beginc[0]=1;c[6]=1;end3'd2:beginc[1]=1;c[2]=1;c[7]=1;end3'd3:beginc[3]=1;c[4]=1;c[8]=1;end 3'd4:beginc[5]=1;c[9]=1;endendcase end else begin cnt=cnt+1'b1; c=10'h000; end end else begincnt=0;run_cnt=0;c=0;endendendendmodule3.3楼层号显示子模块的功能(1)显示电梯所在的楼层。程序如下:moduledisplay(eleIn,floor1,floor2,floor3,floor4,clk1k,clk1Hz,statusin,stopin,power);output[3:0]eleIn,floor1,floor2,floor3,floor4;inputclk1k;inputclk1Hz;input[2:0]statusin;//fourfloorinputstopin;inputpower;reg[3:0]eleIn,floor1,floor2,floor3,floor4;always@(posedgeclk1k)beginif(!power) begin eleIn<=4'd0; floor1<=4'd0; floor2<=4'd0; floor3<=4'd0; floor4<=4'd0; end else begin case(statusin) 3'd1:begin if(stopin) begin eleIn<=statusin&{3{clk1Hz}}; floor1<=statusin&{3{clk1Hz}}; floor2<=statusin; floor3<=statusin; floor4<=statusin; end else begin eleIn<=statusin; floor1<=statusin; floor2<=statusin; floor3<=statusin; floor4<=statusin; end end 3'd2:begin if(stopin) Begin eleIn<=statusin&{3{clk1Hz}}; floor1<=statusin; floor2<=statusin&{3{clk1Hz}}; floor3<=statusin; floor4<=statusin; end else begin eleIn<=statusin; floor1<=statusin; floor2<=statusin; floor3<=statusin; floor4<=statusin; end end 3'd3:begin if(stopin) begin eleIn<=statusin&{3{clk1Hz}}; floor1<=statusin; floor2<=statusin; floor3<=statusin&{3{clk1Hz}}; floor4<=statusin; end else begin eleIn<=statusin; floor1<=statusin; floor2<=statusin; floor3<=statusin; floor4<=statusin; end end 4'd4:begin if(stopin) begin eleIn<=statusin&{3{clk1Hz}}; floor1<=statusin; floor2<=statusin; floor3<=statusin; floor4<=statusin&{3{clk1Hz}}; end else begin eleIn<=statusin; floor1<=statusin; floor2<=statusin; floor3<=statusin; floor4<=statusin; end end default:begin eleIn<=4'd0; floor1<=4'd1; floor2<=4'd2; floor3<=4'd3; floor4<=4'd4; end endcase endendEndmodule3.4按钮清零控制子模块的功能调整10个按钮信号均为正脉冲有效模式,并对按钮信号进行存储和清零控制。(2)将脉冲信号转换为电平信号。(3)当电梯到达该层时响应了该层的按钮信号,暂停、开门、关门1s后则应清除此按钮信号,此时使按钮清零控制信号c[9..0]中的相应位为高,使输出opt变低。程序如下:modulebutton_clr_ctrl(opt,clk,ipt,c);inputclk;input[9:0]ipt,c;output[9:0]opt;reg[4:0]i;reg[9:0]opt;wire[9:0]ipt_high;assignipt_high={~ipt[9],~ipt[8],ipt[7:0]};always@(posedgeclk) begin for(i=0;i<=9;i=i+1) if(ipt_high[i])opt[i]<=1; elseif(c[i])opt[i]<=0; endendmodule3.5时钟分频模块的功能(1)对1KHz进行100分频得到10Hz时钟信号,再进行10分频,得到1Hz时钟信号。程序如下:moduleclockdiv(clkin,clk_10Hz,clk_1Hz);inputclkin;outputclk_10Hz,clk_1Hz;regclk_10Hz,clk_1Hz;reg[5:0]count1,count2;always@(posedgeclkin)begin if(count1==49) begin clk_10Hz=~clk_10Hz; count1=0; end elsecount1=count1+1;endalways@(posedgeclk_10Hz)beginif(count2==4)beginclk_1Hz=~clk_1Hz;count2=0;endelsecount2=count2+1;endendmodule 3.6附加模块的功能(1)调整按钮信号均为正脉冲有效模式程序如下:modulenot10(in,out);input[9:0]in;output[9:0]out;assignout={~in[9],~in[8],in[7:0]};endmodule图顶层电路图第四章总结与期望使用先前的设计进行调试和改进,并通过长期的迭代测试。如果需要,可以将各种索引的参数打印为曲线图和模拟图,但是建议重复一次。Verilog硬件描述语言方式的数字系统设计非常地方便和灵活。大幅缩短了运用EDA软件编译及优化仿真的电路开发时间,还减少了错误的发生概率且大幅减少了开发所需要的成本。这种设计方法肯定会增加。这对于研发过程有着极其重要的作用。未来的数字系统。在此设计中,用于控制电梯逻辑操作的官方FPGA具有编程灵活,性能稳定的优点。电源关闭时,FPGA配置数据将自动删除。用户可以在现场控制充电过程并更改设备的逻辑功能。整个设计过程电梯的设计可以根据其功能分为几个功能模块,可以掌握每个模块的时间,并且可以将这些功能模块集成在一起并与NorthBus共享。它可以正常运行而不会受到干扰。在仿真过程中,某些程序的时序非常精确,但是将程序下载到芯片时出现了错误。这主要是由于每个功能执行的延迟,但在仿真过程中不会出现。所以进行编程的时候要十分注意在选择芯片之前将计算出的数据信号放置在数据总线上。在完成电梯的控制时,FPGA更加灵活。可以修改程序以控制多层。该设计与电梯控制完美配合。例如,内部和外部电梯指示器系统的设计以及电梯当前运行状态的显示可以满足一般乘客电梯的运行功能要求。参考文献[1]高迎慧,侯忠霞,杨成林.基于FPGA的自动升降电梯控制器设计[J].辽宁工程技术大学学报,2007(02):242-244.[2]陈慧萍,王章瑞,马启强,黄学坤.基于FPGA的三层电梯控制器的实现[J].仪器仪表用户,2007(04):72-73.[3]申彦春,张银蒲,吴铮.基于FPGA的电梯控制器的设计[J].科技创新导报,2007(32):94-9

温馨提示

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

评论

0/150

提交评论