课程设计论文基于fpga的交通信号灯设计.docx
《课程设计论文基于fpga的交通信号灯设计.docx》由会员分享,可在线阅读,更多相关《课程设计论文基于fpga的交通信号灯设计.docx(25页珍藏版)》请在冰豆网上搜索。
![课程设计论文基于fpga的交通信号灯设计.docx](https://file1.bdocx.com/fileroot1/2022-10/28/8dcc3f6c-e960-4bf6-ab01-943ea2123a7d/8dcc3f6c-e960-4bf6-ab01-943ea2123a7d1.gif)
课程设计论文基于fpga的交通信号灯设计
基于FPGA的交通信号灯设计
摘要:
该设计是针对交通信号灯控制器的设计问题,采用EDA技术实现的交通灯控制电路的设计方案。
本设计有效的克服了传统的交通灯控制的缺点而采取自上而下的设计思路。
该设计在软件QuartusⅡ9.0下应用硬件描述语言VHDL语言完成设计文件,并对其进行了功能仿真和时序仿真,且给出了相应的仿真结果,绘制出了具体的逻辑电路,最后将其下载到Alter公司生产的CycloneⅡ系列的EP2C8Q208开发板上进行逻辑验证,实现软件和硬件的安全连接,达到了对交通灯的自动安全控制的目的。
关键字:
交通灯控制;EDA;VHDL;QuartusⅡ;EP2C8Q208
TrafficcontrollightsdesignbasedonFPGA
Abstract:
ThedesignisfortrafficsignalcontrollerdesignissuesbasedonEDAtechnologyfortrafficlightcontrolcircuitdesign.Thisdesigneffectivelyovercomethetraditionaltrafficlightcontrolweaknessesandtakeatop-downapproachtodesign.ThedesigninsoftwareQuartusⅡ9.0underhardwaredescriptionlanguageVHDLcompletedesigndocumentsgoonfunctionalsimulationandtemporalsimulation,itdrawsoutthespecificlogiccircuitsandgivingthesimulationresults,andlastdownloadittoAltercorporateproductionofCycloneⅡseriesofEP2C8Q208DevelopmentBoardforlogicalvalidation,itimplementsoftwareandhardwaresecurityconnectionandreachedthetrafficlightsofautomaticsafetycontrolpurposes.
KeyWords:
trafficlightcontrol;EDA;VHDL;QuartusⅡ;EP2C8Q208
引言
随着社会和汽车工业的快速发展,近几年机动车辆急剧增加,道路超负荷承载现象日趋严重,致使交通事故逐年增加。
交通信号灯是城市交通有序、安全、快速运行的重要保障,而交通信号灯的正常工作就成了保障交通有序、安全、快速运行的关键。
如何实现人、车、路三者关系的协调,已成为交通管理部门需要切实解决的问题[1]。
该设计分析了现代城市交通控制与管理问题的现状,结合城乡交通的实际情况阐述了交通灯控制系统的工作原理,采用了层次化的设计方法[2]、[3],基于VHDL语言实现红绿灯的自动指挥的硬件实现方法。
通过电路优化设计,可以使用规模更小的可编程逻辑芯片,从而降低系统成本。
⒈概述
随着我国城市化建设的发展,人民的生活水平日渐提高,越来越多的汽车进入了寻常老百姓的家庭,再加上政府大力发展公交车、出租车,使得道路上车辆越来越多,许多大城市如北京、上海、南京等均出现了道路交通超负荷运行的情况。
道路安全问题逐渐成为人们关注的热点话题,所以,如何采用合适的控制方法,最大限度利用好现有道路资源,缓解城区的交通拥堵状况,保障人们的出行安全越来越成为交通管理亟待解决的主要问题。
在这种情况下,道路交通信号灯开始发挥了越来越重要的作用,并已成为交管部门管理交通的重要工具之一。
1.1交通灯的介绍
当今,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。
但这一技术在19世纪就已出现了。
1858年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械扳手式信号灯,用以指挥马车通行。
这是世界上最早的交通信号灯。
1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯。
1914年由红绿黄三色圆形的投光器组成的红绿灯始安装于纽约市5号大街的一座高塔上。
1918年,又出现了带控制的红绿灯和红外线红绿灯[4]。
信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。
1968年,联合国《道路交通和道路标志信号协定》对各种信号灯的含义作了规定。
绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向。
左右转弯车辆都必须让合法地正在路口内行驶的车辆和过人行横道的行人优先通行。
红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车。
黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口。
1.2EDA技术的发展
EDA是电子设计自动化(ElectronicDesignAutomation)的缩写,是指以计算机为工作平台,融合应用电子技术、计算机技术、智能化技术最新成果而研制成的电子CAD通用软件包,主要能辅助进行三方面的设计工作,即IC设计、电子电路设计和PCB设计[5]、[6]。
是从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。
EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载的高层次的电子设计方法。
EDA技术的出现,极大地提高了电路设计的效率和可用性,减轻了设计者的劳动强度。
EDA技术是电子设计领域的一场革命,代表了当今电子设计技术的最新发展方向,目前正处于高速发展阶段,每年都有新的EDA工具问世。
1.3基于FPGA的交通灯的优点
传统的交通灯控制系统多数由单片机或PLC实现,基于EDA技术FPGA的设计方法设计交通灯系统就是使用硬件描述语言(HDL)来完成系统的设计文件,应用VHDL的数字电路[7]、[8]、[9]实验降低了数字系统的设计难度,这在电子设计领域已得到设计者的广泛采用。
具有周期短,设计灵活,易于修改等明显的优点,而且随着FPGA器件、设计语言和电子设计自动化工具的发展和改进,越来越多的电子系统采用FPGA来设计,还有,通过FPGA设计电子系统,一旦该系统可以达到一定规模的量产,很容易转化为ASIC芯片设计。
相信在将来,FPGA设计方法将更大规模的应用于各种类型的电子系统设计中。
本设计就是针对交通信号灯控制器的设计问题,并采用自顶向下的设计思路。
提出了基于VHDL语言的交通信号灯系统的硬件实现方法。
通过对系统进行结构分析,采用了层次化的设计方法,给出了各个模块的VHDL程序,并且利用QuartusⅡ对应用程序进行了仿真,并给出了相应的仿真结果。
在用VHDL语言进行电路设计时,应充分认识到VHDL语言的特点,从设计思想、语句运用及描述方法上等多方面对电路进行优化设计。
通过电路优化设计,可以使用规模更小的可编程逻辑芯片,从而降低系统成本。
2.控制系统的设计
2.1系统设计要求
所要设计的交通信号灯控制电路,要能够适用于由一条主干道和一条支干道的汇合点形成的十字交叉路口,主、支干道的红绿灯闪亮时间不完全相同。
具体的设计要求如下:
实现控制一条主干道和一条次干道汇合组成的十字交叉路口,使主、支干道上的车辆行人交替通行,其中主干道车辆行人通行35秒,此时支干道上车辆行人禁止通行;支干道车辆通行25秒,同样此时主干道上车辆禁止通行。
每当信号灯由绿灯转换成红灯之前,黄灯要先亮5秒,此时另一个干道红灯不变,禁止通行。
在黄灯亮点亮5秒,以提示车辆行人。
在主干道上安装有数码管,用来显示本道各信号灯闪亮的剩余时间。
2.2总体设计思路
通过参考其他的相关文献[6]、[9]、[10]、[11]、[12]、[13],对照研究如基于单片机、基于分立元件等其他设计手段的优缺点,我们认为使用基于FPGA的设计方法具有周期短,设计灵活,易于修改等明显的优点,通过FPGA设计电子系统,一旦该系统可以达到一定规模的量产,很容易转化为ASIC芯片设计。
本设计的交通信号控制控制电路实现原理是:
把由50M的有源晶振产生的现场可编程逻辑器件FPGA的系统时钟输入到分频模块,经分频模块分频产生频率为1Hz的时钟脉冲,作为控制定时模块、控制模块、紧急模块、计数模块的时钟信号,然后再由定时模块来控制紧急模块和控制模块,按照交通管理规则控制交通工作状态的切换,最后,由系统时钟和计数模块以及控制模块来共同控制计数器控制模块,计数器的时钟为1Hz,再把计数器控制模块送出的BCD码送给译码器译码后,送给数码管显示各方向直行绿灯的倒计时。
模块图如图1所示:
图1交通灯控制系统模块图
CycloneⅡ系列的EP2C8Q208的脉冲为50MHZ,为了保证设计的精度,在设计的过程中采用两次分频,同时在设计过程中为了防止出现意外情况的发生,加入了一个控制信号控制交通灯的启用或停止,交通信号控制电路实现原理如图2所示:
图2交通灯控制系统原理电路图
2.3控制电路的模块VHDL设计实现
2.3.1分频模块
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
useieee.std_logic_arith.all;
entityjiao_tongis
port(clk:
instd_logic);--20MHz晶振时钟
endjiao_tong;
architecturefenpinofjiao_tongis
signalclk1khz,clk1hz:
std_logic;---分频信号包含1hz和1khz
begin
p1:
process(clk)
variablecount:
integerrange0to9999;
begin
ifclk'eventandclk='1'then
ifcount=9999thenclk1khz<=notclk1khz;count:
=0;
elsecount:
=count+1;
endif;
endif;
endprocessp1;
p2:
process(clk1khz)-------------------------1hz分频---
variablecount:
integerrange0to499;
begin
ifclk1khz'eventandclk1khz='1'then
ifcount=499thenclk1hz<=notclk1hz;count:
=0;
elsecount:
=count+1;
endif;
endif;
endprocessp2;
endfenpin;
2.3.2定时模块
p3:
process(clk1hz)
variablea:
std_logic;---倒计时赋值标志位
variableqh:
std_logic_vector(3downto0);---计数的高位和低位
variableql:
std_logic_vector(3downto0);
begin
ifcl