基于FPGA交通信号灯控制器的设计与实现毕业设计.docx

上传人:b****5 文档编号:29820372 上传时间:2023-07-27 格式:DOCX 页数:56 大小:1.84MB
下载 相关 举报
基于FPGA交通信号灯控制器的设计与实现毕业设计.docx_第1页
第1页 / 共56页
基于FPGA交通信号灯控制器的设计与实现毕业设计.docx_第2页
第2页 / 共56页
基于FPGA交通信号灯控制器的设计与实现毕业设计.docx_第3页
第3页 / 共56页
基于FPGA交通信号灯控制器的设计与实现毕业设计.docx_第4页
第4页 / 共56页
基于FPGA交通信号灯控制器的设计与实现毕业设计.docx_第5页
第5页 / 共56页
点击查看更多>>
下载资源
资源描述

基于FPGA交通信号灯控制器的设计与实现毕业设计.docx

《基于FPGA交通信号灯控制器的设计与实现毕业设计.docx》由会员分享,可在线阅读,更多相关《基于FPGA交通信号灯控制器的设计与实现毕业设计.docx(56页珍藏版)》请在冰豆网上搜索。

基于FPGA交通信号灯控制器的设计与实现毕业设计.docx

基于FPGA交通信号灯控制器的设计与实现毕业设计

题目基于FPGA的交通灯控制器的设计与实现

专业电子信息班级1学号12姓名张扬

主要内容、基本要求、主要参考资料等:

模拟十字路口交通信号灯的工作过程,利用交通灯模块上的两组红、黄、绿LED发光二极管作为交通信号灯,设计一个交通信号灯控制器。

设计说明:

有两条公路,一条是交通主干道,另一条是支干道。

在主干道和支干道的交叉路口上,设置了红、黄、绿灯,进行交通管理,如图1所示。

图1路口交通管理示意图

基本要求如下:

1交通灯从绿变红时,有4s黄灯亮的间隔时间;

2交通灯从红变绿是直接进行的,没有间隔时间;

3主干道的绿灯时间为20s,支干道的绿灯时间为10s;

4在任意时间,显示每个状态开始到结束所需要的时间。

由此可以得出交通信号灯A,B,C,D的4种状态,如表1所示。

表1交通信号灯的4种状态

交通信号灯

A

B

C

D

主干道的交通灯

绿(20s)

黄(4s)

红(10s)

红(4s)

支干道的交通灯

绿

主要参考资料:

【1】张洪润.FPGA/CPLD应用设计200例(上册)[M].北京:

北京航空航天大学出版社,2009.

【2】潘松.EDA技术实用教程(第三版)[M].北京:

科学出版社,2006.

完成期限:

2009年11月到2010年6月

指导教师签章:

专业负责人签章:

2009年11月6日

 

诚信承诺

本人__________声明,本论文及其研究工作是由本人在导师指导下独立完成,论文所利用的一切资料均符合论文著作要求,且在参考文献中列出。

 

作者签字:

年月日

 

摘要

近年来,随着社会上特别是城市中机动车保有量的不断增加,在现代城市的日常运行控制中,车辆的交通控制越来越重要。

在十字交叉路口,越来越多的使用红绿灯进行交通指挥和管理[1]。

本课题以FPGA硬件描述语言为设计手段,完成了交通信号灯控制电路的开发,其中交通信号灯控制电路的开发目的是设计一个适用于主、支干道十字交叉路口的红黄绿交通灯的控制系统,通过合理设计系统功能,使红黄绿的转换有一个准确的时间间隔和转换顺序,当然这就需要一个自动和安全的系统对红、黄、绿灯的转换进行控制。

本课题所设计的交通信号灯控制电路经过在QuartusII软件下进行模拟仿真,观察其波形,并通过将程序下载到目标FPGA器件,进行硬件的调试验证,证明所设计的交通信号灯控制电路完全可以实现预定的功能,具有一定的实用性。

关键词:

控制电路;信号灯;FPGA;软件设计;QuartusII

 

 

ABSTRACT

