基于FPGA的交通灯控制器设计_第1页
基于FPGA的交通灯控制器设计_第2页
基于FPGA的交通灯控制器设计_第3页
基于FPGA的交通灯控制器设计_第4页
基于FPGA的交通灯控制器设计_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

1、引言随着城乡的经济发展,车辆的数量在迅速的增加,交通阻塞的问题已经严重影响了人们的出行。现在的社会是一个数字化程度相当高的社会,很多的系统设计师都愿意把自己的设计设计成集成电路芯片,芯片可以在实际中方便使用。随着EDA技术的发展,嵌入式通用及标准FPGA器件的呼之欲出,片上系统(SOC)已经近在咫尺。FPGA/CPLD以其不可替代的地位及伴随而来的极具知识经济特征的IP芯片产业的崛起,正越来越受到业内人士的密切关注。FPGA就是在这样的背景下诞生的,它在数字电路中的地位也越来越高,这样迅速的发展源于它的众多特点。交通等是保障交通道路畅通和安全的重要工具,而控制器是交通灯控制的主要部分,它可以通

2、过很多种方式来实现。在这许许多多的方法之中,使用FPGAF口VHD印言设计的交通灯控制器,比起其他的方法显得更加灵活、易于改动,并且它的设计周期性更加短。城市中的交通事故频繁发生,威胁着人们的生命健康和工作生活,交通阻塞问题在延迟出行时间的同时,还会造成更多的空气污染和噪声污染。在这种情况下,根据每个道路的实际情况来设置交通灯,使道路更加通畅,这对构建和谐畅通的城市交通有着十分重要的意义。学习文档 仅供参考第一章软件介绍QuartusII介绍本次毕业设计是基于FPG所的设计,FPG雇现场可编程门阵列,FPGA1发工具种类很多、智能化高、功能非常的强大。可编程QuartusR是一个为逻辑器件编程

3、提供编程环境的软件,它能够支持VHDLVerilogHDL语言的设计。在该软件环境下,设计者可以实现程序的编写、编译、仿真、图形设计、图形的仿真等许许多多的功能。在做交通灯控制器设计时选择的编程语言是VHD语言。在这里简单的介绍一下QuartusII的基本部分。图1-1-1是一幅启动界面的图片。在设计前需要对软件进行初步的了解,在图中已经明显的标出了每一部分的名称。图1-1-1启动界面开始设计前我们需要新建一个工程,首先要在启动界面上的菜单栏中找到File,单击它选择它下拉菜单中的“NewProjectWizard”时会出现图1-1-2所显示的对话框,把项目名称按照需要填好后单击Next,便会

4、进入图1-1-3显示的界面。Wkg i: 'he cikrg drectsiy I: Qi.r 心 SCI JHlU项目保存路径3K&r.«heexoffrisr呵呵M号项目名称-1V/lnaihihri*fi=iW肝尸"丁卜核g4PAm叩fmih&aojectTl'除口而招i?献户为"musiEHad:卜mahcbihwenht/rEmsin±10i&3£rihieI顶层实体的名称-JUse:Killing=T0日才弓日liriJ>F-,iL.联哨图1-1-2创建I程框flewProjectiza

5、rd-KhmiLy&DeviLceSetti_ugspageJbrkilr-rriiiduiiI-1r“i”.,-i川jTiiiuihinr<白Y8 hTd/tr当的攵般&岫-Jn tw右称2二aigc. ide/cer AJto de/ce setect-sd ty Ihe PifteF* 号a二fie dsr 'Aysiarble efefew1 ii:tsho-S' n !A/akbo de/cs htSpfr&d gade:" S adcrced dcvic-cj* 二二学习文档仅供参考日*ek 丹0工> Ftnifti |

6、 ®IBAialflDkdevices.N而IDPCorpv|LEmIdpnnpipL.AEHK10FiC296-t烟5761药H1FF1K10FC25C-2EF1K.10FC2!®3;芯片的型号EF1K10FI25&22EF1K10CFC200-1FFiKinnc?nfl£EFHC.10QC2DS-3EF1K1fllC1UU-1泡5761238811EPIK1IHCtoo-2肉E花12301V图1-1-3芯片选择框根据自己选择的实验设备选择好相应的芯片型号点击Next,进入下一个步骤当出现图1-1-5时,点击“Finish”后这个工程就建立好了区;NrP

