《根据FPGA的交通灯控制器.doc》由会员分享,可在线阅读,更多相关《根据FPGA的交通灯控制器.doc(45页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、!- 摘 要 交通灯,全名是交通信号指示灯,它被安放在道路的交叉路口,承担着指 挥道路交通的重大任务,人们根据交通灯的指示,做出符合交通法规的交通行 为,保证了道路交通的有序顺畅和安全通行。基于交通灯的重要作用,本文利 用 FPGA 技术,设计了一套交通灯控制器系统。在道路的十字路口,东南西北 四个方向,均设置有红黄绿和左转四种交通信号指示灯,并显示有通行和停止 等待的倒计时时间。根据道路实际的流量情况,设置了绿灯 50 秒,红灯 80 秒, 黄灯 5 秒,左转灯 20 秒。本系统以 Altera 公司 Cyclone II 系列的 EP2C5T144C8N 芯片作为核心最小系统,利用 VHD
2、L 语言在 Quartus II 开发平 台上进行软件部分的设计,利用电路设计软件 Protel 进行硬件原理图和 PCB 的 设计,通过波形仿真和硬件实现两种方式,验证了交通灯系统的功能。 关键字:关键字:FPGA 最小系统、交通灯、倒计时、最小系统、交通灯、倒计时、VHDL !- ABSTRACT Traffic lights, full name is traffic signal lights, it was placed at the intersection of roads, undertaking the significant mission command in road
3、traffic, the people according to the traffic lights, traffic behavior comply with traffic regulations, to ensure the smooth and orderly and safe passage of road traffic. Based on the important role of traffic lights, using FPGA technology, design a set of traffic lights control system. At the crossr
4、oads, North four directions, are provided with a red yellow green and turn left at the four traffic signal lamp, and display a countdown time pass and stop waiting. According to the actual situation of road traffic, the green light for 50 seconds 80 seconds, the red light, yellow light for 5 seconds
5、, 20 seconds left lamp. This system to Altera company Cyclone II series EP2C5T144C8N chip as the core of the minimum system, the software design in the Quartus II development platform using VHDL language, the design of hardware schematic and PCB circuit designed by the software Protel, two ways of r
6、ealizing the waveform simulation and hardware, traffic lights to verify the function of the system. Key Words: FPGA minimum system,traffic light,countdown,VHDL !- 目录 摘 要.I ABSTRACT.II 目录 .III 第 1 章 绪论 .1 1.1 课题任务.1 1.2 课题要求.1 1.3 研究意义.1 第 2 章 设计方案 .3 2.1 硬件部分.3 2.1.1 电源电路.3 2.1.2 复位电路.4 2.1.3 晶振电路.5
7、 2.1.4 下载电路.5 2.1.5 系统外围电路.6 2.1.6 硬件开发工具.7 2.2 软件部分.7 2.2.1 Quartus II 软件.8 2.2.2 VHDL 语言.8 第 3 章 系统功能设计 .10 3.2 电路原理图设计.10 3.2.1 电源电路设计.10 3.2.2 晶振电路设计.11 3.2.3 复位电路.11 3.2.4 下载电路设计.11 3.2.5 数码管显示电路.12 3.2.6 LED 指示灯电路.12 3.2.7 系统的总原理图.13 3.3.1 PCB 库元件的设计 .13 3.3.2 PCB 图的绘制 .16 3.4 软件设计.19 3.4.1 时钟
8、分频模块.19 3.4.2 功能控制模块.20 3.4.3 译码模块.23 3.4.4 系统顶层电路.24 第 4 章 调试与实现 .25 4.1 软件仿真调试.25 4.1.1 时钟分频模块仿真.25 !- 4.1.2 功能控制模块仿真.25 4.1.3 译码模块仿真.26 4.1.4 顶层电路仿真.26 第 5 章 总结 .31 参考文献 .32 致谢 .33 附录 .34 附录 1 系统硬件电路原理图.34 附录 2 硬件电路 PCB 图.35 附录 3 时钟分频模块完整的 VHDL 程序.36 附录 4 功能控制模块完整的 VHDL 程序:.37 附录 5 译码模块的完整 VHDL 程
9、序.41 !- 第 1 章 绪论 1.1 课题任务 本课题是基于 FPGA 的交通灯控制器的设计,应用 EDA 技术,设计一个 十字路口的交通灯来形象指挥行人和车辆的安全通行。十字路口处方向分为东 南西北四个方向,东西方向的交通信号灯状态保持一致,南北方向的交通信号 灯状态也保持一致。其中每个方向均要求有四盏指示灯,分别是左转灯、红灯、 绿灯和黄灯。左转灯亮说明车辆可以左转通行;红灯亮说明禁止车辆直行和左 转;绿灯亮说明允许车辆直行和右转;黄灯亮说明指示灯即将进行变换,提示 车辆减速至停止或做好启动准备,此时也是禁止车辆直行和左转。在每个方向 上均设有一个倒计时显示器,以显示禁止或允许通行的倒
10、计时间。东西、南北 方向的指示灯循环变化,实现交通灯的功能。 1.2 课题要求 设计基于 FPGA 的交通灯控制器,实现交通灯的基本功能,要求十字路口 东西、南北方向的红绿黄灯以及左转灯能够循环变化,并且以倒计时的形式进 行指示;各指示灯的持续时间分别为:红灯 80 秒,绿灯 50 秒,黄灯 5 秒,左 转灯 20 秒;紧急情况下能够进行特殊处理,紧急情况过后可恢复。 要求软件和硬件结合来实现交通灯控制器,其中采用硬件描述 VHDL 语言 进行交通灯控制器系统的软件设计,在 EDA 软件 Quartus II 下进行编译以及波 形仿真,硬件采用 Altera 公司 Cyclone II 系列的
11、 EP2C5T144C8N 芯片作为核心 最小系统,绘制出电路原理图和 PCB 图。 1.3 研究意义 交通灯最早出现在 19 世纪的英国,在伦敦的主要街头安装了已燃煤气为光 源的红蓝两色的机械扳手信号指示灯,用于指挥马车通行。后来在美国出现了 电气启动的红绿灯,还有带控制的红绿灯和红外红绿灯。交通信号灯的出现, 使交通得以有效控制,对于疏导流量、提高道路通行能力,减少交通事故有明 显的效果。如今,交通灯被应用在各个道路分叉口上,已经成为疏导交通车辆 的最常见和最有效的方式。随着社会的发展和人们生活水平的提高,汽车的数 量迅速增加,交通管制变得越来越重要,交通灯已成为交通管制必不可少的重 !-
12、 要工具,它能保证机动车辆的安全运行,维持城市道路的顺畅。 以前普通的交通灯控制器只能根据事先给定时间进行通道的通禁控制,但 由于如今车辆的迅速增多,所以传统的交通灯控制器已经表现出明显的缺点: 红绿灯时间相对固定,不能随车流量调整红绿灯的显示时间,在时间和空间方 面造成了交通资源的浪费,加重了道路交通压力。还有一个缺点是没有显示红 绿灯的持续时间,不能及时地做出相应的操作,影响了通行的效率。因此,要 求寻找一种可以随时针对通道上车辆的密集度来控制和调节此通道的通禁时间, 以期达到自动控制的目的,从而减少不合理的堵车现象的发生。 交通灯的功能都是通过交通灯控制器实现的,而交通灯控制器的实现大致
13、 有几种方法,第一种是采用中小规模集成电路实现的,采用的电路元件多,线 路复杂,可靠性低,故障率高,维修难度大。第二种方法是采用单片机方案来 实现, 简化了电路,使得性能更加稳定,而且能够实现多种功能,但也存在着 缺点,就是在修改电路功能以及调试的时候需要硬件电路的支持,这在很大程 度上增加了功能修改以及系统调试的难度。第三种是采用可编程控制器 PLC 来 实现,其优点是提高可靠性和稳定性,但由于 PLC 的体系结构是封闭的,各个 厂家的 PLC 的硬件体系互不兼容,编程语言和指令系统也有差异,降低了用户 的选择性和增加了使用难度。第四种是采用 FPGA 技术,FPGA 是可编程逻辑 器件,利
14、用硬件可描述语言对以 FPGA 芯片为核心的系统进行开发,在设计的 各个阶段,各个层次都可以用计算机进行仿真验证,编程简单,程序修改容易, 不需要硬件电路的支持,而且不受 FPGA 型号的影响,使用更加方便,使得开 发周期缩短。基于 FPGA 的众多优点,使其深受广大设计者的喜爱。采用 FPGA 来实现交通灯控制器,迎合了电子技术的发展趋势,使得电子产品性能 更加稳定,应用更加简单方便。 !- 第 2 章 设计方案 2.1 硬件部分 一个 FPGA 系统,通常由 FPGA 芯片组成的核心部分和外围应用电路组成。 本设计采用 EP2C5T144C8N 芯片作为系统核心,加上电源电路,复位电路,晶
15、 振电路,下载电路等,组成 FPGA 最小系统,再加上外围电路的数码管和 LED 指示灯,构成了整个交通灯控制器系统的硬件电路。硬件电路框图如下: EP2C5T144C8N 晶振电路 电源电路 复位电路 下载电路 数码管显示电路 LED指示灯电路 图 2.1 交通灯控制器系统硬件电路框图 2.1.1 电源电路 电源电路是系统工作供电的来源。FPGA 系统的电源取决于内部电路的要求。 FPGA 有三个要配置元素:可配置逻辑块(CLB),I/O 块(IOB)及其相互连接。 CLB 提供功能性逻辑元素,IOB 提供封装引脚和内部信号线之间的接口,可编 程相互连接资源提供布线途径以连接 CLB 和 I
16、OB 的输入和输出至合适的网络。 施加于 CLB(或核心)的电压被称为 VCCINT,VCCO 为 IOB 的供电电压,一些 FPGA 有被称为 VCCAUX 的另外一个电压输入。 VCCINT 的典型的电压为 1.2 V、1.5 V、1.8 V、2.5 V 和 3V,电流达 12A。CLB 数越大,电压越小而电流越高。此外,VCCINT 应该单调上升,不 允许有下降。 最常见的 VCCO 电压为 1.2 V、1.5 V、1.8 V、2.5 V、3.3 V,在以前的系统中 甚至为 5V,电流范围在 120 A 之间。 !- 典型的辅助电压 VCCAUX 为 3.3 V 或 2.5 V,它对 F
17、PGA 中有严格时间要 求的资源进行供电,所以它很容易受电源噪声的影响,除非 VCCO 不产生过大 的噪声,VCCAUX 可以与 VCCO 共用电源层。 FPGA 电源要求包括电压输出在 1.2 V5 V 之间,电流输出大几十毫安到几 安培之间,三种可能的解决方案为低漏失(LDO)线性整流电路、开关模式变压 器以及开关模式电源模组。 图 2.2 LDO 的内部连接图 LDO 是 low dropout regulator,意为低压差线性稳压器,是相对于传统的线 性稳压器来说的。传统的线性稳压器,如 78xx 系列的芯片都要求输入电压要比 输出电压高出 2v3V 以上,否则就不能正常工作。但是在
18、一些情况下,这样的 条件显然是太苛刻了,如 5v 转 3.3v,输入与输出的压差只有 1.7v,显然是不满 足条件的。针对这种情况,才有了 LDO 类的电源转换芯片。低输出噪声很重要, 或者系统要求对输入和瞬态现象快速响应,就应该采用 LDO 整流器。LDO 提 供了中低输出电流,输入电容器通常会切断输入至 LDO 的阻抗和噪声。LDO 还要求在输出侧有一个电容器,以处理系统瞬态现象并提供稳定性。双输出 LDO 还能同时向 VCCINT 和 VCCO 供电。 当设计效率非常关键且系统要求大输出电流时,则采用开关模式电源。开 关电源提供比 LDO 更高的效率,但其开关特性使其对噪声更敏感。与 L
19、DO 不 同,开关模式变压器需要使用电感器,而且可能需要变压器进行 DC-DC 转换。 2.1.2 复位电路 一个可编程芯片,通常在上电的瞬间需要一个短暂的时间进行内部参数的 初始,这个时候芯片无法立即进入工作状态。通常称上电初始化为复位,实现 这个功能的电路称为复位电路。系统的复位通常采用的是低电平复位,RESET 按键按下后产生低电平,正常工作状态下,复位信号为高电平。 !- 图 2.3 系统复位电路 2.1.3 晶振电路 晶振是为电路提供频率基准的元器件,通常分为有源晶振和无源晶振两个 大类,无源晶振需要芯片内部有振荡器,并且晶振的信号电压根据起振电路而 定,允许不同的电压,但无源晶振通
20、常信号质量和精度较差,需要精确匹配外 围电路(电感、电容、电阻等) ,如需更换晶振时需同时更换外围的电路。有源 晶振不需要芯片的内部振荡器,可以提高高精度的频率基准,信号质量也较无 源晶振要好很多。 2.1.4 下载电路 FPGA 器件有三类配置下载方式:主动配置方式(AS)和被动配置方式 (PS)和最常用的(JTAG)配置方式。 AS 由 FPGA 器件引导配置操作过程,它控制着外部存储器和初始化过程, EPCS 系列.如 EPCS1,EPCS4 配置器件专供 AS 模式,目前只支持 Cyclone 系列。 使用 Altera 串行配置器件来完成。Cyclone 期间处于主动地位,配置期间处
21、于从 属地位。配置数据通过 DATA0 引脚送入 FPGA。配置数据被同步在 DCLK 输 入上,1 个时钟周期传送 1 位数据。 PS 则由外部计算机或控制器控制配置过程。通过加强型配置器件 (EPC16,EPC8,EPC4)等配置器件来完成,在 PS 配置期间,配置数据从外 部储存部件,通过 DATA0 引脚送入 FPGA。配置数据在 DCLK 上升沿锁存,1 个时钟周期传送 1 位数据。 JTAG 接口是一个业界标准,主要用于芯片测试等功能,使用 IEEE Std 1149.1 联合边界扫描接口引脚,支持 JAM STAPL 标准,可以使用 Altera 下载电缆或 主控器来完成。 FP
22、GA 在正常工作时,它的配置数据存储在 SRAM 中,加电时须重新下载。 在实验系统中,通常用计算机或控制器进行调试,因此可以使用 PS。在实用系 统中,多数情况下必须由 FPGA 主动引导配置操作过程,这时 FPGA 将主动从 !- 外围专用存储芯片中获得配置数据,而此芯片中 fpga 配置信息是用普通编程器 将设计所得的 pof 格式的文件烧录进去。 三种配置方式的区别: AS 模式: 烧到 FPGA 的配置芯片里保存的,FPGA 器件每次上电时,作为 控制器从配置器件 EPCS 主动发出读取数据信号,从而把 EPCS 的数据读入 FPGA 中,实现对 FPGA 的编程。下载的是.pof
23、文件。 PS 模式:EPCS 作为控制器件,把 FPGA 当做存储器,把数据写人到 FPGA 中,实现对 FPGA 的编程。该模式可以实现对 FPGA 在线可编程。 JTAG:直接烧到 FPGA 里面的,由于是 SRAM,断电后要重烧。.sof 文件 或者转换的.jic 可以通过 JTAG 方式下载。 2.1.5 系统外围电路 电源电路、晶振电路、复位电路、下载电路构成了 FPGA 的最小系统,是 FPGA 系统能正常工作所必须的电路,利用 FPGA 实现具体的功能,需要添加 外围电路。可根据具体的需求进行添加,包括显示模块电路、按键控制模块电 路,LED 指示灯模块电路、实体功能模块电路等等
24、。FPGA 芯片提供了大量的 IO 口资源,可满足大规模数字电路系统的使用要求,用户参照芯片资料,选择 需要的 IO 引脚进行外部连接。 图 2.4 数码管结构图 本设计需要的外围电路包括数码管显示电路和 LED 指示灯电路。数码管是 用来显示各信号指示灯的持续时间,交通灯的指示灯持续时间基本都在 90 秒内, 而东南西北四个方向均需要配置一组两个的数码管。LED 指示灯电路是东南西 北四个方向的红灯、绿灯、黄灯和左转灯,四种灯为一组,每个方向一组。 七段数码管的结构图如图 2.4,用 7 个 LED 组成一个 8 字构成,每一个 LED 称 !- 为一段,分别标记为 a、b、c、d、e、f、
25、g,图上也表明了排列的顺序。数码管 分为共阳和共阴两种,也有单个和多位之分。共阳是数码管的 com 端接电源 VCC,共阴则是 com 端接地 GND。实际使用时,需要在每一段 LED 上串联一 个电阻,阻值根据图 2.4 中的计算公式来选择。 2.1.6 硬件开发工具 要制作硬件,首先要绘制出系统电路的原理图和 PCB 图,这就需要运用电 路设计软件。本设计采用的是 protel99se 软件,该软件是 ProklTechnology 公司 基于 Windows 环境下开发的电路板设计软件。功能强大,人机界面友好,易学 易用,是业界人士首选的电路板设计工具。 Protel 99SE 由两大部
26、分组成:电路原理图 SCH 设计和多层印刷电路板 PCB 设 计。常用的部分有电路图编辑器,元件库编辑器,PCB 图编辑器和 PCB 库编辑 器。 2.2 软件部分 本设计采用模块层次化设计方法,运用自顶向下的设计思路,将交通灯控 制器系统划分为三个模块,分别是时钟分频模块,功能控制模块和译码器模块。 使用硬件描述 VHDL 语言对每个模块进行功能描述编程,并生成相应的原理图 模块,最后用原理图输入法做成整个系统设计的顶层文件。同时,借助 Quartus II 软件进行模拟仿真,观察每一个模块及整体的仿真波形,确认正确之后,将 程序下载到目标 FPGA 芯片上,进行硬件的调试验证,证明所设计的
27、交通灯控 制器系统完全可以实现预定的功能。软件的系统框图如下: 分频模块 功能控制模 块 译码模块 各方向的红绿黄灯及左转灯 各方向的倒计时显示 图 2.5 系统软件框图 分频模块的作用是对系统的输入时钟进行分频处理,获得系统工作实际需 要的频率;功能控制模块则是实现交通灯控制器的具体控制功能,包括东南西 北各方向红灯、黄灯、绿灯、左转灯的循环点亮控制和各指示灯持续时间的显 示控制等;译码模块则是对功能控制模块输出的时间显示编码进行译码,获得 数码管显示需要的段码,以便显示出相应的数字。 !- 根据要求,系统的软件开发平台采用 Quartus II 软件,利用 VHDL 语言进 行编程设计,下
28、面将对 Quartus II 软件和 VHDL 语言进行简要介绍。 2.2.1 Quartus II 软件 Quartus II 可编程逻辑软件是 Altera 公司的综合性 PLD 开发软件,属于第 四代 PLD 开发平台。该平台支持一个工作组环境下的设计要求,其中包括支持 基于 Internet 的协作设计。它拥有现场可编程门阵列(FPGA)和复杂可编程逻 辑器件(CPLD)设计的所有阶段的解决方案。支持原理图、 VHDL、VerilogHDL 以及 AHDL(Altera Hardware Description Language)等多 种设计输入形式,内嵌自有的综合器以及仿真器,可以完
29、成从设计输入到硬件 配置的完整 PLD 设计流程。 使用 Quartus II 进行设计和开发数字系统的基本过程与一般的数字系统设计 过程基本一致,其开发流程包括以下几个步骤:设计输入、项目编译、仿真与 定时分析、编译下载和测试。 用户首先对所做项目进行设计,明确设计目的、设计要求;然后利用原理 图输入方式或文本输入方式进行设计输入;输入完成后,进行编译,若编译过 程中发现错误,则检查设计输入,直至没有错误发生;编译完成后,就可以进 行仿真,检查设计是否达到设计要求,否则还需要重新检查设计输入;仿真结 果达到要求后,就可以进行烧录,把设计程序下载到目的芯片中;最后把芯片 放到实际系统中进行验证、测试。 2.2.2 VHDL 语言 VHDL 全名 Very-High-Speed Integrated Circuit HardwareDescription Language,即超高速集成电路硬件描述语言,是一种用形式化方法描述数字电 路和系统的语言。 VHDL 语言是一种用于电路设计的高级语言,主要是应用在数字电路的设 计中。用于描述数字系统的结构,行为,功
限制150内