Inrecentyears,withtheincreaseofVehicleinventoryinsocietyespeciallyincity,thetrafficcontrolofthevehiclebecomemoreandmoreimportantwiththedevelopmentofsociety.Incrossfourcorners,moreandmoretrafficlightsareusedtodirectandmanagethetraffic.

ThissubjecttakeFPGAhardwaredescriptionlanguageasdesignmethodanditcompletedthestreet-trafficcontrollightscontrolcircuit'sdevelopment,andthemaingoalofthedevelopmentofthestreet-trafficcontrollightscontrolcircuitistodesignacontrolsystem,whichcanbeusedinbothmainroadandsecondroad'scrossfourcorners.Throughreasonabledesignthesystemfunction,Enablestheredolivinethetransformationtohaveanaccuratetime-gapandthetransformationorder.Certainlythisneedsoneautomaticandthesafesystemtored,yellow,greenlight'stransformationcarriesonthecontrol.

Thispaperwhichdesignsthetraffic-lights'controlcircuitisAnalogsimulatedbytheQuartusIISoftware,observatetheprofile,andthendownloadtheproceduretotheFPGAcomponent.Toprovethedesignsofthetraffic-lights'controlcircuitcanrealizethepredeterminedfunction,what'smore,thisdesignmayalsobecertainusabilitythroughthehardwaredebuggingconfirmmation.

Keywords:

Controlcircuit;Signallight;FPGA;Softwaredesign;QuartusII

 

 

1课题研究背景及意义

1.1课题的发展进程

随着社会经济的发展,交通问题越来越引起人们的关注。

人、车、路三者关系的协调,已成为交通管理部门需要解决的重要问题之一。

交通控制系统是用于城市交通数据监测、交通信号灯控制与交通疏导的计算机综合管理系统,它是现代交通监控指挥系统中最重要的组成部分[1]。

今天,红绿灯安装在各个道路口上,已成为疏导交通车辆最常见和最有效的手段。

但这一技术在19世纪就出现了。

1858年,在英国伦敦主要街头安装了以燃煤气为光源的红、蓝两色的机械扳手式信号灯,用以指挥马车通行。

这是世界上最早的交通信号灯。

1868年,英国机械工程师那伊特在伦敦威斯敏思特区议会大厦的广场上,安装了世界上最早的煤气红绿灯。

它由红绿两以旋转式方形玻璃提灯组成,红色表示“停止”,绿色表示“注意”。

1869年1月2日,煤气灯爆炸,使警察受伤,遂被取消。

1914年,电气启动的红绿灯出现在美国。

这种红绿灯由红绿黄三色圆形的投光器组成,安装在纽约市5号大街的高塔上。

红灯亮表示“停止”,绿灯亮表示“通行”。

1918年,又出现了带控制的红绿灯和红外线红绿灯。

带控制的红绿灯,一种是把压力探测器安在地下,车辆一接近,红灯变为绿灯;另一种是用扩音器来启动红绿灯,司机遇到红灯时按一下喇叭,就使红灯变为绿灯。

红外线红绿灯当行人踏上对压力敏感的路面时,它就能察觉到有人要过马路。

红外光束就能把信号灯的红灯延长一段时间,推迟汽车放行,以免发生交通事故。

信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。

1968年,联合国《道路交通和道路标志信号协定》对各种信号灯的含义做了规定。

绿灯时通行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向。

左右转弯车辆都必须让合法的正在路口内行驶的车辆和过人行横道的行人优先通行。

红灯是禁止信号,面对红灯的车辆必须在交叉路口的停车线后停车。

黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口[2]。

1.2课题的选题背景

1.2.1课题相关技术的发展

当今电子产品正向功能多元化,体积最小化,功耗最低化的方向发展。

它与传统的电子产品在设计上的显著区别师大量使用大规模可编程逻辑器件,使产品的性能提高,体积缩小,功耗降低.同时广泛运用现代计算机技术,提高产品的自动化程度和竞争力,缩短研发周期。

EDA技术正是为了适应现代电子技术的要求,吸收众多学科最新科技成果而形成的一门新技术。