7、iujfi.xmi1.1:EDATikiiil学it”ingM型维巴4ufSHisdheiECAled工-r1addEon#口Ih?0uabjtIIssllmnie-uwdwilhihspupd<luck|Iwu,|Fiiuchffi1:当图1-1-4仿真器选择框图1-1-5对话框建好工程后开始进行设计,首先在图1-1-6中单击file后选择new,接着会出现图1-1-7,在交通灯控制器的设计中我们选择的是VHDFile,当出现图1-1-8时就可以把编辑的程序敲入编辑器中。图1-1-6工程建好后的界面He区|SOPCBuilderaDesignFilesAHDLFileBlockDiag

8、ram/SchematicFdeEDlFFUeStaleMadiir*eFileSystenr/efilogHDLFifeTel3cHptFileVerfcgHDLFiltVHDLFile:MemoryFilesHexadecimal(Intel-FoEinait)FileMemoryhr礼iTi上城ionFie-Verification/DebuggingFilesIln-SystemiSourcesandProbesFileLogicAndzerInteffaceFileSignalTapIILogicAnaily?erFileVeclorWsveforinFite自OtheiFilesA

9、HDLIndudeFieBlockSymbolFiteChainDescnptionFileSynopiysDciigriCon-s-troantsFileTextFife媒|Cancel图1-1-7新建文件类型选择框D»ua9Ltlui|«a*L»l«11p4"物"ff如w,曲:if也于Lel|邙r«MFLe|lVUOk|»TaJJK1Mle*“ii3+,i1kBdfiBufHAfcfH.iiq'a-cv.iImipJSpSi*«hu-«/ildh,:i/Hi-卜3+411_«

10、;»)|«*.!«,h-v/IHHM位*11r#加总n图1-1-8程序编辑框在第一章中对QuartusR软件的使用做一个简单介绍,设计中的编译和仿真步骤在后面的几章中会做出介绍。第二章交通灯控制器设计的概述2.1 控制器设计描述2.1.1 设计任务要求设计交通灯控制器,分别在四个方向都安装红、黄、绿三种颜色的交通指示灯,红灯表示停止,绿灯表示通行,黄灯表示左转和直行将要禁止通行,四个方向分别还安装有倒计时的计时器。2.1.2 设计要求东西方向和南北方向各有组指示灯,红灯亮的时间为20S,黄灯亮的时间为5S,绿灯亮的时间为25S。三种灯亮灭的顺序为红灯、绿灯、黄灯。

11、第三章交通灯控制器的设计过程3.1 设计方案本设计课题用FPGA来实现智能交通灯的设计,本设计现要研究的问题主要有:智能交通灯的设计方案;各功能模块的设计与实现;如何用VHDL编写源程序以及进行系统仿真。3.1.1 框图设计交通灯控制器设计的框图中包括控制器、分频器、显示器、指示灯、译码器、位选器。当倒计时为零时,控制器改变交通灯的颜色,同时倒计时开始进入下一个倒计时。当有紧急情况出现的时候,四面的交通灯都会变为红灯,紧急情况的处理在设计中是依靠HOLDS来实现的。图3-1-1-1是交通灯设计的设计框图特殊情况显示器1东、西、南、北图3-1-1-1交通灯设计的设计框图系统的红、黄、绿灯显示的总

12、时间为50s,具体的亮灯时间和亮灯顺序看表3-1-1-2表3-1-1-2交通灯亮灯顺序与亮灯时间安排东四方向傲丁A录久凫20sA黄火凫2125s阳火凫2650s南北方向B红火凫B绿灯亮B黄灯凫加丁025s2645s4650s3.1.2工程流程图图3-1-2工程流程图3.1.3时序图的假象在时序图中,上升沿有效,即为“1”时灯亮,好比RedM上升沿“1”时人方向的红灯是亮的,相对的Green他为上升沿“1”B方向上绿灯是亮的。具体的时序显示见图3-2时序图RedAGreenAYellowARedBGreenBYeelowB图3-2时序图3.2 模块设计3.2.1 主控制器模块在QuartusII

