您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 西电电院工程设计报告
工程设计报告12013级《工程设计》课程实践报告基于FPGA的交通控制器设计班级:1302041姓名:陈串串学号:13020410024指导教师:任爱锋工程设计报告2工程设计报告3交通控制器一、选题目的了解VHDL语言,并且学会使用该语言编写程序,在QuartusII8.0仿真实现,在数电实验板上实际操作,锻炼动手能力,交通控制器的选题十分贴近生活,能够将理论和实际相结合。VHDL简介(1)描述在这个语言首次开发出来时,其目标仅是一个使电路文本化的一种标准,为了使人们采用文本方式描述的设计能够被其他人没有二意性地所理解。因为用自然语言描述电路会产生二意性。这个模型是让人来阅读的。(2)模拟的模型作为模型语言,用于采用模拟软件进行模拟。这个模型是让仿真软件来阅读的。(3)综合的模型在自动设计系统中,作为设计输入。这个模型是让综合软件来阅读的。VHDL语言能够成为标准化的硬件描述语言并获得广泛应用,它自身必然具有很多其他硬件描述语言所不具备的优点。归纳起来,VHDL语言主要具有以下优点:(1)VHDL语言功能强大,设计方式多样VHDL语言具有强大的语言结构,只需采用简单明确的VHDL语言程序就可以描述十分复杂的硬件电路。同时,它还具有多层次的电路设计描述功能。此外,VHDL语言能够同时支持同步电路、异步电路和随机电路的设计实现,这是其他硬件描述语言所不能比拟的。VHDL语言设计方法灵活多样,既支持自顶向下的设计方式,也支持自底向上的设计方法;既支持模块化设计方法,也支持层次化设计方法。(2)VHDL语言具有强大的硬件描述能力VHDL语言具有多层次的电路设计描述功能,既可描述系统级电路,也可以描述门级电路;描述方式既可以采用行为描述、寄存器传输描述或者结构描述,工程设计报告4也可以采用三者的混合描述方式。同时,VHDL语言也支持惯性延迟和传输延迟,这样可以准确地建立硬件电路的模型。VHDL语言的强大描述能力还体现在它具有丰富的数据类型。VHDL语言既支持标准定义的数据类型,也支持用户定义的数据类型,这样便会给硬件描述带来较大的自由度。(3)VHDL语言具有很强的移植能力VHDL语言很强的移植能力主要体现在:对于同一个硬件电路的VHDL语言描述,它可以从一个模拟器移植到另一个模拟器上、从一个综合器移植到另一个综合器上或者从一个工作平台移植到另一个工作平台上去执行。(4)VHDL语言的设计描述与器件无关采用VHDL语言描述硬件电路时,设计人员并不需要首先考虑选择进行设计的器件。这样做的好处是可以使设计人员集中精力进行电路设计的优化,而不需要考虑其他的问题。当硬件电路的设计描述完成以后,VHDL语言允许采用多种不同的器件结构来实现。(5)VHDL语言程序易于共享和复用VHDL语言采用基于库(library)的设计方法。在设计过程中,设计人员可以建立各种可再次利用的模块,一个大规模的硬件电路的设计不可能从门级电路开始一步步地进行设计,而是一些模块的累加。这些模块可以预先设计或者使用以前设计中的存档模块,将这些模块存放在库中,就可以在以后的设计中进行复用。由于VHDL语言是一种描述、模拟、综合、优化和布线的标准硬件描述语言,因此它可以使设计成果在设计人员之间方便地进行交流和共享,从而减小硬件电路设计的工作量,缩短开发周期。二、设计目标交通控制器交通灯是城市交通中不可缺少的重要工具,是城市交通秩序的重要保障。十字道口的红绿灯是交通法规的无声命令,是司机和行人的行为准则。十字道口的交通红绿灯控制是保证交通安全和道路畅通的关键。一个十字路口的交通一般分为两个方向,每个方向具有红灯、绿灯和黄灯3种,另外每个方向还具有左转灯,因此每个方向具有4个灯。工程设计报告5这个交通灯还为每一个灯的状态设计了倒计时数码管显示功能。可以为每一个灯的状态设置一个初始值,灯状态改变后,开始按照这个初始值倒计时。倒计时归零后,灯的状态将会改变至下一个状态。实际上不同时刻的车辆流通状况是十分复杂的,是高度非线性的、随机的,还经常受认为因素的影响。采用定时控制经常造成道路有效应用时间的浪费,出现绿灯方向车辆较少,红灯方向车辆积压。它不顾当前道路上交通车辆数的实际情况变化,其最大的缺陷就在于当路况发生变化时,不能满足司机与路人的实际需要,轻者造成时间上的浪费,重者直接导致交通堵塞,导致城市交通效率的下降。设计一个十字路口交通控制系统,其东西,南北两个方向除了有红、黄、绿灯指示是否允许通行外,还设有时钟,以倒计时方式显示每一路允许通行的时间,绿灯,黄灯,红灯的持续时间分别是40、5和45秒。当东西或南北两路中任一道上出现特殊情况,例如有消防车,警车要去执行任务,此时交通控制系统应可由交警手动控制立即进入特殊运行状态,即两条道上的所有车辆皆停止通行,红灯全亮,时钟停止计时,且其数字在闪烁。当特殊运行状态结束后,管理系统恢复原来的状态,继续正常运行。三、实现方案工程设计报告6流程图如下:本系统主要由分频器、计数器、控制器等电路组成。分频器将晶振送来的1000HZ信号变为1HZ时钟信号;计数器实现总共90秒的计数,90秒也是交通灯控制器的一个大循环;控制其控制系统的状态转移和红黄绿灯信号的输出;倒计时显示红黄绿灯闪亮的时间。整个系统的时序受控制器控制,它是系统的核心。控制器的整个工作过程用状态机进行描述,5种状态描述如下:工程设计报告7S0:A方向绿灯亮,B方向红灯亮,此状态持续40秒时间;S1:A方向黄灯亮,B方向红灯亮,此状态持续5秒的时间;S2:A方向红灯亮,B方向绿灯亮,此状态持续40秒时间;S3:A方向红灯亮,B方向黄灯亮,此状态持续5秒时间;S4:紧急制动状态,A方向红灯亮,B方向绿灯亮,当紧急制动信号有效时,进入这种状态。交通控制器系统的状态转移图:四、设计过程A红亮B红亮S4A绿亮B红亮S440sA黄亮B红亮S15sA红亮B绿亮S240sA红亮B黄亮S35s工程设计报告8顶层原理图,共分为devide模块、control模块、m45模块。原理:通过devide模块将1000HZ的clk分频为1HZ,通过control模块分别控制两个方向的红绿黄灯的亮暗,并将红绿黄灯(即ared,agreen,ayellow和bred,bgreen,byellow)作为m45模块的输入端来选择5s,40s,45s这三个时段的显示。1)devide模块作用:1000HZ分频器2)control模块作用:控制器control的逻辑符号如下图所示。其中clk为时钟输入信号;hold为紧急制动信号;A[2..0]分别为东西分方向驱动红灯、绿灯、黄灯的输出信号;B[2..0]分别为南北方向驱动红灯、绿灯、黄灯指示的输出信号。3)m45模块作用:倒计时计数器顶层原理图五、遇到问题及解决办法工程设计报告9遇到问题:1.数码管的显示出现乱码;2.两个路口的计数器要实现不同的显示。3.紧急制动状态下,数码管要来回显示当前数字和零,即实现闪烁。4.数码管显示的数字与红绿黄灯的状态不同步。解决方法:1.seg7模块(仅去低四位,即d、e、f、g四个输出端口有效,a、b、c三个输出端口不发生作用)接入数码管显示时钟。2.通过control模块分别控制两个方向的红绿黄灯的亮暗,并将红绿黄灯(即ared,agreen,ayellow和bred,bgreen,byellow)作为m45模块的输入端来选择5s,40s,45s这三个时段的显示。实现结果:仿真结果:各个端口输出波形(CLK频率为1000HZ)六、编程调试1)devide模块工程设计报告10libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitydevideisport(clk:instd_logic;clk_out:outstd_logic);enddevide;architecturearc_devideofdevideissignalcount:std_logic_vector(9downto0);beginprocessbeginwaituntilclk'eventandclk='1';if(count999)thencount=count+1;clk_out='0';elsecount=(others='0');clk_out='1';endif;endprocess;endarchitecturearc_devide;2)Control模块clkclk_outdevideinst1工程设计报告11控制器control的逻辑符号如下图所示。其中clk为时钟输入信号;hold为紧急制动信号;A[2..0]分别为东西分方向驱动红灯、绿灯、黄灯的输出信号;B[2..0]分别为南北方向驱动红灯、绿灯、黄灯指示的输出信号。控制器的VHDL描述文件如下:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitycontrolisport(clk,hold:instd_logic;A,B:outstd_logic_vector(2downto0));endcontrol;architecturebehaviorofcontrolistypestate_typeis(s0,s1,s2,s3,s4);signalcurrent_state,next_state:state_type;signalcounter:std_logic_vector(6downto0);beginsynch:processbeginwaituntilclk'eventandclk='1';ifhold='0'thencounter=counter;elseifcounter89thencounter=counter+1;elsecounter=(others='0');endif;endif;endprocess;processclkholdA[2..0]B[2..0]controlinst工程设计报告12beginwaituntilclk'eventandclk='1';current_state=next_state;endprocess;state_trans:process(current_state)begincasecurrent_stateiswhens0=ifhold='0'thennext_state=s4;elseifcounter39thennext_state=s0;elsenext_state=s1;endif;endif;whens1=ifhold='0'thennext_state=s4;elseifcounter44thennext_state=s1;elsenext_state=s2;endif;endif;whens2=ifhold='0'thennext_state=s4;elseifcounter84thennext_state=s2;elsenext_state=s3;endif;endif;whens3=ifhold='0'thennext_state=s4;elseifcounter89thennext_state=s3;else工程设计报告13next_state=s0;endif;endif;whens4=ifhold='0'thennext_state=s4;elseifcounter39thennext_state=s0;elsifcounter44thennext_state=s1;elsifcounter84thennext_state=s2;elsifcounter=89thennext_state=s3;endif;endif;endcase;endprocess;output:process(current_state)begincasec
本文标题:西电电院工程设计报告
链接地址:https://www.777doc.com/doc-6238844 .html