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

下载本文档

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

文档简介

CPLD/FPGA 设计及应用课程设计课程设计报告题 目: 基于 FPGA 的交通信号灯设计 院 (系): 信息科学与工程学院 专业班级: 通信工程 学生姓名: 20 16 年 03 月 14 日至 20 16 年 04 月 8 日目 录一 设计目的 .11.交通灯介绍 .22. EDA 技术的发展 .23. 基于 FPGA 的交通灯的优点 .3二 设计过程 .41.总体设计思路 .42.总体设计模块 .53. 控制电路的模块 VHDL 设计实现 .63.1 分频模块 .63.2 定时模块 .73.3 状态转换模块 .83.4 禁止通行模块 .123.5 显示模块 .144.硬件电路设计与调试 .16三 实验总结 .17参考文献 .17附录一(程序代码) .181一 设计目的引言:随着社会和汽车工业的快速发展,近几年机动车辆急剧增加,道路超负荷承载现象日趋严重,致使交通事故逐年增加。交通信号灯是城市交通有序、安全、快速运行的重要保障,而交通信号灯的正常工作就成了保障交通有序、安全、快速运行的关键。如何实现人、车、路三者关系的协调,已成为交通管理部门需要切实解决的问题。该设计分析了现代城市交通控制与管理问题的现状,结合城乡交通的实际情况阐述了交通灯控制系统的工作原理,采用了层次化的设计方法,基于 VHDL 语言实现红绿灯的自动指挥的硬件实现方法。通过电路优化设计,可以使用规模更小的可编程逻辑芯片,从而降低系统成本。该设计是针对交通信号灯控制器的设计问题,采用 EDA 技术实现的交通灯控制电路的设计方案。本设计有效的克服了传统的交通灯控制的缺点而采取自上而下的设计思路。该设计在软件 Quartus11.0 下应用硬件描述语言 VHDL 语言完成设计文件,并对其进行了功能仿真和时序仿真,且给出了相应的仿真结果,绘制出了具体的逻辑电路,最后将其下载到 Alter 公司生产的 Cyclone系列的 EP2C8Q208 开发板上进行逻辑验证,实现软件和硬件的安全连接,达到了对交通灯的自动安全控制的目的。 关键字:交通灯控制;EDA; VHDL;Quartus;EP2C8Q20821.交通灯介绍当今,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。但这一技术在 19 世纪就已出现了。1858 年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械扳手式信号灯,用以指挥马车通行。这是世界上最早的交通信号灯。1868 年,英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯。1914 年由红绿黄三色圆形的投光器组成的红绿灯始安装于纽约市 5 号大街的一座高塔上。1918 年,又出现了带控制的红绿灯和红外线红绿灯。信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。1968 年,联合国道路交通和道路标志信号协定对各种信号灯的含义作了规定。绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向。左右转弯车辆都必须让合法地正在路口内行驶的车辆和过人行横道的行人优先通行。红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车。黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口。2.EDA 技术的发展EDA 是电子设计自动化(Electronic Design Automation)的缩写,是指以计算机为工作平台,融合应用电子技术、计算机技术、智能化技术最新成果而研制成的电子 CAD 通用软件包,主要能辅助进行三方面的设计工作,即 IC 设计、电子电路设计和 PCB 设计。是从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。EDA 技术就是以计算机为工具,设计者在 EDA 软件平台上,用硬件描述语言 HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载的高层次的电子设计方法。EDA 技术的出现,极大地提高了电路设计的效率和可用性,减轻了设计者的劳动强度。EDA 技术是电子设计领域的一场革命,代表了当今电子设计技术的最新发展方向,目前正处于高速发展阶段,每年都有新的 EDA 工具问世。33.基于 FPGA 的交通灯的优点传统的交通灯控制系统多数由单片机或 PLC 实现,基于 EDA 技术 FPGA 的设计方法设计交通灯系统就是使用硬件描述语言(HDL)来完成系统的设计文件,应用 VHDL 的数字电路实验降低了数字系统的设计难度,这在电子设计领域已得到设计者的广泛采用。具有周期短,设计灵活,易于修改等明显的优点,而且随着 FPGA 器件、设计语言和电子设计自动化工具的发展和改进,越来越多的电子系统采用 FPGA 来设计,还有,通过 FPGA 设计电子系统,一旦该系统可以达到一定规模的量产,很容易转化为 ASIC 芯片设计。相信在将来,FPGA 设计方法将更大规模的应用于各种类型的电子系统设计中。本设计就是针对交通信号灯控制器的设计问题,并采用自顶向底的设计思路。提出了基于 VHDL 语言的交通信号灯系统的硬件实现方法。通过对系统进行结构分析,采用了层次化的设计方法,给出了各个模块的 VHDL 程序,并且利用Quartus 对应用程序进行了仿真,并给出了相应的仿真结果。在用 VHDL 语言进行电路设计时,应充分认识到 VHDL 语言的特点,从设计思想、语句运用及描述方法上等多方面对电路进行优化设计。通过电路优化设计,可以使用规模更小的可编程逻辑芯片,从而降低系统成本。4二 设计过程1.总体设计思路所要设计的交通信号灯控制电路,要能够适用于由一条主干道和一条支干道的汇合点形成的十字交叉路口,主、支干道的红绿灯闪亮时间不完全相同。具体的设计要求如下:实现控制一条主干道和一条次干道汇合组成的十字交叉路口,使主、支干道上的车辆行人交替通行,其中主干道车辆行人通行 35 秒,此时支干道上车辆行人禁止通行;支干道车辆通行 25 秒,同样此时主干道上车辆禁止通行。每当信号灯由绿灯转换成红灯之前,黄灯要先亮 5 秒,此时另一个干道红灯不变,禁止通行。在黄灯亮点亮 5 秒,以提示车辆行人。在主干道上安装有数码管,用来显示本道各信号灯闪亮的剩余时间。外观示意图如图 1 所示:主干道 红 黄 绿 计时器灯 灯 灯 倒计时支 红 灯 干 黄 灯道 绿 灯图 1 1.在十字路口的两个方向上各设一组红黄绿灯,显示顺序其中一方向是绿灯、黄灯、红灯,另一方向是红灯、绿灯、黄灯。2.设置一组数码管,以倒计时的方式显示允许通行或禁止通行时间,其中主干道绿灯亮的时间是 35s,支干道绿灯亮的时间是 30s,黄灯亮的时间都是5s。53.扩展:当紧急情况出现时,按下手动开关,两条道路都显示红灯,此时禁止通行,倒计时停止;按下控制开关,恢复正常。2.总体设计模块1.把由 50M 的有源晶振产生的现场可编程逻辑器件 FPGA 的系统时钟输入到分频模块,经分频模块分频产生频率为 1Hz 的时钟脉冲,作为控制定时模块、控制模块、紧急模块、计数模块的时钟信号,然后再由定时模块来控制紧急模块和控制模块,按照交通管理规则控制交通工作状态的切换,最后,由系统时钟和计数模块以及控制模块来共同控制计数器控制模块,计数器的时钟为1Hz,再把计数器控制模块送出的 BCD 码送给译码器译码后,送给数码管显示各方向直行绿灯的倒计时。模块图如图 2 所示:图 2 控制系统模块图2.Cyclone系列的 EP2C8Q208 的脉冲为 50MHZ,为了保证设计的精度,在设计的过程中采用两次分频,同时在设计过程中为了防止出现意外情况的发生,加入了一个控制信号控制交通灯的启用或停止,交通信号实现原理如图 3 所示:交 通 灯状态转换模块计数模块数 码 管控制模块分频模块6图 3 交通灯实现模块图3.控制电路的模块 VHDL 设计实现3.1 分频模块 library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity jiao_tong is port(clk:in std_logic); -20MHz 晶振时钟end jiao_tong;architecture fenpin of jiao_tong is signal clk1khz,clk1hz:std_logic; -分频信号包含 1hz 和 1khzbeginp1:process(clk)7variable count:integer range 0 to 9999;beginif clkevent and clk=1 thenif count=9999 then clk1khz=not clk1khz;count:=0;else count:=count+1;end if;end if;end process p1;p2:process(clk1khz) -1hz 分频-variable count:integer range 0 to 499;beginif clk1khzevent and clk1khz=1 thenif count=499 then clk1hz=not clk1hz;count:=0;else count:=count+1;end if;end if;end process p2;end fenpin;3.2 定时模块p3:process(clk1hz)variable a:std_logic; -倒计时赋值标志位variable qh:std_logic_vector(3 downto 0); -计数的高位和低位variable ql:std_logic_vector(3 downto 0);beginif clk1hzevent and clk1hz=1 then -如果是下降延if jin=0 then -状态 st1,主干道通行 35sif a=0 then8qh:=“0011“; ql:=“0100“;a:=1;elsif qh=0and ql=1 then -如果倒计时结束,则转到 st2 状态a:=0;qh:=“0000“;ql:=“0000“;elsif ql=0 then -实现倒计时 35sql:=“1001“;qh:=qh-1;elseql:=ql-1;end if;en

温馨提示

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

评论

0/150

提交评论