13、按照1-1中的方法新建一个工程并新建一个文件项目后,在图1-1-8程序编辑框中将主控制器的程序输入后保存。接着需要对主控制器的程序进行编译,编译的步骤是点击Project-SetasTop将文件置顶,具体的参考图3-2-1-1置顶,接着点击图3-2-1-2的StartCompilation进行编译。*EMLif-二1.2'uLlu_WrU E* . IkUW J -L k|Ilct u rln1 *£|J 一/ UL 13F :WTmg-/ Tisrp 口二口*EU$rF i口产,orgirrauiHFCfflnmrr rrac irnuQa-Q-k. I 32匕tvhn a

14、ta /. Km Ip Fiat Idliafali# Fldg Aw- 11 Jvqi imt« Ttl',1". ' F- 0 7 - Err4"卜 E J,s£1 nf 卬 £e j '3-7 ,图3-2-1-1置顶图3-2-1-2编译在编译的过程中,出现了一些错误,在我编译主控制器的程序时,出现的错误是没有将CLOCK入PROCESS0,将程序中的错误一一改正后有时还会出现些Warning,有些Warning并不会影响后面的设计步骤。将上面的错面都改正后,就会显示图3-2-1-3所显示的对话框。下一步就是对程序进

15、行时序仿真,ftttrtwUUU二砧szJ* JMux励图 Lbfb1的" m T事由工MiikAlfl H.w fnrD«fnl.<. G*&ilFit Cl等1谑Tl1lltf屿均* 3CLb Lf< <i SynVlihi b VkliuMiaflll#TH.fti3i|; AmIttvzJTuki-r:;jxfSb Q Y«rug Li+Llii., lrM, P"L mhL Ent= "r Bm* T-wLLy Mig laBLX£ Mil i4liL£2 Eul -J? 13 Le 3&

16、#163;1 JD|4,口 Bixald ITEEJ Full Nee5CINlJCDIKn-LKiafluw"?lurd融 t *.nw Ui)39 F Iff? t H « )4 t3版 I $ ft)tnrulUb Ki Ki陋 u> Pl eLvfl BrDjCK" IM* r I vJAjHJI -'CiJ.WFWHL 3" wd MrlliJhBLh Ldi likfLfl”用”1£n: ,BLnihira. Else' ip L/“阳e c I dcIe 111rBefjaui.ee leauiec rDJn

17、miffllr aiu dejnTdME 定如"上,'置叩门上"仙t»mr 血 rot tejeet hf»flUoj .ttffr pm * 'iinLfi". 61岫如 0Ql3rj h 5.6N) finEr4!i (4i f emi al#9t weiMCr u的 窜1门 *Fl*W 6f*叼卜 r«ipB »K "FUSH- EPgfl" I V H»9 M£.ta: ch 1口工 “quTeu "1 诞&-上审"1 (dau pL

18、fa = "TUkl*". cloei aq - "CLXKTi la -D.2CID haJL>C*f4i Ml t-LikiiQ i.总理工事期的电通 Set Eql ilMi>l颦上 TWM theaiAlB. fee 看时H 同皿必 由 i feaxe 岷阳口。(jb1国皿 IpUKT-UB II ClHSlir TlUHg JllblTEFE TU PJETH W.。«-TTSE5r 号 nTHin?1#L&Ea: QuactAia XI Full CBopilata n w mrajjEuL. fl «x EHx

19、fr D runiarj图3-2-1-3编译成功学习文档仅供参考* 山CXiHaM:Mfcgj|典jfj£MMtnl&W«ftKgCb>alW*r2t)£<RGw<“/jj±rpr-Fii 11程序编译无措后在当前的工程下面新建一个文件,点击File出现图3-2-1-4新建文件对话框,选择图中显示蓝色的选项就会出现我们想要的界面,把鼠标移在图3-2-1-5时序仿真编辑框中左边的空白处,然后点击右键,选择INSERT>INSERTNODEDRBU眦项出现另一个对话框,选择对话框中的NODEINDE而就会产生新的对话框,点击L