美国ALTERA公司的可编程逻辑器件采用全新的结构和先进的技术,加上MaxplusII(或最新的QUARTUS)开发环境,更具有高性能,开发周期短等特点,十分方便进行电子产品的开发和设计。

EDA技术,技术以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件的方式设计的电子系统到硬件系统的逻辑编译,逻辑化简,逻辑分割,逻辑映射,编程下载等工作。

最终形成集成电子系统或专用集成芯片的一门新技术。

本设计利用VHDL硬件描述语言结合可编程逻辑器件进行的,并通过数码管动态显示计时结果。

交通信号灯可以由各种技术实现,如单片机的汇编语言,PLC.利用可编程逻辑器件具有其他方式没有的特点,它具有易学,方便,新颖,有趣,直观,设计与实验项目成功率高,理论与实践结合紧密,体积小,容量大,I/O口丰富,易编程和加密等特点,并且它还具有开放的界面,丰富的设计库,模块化的工具以及LPM定制等优良性能,应用非常方便。

因此,本设计采用可编程逻辑器件实现。

VHDL语言具有很强的电路描述和建模能力,能从多个层次对数字系统进行建模和描述,从而大大简化了硬件设计任务,提高了设计效率和可靠性,VHDL是一种全方位的硬件描述语言,具有极强的描述能力,能支持系统行为级、寄存器传输级和逻辑门级三个不同层次的设计;支持结构、数据流、行为三种描述形式的混合描述、覆盖面广、抽象能力强,因此在实际应用中越来越广泛。

ASIC是专用的系统集成电路,是一种带有逻辑处理的加速处理器。

而FPGA是特殊的ASIC芯片,与其他的ASIC芯片相比,它具有设计开发周期短、设计制造成本低、开发工具先进、标准产品无需测试、质量稳定以及可实时在线检测等优点。

交通信号灯控制系统是一个典型的纯数字系统,传统的设计方法基于中、小规模集成电路进行,电路复杂、故障率高、可靠性低。

利用EDA技术采用超大规模可编程

器件FPGA/CPLD实现,可降低设计成本,缩短设计周期,保证设计过程的正确性,为数字系统的设计带来了极大的灵活性。

交通信号灯的设计给交通生活带来了极大的方便,而且大大地扩展了信号灯的各种显示功能。

因此,研究交通信号灯控制器的设计,有着非常现实的意义。

1.2.2课题研究的必要性

随着城市机动车量的不断增加,许多大城市如北京、上海、南京等出现了交通超负荷运行的情况,因此,自80年代后期,这些城市纷纷修建城市高速道路,在高速道路建设完成的初期,它们也曾有效地改善了交通状况。

然而,随着交通量的快速增长和缺乏对高速道路的系统研究和控制,高速道路没有充分发挥出预期的作用。

而城市高速道路在构造上的特点,也决定了城市高速道路的交通状况必然受高速道路与普通道路耦合处交通状况的制约。

所以,如何采用合适的控制方法,最大限度利用好耗费巨资修建的城市高速道路,缓解主干道与匝道、城区同周边地区的交通拥堵状况,越来越成为交通运输管理和城市规划部门亟待解决的主要问题。

为此,笔者进行了深入的研究,利用FPGA技术及由QuartusⅡ软件编写VHDL语言源程序,硬件测试时通过ALTERA公司的Cyclone系列的EP1C12Q240C8芯片来实现,设计了一个交通灯系统,实现简单的交通灯的管理功能。

以下就主、支干道交通灯控制器的电路原理、设计计算和实验调试等问题来进行具体分析讨论。

1.3本章小结

本章节首先介绍了交通信号灯的发展史和各个阶段出现的交通灯的配置以及作用,详细叙述了课题的研究背景以及利用VHDL语言编写程序的优点所在。

阐述了课题研究的必要性。

经过课题要求开始构思设计的大致思路:

