资源描述
基于FPGA的交通灯设计摘要交通信号指示灯是城市中交通指挥疏导中不可缺少的智能工具。以前用到的大多数交通灯的控制系统都是采用单片机或者PLC进行设计开发的。本文将采用VHDL硬件描述语言来论述各模块代码,并在Quartus II开发环境下进行编译,在硬件板子上进行调试和演示。在计算机上运行成功并生产生成顶层文件后下载在FPGA器件EP2C5T144开发板子上进行验证。通过调试结果显示,本文的设计完全可以满足现在交通指挥的需求,包括时间提示显示、相关状态控制和主、支干道的红、黄、绿灯交替显示功能。本文在交通灯控制的基础上,对硬件描述语言以及其设计流程做了简单介绍。EDA工具是一种十分重要的VHDL语言开发工具,它是一款能够对设计过程中任何一个环节或者阶段进行计算机模拟的强大工具,因而,该工具能够确保准确的设计,减少设计周期,大大降低成本。基于FPGA的交通灯控制器具有较高的可靠性、擦写迅速、高效的运算能力、故障少、设计简单、质量轻以及体积不大等优势。本次设计将采用EP2C5T144最小系统开发板,因为它的体积不大,可以轻松嵌入到外围电路中,完全可以快速进行逻辑判断,数据计算以及系统运算等。本文采用QuartusII软件进行开发,运用自顶向下的新型设计方法。关键词:自动、逻辑、交通灯、EDA、FPGA AbstractTraffic light controller plays a very important role in the regulation of urban traffic. The traditional traffic light controller is based on single-chip microcomputer or PLC. This paper introduces a scheme based on FPGA technology and II Quartus development platform to realize the intersection traffic light controller. Using VHDL hardware description language description of the module program, and in the II Quartus environment to compile, simulate, generate the top level files downloaded in the FPGA device EPF10K10LC84 FLEX for verification. The verification results show that the basic design to achieve the control of traffic light controller, including the countdown time display function and main function, the special state control, a road of red, yellow, and green light display function alternately, indicating that the design scheme is correct. In this paper, the design process of the traffic light controller, and briefly introduces the hardware description bright prospect in the digital system design of VHDL language structure model and process design, VHDL design advantages and the language and an important position.EDA tools for electronic design personnel is extremely important, it can in each stage of electronic design, the level of computer simulation and verification, to ensure the design accuracy and can shorten the design cycle and reduce design cost. Can realize the automatic control of traffic lights crossroads traffic lights. Based on the FPGA design of traffic lights system has high reliability, real-time flash, high operation speed, the failure rate is low, the circuit is simple, and the volume is small. This design uses Altera cycloneii series ep2c5t144 chip as the core of the minimum system, it can easily embed into the actual traffic lights application system, can realize the function of the simple logic control, data acquisition, signal processing and mathematical computing; using QuartusII software as a development platform; using top-down designKeywords: automatic, logic, traffic lights, EDA, FPGA-27-目录摘要IAbstractII目录III前言11 绪论21.1论文研究背景及意义21.2 FPGA开发的历史及简介31.3 EP2C5T144最小系统介绍41.4 本文研究的主要内容52 硬件设计62.1硬件开发环境介绍62.2硬件开发环境平台搭建62.3原理图设计113 软件设计123.1软件开发平台介绍123.2软件开发平台搭建133.3程序设计143.3.1 程序设计分析153.3.2 程序设计中需要注意的问题194 实物模型展示204.1 实物模型介绍204.2 实物模型演示方法214.2 仿真说明23总结25参考文献26致谢27附件1 部分程序源代码28前言交通灯控制指挥系统,其本质就是规范和管理行人和车辆穿越路口的行为,从确保人和车辆能够安全、快速、合理和有效通过。在现在,交通灯控制器安装在各个路口上,大大提高了路口行人和车辆的通行安全性和规范性,减少了交通事故的发生几率。目前实现交通灯控制有很多方案,比如采用PLC1(可编程序控制器)、标准逻辑器件、51单片机2等方案来进行开发。若采用单片机平台进行开发设计,其大致电路框架包括基于单片机的主控电路、电源电路、显示电路和无线收发控制电路四个部分组成。控制电路的芯片为51单片机或者STC单片机都可以。同时需要一个3.3V或者5.5CV的DCDC,数码管显示电路和无线收发控制电路是由数据发射模块和编码芯片两部分组成。电路设计相对复杂不说,而且还需要进行软件的设计。虽然基于单片机的交通灯控制系统具有运行稳定,功能较多,灵活性比较好等优势,但是任然存在许多问题。特别是电路的修改比较花费时间,设计比较繁琐,在一定程度下增加了设计成本和维护周期。可编程控制器PLC的优势在于是可靠性较好和稳定性较高,但是其也有诸多问题。PLC是一个封闭的结构,所以不同PLC控制器的兼容性较差,而且不同的PLC在程序设计上也存在着差异。这就意味着,一旦选择一种PLC之后,就只能按照该型号PLC的相关方式进行编编程,而且需要学习相关的设计语言规律,这些问题大大的的限制了PLC的灵活性和多元性。与前两者相比,基于FPGA的开发方案,不仅具有很好灵活性,稳定性,而且编程语言是完全统一性,而且更简单和稳定。因而,此次交通灯的控制器开发设计采用基于VHDL语言,FPGA的方式进行设计,不仅经济节约和而且更加可靠稳定。其开发设计也相对更加简单,故障维护也比较容易,更加适合目前城市交通指挥的需求。1 绪论1.1论文研究背景及意义现在城市发展迅速,然而城市的交通问题却越来越严重。城市的交通道路交通压力越来越大,经常会有交通拥堵,甚至是交通事故发生,交通疏导不及时也是造成这些问题重要原因。如今,全国几乎所有城市或多或少的都存在这交通拥堵,交通混乱,甚至造成严重的交通事故,这给人们的出行以及车辆行驶带来了极大的安全隐患,甚至造成生命和财产的重大损失。那么如何能够快速指挥和疏导交通,规范和约束行人和车辆的行为,构建一个合理规范的交通秩序,是目前的当务之急。经研究调查发现,城市中拥堵的主要因素是由当前城市交通指挥制度以及管理机制等问题不完善造成的,现今城市正准备打造一个智慧城市,其中的包含智慧交通,而智能交通正是城市道路上最重要的一块。本设计采用了FPGA方案设计则正好大大满足了智慧交通的理念。它将实现城市的每个路口运用交通控制系统从而控制整个城市的交通,包括系统的改进,道路的疏通,以及各路口的指挥。尤其是在十字路口,它将把现代化技术融入其中,打造成一个智慧的交通路口。为了确保路口行人与车辆能够合理、有序、安全和快速的通过相关区域,采用交通信号灯来进行指挥和疏导交通情况,将大大降低事故发生的几率以及确保交通通畅,人车有序通过。随着生活水平的提高,人们对生活质量的要求不断增加,汽车的数量还在不断增加,研究和设计现代智能交通灯具有很好实际意义。现今EDA的技术发展越来越快,人们利用EAD技术越来越方便于电路。利用EDA技术和FPGA方法来实现交通灯的设计,非常的复合目前的需求,具有设计周期短,效果稳定,维护方便以及运用简单等诸多特点。这种设计方案也是符合目前电子技术发展的方向的,是比较合理。1.2 FPGA开发的历史及简介FPGA或CPLD芯片都是ASIC相关芯片系列中比较特殊的一种,其不仅具有ASIC芯片自身的特点之外,还具有如下的独特的特点:随着VLSI(超大集成电路)工艺的不断提高,现能将几毫米见方的硅片上集成上万至百万晶体管,无数个晶体管排列在一起,这样做的话既能大大的缩小空间,降低成本,而且还能保持原有的功能。FPGA/CPLD芯片的所含的规模也越来越大,其中,光是单片逻辑门数就已经达上百万门。因此,它能够所实现的功能也越来越强,能在上面完成系统集成,即SOC(片上系统)。况且,每个FPGA/CPLD芯片都有质量保证,因为每块芯片在出厂之前都做过测试,测试结果达标才能投入市场,因此,设计人员完全不需要承担任何风险,设计人员只需要完成自己的设计,通过软硬件完成设计的最终步骤。所以,FPGA/CPLD的资金投入就少,减少了潜在的花费。假如使用FPGA的设计方案,用户可以随意的擦数以及编程,需要实现什么样的功能完全由用户自己决定,这样用户就能完成在不懂任何电路的情况下实现交通灯的多种功能。FPGA/CPLD芯片中还包含多种功能,比如输入工具,这样大大方便了用户将程序输入的步骤,还有仿真工具,以及版图设计工具等多种功能,多种功能的集合,大大的方便了设计人员,有了这些功能,设计人员就能够快速的完成电路及程序的输入以及调试。Iverson于1962年的时候提出了硬件描述语言(VHDL),详细的讲解了语言的基本内容和基本结构,以及利用该语言在各种层次上对数字系统的建模方法,从此之后,各国出现了多种硬件描述语言,比如美国的DATA I/O公司的ABEL-HDL、 Verilog公司开发的Verilog HDL以及日本电子工业振兴协会开发的UDL/I语言。但是由于这些硬件描述语言的与其公司的硬件产品密切相关,本身就是为其公司设计而成,不能推广开来,而且语法杂乱,因此造成了信息交流不便以及设备维护的种种困难。但自从1987年VHDL(超高速硬件描述语言)被定为IEEE标准(IEEE-STD-1076)以来,VHDL已被工业界广泛认可,并在工业界推广开来,越来越多的人使用VHDL语言,VHDL已成为数字系统设计和存档的重要工具,极大的提高了数字系统的设计水平和效率,在此方面大大的影响了工业界,给工业界带来了无法估计的价值。VHDL的出现,不仅在工业界取得了重大作用,而且在大规模的数字电路系统领域发挥的很大的作用,比如在逻辑领域这块,相比于传统的方法,利用VHDL将更加便捷,因此,VHDL将成为EDA领域的重要组成部分。 VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,分成外部(或称可视部分,及端口)和内部(或称不可视部分),这样分开之后,两者分开处理,既涉及了实体的内部功能,又能完成算法部分,大大的提高了处理水平。当对一个设计实体定义了外部界面后,在处理外部界面时,一旦其内部开发完成后,内部的文件就能够被其他设计使用,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。1.3 EP2C5T144最小系统介绍本开发板采用的主芯片FPGA型号为Altera公司最新的Cyclone IV系列中的EP2C5T144,等效门数大约为50万门(是Cyclone EP1C3(10万门)的5倍)。开发板的电源系统需要的电源大小是5V直流电源,通过板上的LDO电源系统出来,然后给FPGA系统的各个元件提供所需的各种电压,并且可以向外输出5V、3.3V两种电压。电源系统出来后则是板上配的EPCS4配置芯片,JTAG和AS两种下载端口,方便下载程序,以及50MHz有源晶振,给系统提供时钟信号。FPGA的所有引脚均是通过两个40Pin的2.54mm标准排针接口引出,引脚的大小符合国际标准,并与国际流行的DE2开发板上的扩展接口管脚兼容,因此假如有先有的扩展卡,都可以拿来使用。系统内设有8个LED发光二极管,其作用是用来做I/O的输出显示。除此之外,系统内还有4个按键开关、8位数字拨码开关组成的I/O输入,其作用是用来控制系统的功能。PCB板是采用四层板设计,板子的性能以及稳定性相当可靠。通过扩展接口可以将同样的多块FPGA板以层叠的形式集成在一起简单扩充系统的容量,相当于多块硬盘结合成一块大的硬盘,这样不仅扩大了容量,还能省去不少空间。除此之外,PCB板形成了多Nios嵌入式并行处理器的小型实验系统,可以驳接SRAM、SDARM、七段LED、LCD、Video/Audio、AD/DA等设备和其他各种形式的用户外设接口板。该开发板主要是为学习FPGA/HDL/嵌入式Nios等数字逻辑的学生和爱好者提供一种简单廉价的实验平台。开发板要求的输入电压是5V。通过U2:LM1085-3.3的LDO芯片出来将会到3.3V的电压。再通过AMS1117-1.2的LDO芯片,通过AMS1117-2.5的LDO芯片U4产生FPGA Cyclone IV芯片内部PLL所需要的独立电源。其中有3.3V电压是给FPGA的IO提供的。也就是说本设计采用了简化的FPGA IO引脚电平是+3.3V,而不提供给用户 Cyclone IV 其它不同电平标准的 I/O电平选择方式。 +1.2V电压是提供给FPGA内核的工作电压,+2.5V是FPGA内部PLL的专用工作电压。1.2V电压的纯净程度要求比较高,故采用钽电容滤波。1.4 本文研究的主要内容交通灯控制电路是的作用主要是用于城市的交通疏通,每当有大量车辆出入造成堵塞的时候,交通灯控制电路就能体现它的用处了。交通信号灯在人与车辆交替行驶时,能实现红灯、黄灯、绿灯的自动指挥,更好的实现现代化交通管理。交通灯指示告诉我们,绿灯亮时,准许车辆通行,但转弯的车辆不得妨碍被放行的直行车辆、行人通行;黄灯亮时,已越过停止线的车辆可以继续通行;红灯亮时,禁止车辆通行。在每个城乡的十字路口,一般都在每条道路上各有一组红、黄、绿交通信号灯,这样的用意就是在于保证交通秩序和行人安全。在未设置信号灯的路口,车辆和行人应当按照机动车信号灯的表示通行。交通灯控制电路将会自动控制十字路口的交通灯的切换,安全的指挥各种车辆以及行人通过,真正的实现城乡交通的自能化管理。一个十字路口的交通控制器,不光是交通灯的切换,更重要的是将十字路口的四个方向合理运转,方向有东南西北,东西方向的红绿灯状态一样,南北方向的红绿灯状态一样,每个方向上,有四盏灯,分别是左转灯、红灯、绿灯和黄灯。左拐灯亮表示左转车辆可以通行;红灯亮表示左转和直行车辆禁行;绿灯亮表示直行车辆和右转的车辆可以通行;黄灯亮表示左转和直行的车辆即将禁行。本论文则简要的介绍了FPGA芯片的特点以及设计意义,本系统是以QuartusII软件为开发平台,然后通过VHDL硬件描述语言来编写程序,以及设计原理图以输入方式来设计交通灯。FPGA芯片是一款功能非常强大,可多次编程及擦除的逻辑芯片,本系统采用了FPGA设计ASIC电路,用户将不需要投片生产,基于FPGA交通灯控制器设计就能实现相应的功能。FPGA的内部有着丰富的触发器和I/O引脚。FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。FPGA的开发,是ASIC电路中风险最小、开发费用最低、设计周期最短的器件之一。FPGA采用高速的CHMOS工艺,功耗低,性能强,可直接与CMOS和TTL电平兼容。因此用FPGA完成交通灯的设计不光要合理,更注重的是芯片的选用。本论文通过设计交通安全指挥灯,从而来形象的指挥行人和车辆的安全通行。在十字路口处,是发生危险的重点去,因此在十字路口的东西南北四个方向必须合理安排。东西方向的交通信号灯状态保持一致,南北方向的交通信号灯状态也保持一致。其中每个方向有左转灯、红灯、绿灯和黄灯,共四盏。左转灯亮说明车辆可以左转通行;红灯亮说明禁止车辆直行和左转;绿灯亮说明允许车辆直行和右转;黄灯亮说明即将禁止车辆直行和左转。在每个方向上均设有一个倒计时显示器,以显示禁止或允许通行的倒计时间。2 硬件设计2.1硬件开发环境介 在本次毕业设计中,笔者的硬件开发环境是AD14,即Altium Designer 14硬件开发环境。AD14是Altium Designer 是原Protel软件开发商Altium公司推出的一体化的电子产品开发系统,主要运行在Windows操作系统。该软件全面集成了原理图设计、原件绘制、原件封装绘制、PCB板图绘制以及电气仿真等等功能,为开发者提供一个优秀的开发环境和灵活的运用平台,目前最高版本为Altium Designer 15.0.7 。Altium Designer 开发工具全面包括继承包括Protel 99SE、Protel DXP在内的以前相关版本的相关功能和优势外,继续添加了一些新的创新的功能,该平台拓宽了板级设计的传统界面,全面集成了FPGA设计功能和SOPC设计实现功能,从而允许工程设计人员能将系统设计中的FPGA与PCB设计及嵌入式设计集成在一起。 由于Altium Designer 在继承先前Protel软件功能的基础上,综合了FPGA设计和嵌入式系统软件设计功能,Altium Designer 对计算机的系统需求比先前的版本要高一些。Altium Designer不仅拥有强大的PCB设计能力,而且还有强大的逻辑仿真分析能力,是一款特别适合初学者使用的PCB绘制软件。该软件主要任务包括:1. 电气原理图开发回执;2.印刷电气属性电路板PCB设计;3.FPGA程序及其仿真的设计;4 .嵌入式系统电路设计开发;5. 3D PCB模型绘制及其演示。2.2硬件开发环境平台搭建上一节笔者介绍本次硬件设计的软件为Altium Designe 14.0,下面笔者简单介绍AD14如何建立工程项目工程。 步骤一:启动AD软件,如下图2.2.1: 图2.2.1 AD启动界面 步骤二:在启动后的界面如下图2.2.2所示: 图2.2.2步骤三:如图2.2.3所示,在打开的界面中,打开菜单中选择FileprojectPCB Project,即可创建一个工程项目。图2.2.3步骤四:创建完成后,在窗口的左边会出现如下控制台,如图2.2.4所示:图2.2.4步骤五:如图2.2.5所示,将鼠标移动至项目工程图标处,单机鼠标左键,在弹出下拉菜单中选择“add new to Project”选项,在弹出的菜单中,就可以添加原理图和PCB制作图板了,如图所示:图2.2.5在选择“schematic”,就是添加原理图制作文件,如图2.2.6所示为原理图制作窗口:图2.2.6自此就可以开始设计原理图了。2.3系统分析根据下面的系统框架图我们可以分析得知,论文中所涉及的十字路口交通灯只能疏导控制系统必须具有能够指挥前进和左转的功能,还有拥有行人指示灯的功能,并且是控制绿黄红灯按相关顺序进行循环亮和灭的。而且要求绿灯亮转红灯亮或者转左转灯亮之前要先转黄灯亮5秒,左转灯亮转红灯亮之前也要先转黄灯亮5秒,红灯亮可以直接转绿灯或左转灯亮(四种灯的循环顺序如图2.1所示)。还要求四种颜色灯的点亮时间能够通过倒数计时的方式进行显示。可以用VHDL语言合理设计系统功能,使红黄绿左转灯的转换有一个准确的时间间隔和转换顺序。图2.3 指示灯转换顺序采用基于FPGA逻辑编程的方法来进行该设计,具有编程简单、操作灵活、便于优化升级的特点。同时,目前FPGA元器件的快速进步,编程设计和原理图电路设计等设计平台的快速发展和进步,FPGA的设计方式越来越受到关注和运用。根据设计需求和该系统必须所具有功能,并参考相关的文献资料经现在的方案设计画出十字路智能口交通灯控制系统框图如下图所示,这也是本次设计的总体方案,框图如下图2.4所示:CLK时钟分频模块交通灯控制及计时模块扫描显示模块LED显示数码管位码数码管段码图2.4 系统的框图2.4原理图设计1.数码管的时间显示以及信号灯切换电路的设计原理如下图所示,如下图2.3所示为显示电路部分,图2.3 显示以及信号灯电路如图所示,本文的交通灯的显示和指示灯电路,就是由图2.3相同的四个电路构成,分别指示四个路口的交通情况。这里要求的开发板上必须要设定一个计数器,且计数值为0-60。当计数值达到60后,下一个时钟沿回复到0,开始下一轮计数。但是,如何系统检测发现了特殊状况(EMI =1)的出现时,计数器将会迅速暂停工作,此时本系统的复位信号RESET将命令计数器强制清零。这样每一个电路的控制端口都直接连接在开发板上,便于开发对整个系统的控制是完美的。由于采用的FPGA芯片的时钟频率是50MHz,需要将其分频为1Hz。也就是说当前模块的分频为50M,且将相关频率瞬间变换成1Hz的脉冲波信号,这样得到的相关脉冲波的周期将可以达到1S。假如系统能够达到分频50M,这时在仿真图上是根本观察不了的,也就无法进行准确的验证和测试,所以在仿真的时候,最好是将分频系数调小一些,大约20分频就可以了,这时候就可以很清楚的从图中得到并分析对时钟输入信号的分频了,如图2.4所示, Reset是复位信号,CLK_50MHz是输入时钟频率,CLK_1Hz是输出时钟频率,从图中可以看出,输出频率CLK_1Hz确实是输入时钟频率CLK_50MHz的20分频。交通灯信号计时显示部分,是按照相关输入的STATUS信号,产生相应的指示灯的信号,其直接可以控制交通灯的点亮或熄灭,在指示灯信号显示电路程序测试真结果中,不难发现,STATUS是一种输入信号,而它是必须按照状态控制模块产生的脉冲信号,即STATUS信号,一种六种状态,依次为000(S1)、001(S2)、010(S3)、011(S4)、100(S5)、101(S6);EW_LRGY(8位)是东西方向上交通信号灯的状态, SN_LRGY(8位)是南北方向上交通信号灯的状态,依次为左转、红、绿、黄,对应着EW_LRGY、SN_LRGY的前四位,1表示点亮,0表示熄灭,后四位均为0,表示四个灯的阴极接负极。 图2.4 整个指示电路3 软件设计3.1软件开发平台介绍在本次毕业设计中,主要运用的软件开发环境是Quartus II, Quartus II 是Altera公司的新一代功能跟强大的综合性PLD开发软件,支持原理图、VHDL、Verilog HDL以及AHDL语言等多种不同设计形式和方法,其内部它本身独立的综合器以及独立高效仿真器,能够进行从程序设计输入到相关硬件的设置和模拟仿真等设计流程。 Quartus II可以在XP系统、Linux系统包括Unix系统上都可以进行安装运行,同时该软件兼容Tcl脚本语言,而且还具有人性化的用户UI环境可以体验,具有很快的操作速度和运行速度,高度的界面统一性,功能强大实用,操作简单等特点。Quartus II兼容Altera的相关IP核,同时内嵌了LPM/MegaFunction宏定义的功能模块底层库,这样用户很容易调用相关的函数模块进行编程设计,对用户而言更加简单和方便。另外该软件开发平台也支持相关第三方的开大平台。比如支持Synplify pro、Lenoardo Specturn以及Modelsem等第三方EDA工具来完成设计任务和仿真。Quartus平台与Cadence、ExemplarLogic、 MentorGraphics、Synopsys和Synplicity等EDA供应商的开发工具相兼容。该软件开发平台进一步改进了系统模块工具中的LogicLock模块分析和设计功能,另外也增加了FastFit编译的选项。事实上,在Quartus II开发平台目前的运用已经十分的普遍,在很多领域随着FPGA编程的普及,不可避免的运用到了相关的Quartus II开发平台,因为该平台操作相对比较简单,而且也比较容易理解,学起来也比较快,操作更加顺手。另外,其具有强大的编译和分析功能,特别是在处理复杂逻辑运算时,可以直接调用其内嵌的大量的处理工具。因此,该平台收到了极大的欢迎。3.2 Quartus II的设计流程介绍如图3.1所示就是Quartus II的设计流程图, 图3.1 设计流程图该软件开发平台的具体的操作过程如下所示:1. 首先,进行设计之前,需要建立一个工作库的文件夹和并且新建相关的编译设计和程序编写的文件。2. 然后,开始创建相关的工程文件。3. 编程完毕后,就开始进行编译程序进行调试。4. 调试没有语法错误后,就可以进行时序仿真5. 时序仿真后,如果没有问题,就可以进行引脚锁定6. 最后,就可以将程序下载到相关硬件环境中实际验证3.3程序设计1用VHDL编写程序,来实现交通灯控制器的原理框图如图3.3示 图3.3交通信号灯控制器程序原理框图 程序中的时钟信号clk为石英晶体(327868HZ)分频后的8Hz标准信号作为产生1秒信号的输入信号,为LED数码管驱动电路(MC4511)提供输入信号,用于县市交通灯所处的状态的时间。6个输出信号(对应两组红黄绿灯,FR1、FY1和FG1为主干道红黄绿灯信号, FR2、FY2和FG2为支干道红黄绿灯信号)。该程序由7个进程组成,进程P1和P2将8Hz标准信号分频后产生1秒信号(carry),进程P1和P2 进程P3、P4和P5 进程构成两个带有预置数功能的十进制计数器,其中P4产生允许十位计数器计数的控制信号(en)。进程P6实现状态转换和产生状态转换的控制信号(load),进程P7产生次态信号(next_state)和信号灯输出信号(FR1、FY1、FG1、FR2、FY2和FG2),以及每一个状态的时间值(即计数器的预置数)和下一个状态。3.3.1 程序设计分析图3.4 程序流程图上图就是本次设计的程序流程图3.3.2 程序分析与仿真一个完整的VHDL语言程序通常包括实体(Entity)、构造体、配置、包集合(Package)和库(Library)5个部分组成。下面结合实际的程序来加以说明。首先是更灯函数的转换如下图3.3所示when ew_yellow0 = ew_stateew_stateew_state ew_state L=000; dled L=001; dled L=010; dled L=011; dled L=100; dled L=101; dled L=110; dled L=111; dled=display(sn_secondL); end case; end if; end process;end control;关于各种信号依次是:clk:系统输入时钟50MHzrst_n:系统异步复位信号LEDDX:东西向的LED红绿灯rledDX:东西向的人行道红灯LEDNB:南北向的LED红绿灯rledNB:南北向的人行道红灯SGMDX:东西向的数码管段选SGMNB:南北向的数码管段选SWDX:东西向的数码管位选SWNB:南北向的数码管位选仿真图如下图3.5所示图3.5 信号仿真图*产生计时信号2*/always (posedge clk or negedge rst_n)beginif(!rst_n) beginscountb=d2;cntb=50000000)begincntbd0)scountb=scountb-d1;elsescountb=d0;endelse cntb=cntb+d1;endelsescountb=timesb;end4 实物模型展示4.1 实物模型介绍图4.1 交通灯模型图如图4.1所示,这就是本文设计的一个智能交通等的大致模型,从图上可以看出,每一个路口有三个指示和两个行人指示灯。考虑到实验室所用的FPGA器件EP2C5T144最小系统板上的数码管数量比较少以及LED逻辑状态的指示管数量相对比较有少,因此,本论文设计的十字路口交通灯控制器不具有左拐弯功能,仅实现主、支干道红、黄、绿灯、倒计时数的显示,初始化设置以及特殊状态控制功能。实现红黄绿灯的智能控制和管理系统的广泛运用是目前现代城市构建智能交通指挥疏导系统的重要研究课题。通过对上面模型图的分析,可以明白本设计,是介绍的一种基于FPGA的十字路口智能交通灯控制系统,该系统分别由四组红、黄、绿灯以及四组红绿灯组成,其中四组的红黄绿灯是指挥十字路口车辆的,四组红绿灯是指挥行人的。另外由VHDL语言在相关开发系统板上对所以灯的开关进行系统合理的控制,使得所有颜色的灯按照一定规律循环亮和灭。 4.2 实物模型演示方法该模拟平台只要给其通上电源后,系统开发板会自动启动在一个计算周期内,该交通控制指挥系统有四种运行模式,包括S0、S1、S2、S3四个不同的状态。四种状态的运行模式为S0S1S2S3,S3结束后,返回到S0状态,整个运行周期连续为60s。R表示信号的重置,相关设置重置后系统开始自动按原来规律进行循环。SPC是一种紧急的控制信号,一旦该信号电平置高后系统自动切换至S6状态,该状态解除后,系统将被初始化,自动变为S0。WE和SN是两组控制不同方向左转的控制信号。当直行方向允许通车后,WE将被置高,系统被切换值S4模式,同样S4状态解除后,系统切换至S1模式。当直行方向禁止通车后,SN将被置高,此时系统将会变成S5状态,S5状态解除后,系统立刻变成S3状态,又以此循环下去。每一组红绿灯的状态指示方式如下:S0: 直行道路点亮绿的,另一直行道路显示红灯。也就是说此时一条直行道路可以通车,另一条直行道路将被禁止通车,整个状态维持60s。 S1状态: 一条直行道路亮黄灯、另一条亮红灯。这个时候第一条直行道路即将禁止通行,另一侧的直行通道任然禁止通车,这个状态将维持5S。 4.3 效果展示 如下图所示,这就是硬件运行后的效果图,图4.3 效果图1总结利用网络和图书馆的有效资源,并且参考阅读了很多的资料,并进行仔细分析和研究,充分验证后作出了相关的设计思路;最后按照该方案,通过向同学老师请教,最终完成了这个课题任务。本设计是通过利用VHDL语言进行程序设计的,以芯片EP2C5T144的FPGA试验箱为开发平台,通过简单的外围电路,以双色LED的变换过程,模拟交通十字路口交通灯的红绿两个信号灯的变化,本设计综合分析了多种通行情况的可能,加入了比较了人性化的声音和时间提示功能。因为硬件芯片I/O口数量实在无法满足相关需求,在硬件测试过程中不得不删除了一部分软件调试中的功能,比如由三行道改为了双行道,但是这并不意味着该系统功能在软件仿真上不能实现。同时,我深深体会到了通过FPGA在设计数字电路方面,具有操作方便、设计简洁的特点,这让我相信未来数字电路的应用必将更加广泛。另外,我深深的感觉到:从事研发和设计的相关工作,必须要保持勤奋、踏实、认真、不放弃的学习态度,坚持这种态度才能让自己的学习和工作做得更好。让我认识自己能力,找准自己的不足点,加强相关点的学习和认知。更重要的是,这一次毕业设计让我学会了如何面对艰难、如何别人合作和交流、如何独立思考和应对不确定问题。让我深刻了解到,成功之初的艰辛,只有认真找到问题的实质,真正理解到问题的根本后,才能够有更有效的找到解决问题的方法。 最后敬请各位专家、老师和同学对论文的不足和谬误之处提出宝贵的指导意见和建议,谢谢。
展开阅读全文