20、IST是在左下角的空白处会出现很多的引脚,我们选中需要的引脚后确定后,我们需要的引脚就会出现在时序仿真编辑中左边的空白处,我们对输入信号进行设定,假设想让输出信号显示为十六进制数,我们可以选中输出信号然后点击鼠标的右键选择VALUE>COUNTVALUED现的对话框中可以选择自己需要显示的进制类型和进制数的定时等。对输出输入信号编辑完成后保存。在菜单工具栏中选择PROCESSINGSIMULATOORTOOL现图3-2-1-6的对话框,按照对话框显示的进行设定,点击QENERATUNCTIONAL-STARTREPOR砒会得出我彳门想要的图3-2-1-7主控制器时序仿真图。图3-2-1-

21、4新建文件对话框图3-2-1-5仿真编辑框图3-2-1-6仿真工具对话框M渣 E Tine'B<1Br75nrJjjpaHiH21YBehlavril即TmSrjiiEndRUDE*KMb$工口0405备统ObETA<>Tws】U1M.UHTdlttl缶旧3门M0 HB IWB)n10.0 u3U Q u40 U mbU.I mU.U?UL'U aiHu!1111illlu.TG uTiinrmrrnFi【injinir 明MTiK'imiimTiirniiimirnnn加川 rnirnnninTTiniminEiTTmnHmi111_|_. .rL翻

22、醐就蹦糕膜燃哪原黛螂耨懈糊螺螂麒粽袋濯牌蝌郴蝌瞬部 |糊麒翻碱麻麻IM蝌喇搬假糊懒滩姗战蝴据燃獭蝌图3-2-1-7主控制器的仿真图图3-2-1-7中显示的仿真结果和设计前预计的时序仿真图的结果是相符合的。时序图中的HOL罡保持信号,当HOLDF号为有效信号“1”时,则四个方向的路灯都是红灯亮,当HOL氏效时,四个方向的信号灯会正常工作。RESET号有效时,计数器的显示就会重新从零开始。图中四个方向的指示灯的亮灭顺序是正确的。图3-2-1-8主控制器的模块主控制器的时序仿真完成后,一个程序的设计、仿真就已经暂时结束了,下一步还要进行图形的设计,在总的图形设计前,需要先将每个程序都生成模块,为之后

23、的设计做好准备。点击File-CreateUpdade-CreateSymbolFilesforCurrentFile,完成这个操作过程后便会生成主控制器的模块,具体的看图3-2-1-8主控制器的模块。模块中主要有CLOCKRESETHOLDNUMANUMB六个指示灯的输出。3.2.2 分频器模块设计中需要用到1秒钟的脉冲,分频这个模块就是为了改变频率脉冲波,使20Mhz的频率最终变为1hz的脉冲,这样就可以得到一个周期是1秒钟的脉冲,分频器的程序见附录。具体的程序编译过程和仿真的过程和主控制模块中谈到的过程是相同的照上面谈的步骤完成后就会得到图3-2-2-1分频模块的时序仿真图。图3-2-2

24、-1分频模块的仿真图图3-2-2-2分频模块分频的程序经过编译和时序仿真图后生成的模块是图3-2-2-2分频模块所显示的20mhz勺脉冲通过第一模块时变为10hz,再经过第二个模块后变成1hz的脉冲。3.2.3提取显示值模块提取显示值的功能是在10hz的速度下提取显示值,得到的是显示时间值的十位和个位。图3-2-3-1提取显示值的时序仿真图中NUMI是主控制器白输出值,NUMANUMB个输出端口是要显示的值的高位和低位。高位的最大输出值是为二的四位二进制数,低位的最大输出值是为九的四位二进制数。图3-2-3-2是提取显示值生成的模块。提取显示值的程序见文章的附录。Jpr Tihf Baiv&l

