欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    基于FPGA的交通灯控制器.doc

    • 资源ID:1180207       资源大小:140.45KB        全文页数:31页
    • 资源格式: DOC        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于FPGA的交通灯控制器.doc

    摘 要交通灯,全名是交通信号指示灯,它被安放在道路的穿插路口,承当着指挥道路交通的重大任务,人们根据交通灯的指示,做出符合交通法规的交通行为,保证了道路交通的有序顺畅和平安通行。基于交通灯的重要作用,本文利用 FPGA 技术,设计了一套交通灯控制器系统。在道路的十字路口,东南西北四个方向,均设置有红黄绿和左转四种交通信号指示灯,并显示有通行和停顿等待的倒计时时间。根据道路实际的流量情况,设置了绿灯 50 秒,红灯 80 秒,黄灯 5 秒,左转灯 20 秒。本系统以 Altera 公司 Cyclone II 系列的EP2C5T144C8N 芯片作为核心最小系统,利用 VHDL 语言在 Quartus II 开发平台上进展软件局部的设计,利用电路设计软件 Protel 进展硬件原理图和 PCB 的设计,通过波形仿真和硬件实现两种方式,验证了交通灯系统的功能。关键字:关键字:FPGAFPGA 最小系统、交通灯、倒计时、最小系统、交通灯、倒计时、VHDLVHDLABSTRACTTraffic lights, full name is traffic signal lights, it was placed at the intersection of roads, undertaking the significant mission mand in road traffic, the people according to the traffic lights, traffic behavior ply 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 crossroads, 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, 20 seconds left lamp. This system to Altera pany 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 realizing the waveform simulation and hardware, traffic lights to verify the function of the system.K Ke ey y WWo or rd ds s: :FPGA minimum system,traffic light,countdown,VHDL目录摘要 IABSTRACT.II目录 III第 1 章绪论 11.1 课题任务 11.2 课题要求 11.3 研究意义 1第 2 章设计方案 32.1 硬件局部 32.1.1 电源电路 3复位电路 42.1.3 晶振电路 52.1.4 下载电路 52.1.5 系统外围电路 62.1.6 硬件开发工具 72.2 软件局部 72.2.1 Quartus II 软件 82.2.2 VHDL 语言 8第 3 章系统功能设计 103.2 电路原理图设计 103.2.1 电源电路设计 103.2.2 晶振电路设计 113.2.3 复位电路 113.2.4 下载电路设计 113.2.5 数码管显示电路 123.2.6 LED 指示灯电路 123.2.7 系统的总原理图 133.3.1 PCB 库元件的设计 133.3.2 PCB 图的绘制 163.4 软件设计 193.4.1 时钟分频模块 19功能控制模块 203.4.3 译码模块 233.4.4 系统顶层电路 24第 4 章调试与实现 254.1 软件仿真调试 254.1.1 时钟分频模块仿真 254.1.2 功能控制模块仿真 254.1.3 译码模块仿真 264.1.4 顶层电路仿真 26第 5 章总结 31参考文献 32致 33附录 34附录 1 系统硬件电路原理图 34附录 2 硬件电路 PCB 图 35附录 3 时钟分频模块完整的 VHDL 程序 36附录 4 功能控制模块完整的 VHDL 程序:37附录 5 译码模块的完整 VHDL 程序 41第 1 章 绪论1.1 课题任务本课题是基于 FPGA 的交通灯控制器的设计,应用 EDA 技术,设计一个十字路口的交通灯来形象指挥行人和车辆的平安通行。十字路口处方向分为东南西北四个方向,东西方向的交通信号灯状态保持一致,南北方向的交通信号灯状态也保持一致。其中每个方向均要求有四盏指示灯,分别是左转灯、红灯、绿灯和黄灯。左转灯亮说明车辆可以左转通行;红灯亮说明制止车辆直行和左转;绿灯亮说明允许车辆直行和右转;黄灯亮说明指示灯即将进展变换,提示车辆减速至停顿或做好启动准备,此时也是制止车辆直行和左转。在每个方向上均设有一个倒计时显示器,以显示制止或允许通行的倒计时间。东西、南北方向的指示灯循环变化,实现交通灯的功能。1.2 课题要求设计基于 FPGA 的交通灯控制器,实现交通灯的根本功能,要求十字路口东西、南北方向的红绿黄灯以及左转灯能够循环变化,并且以倒计时的形式进展指示;各指示灯的持续时间分别为:红灯 80 秒,绿灯 50 秒,黄灯 5 秒,左转灯 20 秒;紧急情况下能够进展特殊处理,紧急情况过后可恢复。要求软件和硬件结合来实现交通灯控制器,其中采用硬件描述 VHDL 语言进展交通灯控制器系统的软件设计,在 EDA 软件 Quartus II 下进展编译以及波形仿真,硬件采用 Altera 公司 Cyclone II 系列的 EP2C5T144C8N 芯片作为核心最小系统,绘制出电路原理图和 PCB 图。1.3 研究意义交通灯最早出现在 19 世纪的英国,在伦敦的主要街头安装了已燃煤气为光源的红蓝两色的机械扳手信号指示灯,用于指挥马车通行。后来在美国出现了电气启动的红绿灯,还有带控制的红绿灯和红外红绿灯。交通信号灯的出现,使交通得以有效控制,对于疏导流量、提高道路通行能力,减少交通事故有明显的效果。如今,交通灯被应用在各个道路分叉口上,已经成为疏导交通车辆的最常见和最有效的方式。随着社会的开展和人们生活水平的提高,汽车的数量迅速增加,交通管制变得越来越重要,交通灯已成为交通管制必不可少的重要工具,它能保证机动车辆的平安运行,维持城市道路的顺畅。以前普通的交通灯控制器只能根据事先给定时间进展通道的通禁控制,但由于如今车辆的迅速增多,所以传统的交通灯控制器已经表现出明显的缺点:红绿灯时间相对固定,不能随车流量调整红绿灯的显示时间,在时间和空间方面造成了交通资源的浪费,加重了道路交通压力。还有一个缺点是没有显示红绿灯的持续时间,不能及时地做出相应的操作,影响了通行的效率。因此,要求寻找一种可以随时针对通道上车辆的密集度来控制和调节此通道的通禁时间,以期到达自动控制的目的,从而减少不合理的堵车现象的发生。交通灯的功能都是通过交通灯控制器实现的,而交通灯控制器的实现大致有几种方法,第一种是采用中小规模集成电路实现的,采用的电路元件多,线路复杂,可靠性低,故障率高,维修难度大。第二种方法是采用单片机方案来实现, 简化了电路,使得性能更加稳定,而且能够实现多种功能,但也存在着缺点,就是在修改电路功能以及调试的时候需要硬件电路的支持,这在很大程度上增加了功能修改以及系统调试的难度。第三种是采用可编程控制器 PLC 来实现,其优点是提高可靠性和稳定性,但由于 PLC 的体系构造是封闭的,各个厂家的 PLC 的硬件体系互不兼容,编程语言和指令系统也有差异,降低了用户的选择性和增加了使用难度。第四种是采用 FPGA 技术,FPGA 是可编程逻辑器件,利用硬件可描述语言对以 FPGA 芯片为核心的系统进展开发,在设计的各个阶段,各个层次都可以用计算机进展仿真验证,编程简单,程序修改容易,不需要硬件电路的支持,而且不受 FPGA 型号的影响,使用更加方便,使得开发周期缩短。基于 FPGA 的众多优点,使其深受广阔设计者的喜爱。采用FPGA 来实现交通灯控制器,迎合了电子技术的开展趋势,使得电子产品性能更加稳定,应用更加简单方便。第 2 章 设计方案2.1 硬件局部一个 FPGA 系统,通常由 FPGA 芯片组成的核心局部和外围应用电路组成。本设计采用 EP2C5T144C8N 芯片作为系统核心,加上电源电路,复位电路,晶振电路,下载电路等,组成 FPGA 最小系统,再加上外围电路的数码管和 LED指示灯,构成了整个交通灯控制器系统的硬件电路。硬件电路框图如下:图 2.1 交通灯控制器系统硬件电路框图电源电路电源电路是系统工作供电的来源。FPGA 系统的电源取决于部电路的要求。FPGA 有三个要配置元素:可配置逻辑块(CLB),I/O 块(IOB)及其相互连接。CLB 提供功能性逻辑元素,IOB 提供封装引脚和部信号线之间的接口,可编程相互连接资源提供布线途径以连接 CLB 和 IOB 的输入和输出至适宜的网络。施加于 CLB(或核心)的电压被称为 VCCINT,VCCO 为 IOB 的供电电压,一些FPGA 有被称为 VCCAU*的另外一个电压输入。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 之间。典型的辅助电压 VCCAU*为 3.3 V 或 2.5 V,它对 FPGA 中有严格时间要求的资源进展供电,所以它很容易受电源噪声的影响,除非 VCCO 不产生过大的噪声,VCCAU*可以与 VCCO 共用电源层。FPGA 电源要求包括电压输出在 1.2 V5 V 之间,电流输出大几十毫安到几安培之间,三种可能的解决方案为低漏失(LDO)线性整流电路、开关模式变压器以及开关模式电源模组。图 2.2 LDO 的部连接图LDO 是 low dropout regulator,意为低压差线性稳压器,是相对于传统的线性稳压器来说的。传统的线性稳压器,如 78*系列的芯片都要求输入电压要比输出电压高出 2v3V 以上,否则就不能正常工作。但是在一些情况下,这样的条件显然是太苛刻了,如 5v 转 3.3v,输入与输出的压差只有 1.7v,显然是不满足条件的。针对这种情况,才有了 LDO 类的电源转换芯片。低输出噪声很重要,或者系统要求对输入和瞬态现象快速响应,就应该采用 LDO 整流器。LDO 提供了中低输出电流,输入电容器通常会切断输入至 LDO 的阻抗和噪声。LDO还要求在输出侧有一个电容器,以处理系统瞬态现象并提供稳定性。双输出LDO 还能同时向 VCCINT 和 VCCO 供电。当设计效率非常关键且系统要求大输出电流时,则采用开关模式电源。开关电源提供比 LDO 更高的效率,但其开关特性使其对噪声更敏感。与 LDO 不同,开关模式变压器需要使用电感器,而且可能需要变压器进展 DC-DC 转换。复位电路一个可编程芯片,通常在上电的瞬间需要一个短暂的时间进展部参数的初始,这个时候芯片无法立即进入工作状态。通常称上电初始化为复位,实现这个功能的电路称为复位电路。系统的复位通常采用的是低电平复位,RESET 按键按下后产生低电平,正常工作状态下,复位信号为高电平。图 2.3 系统复位电路 晶振电路晶振是为电路提供频率基准的元器件,通常分为有源晶振和无源晶振两个大类,无源晶振需要芯片部有振荡器,并且晶振的信号电压根据起振电路而定,允许不同的电压,但无源晶振通常信号质量和精度较差,需要准确匹配外围电路电感、电容、电阻等 ,如需更换晶振时需同时更换外围的电路。有源晶振不需要芯片的部振荡器,可以提高高精度的频率基准,信号质量也较无源晶振要好很多。 下载电路FPGA 器件有三类配置下载方式:主动配置方式AS和被动配置方式PS和最常用的(JTAG)配置方式。 AS 由 FPGA 器件引导配置操作过程,它控制着外部存储器和初始化过程,EPCS 系列.如 EPCS1,EPCS4 配置器件专供 AS 模式,目前只支持 Cyclone 系列。使用 Altera 串行配置器件来完成。Cyclone 期间处于主动地位,配置期间处于附属地位。配置数据通过 DATA0 引脚送入 FPGA。配置数据被同步在 DCLK 输入上,1 个时钟周期传送 1 位数据。PS 则由外部计算机或控制器控制配置过程。通过加强型配置器件EPC16,EPC8,EPC4等配置器件来完成,在 PS 配置期间,配置数据从外部储存部件,通过 DATA0 引脚送入 FPGA。配置数据在 DCLK 上升沿锁存,1个时钟周期传送 1 位数据。JTAG 接口是一个业界标准,主要用于芯片测试等功能,使用 IEEE Std 1149.1联合边界扫描接口引脚,支持 JAM STAPL 标准,可以使用 Altera 下载电缆或主控器来完成。FPGA 在正常工作时,它的配置数据存储在 SRAM 中,加电时须重新下载。在实验系统中,通常用计算机或控制器进展调试,因此可以使用 PS。在实用系统中,多数情况下必须由 FPGA 主动引导配置操作过程,这时 FPGA 将主动从外围专用存储芯片中获得配置数据,而此芯片中 fpga 配置信息是用普通编程器将设计所得的 pof 格式的文件烧录进去。三种配置方式的区别:AS 模式: 烧到 FPGA 的配置芯片里保存的,FPGA 器件每次上电时,作为控制器从配置器件 EPCS 主动发出读取数据信号,从而把 EPCS 的数据读入FPGA 中,实现对 FPGA 的编程。下载的是.pof 文件。PS 模式:EPCS 作为控制器件,把 FPGA 当做存储器,把数据写人到 FPGA中,实现对 FPGA 的编程。该模式可以实现对 FPGA 在线可编程。JTAG:直接烧到 FPGA 里面的,由于是 SRAM,断电后要重烧。.sof 文件或者转换的.jic 可以通过 JTAG 方式下载。 系统外围电路电源电路、晶振电路、复位电路、下载电路构成了 FPGA 的最小系统,是FPGA 系统能正常工作所必须的电路,利用 FPGA 实现具体的功能,需要添加外围电路。可根据具体的需求进展添加,包括显示模块电路、按键控制模块电路,LED 指示灯模块电路、实体功能模块电路等等。FPGA 芯片提供了大量的IO 口资源,可满足大规模数字电路系统的使用要求,用户参照芯片资料,选择需要的 IO 引脚进展外部连接。图 2.4 数码管构造图本设计需要的外围电路包括数码管显示电路和 LED 指示灯电路。数码管是用来显示各信号指示灯的持续时间,交通灯的指示灯持续时间根本都在 90 秒,而东南西北四个方向均需要配置一组两个的数码管。LED 指示灯电路是东南西北四个方向的红灯、绿灯、黄灯和左转灯,四种灯为一组,每个方向一组。七段数码管的构造图如图 2.4,用 7 个 LED 组成一个 8 字构成,每一个 LED 称为一段,分别标记为 a、b、c、d、e、f、g,图上也说明了排列的顺序。数码管分为共阳和共阴两种,也有单个和多位之分。共阳是数码管的端接电源 VCC,共阴则是端接地 GND。实际使用时,需要在每一段 LED 上串联一个电阻,阻值根据图 2.4 中的计算公式来选择。 硬件开发工具要制作硬件,首先要绘制出系统电路的原理图和 PCB 图,这就需要运用电路设计软件。本设计采用的是 protel99se 软件,该软件是 ProklTechnology 公司基于Windows 环境下开发的电路板设计软件。功能强大,人机界面友好,易学易用,是业界人士首选的电路板设计工具。Protel 99SE 由两大局部组成:电路原理图 SCH 设计和多层印刷电路板 PCB 设计。常用的局部有电路图编辑器,元件库编辑器,PCB 图编辑器和 PCB 库编辑器。2.2 软件局部本设计采用模块层次化设计方法,运用自顶向下的设计思路,将交通灯控制器系统划分为三个模块,分别是时钟分频模块,功能控制模块和译码器模块。使用硬件描述 VHDL 语言对每个模块进展功能描述编程,并生成相应的原理图模块,最后用原理图输入法做成整个系统设计的顶层文件。同时,借助 Quartus II软件进展模拟仿真,观察每一个模块及整体的仿真波形,确认正确之后,将程序下载到目标 FPGA 芯片上,进展硬件的调试验证,证明所设计的交通灯控制器系统完全可以实现预定的功能。软件的系统框图如下:图 2.5 系统软件框图分频模块的作用是对系统的输入时钟进展分频处理,获得系统工作实际需要的频率;功能控制模块则是实现交通灯控制器的具体控制功能,包括东南西北各方向红灯、黄灯、绿灯、左转灯的循环点亮控制和各指示灯持续时间的显示控制等;译码模块则是对功能控制模块输出的时间显示编码进展译码,获得数码管显示需要的段码,以便显示出相应的数字。根据要求,系统的软件开发平台采用 Quartus II 软件,利用 VHDL 语言进展编程设计,下面将对 Quartus II 软件和 VHDL 语言进展简要介绍。Quartus II 软件Quartus II 可编程逻辑软件是 Altera 公司的综合性 PLD 开发软件,属于第四代 PLD 开发平台。该平台支持一个工作组环境下的设计要求,其中包括支持基于 Internet 的协作设计。它拥有现场可编程门阵列FPGA和复杂可编程逻辑器件CPLD设计的所有阶段的解决方案。支持原理图、VHDL、VerilogHDL 以及 AHDLAltera Hardware Description Language等多种设计输入形式,嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整 PLD 设计流程。使用 Quartus II 进展设计和开发数字系统的根本过程与一般的数字系统设计过程根本一致,其开发流程包括以下几个步骤:设计输入、工程编译、仿真与定时分析、编译下载和测试。用户首先对所做工程进展设计,明确设计目的、设计要求;然后利用原理图输入方式或文本输入方式进展设计输入;输入完成后,进展编译,假设编译过程中发现错误,则检查设计输入,直至没有错误发生;编译完成后,就可以进展仿真,检查设计是否到达设计要求,否则还需要重新检查设计输入;仿真结果到达要求后,就可以进展烧录,把设计程序下载到目的芯片中;最后把芯片放到实际系统中进展验证、测试。VHDL 语言VHDL 全名 Very-High-Speed Integrated Circuit HardwareDescription Language,即超高速集成电路硬件描述语言,是一种用形式化方法描述数字电路和系统的语言。VHDL 语言是一种用于电路设计的高级语言,主要是应用在数字电路的设计中。用于描述数字系统的构造,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL 的语言形式、描述风格以及语法是十分类似于一般的计算机高级语言。VHDL 的程序构造特点是将一项工程设计,或称设计实体可以是一个元件,一个电路模块或一个系统分成外部或称可视局部,及端口)和部或称不可视局部 ,既涉及实体的部功能和算法完成局部。在对一个设计实体定义了外部界面后,一旦其部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成外局部的概念是 VHDL 系统设计的根本点。VHDL 语言的主要特点包括:功能强大,设计灵活;支持广泛、易于修改;强大的系统硬件描述能力;独立于器件的设计、与工艺无关;很强的移植能力;易于共享和复用。具有下面几大优势:1与其他的硬件描述语言相比,VHDL 具有更强的行为描述能力,从而决定了他成为系统设计领域最正确的硬件描述语言。强大的行为描述能力是避开具体的器件构造,从逻辑行为上描述和设计大规模电子系统的重要保证。2VHDL 丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统的功能可行性,随时可对设计进展仿真模拟。3VHDL 语句的行为描述能力和程序构造决定了他具有支持大规模设计的分解和已有设计的再利用功能。符合市场需求的大规模系统高效,高速的完成必须有多人甚至多个代发组共同并行工作才能实现。4对于用 VHDL 完成的一个确定的设计,可以利用 EDA 工具进展逻辑综合和优化,并自动的把 VHDL 描述设计转变成门级网表。5VHDL 对设计的描述具有相对独立性,设计者可以不懂硬件的构造,也不必管理最终设计实现的目标器件是什么,而进展独立的设计。第 3 章 系统功能设计3.1 硬件描述根据设计方案,交通灯控制器系统是以 FPGA 芯片 EP2C5T144C8N 为核心处理器组成的应用系统。芯片加上电源电路、晶振电路、复位电路、下载电路实现最小系统电路,外围应用电路包括数码管显示电路和 LED 指示灯电路。EP2C5T144C8N 是 Altera 公司推出的 Cyclone II 系列的芯片,有 4608 个逻辑单元,总比特数为 119808,PLLs 有 2 个,总引脚数为 144,最多用户 IO 管脚为 89 个,采用 144-pin TQFP 的封装形式。Cyclone II 系列芯片可以说是目前市场上性价比最高的芯片,比第一代的 EP1C6 和 EP1C12 等芯片设计上、部的逻辑资源上都有很大的改良,同时价格也可以被广阔客户承受。下面将对交通灯控制器系统的硬件电路进展详细的设计介绍。3.2 电路原理图设计 电源电路设计本系统使用两种供电方式,一种是使用独立的 5V/1A 开关电源供电,另一种是使用 USB 线供电。配置了电源接口和 USB 接口,并有电源控制开关,使用过程中可以在不拔去电源的情况下切断电源,方便使用。还设置了一个 LED 作为电源上电指示灯,在接上电源的时候亮起,说明系统已上电,可以开场工作了。电路图如图 3.1。图 3.1 交通灯控制器电源电路用 LDO 稳压芯片 AMS-117_3.3V 把外部输入的 5V 电压转变为系统工作电压3.3V。而另一个 LDO 稳压芯片 AMS-117_1.2V 则是把 3.3V 输出电压转变为1.2V,作为 FPGA 核的供电。在直流电源回路中,负载的变化会引起电源噪声。例如在数字电路中,当电路从一个状态转换为另一个状态,就会在电源线上产生一个很大的尖峰电流,形成瞬变的噪声电压,配置去耦电容可以抑制因负载变化而产生的噪声,是印制电路板的可靠性设计的一种常规做法。一般在电源局部都采用大电容与小电容并联在电源两端的,这样对高频与低频都有一定抑制作用。在 LDO 的输入输出上,均有一个 47uF 电解电容和一个 0.1uF 的瓷片电容。 晶振电路设计本系统使用 50MHZ 的有源贴片晶振作为板子工作的时钟输入。电路如下。CLK 与 EP2C5T144C8N 的 CLK0 端连接。图 3.2 交通灯控制器的晶振电路 复位电路图 3.3 交通灯控制器的复位电路用一个按键与 EP2C5T144C8N 的 CLK5 端相连接组成系统的复位电路,按下按键,产生一个低电平信号,触发系统进展复位。下载电路设计Cyclone II 系列的 EP2C 通常采用的是 JTAG 配置方式。本系统采用的便是JTAG 配置下载方式,提供了一个 JTAG 接口。标准的 JTAG 接口是 4 线的,TMS 为模式选择,TCK 为时钟,TDI 是数据输入,TDO 为数据输出。4 根线分别与 EP2C5T144C8N 的 11、12、13 和 10 脚相连接。电路如下列图。图 3.4 交通灯控制器的下载接口电路 数码管显示电路图 3.5 交通灯控制器的数码管显示电路本系统采用 4 组两个七段共阳数码管作为指示灯持续时间显示的模块,分别用在东南西北 4 个方向上。4 组为一样的数码管,其中的一组数码管电路如图 3.5。数码管的端接到 3.3V 电源上,段码 ag 与一个 300 欧的排阻相连接,排阻的另一端接到 FPGA 芯片的 IO 口上。当 IO 口输出高电平的时候,数码管不点亮,当 IO 口输出低电平的时候,数码管才被点亮。东西方向、南北方向的数码管是同时被点亮和熄灭的。 LED 指示灯电路系统分为东南西北四个方向,共四组一样的指示灯,每个方向有一组 LED指示灯,一组指示灯由 4 个 LED 组成,分别是红灯、绿灯、黄灯和左转灯。其中一组指示灯的电路如图 3.6。一个 LED 串接一个 300 欧的电阻,连接到FPGA 芯片的 IO 口上,一个 IO 口控制一个 LED 指示灯,当 IO 口输出低电平的时候,LED 被点亮。图 3.6 交通灯控制器的 LED 指示灯电路系统的总原理图在完成了各个电路的原理图设计之后,根据 EP2C5T144C8N 的芯片资料,选择提供的用户 IO 口与设计电路进展连接。用户 IO 区分为 4 个 BANK,为了清楚直观地展示交通灯,一组数码管显示和一组 LED 指示灯分别与 4 个 BANK的 IO 口进展连接,便得出了交通灯控制器系统的总原理图,见附录。3.3 电路 PCB 设计在完成了电路原理图的设计之后,接下来便是进展 PCB 图的设计。PCB 图是制作硬件的最重要的线路图,PCB 图的线路直接反映在硬件的板子上,所以 PCB的设计至关重要,防止出现重接错误,导致设计的失败。在绘制 PCB 图之前,首先要对原理图进展编译,排查错误;然后根据所选元件的实际封装设置每个元件的封装;再生成一个网络表,把这个网络表导入到 PCB 文件中,最后才能按照 PCB 设计规进展 PCB 图的设计。 PCB 库元件的设计在设计过程中,通常在 protel 软件的自带 PCB 库中,找不到需要的元件封装,而元件的封装与实际的实物元件是一一对应的,管脚、外形的尺寸都要准确一致。这时候就需要设计者参照实物的尺寸绘制 PCB 封装。把多个自行设计的封装集合在一个文件中,就形成了一个 PCB 库文件。本设计中,使用到的元件与该元件的封装如表 3.1。表 3.1 交通灯控制器的元件与封装参考表元件型号封装电源插座 POWERPOWERUSB 电源插座 USB_POWERUSB-B电源开关POWER_SW复位按键RESETLDO-AMS117SOT22350MHz 贴片有源晶振CRYSTAL_SMDJTAG 下载口IDC10单个七段数码管-0.56 英寸7-SEG300 欧的排阻RES8EP2C5T144C8NTQFP144电阻、电容、LED060347uF 电解电容CAP_47经过查找 protel 软件自带的 PCB 库,除了 0603 封装,其他的封装都找不到,需要自行绘制。下面以绘制单个 0.56 英寸的七段数码管为例,简述下制作元件PCB 封装的方法。首先,新建一个 PCB 库文件 PCBLIB.LIB,保存在所设计的工程里。其次,在 protel 的工具栏中,点 tools 目录下的 new ponent,生成一个空白的PCB 封装图,经过查找资料,得出单个数码管的尺寸图如图 3.7。可看到数码管共有 10 个管脚,分为上下 2 列,两列之间的距离是 15.24mm600mil ,每列中,管脚之间的距离是 2.54mm100mil 。图 3.7 0.56 英寸数码管的封装尺寸图图 3.8 数码管焊盘的属性再次,在 TopOverlay 层,用宽度为 10mil 的黄色线绘制数码管外形尺寸的边界,为 19.0mm*12.70mm;还是在 TopOverlay 层,用同样宽度的线画一个斜“8字。数码管的外形画好之后,用 PlacePad 放置 10 个焊盘,与尺寸图对应,分两列放置,焊盘的属性如图 3.8。焊盘的大小设置为圆形,尺寸为 62mil,孔径为 28mil,位于 MultiLayer 层中,焊盘序号分别为 110。最后,保存所画封装的名字,保存为 7-SEG。画好的数码管封装图如图3.9。以上步骤便完成了一个封装的制作。图 3.9 自行绘制的数码管封装图在 PCB 封装的绘制过程中,要根据实际元件的管脚形式设置焊盘的正确层面,假设是贴片形式,则选择为 Toplayer 层,假设为插件,则选择 Multilayer 层,而元件的轮廓线、标记线一般在 TopOverlay 层。用同样的方法绘制其他元件的 PCB 封装,LDO-AMS117 的封装 SOT223 如图 3.10,EP2C5T144C8N 的封装所有的封装 TQFP144 如图 3.11,所有元件的封装图就不一一列举,元件的封装都保存在 PCB 库文件 PCBLIB.LIB 中。图 3.10 SOT223 的封装图图 3.11 TQPF144 封装图PCB 图的绘制新建一个 PCB.pcb 文件,导入利用原理图生成的网表文件。只有在所有封装都设置正确的情况下才能顺利导入该网表文件,假设出现错误提示,则要改正错误。把所有的元件封装都导入到 PCB 文件中后,要对元件进展布局。布局的原则是相连接的元件选择较近的距离进展连接,接口布置在板子边缘,电源电路和其他电路分开,FPGA 芯片位于板子的中心位置,元件要排列整齐,美观。图 3.12 交通灯控制器系统的布局构造Protel 软件自带有自动布局和自动布线的功能,但是这些功能的使用效果并不佳,既不美观也不符合 PCB 设计的规,所以选择了手动布局。根据 PCB 布局原则,把电源接口和 USB 电源接口,下载接口布置在板子的左上方边缘位置,符合操作的习惯,灵活方便。电源电路布置在接口附近,电源开关和电源指示灯也是电源接口附近;FPGA 芯片 EP2C5T144C8N 布置在板子中间位置,晶振则靠近芯片的 CLK 引脚放置,复位按键也是靠近芯片的 RESET 脚放置;为了交通灯的效果更加直观,按照十字路口的走向,在东南西北四个方向分别放置数码管显示和 LED 指示灯。大局部的元件都布置在板子的正面,只有几个电容布置在板子的反面,板子的大致布局构造如图 3.12。布局完成之后,要在 KeepOutLayer 层画上板子的边框线,得出板子的大概尺寸,接下来进展的是布线。基于 FPGA 硬件系统的特点,一般是双面板或多层板,本系统设计较为简单,所以选择双面板进展布线。在布线之前,要对一些参数进展设置,包括平安距离,线宽,过孔的大小等。本设计的 PCB 设置平安距离是 10mil,最小线宽是 10mil,过孔的径是 12mil,外径是 20mil。另外根据个人设计习惯,设置显示的网格大小和步进大小。采用的布线方式为手动布线。在对顶层或底层进展布线的时候,可以把底层或顶层隐藏起来,这样看起来比拟舒服,最后再显示所有的层面,连接导通顶层和底层。在布线完成之后,要反复检查,防止遗漏有未连接的线。检查无误后,在 TopLayer 层和BottomLayer 层覆铜,铜面与板子的 GND 相连接。最后在 TopOverlay 和BottomOverlay 上,调整下元件的标号,靠近元件摆放,标号之间不能重合和穿插,且摆放整齐、美观。这样便完成了 PCB 的设计。电源电路的 PCB 设计图如图 3.13,FPGA 芯片的 PCB 设计如图 3.14,一个方向的数码管、LED 指示与FPGA 芯片连接的 PCB 图如 3.15。图 3.13 电源电路的 PCB 设计图 3.14 FPGA 芯片的 PCB 设计图图 3.15 数码管显示和 LED 指示与 FPGA 芯片连接的 PCB 图3.4 软件设计根据设计方案,基于 FPGA 的交通灯控制器软件局部,采用模块化的设计方法,分三个模块进展设计,分别是时钟分频模块,功能控制模块和译码器模块。 时钟分频模块交通灯控制器各信号指示灯是在秒倒计时下进展工作的,所以要对系统的时钟信号进展分频,获得一个 1HZ 的时钟信号,从而获得一个准确的秒倒计时信号。分频的方式采用计数方式,通过判断计数值的大小,输出一个 1HZ 的时钟信号。主要的 VHDL 程序如下。根据 VHDL 生成的时钟分频模块的元件图如图 3.16。IF RISING_EDGE(Clockin) THEN IF Counter=N-1 THENcounter=0;Temp1=Not Temp1;ELSECounter=Counter+1;END IF;END IF;IF FALLING_EDGE(clockin)THENIF Counter=N/2 THENTemp2=NOT Temp2;END IF;END IF;END PROCESS;ClockOutew_rled=0; ew_gled=1;ew_yled=1;ew_turnledew_rled=1;ew_gled=0;ew_yled=1;ew_turnledew_rled=1;ew_gled=1;ew_yled=0;ew_turnledew_rled=1;ew_gled=1;ew_yled=0;ew_turnledew_turnled=0;ew_rled=1;ew_gled=1;ew_yledew_rled=0;ew_gled=1;ew_yled=1;ew_turnledsn_rled=0; sn_gled=1; sn_yled=1; sn_turnledsn_rled=1; sn_gled=0; sn_yled=1;sn_turnledsn_rled=1; sn_gled=1; sn_yled=0;sn_turnledsn_rled=1; sn_gled=1; sn_yled=0;sn_turnledsn_turnled=0;sn_rled=1; sn_gled=1; sn_yledsn_rled=0; sn_gled=1; sn_yled=1;sn_turnled ew_state ew_state ew_stateew_stateew_state ew_state sn_state sn_state sn_statesn_statesn_state sn_state=sn_red; sn_secondH:=8; sn_secondL:=0; end case;elsif sn_secondL=0 thensn_secondL:=9;sn_secondH:=sn_secondH-1;elsesn_secondL:=sn_secondL-1;end if;end if;end if;ew_secondHout=ew_secondH;sn_secondHout=sn_secondH;ew_secondLout=ew_secondL;sn_secondLout temp temp temp temp temp temp temp temp temp temp temp = 1111111;end case;根据程序生成的译码模块元件图如图 3.

    注意事项

    本文(基于FPGA的交通灯控制器.doc)为本站会员(李司机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开