是以交通信号灯控制器为研究背景,把EDA技术作为实现手段,以FPGA语言为软件编程语言,以及用QuartusⅡ应用软件作为工具,硬件测试时通过ALTERA公司的Cyclone系列的EP1C12Q240C8芯片来最终实现交通信号灯控制器的设计,以LED灯显示剩余时间,用发光二极管代表三种灯的状态。

 

2FPGA简介

本章从FPGA概述、FPGA的基本结构、FPGA系统设计流程、以及FPGA开发编程原理四方面详细阐述了FPGA技术的相关特性。

2.1FPGA概述

FPGA是现场可编程门阵列(FieldProgrammableGateArray)的简称,与之相应的CPLD是复杂可编程逻辑器件(ComplexProgrammableLogicDevice)的简称,两者的功能基本相同,只是实现原理略有不同,所以有时可以忽略这两者的区别,统称为可编程逻辑器件或CPLD/PGFA。

CPLD/PGFA几乎能完成任何数字器件的功能,上至高性能CPU,下至简单的74电路[2]。

它如同一张白纸或是一堆积木,工程师可以通过传统的原理图输入或硬件描述语言自由的设计一个数字系统。

通过软件仿真可以事先验证设计的正确性,在PCB完成以后,利用CPLD/FPGA的在线修改功能,随时修改设计而不必改动硬件电路。

使用CPLA/FPGA开发数字电路,可以大大缩短设计时间,减少PCB面积,提高系统的可靠性。

这些优点使得CPLA/FPGA技术在20世纪90年代以后得到飞速的发展,同时也大大推动了EDA软件和硬件描述语言HDL的进步。

2.2FPGA基本结构

FPGA具有掩膜可编程门阵列的通用结构,它由逻辑功能块排成阵列,并由可编程的互连资源连接这些逻辑功能块来实现不同的设计。

FPGA一般由3种可编程电路和一个用于存放编程数据的静态存储器SRAM组成。

这3种可编程电路是:

可编程逻辑模块(CLB--ConfigurableLogicBlock)、输入/输出模块(IOB--I/OBlock)和互连资源(IR—InterconnectResource)。

可编程逻辑模块CLB是实现逻辑功能的基本单元,它们通常规则的排列成一个阵列,散布于整个芯片;可编程输入/输出模块(IOB)主要完成芯片上的逻辑与外部封装脚的接口,它通常排列在芯片的四周;可编程互连资源包括各种长度的连接线段和一些可编程连接开关,它们将各个CLB之间或CLB、IOB之间以及IOB之间连接起来,构成特定功能的电路[2]。

1.CLB是FPGA的主要组成部分。

图2-1是CLB基本结构框图,它主要由逻辑函数发生器、触发器、数据选择器等电路组成。

CLB中3个逻辑函数发生器分别是G、F和H,相应的输出是G’、F’和H’。

G有4个输入变量G1、G2、G3和G4;F也有4个输入变量F1、F2、F3和F4。

这两个函数发生器是完全独立的,均可以实现4输入变量的任意组合逻辑函数。

逻辑函数发生器H有3个输入信号;前两个是函数发生器的输出G’和F’,而另一个输入信号是来自信号变换电路的输出H1。

这个函数发生器能实现3输入变量的各种组合函数。

这3个函数发生器结合起来,可实现多达9变量的逻辑函数。

CLB中有许多不同规格的数据选择器(四选一、二选一等),通过对CLB内部数据选择器的编程,逻辑函数发生器G、F和H的输出可以连接到CLB输出端X或Y,并用来选择触

发器的激励输入信号、时钟有效边沿、时钟使能信号以及输出信号。

这些数据选择器的地址控制信号均由编程信息提供,从而实现所需的电路结构。

CLB中的逻辑函数发生器F和G均为查找表结构,其工作原理类似于ROM。

F和G的输入等效于ROM的地址码,通过查找ROM中的地址表可以得到相应的组合逻辑函数输出。

另一方面,逻辑函数发生器F和G还可以作为器件内高速RAM或小的可读写存储器使用,它由信号变换电路控制。

2.输入/输出模块IOB。

IOB提供了器件引脚和内部逻辑阵列之间的连接。