25、t; 3 <iTu inm: 宝 oi芋34 口底O itCLOCKB周in目RMMa1mWi2 加工门-flbDCl J 臼HIR-rratjl unrsl -run:-vn .17.Ki»43便僧InetvstEM50 :iu? 。辛小 .! a; vq a go ?= 加gp=1毋.w Ufa.3:im 口 w w“即 曜:p晒 阐ji或 胃口 3" 中赃 撤独 联口 口rn哑ririnmmnmrLmmrmuimmjwjmmrinnMiMJorwuwnw:FE行b:T荷行1向门仃门EW而"nF0F:"5rmE迫正 门rJE?Gf下”-f町 切

26、TY万:HJ AI'LI:二二工口工口_J明区-亦吃丁正更nn屋Ef图3-2-3-1提取显示值的仿真图仿真图中,NUMB从0开始计数,当计到9时NUMA为1,NUMIB新从0开始计数,当计到9时NUMA计为2,NUMB次从0开始计数,当NUMIA高位计数到2时,NUMB的最大值输出为5。:彳rfQxsf""""ii:,:=g.-一:伊J一CLOCKNUMIH4.0MUMAp.0JMUMB3.D:7T多乡“夕5in与t?-5图3-2-3-2提取显示值的模块3.2.4 动态扫描模块LEEM示的工作原理是利用人类的视觉特性。七段LEtM字显示块是由“a

27、、b、c、d、e、f、g、dp”这几段组成的,LED勺显示原理就是要看这八段中的哪几段是亮的,那几段是灭的。每段管子不是同时被点亮的并且点亮的时间都是极短的,又因为变化的时间很短暂,亮灭的过程中留下的余光会给人一种错觉,人的眼睛觉得是一组静态的显示灯。具体的动态扫描的程序请看正文后的附录。图3-2-4-1是动态扫描的时序仿真图,图3-2-4-2是动态扫描生成的模块图3-2-4-1动态扫描的时序仿真图图3-2-4-2动态扫描的模块3.2.5 位选器模块位选程序的输入和编译完成后,对程序进行仿真,仿真的步骤依然和上面谈到的一样,下面两幅图一张是位选程序的时序仿真图,另一幅是位选程序生成的模块见图3

28、-2-5-1和图3-2-5-2。图3-2-5-1位选时序仿真图图3-2-5-2位选模块3.2.6 译码器模块译码器是将要显示的数字转换成驱动七段数码管的信号,程序中的NUMT动态扫描模块相连,将四位二进制数转换为八位二进制数,再通过LED8俞出。译码器的程序编辑和编译步骤也和前面所说的相同。当译码器编译成功后进行仿真,仿真的结果见图3-2-6-1译码器的时序仿真。像时序仿真图中显示的一样,当NUM&入“0000”时LED独会输出“00111111”显示数字“0",当NUMl入“0001”时LED8俞出“00000110'显示数字“1”。图3-2-6-2是译码器程序生成

29、的模块。图3-2-6-1译码器的时序仿真图图3-2-6-2译码器模块3.3 图形设计3.3.1 图形设计的生成将每个程序都编译、仿真完成后,下一步就是要设计图形仿真,在进行图形的时序仿真前,要先进行图形的编辑和编译。要建立一个新工程和图形编辑的文件的的过程是点击File-Ne2BlockDiagram/SchematicFile.见图3-3-1-1HewSDPCBuilderSystemG-DesignFieSAHDLFils上Lek口iagrnr/:ghe陆引逆Fib;EDIFFiteS启心MachineFileS网gM箪加gHDLFiteTdScri)tFileVerilogHDLFIsV

30、HDLFile-MeuicnyFilesHexadecim&l0ntel-FonnatFileMemoryIMimSz茁Fie-Vepffication/DebuggingFilesIrvSy总ternSources白ndProbesFileLogicAnalyzerInterfaceFileScgnalTapIILc.gAnal7eerFileVectorWaveformFile!-OtherFilesAHDLIncludeFieGleekSyfntalFifeChahDescriptionFie5卯ope再DesignCorwtrainKFileT&KtFileOK图3-3

