您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 交通运输 > 88基于PLD的交通灯控制电路的设计
第1页共26页淮安信息职业技术学院毕业设计(论文)任务书2013级电子工程学院院(系)电子信息工程专业毕业设计(论文)题目:基于PLD的交通灯控制器的设计学生姓名:陈睿班级:118131学号:41起迄日期:2015.11~2016.6实践地点:无锡高德电子有限公司指导教师:华大龙顾问教师:无锡高德教研室主任:冯成龙院(系)负责人:庄海军第2页共26页引言交通灯控制器件在我们的日常生活中有着很重要的意义。由一条主干道和一条支干道的汇合点形成十字交叉路口,为确保车辆安全、迅速地通行,在交叉路口的每个入口处设置了红、绿、黄三色信号灯。红灯亮禁止通行;绿灯亮允许通行;黄灯亮则给行驶中的车辆有时间停靠在禁行线外。实现红、绿灯的自动指挥对城市交通管理现代化有着重要的意义。本次设计是采用可编程逻辑器件(PLD)为主控制器芯片,通过QuartusII综合性PLD开发平台,用VerilogHDL硬件描述语言完成控制器电路的程序设计和仿真验证,然后将设计结果编程下载到PLD芯片中,通过PLD的I/O口输出信号,控制外围电路连接以实现对交通灯的控制。在该设计的制作过程中QuartusII综合性PLD开发平台和VerilogHDL硬件描述语言必不可少的工具。设计的各个模块功能都要运用到VerilogHDL硬件描述语言、QuartusII综合性PLD开发平台对其进行编写和模拟仿真。并将所写程序下载至EDA6000实验开发系统上,对各方面功能进行模拟硬件电路验证实现。在对程序验证正确,并论证其现实可行后,还需要运用电路知识和PCB设计软件Protel99SE制作电路板。下面简要介绍可编程逻辑器件(PLD)、QuartusII综合性PLD开发平台、VerilogHDL硬件描述语言和EDA6000实验开发系统。可编程逻辑器件(PLD)。PLD是可编程逻辑器件(ProgramableLogicDevice)的简称。是电子设计领域中最具活力和发展前途的一项技术,它的影响丝毫不亚于70年代单片机的发明和使用。PLD能完成任何数字器件的功能,上至高性能CPU,下至简单的74电路,都可以用PLD来实现。PLD如同一张白纸或是一堆积木,工程师可以通过传统的原理图输入法,或是硬件描述语言自由的设计一个数字系统。通过软件仿真,我们可以事先验证设计的正确性。在PCB完成以后,还可以利用PLD的在线修改能力,随时修改设计而不必改动硬件电路。使用PLD来开发数字电路,可以大大缩短设计时间,减少PCB面积,提高系统的可靠性。PLD的这些优点使得PLD技术在90年代以后得到飞速的发展,同时也大大推动了EDA软件和硬件描述语言(HDL)的进步。随着科学的发展,社会的进步,数字集成电路本身在不断地进行更新换代。它由早期的电子管、晶体管、小中规模集成电路、发展到超大规模集成电路(VLSIC,几万门以上)以及许多具有特定功能的专用集成电路。但是,随着微电子技术的发展,设计与制造集成电路的任务已不完全由半导体厂商来独立承担。系统设计师们更愿意自己设计专用集成电路(ASIC)芯片,而且希望ASIC的设计周期尽可能短,最好是在实验室里就能设计出合适的ASIC芯片,并且立即投入实际应用之中,因而出现了现场可编程逻辑器件(FPLD),其中应用最广泛的当属现场可编程门阵列(FPGA)和复杂可编程逻辑器件(CPLD)。本次设计所运用到的EPM7128SLC84-15便是复杂可编程逻辑器件(CPLD)的一个代表。第3页共26页虽然名字和复杂程度各不相同,但是一个PLD器件一般由三大部分组成,其结构如图1所示。(1)、一个二维的逻辑块阵列,构成了PLD器件的逻辑组成核心。(2)、输入/输出块。(3)、连接逻辑块的互连资源。连线资源:由各种长度的连线线段组成,其中也有一些可编程的连接开关,它们用于逻辑块之间、逻辑块与输入/输出块之间的连接。图1典型的PLD框图QuartusII综合性PLD开发平台。QuartusII是Altera公司的综合性PLD开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(AlteraHardwareDescriptionLanguage)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。QuartusII可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点,并支持MAX7000/MAX3000等乘积项器件,为目前常用的EDA开发软件。此外由于QuartusII简单易学功能强大,所以在许多大中院校中被选为EDA课程学习的配套软件。也是广大师生在学习EDA过程中运用得最多的PLD开发软件。VerilogHDL硬件描述语言。VerilogHDL是一种硬件描述语言(HDL:HardwareDiscriptionLanguage),是一种以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。QuartusII开发软件中支持VHDL、VerilogHDL等硬件描述语言。VerilogHDL就是在用途最广泛的C语言的基础上发展起来的一种件描述语言,其最大特点就是易学易用,如果有C语言的编程经验,可以在一个较短的时间内很快的学习和掌握。由于HDL语言本身是专门面向硬件与系统设计的,这样的安排可以使学习者同时获得设计实际电路第4页共26页的经验。与之相比,VHDL的学习要困难一些。但VerilogHDL较自由的语法,也容易造成初学者犯一些错误,这一点要注意。EDA6000实验开发系统。EDA6000是南京伟福公司结合多年PLD、EDA、DSP及SOPC开发经验,分析国内外多种EDA实验开发系统,取长补短,研制出的EDA实验开发系统。该系统的优点很多,这里只介绍其中最重要,也是在PLD设计过程中运用得最多的两个功能。(1)多芯片。支持XCS05/10、XC9572/108、XCV200、FLEX10K10、MAX7128S等多种系列FPGA/EPLD芯片。本次设计用到的是MAX7128S芯片。(2)软、硬件结合。EDA6000实验系统采用软、硬件结合技术,可以在PC机的软件(伟福6000)上定义实验所要连线,下载到实验仪上即可。实验仪运行的结果可以在软件上观察到,如果想观察高速信号,就用逻辑分析仪采样,传上来进行分析。软件可以将RAM的数据下载到实验仪上,供实验仪做VGA、DAC等数据输出类实验。也可将ADC采样的到数据上载到PC机的软件中,供学生分析、观察、保存。由于这个优点,为程序的模拟硬件电路实现提供了很大的方便。1方案论证根据毕业设计任务书的要求,本次设计必须满足以下要求:(1)用PLD芯片实现交通灯控制电路的设计。(2)能设置道路东西和南北两侧通行和禁止的倒计时时间,最大设置时间为99秒,最小设置时间为1秒,红、绿、黄灯显示的次序符合实际交通道路控制的要求。(3)在EDA实验开发系统上完成电路的设计与验证后,根据设计电路的输入和输出设备的需要设计并制作PCB板,完成基于PLD的交通灯控制电路的设计。1.1整体设计构想在查阅资料后可以得知,交通灯控制系统的设计平台有很多种。如:有基于单片机的交通灯,有基于FPGA的也有基于PLD的。在众多设计中,基于单片机的交通灯控制系统是最具有实用价值的。目前交通信号灯,大部分都是用单片机控制,加上无线通信来实现的。基于PLD的交通灯控制系统的设计题是在PLD学习中一个最经典,最典型的题目,尤其是定时器和计数器那部分。通过基于PLD的交通灯控制电路设计,让制作者熟悉掌握EDA技术,并能够运用硬件描述语言对PLD器件进行程序编写,通过对PLD芯片的选择和硬件电路实现,让设计者能够基本掌握该项技术。根据第(2)项的要求,要能够设置道路东西和南北两侧通行和禁止的倒计时时间,最大设置时间为99秒,最小设置时间为1秒,所以要在路口要放置数码管,用以倒计时的显示。还有红、绿、黄灯显示的次序要符合实际交通道路控制的要求,根据对现实中的十字路口交通灯的观察,发现交通灯的形式虽然有多种多样,但是基本的结构是不变第5页共26页的,其主要工作状态有以下几种:①状态0:东西方向绿灯亮,南北方向红灯亮,用以东西方向的车辆通行。②状态1:东西方向黄灯亮,用于给予东西方向通行的车辆以准备停止的时间。③状态2:南北方向绿灯亮,东西方向红灯亮,用以南北方向的车辆通行。④状态3:南北方向黄灯亮,用于告给予南北方向通行的车辆以准备停止的时间。此四种状态反复轮回运行便构成了一个十字路口交通灯。图2就是这四种状态的示意图。图2十字路口交通灯示意图完成整体设计构想以后,在QuartusII综合性PLD开发平台上,用VerilogHDL硬件描述语言编写各设计模块的程序,然后在EDA6000实验箱上验证可以实现交通灯控制器的功能,最后制作PCB板,实现电路整体设计方案。1.2程序设计方案根据任务书的要求,该交通灯控制系统主要有这几个功能(1)、能够产生倒计时,可以设置倒计时的大小(即倒计时起始时间),并能显示出来。(2)、能够产生1秒的时钟。(3)、能够控制红、黄、绿灯的显示。根据以上三点,本次设计大体可以分为四大部分:(1)、分频电路。将外部晶振分频用于产生1秒的时钟信号。(2)、中央控制电路。用于控制东西、南北方向信号灯的亮灭和与之配套的倒计时(即倒计时起始时间)。第6页共26页(3)、减法计数器。用于倒计时的产生。(4)、译码显示电路。用于倒计时的显示。根据以上四点,可以设计并绘制出原理图,如图3所示。图3交通灯控制系统原理图2程序设计根据以上流程,用VerilogHDL硬件描述语言完成对各部分进行编写,在编译通过后完成的顶层文件如图4所示:图1交通灯控制系统顶层文件在图4中,newclk为分频电路,conter为中央控制电路,sub10为减法计数器,ymq为译码显示电路。下面将对各部分电路一一解释。第7页共26页2.1分频电路分频电路用于完成外部石英晶体振荡器输出频率的分频。本电路设计中使用的石英晶体振荡器的输出频率为4096kHZ,经过4096000分频后得到周期为1s的时钟。分频电路的VerilogHDL程序如下:modulenewclk(clk,newclk);inputclk;outputnewclk;regnewclk;reg[24:0]cnter;always@(posedgeclk)beginif(cnter4096000-1)cnter=cnter+1;elsecnter=0;if(cnter==4096000-1)newclk=1;elsenewclk=0;endendmodule在程序中,该分频器的输入端口为clk,接于外部晶振的输出。输出端口newclk,用于输出4096000分频后的1Hz(即1秒时钟信号)信号。完成分频器程序的编写后,通过编译确保程序无误,然后点击File菜单下的Create/update—CreatSymbolFilesforcurrentFile,成分频器的元件符号,用于顶层文件的连接。生成元器件如图5所示。后面几个模块的编译和元件符号的生成都是如此操作,故不再重复说明。2.2减法计数器减法计数器用于交通灯控制电路的倒计时,倒计时的最大时间为99秒,因此设计一个十进制减法计数器,然后用两片十进制减法计数器构成两位十进制减法计数器电路。十进制减法计数器的VerilogHDL程序如下:图5分频器的元件符号第8页共26页modulesub10(clk,lod,a,q,cout);inputclk,lod;input[3:0]a;output[3:0]q;outputcout;reg[3:0]q;regcout;always@(posedgeclkornegedgelod)beginif(~lod)beginq=a;cout=1;endelseif(q0)beginq=q-1;if(q==0)cout
本文标题:88基于PLD的交通灯控制电路的设计
链接地址:https://www.777doc.com/doc-4201136 .html