它主要由输入触发器、输入缓冲器和输出触发/锁存器、输出缓冲器组成。

每个IOB控制一个引脚,它们可被配置为输入、输出或双向I/O功能。

当IOB控制的引脚被定义为输入时,通过该引脚的输入信号先送入输入缓冲器。

缓冲器的输出分成两路:

一路可以直接送到MUX,另一路经延时几纳秒(或者不延时)送到输入通路D触发器,再送到数据选择器。

通过编程给数据选择器不同的控制信息,确定送至CLB阵列的I1和I2是来自输入缓冲器,还是来自触发器。

图2.1CLB基本结构

当IOB控制的引脚被定义为输出时,CLB阵列的输出信号OUT也可以有两条传输途径:

一条是直接经MUX送至输出缓冲器,另一条是先存入输出通路D触发器,再送至输出缓冲器。

IOB输出端配有两只MOS管,它们的栅极均可编程,使MOS管导通或截止,分别经上拉电阻接通Vcc、地线或者不接通,用以改善输出波形和负载能力。

3.可编程互连资源IR。

可编程互连资源IR可以将FPGA内部的CLB和CLB之间、CLB和

IOB之间连接起来,构成各种具有复杂功能的系统。

IR主要由许多金属线段构成,这些金属线段带有可编程开关,通过自动布线实现各种电路的连接。

2.3FPGA系统设计流程

一般说来,一个比较大的完整的项目应该采用层次化的描述方法:

分为几个较大的模块,定义好各功能模块之间的接口,然后各个模块再细分去具体实现,这就是TOPDOWN(自顶向下)的设计方法。

目前这种高层次的设计方法已被广泛采用[3]。

高层次设计只是定义系统的行为特征,可以不涉及实现工艺,因此还可以在厂家综合库的支持下,利用综合优化工具将高层次描述转换成针对某种工艺优化的网络表,使工艺转化变得轻而易举。

CPLD/FPGA系统设计的工作流程如图2.2所示。

流程说明:

1.工程师按照“自顶向下”的设计方法进行系统划分。

2.输入VHDL代码,这是设计中最为普遍的输入方式。

此外,还可以采用图形输入方式(框图、状态图等),这种输入方式具有直观、容易理解的优点。

3.将以上的设计输入编译成标准的VHDL文件。

4.进行代码级的功能仿真,主要是检验系统功能设计的正确性。

这一步骤适用于大型设计,因为对于大型设计来说,在综合前对源代码仿真,就可以大大减少设计重复的次数和时间。

一般情况下,这一仿真步骤可略去。

5.利用综合器对VHDL源代码进行综合优化处理,生成门级描述的网络表文件,这是将高层次描述转化为硬件电路的关键步骤。

综合优化是针对ASIC芯片供应商的某一产品系列进行的,所以综合的过程要在相应的厂家综合库的支持下才能完成。

6.利用产生的网络表文件进行适配前的时序仿真,仿真过程不涉及具体器件的硬件特性,是较为粗略的。

一般的设计,也可略去这一步骤。

7.利用适配器将综合后的网络表文件针对某一具体的目标器件进行逻辑映射操作,包括底层器件配置、逻辑分割、逻辑优化和布局布线。

8.在适配完成后,产生多项设计结果:

(a)适配报告,包括芯片内部资源利用情况,设计的布尔方程描述情况等;(b)适配后的仿真模型;(c)器件编程文件。

根据适配后的仿真模型,可以进行适配后时序仿真,因为已经得到器件的实际硬件特性(如时延特性),所以仿真结果能比较精确的预期未来芯片的实际性能。

如果仿真结果达不到设计要求,就修改VHDL源代码或选择不同速度和品质的器件,直至满足设计要求。

最后将适配器产生的器件编程文件通过编程器或下载电缆载入到目标芯片CPLD/FPGA中。

图2.3FPGA/CPLD系统设计流程

2.4FPGA开发编程原理

硬件设计需要根据各种性能指标、成本、开发周期等因素,确定最佳的实现方案,画出系统框图,选择芯片,设计PCB并最终形成样机。