31、-1-1新建一个文件的对话框新建了一个文件以后,就要开始编辑图形了,要把每一个模块都找出来,选择Assignment-Settings后出现图3-3-1-2的对话框,在左边找到libraries,单击它以后会出现图3-3-1-2右边显示的内容,再点击三处可以找到之前生成的那些模块所在的文件夹,把它们一次性添加在libraries中,这样可以为后面图形设计做好准备,全部添加完成后点击“OK,这样在元件库中就可以找到生成的那些模块了。选择Edit-InsertSymbol后出现图3-3-1-3的对话框,在这里就可以显示出上面生成的模块和软件中原本存在的元器件,按照设计中的需要选出模块和元件。

32、63;LNUn”口孙*Dtviw-pvrs.ng5Stinesa-nd匚口口tier正M心上占季已Tfimpnroijre二QrmpidbririPiocfiSAlrrpj-EarbImrsgEstiitaEeInicrerierEalComtilationPlrysitalSiFWliEJlEDulirrv/aiM-:EDAl*olS6*|igiiEFyBynrhiBShnulaiionIuiihu口口匕"/金ru4n<dVviific.«buPPhyairnlGyrwh后”5BoandL&/d- *S.hisSerr-Q:=VHDLIhimIM舸ibjHD

33、LnpijlPelatJlP's汽irH-iini-er当EMng土一Tinnfi::S由Hips7innjOuiviT4nrgAr4b£«r厂ClirfcicTfihQAVSS-SsttrrK匚HabyTmrgAridl?z?rH<&iEbloDesIgfiA-kiSign.iFapl|LflgrA件QynrLode1片讪静IrteifKs- SinJMorzethmar;5mulaliDnVevihEdboii占rvulailan0wpiutFi里。UK口 cgI图 3-3-1-2 libraries 对话框SymbolILtfaries:DU亡亡

34、亡亡之s E E E E E Ef/quartusii喂电显示值3/ eVqyartuJi的选幅由/ e7quartjs>i学三描幅块5, t /qMaFtisii 身频 C 2) / f/quartisn 腐制 VG. / flHere/S0/i3U3Etu5 filibi!ariei/Naoe:''艮印&ahn$er rrode一 .nseri smbo at blockh MegaV. isa-d Mug-In四三里Wizard Fkjg-ln Managei.CarcePftriPlivPnwr占占W"SerHrgSEN学习文档仅供参考图3-3-

35、1-3元件库对话框图3-3-1-4编译对话框图3-3-1-4中标明了每个快捷工具的用途,选择合适的工具把选择好的模块和元件连接起来。然后将连接好的图形文件保存以后进行编译。图3-3-2-1图形设计的时序仿真图图形设计编译完成以后按照程序的时序仿真的过程对图形设计进行时序仿真,给CLK5当的信号,并且要给输入值定义正确的值,开始仿真后会出现图3-3-2-1就是编译后的时序仿真图。图形设计的时序仿真图中主要显示的是红、黄、绿灯之间的亮灭关系和LED配示的数值变化过程,还有位选输出端的变化,时序图中可以很容易看出当计时数计数到某一个值的时候东西方向和南北方向是什么颜色的指示灯在工作。当A各的绿灯亮时,B各的红火T亮,A各的绿灯亮20秒后,A各的黄灯亮5秒由此可以很容易的看出指示灯的亮灭是正确的。3.4管脚的锁定管脚锁定是为了为硬件仿真做准备。当所有的设计都完成后,接着要对图形设计进行管脚的锁定。先确定设计时确定的器件类型和实际的硬件类型是不是一样,选择Assignments-Device,在出现的对话框中认真确定选择的器件是不是正确的。接下来选择Assignments-Pins进入图3-4-1中,用鼠标双击Location就可以设定管脚了。图3-4-2是在这次毕业设计中使用到的芯片ACEX1K-EP1K100QC208圄3

温馨提示

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

评论

0/150

提交评论