CPLD/FPGA软件设计可分为两大块:

编程语言和编程工具。

编程语言主要有VHDL和Verilog两种硬件描述语言;编程工具主要是两大厂家Altera和Xilinx的集成综合EDA软件(如MAX+plusII、QuartusII、Foundation、ISE)以及第三方工具(如FPGAExpress、Modelsim、SynposysSVS等)。

具体的设计输入方式有以下几种:

1.HDL语言方式。

HDL既可以描述底层设计,也可以描述顶层的设计,但它不容易做到较高的工作速度和芯片利用率。

用这种方式描述的项目最后所能达到的性能与设计人员的水平、经验以及综合软件有很大的关系。

2.图形方式。

可以分为电路原理图描述,状态机描述和波形描述3种形式。

有的软件3种输入方法都支持,如Active-HDL。

MAX+plusII图形输入方式只支持电路原理图描述和波形描述两种。

电路原理图方式描述比较直观和高效,对综合软件的要求不高。

一般大都使用成熟的IP核和中小规模集成电路所搭成的现成电路,整体放到一片可编程逻辑器件的内部去,所以硬件工作速度和芯片利用率很高,但是但项目很大的时候,该方法就显得有些繁琐;状态机描述主要用来设计基于状态机思想的时序电路。

在图形的方式下定义好各个工作状态,然后在各个状态上输入转换条件以及相应的输入输出,最后生成HDL语言描述,送去综合软件综合到可编程逻辑器件的内部。

由于状态机到HDL语言有一种标准的对应描述方式,所以这种输入方式最后所能达到的工作速度和芯片利用率主要取决于综合软件;波形描述方式是基于真值表的一种图形输入方式,直接描述输入与输出的波形关系。

这种输入方式最后所能达到的工作速度和芯片利用率也是主要取决于综合软件。

2.5本章小结

本章具体的阐述了有关FPGA的研究目的及其历史意义,具体的介绍了FPGA的基本结构和编程原理,并讲述了各组成模块的主要用途及组成原理,以流程图的方式更加清晰地描述了FPGA的系统设计流程,概括了各个流程操作时需要注意的问题,为接下来的构思和程序设计做了很好的铺垫作用。

 

3基于FPGA的交通灯控制器的设计

3.1设计思路和原理框图

利用交通灯模块上的两组红、黄、绿LED发光二极管作为交通信号灯,LED七段数码管显示交通信号灯在某一状态所剩余的时间,利用实验板上的8Hz时钟信号和2048Hz时钟信号,分别作为交通信号灯控制器的计时信号和LED七段数码管的扫描信号[1]。

用VHDL编写程序实现交通信号灯控制器,其原理框图如下图所示。

时钟信号clk为8Hz标准信号,作为产生1s的信号,另一个时钟信号scanclk的频率为2048Hz,作为LED七段数码管的动态扫描信号;输出信号led<7:

0>和row<3:

0>分别输出段码和位选择控制信号。

6个红、黄、绿信号灯输出信号(对应两组红、黄、绿灯,R1,Y1,G1为主干道红、黄、绿灯信号;R2,Y2,G2为支干道红、黄绿灯信号),当输出信号为高电平时,实验板上LED发光二极管发光。

图3.1程序的主原理图

(1)本程序设计调用了IEEE库,IEEE库是VHDL设计中最为常用的库,它包含有IEEE标准的程序包和其他一些支持工业标准的程序包。

本设计采用了STD_LOGIC_1164,STD_LOGIC_ARITH,STD_LOGIC_UNSIGNED程序包。

(2)以关键词ENTITY引导,ENDtraffic结尾的语句部分,称为实体。

VHDL的实体描述了电路器件的外部情况及各信号端口的基本性质。

本设计定义了交通信号灯的两个时钟信号,分别为scanclk和clk,以及各主路和支路的红黄绿灯。

定义了各端口信号的数据类型,主要是STD_LOGIC(标准逻辑位数据类型)、S

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 环境科学食品科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1