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

上传人:壹****1 文档编号:487689469 上传时间:2024-02-24 格式:DOC 页数:36 大小:4.31MB
返回 下载 相关 举报
基于FPGA的交通灯控制器设计_第1页
第1页 / 共36页
基于FPGA的交通灯控制器设计_第2页
第2页 / 共36页
基于FPGA的交通灯控制器设计_第3页
第3页 / 共36页
基于FPGA的交通灯控制器设计_第4页
第4页 / 共36页
基于FPGA的交通灯控制器设计_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《基于FPGA的交通灯控制器设计》由会员分享,可在线阅读,更多相关《基于FPGA的交通灯控制器设计(36页珍藏版)》请在金锄头文库上搜索。

1、内蒙古工业大学本科毕业设计说明书 1 引 言 随着城乡的经济发展,车辆的数量在迅速的增加,交通阻塞的问题已经严重影响了人们的出行。 现在的社会是一个数字化程度相当高的社会,很多的系统设计师都愿意把自己的设计设计成集成电路芯片,芯片可以在实际中方便使用。随着EDA技术的发展,嵌入式通用及标准FPGA器件的呼之欲出,片上系统(SOC)已经近在咫尺。FPGA/CPLD以其不可替代的地位及伴随而来的极具知识经济特征的IP芯片产业的崛起,正越来越受到业内人士的密切关注。FPGA就是在这样的背景下诞生的,它在数字电路中的地位也越来越高,这样迅速的发展源于它的众多特点。交通等是保障交通道路畅通和安全的重要工

2、具,而控制器是交通灯控制的主要部分,它可以通过很多种方式来实现。在这许许多多的方法之中,使用FPGA和VHDL语言设计的交通灯控制器,比起其他的方法显得更加灵活、易于改动,并且它的设计周期性更加短。 城市中的交通事故频繁发生,威胁着人们的生命健康和工作生活,交通阻塞问题在延迟出行时间的同时,还会造成更多的空气污染和噪声污染。在这种情况下,根据每个道路的实际情况来设置交通灯,使道路更加通畅,这对构建和谐畅通的城市交通有着十分重要的意义。 内蒙古工业大学本科毕业设计说明书 2 第一章 软件介绍 1.1 Quartus介绍 本次毕业设计是基于FPGA下的设计,FPGA是现场可编程门阵列,FPGA开发

3、工具种类很多、智能化高、功能非常的强大。可编程Quartus是一个为逻辑器件编程提供编程环境的软件,它能够支持VHDL、Verilog HDL语言的设计。在该软件环境下,设计者可以实现程序的编写、编译、仿真、图形设计、图形的仿真等许许多多的功能。在做交通灯控制器设计时选择的编程语言是VHDL语言。 在这里简单的介绍一下Quartus的基本部分。图1-1-1是一幅启动界面的图片。在设计前需要对软件进行初步的了解,在图中已经明显的标出了每一部分的名称。 图 1-1-1 启动界面 开始设计前我们需要新建一个工程,首先要在启动界面上的菜单栏中找到File,单击它选择它下拉菜单中的“New Projec

4、t Wizard”时会出现图1-1-2所显示的对话框,把项目名称按照需要填好后单击Next,便会进入图 1-1-3 显示的界面。 内蒙古工业大学本科毕业设计说明书 3 图1-1-2 创建工程框 图1-1-3 芯片选择框 根据自己选择的实验设备选择好相应的芯片型号点击Next,进入下一个步骤当出现图1-1-5时,点击“Finish”后这个工程就建立好了。 内蒙古工业大学本科毕业设计说明书 4 图 1-1-4 仿真器选择框 图1-1-5 对话框 建好工程后开始进行设计,首先在图1-1-6中单击file后选择new,接着会出现图1-1-7,在交通灯控制器的设计中我们选择的是VHDL File,当出现

5、图1-1-8时就可以把编辑的程序敲入编辑器中。 内蒙古工业大学本科毕业设计说明书 5 图1-1-6 工程建好后的界面 图1-1-7 新建文件类型选择框 内蒙古工业大学本科毕业设计说明书 6 图1-1-8 程序编辑框 在第一章中对Quartus软件的使用做一个简单介绍,设计中的编译和仿真步骤在后面的几章中会做出介绍。 第二章 交通灯控制器设计的概述 2.1 控制器设计描述 2.1.1 设计任务 要求设计交通灯控制器,分别在四个方向都安装红、黄、绿三种颜色的交通指示灯,红灯表示停止,绿灯表示通行,黄灯表示左转和直行将要禁止通行,四个方向分别还安装有倒计时的计时器。 2.1.2 设计要求 东西方向和

6、南北方向各有组指示灯,红灯亮的时间为20S,黄灯亮的时间为5S,绿灯亮的时间为25S。三种灯亮灭的顺序为红灯、绿灯、黄灯。 第三章 交通灯控制器的设计过程 3.1 设计方案 本设计课题用FPGA来实现智能交通灯的设计,本设计现要研究的问题主要有:智能交通灯的设计方案;各功能模块的设计与实现;如何用VHDL编写源程序以及进行系统仿真。 3.1.1 框图设计 内蒙古工业大学本科毕业设计说明书 7 交通灯控制器设计的框图中包括控制器、分频器、显示器、指示灯、译码器、位选器。当倒计时为零时,控制器改变交通灯的颜色,同时倒计时开始进入下一个倒计时。当有紧急情况出现的时候,四面的交通灯都会变为红灯,紧急情

7、况的处理在设计中是依靠HOLD键来实现的。图 3-1-1-1 是交通灯设计的设计框图 图 3-1-1-1 交通灯设计的设计框图 系统的红、黄、绿灯显示的总时间为50s,具体的亮灯时间和亮灯顺序看 表 3-1-1-2 表3-1-1-2 交通灯亮灯顺序与亮灯时间安排 东西(A灯) A绿(20s) A黄灯亮 (2125s) A红灯亮 (2650灯 B红灯亮25 B绿灯亮245 B黄灯亮450 3.1.2 工程流程图 图3-1-2 工程流程图 3.1.3 时序图的假象 在时序图中,上升沿有效,即为“1”时灯亮,好比RedA为上升沿( “1” )时A方向的红灯是亮的,相对的GreenB也为上升沿( “1

8、” )B方向上绿灯是亮的。具创建一个新工创VHD言文保存输入程将程序输入件 对程序进行编译,有错误的要进行修改、再编译,直对程序进行波形的仿真 进行图形电路设计、保存、编译、波形仿真、管脚进行硬件仿真 特殊情况 计 时 器 位选器 显示器(东、西、南、北) 译码器 控制器 指示灯 内蒙古工业大学本科毕业设计说明书 8 的时序显示见图3-2 时序图。 图3-2 时序图 3.2 模块设计 3.2.1 主控制器模块 在Quartus按照1-1中的方法新建一个工程并新建一个文件项目后,在图1-1-8程序编辑框中将主控制器的程序输入后保存。接着需要对主控制器的程序进行编译,编译的步骤是点击Project

9、Set as Top将文件置顶,具体的参考图3-2-1-1 置顶,接着点击图3-2-1-2 的Start Compilation 进行编译。 图3-2-1-1 置顶 GreenA YellowA RedB YeelowB GreenB RedA内蒙古工业大学本科毕业设计说明书 9 图3-2-1-2 编译 在编译的过程中,出现了一些错误,在我编译主控制器的程序时,出现的错误是没有将CLOCK放入PROCESS()中,将程序中的错误一一改正后有时还会出现些Warning,有些Warning并不会影响后面的设计步骤。将上面的错面都改正后,就会显示图3-2-1-3 所显示的对话框。下一步就是对程序进行

10、时序仿真, 图3-2-1-3 编译成功 内蒙古工业大学本科毕业设计说明书 10 程序编译无措后在当前的工程下面新建一个文件,点击File出现图3-2-1-4 新建文件对话框,选择图中显示蓝色的选项就会出现我们想要的界面,把鼠标移在图3-2-1-5 时序仿真编辑框中左边的空白处,然后点击右键,选择INSERTINSERT NODE OR BUS选项出现另一个对话框,选择对话框中的NODE FINDER后就会产生新的对话框,点击LIST是在左下角的空白处会出现很多的引脚,我们选中需要的引脚后确定后,我们需要的引脚就会出现在时序仿真编辑中左边的空白处,我们对输入信号进行设定,若想让输出信号显示为十六

11、进制数,我们可以选中输出信号然后点击鼠标的右键选择VALUECOUNT VALUE后出现的对话框中可以选择自己需要显示的进制类型和进制数的定时等。对输出输入信号编辑完成后保存。在菜单工具栏中选择PROCESSINGSIMULATOOR TOOL,出现图3-2-1-6的对话框,按照对话框显示的进行设定,点击QENERAT FUNCTIONALSTARTREPORT,就会得出我们想要的图3-2-1-7 主控制器时序仿真图。 图3-2-1-4 新建文件对话框 内蒙古工业大学本科毕业设计说明书 11 图3-2-1-5 仿真编辑框 图3-2-1-6 仿真工具对话框 内蒙古工业大学本科毕业设计说明书 12

12、 图3-2-1-7 主控制器的仿真图 图3-2-1-7中显示的仿真结果和设计前预计的时序仿真图的结果是相符合的。时序图中的HOLD是保持信号,当HOLD信号为有效信号( “1” )时,则四个方向的路灯都是红灯亮,当HOLD无效时,四个方向的信号灯会正常工作。RESET信号有效时,计数器的显示就会重新从零开始。图中四个方向的指示灯的亮灭顺序是正确的。 图3-2-1-8 主控制器的模块 主控制器的时序仿真完成后,一个程序的设计、仿真就已经暂时结束了,下一步还要进行图形的设计,在总的图形设计前,需要先将每个程序都生成模块,为之后的设计做好准备。点击FileCreateUpdadeCreate Sym

13、bol Files for Current File,完成这个操作过程后便会生成主控制器的模块,具体的看图3-2-1-8 主控制器的模块。模块中主要有CLOCK、RESET、HOLD、NUMA、NUMB和六个指示灯的输出。 3.2.2 分频器模块 设计中需要用到1秒钟的脉冲,分频这个模块就是为了改变频率脉冲波,使20Mhz的频率最终变为1hz的脉冲,这样就可以得到一个周期是1秒钟的脉冲,分频器的程序内蒙古工业大学本科毕业设计说明书 13 见附录。具体的程序编译过程和仿真的过程和主控制模块中谈到的过程是相同的。按照上面谈的步骤完成后就会得到图3-2-2-1 分频模块的时序仿真图。 图3-2-2-

14、1 分频模块的仿真图 图3-2-2-2 分频模块 分频的程序经过编译和时序仿真图后生成的模块是图3-2-2-2 分频模块所显示的20mhz的脉冲通过第一模块时变为10hz,再经过第二个模块后变成1hz的脉冲。 3.2.3 提取显示值模块 提取显示值的功能是在10hz的速度下提取显示值,得到的是显示时间值的十位和个位。图3-2-3-1 提取显示值的时序仿真图中NUMIN是主控制器的输出值,NUMA和NUMB两个输出端口是要显示的值的高位和低位。高位的最大输出值是为二的四位二进制数,低位的最大输出值是为九的四位二进制数。图3-2-3-2 是提取显示值生成的模块。提取显示值的程序见文章的附录。 内蒙

15、古工业大学本科毕业设计说明书 14 图3-2-3-1 提取显示值的仿真图 仿真图中,NUMB先从0开始计数,当计到9时NUMA计为1,NUMB重新从0开始计数,当计到9时NUMA会计为2,NUMB再次从0开始计数,当NUMA(高位)计数到2时,NUMB的最大值输出为5。 图3-2-3-2 提取显示值的模块 3.2.4 动态扫描模块 LED显示的工作原理是利用人类的视觉特性。七段LED数字显示块是由“a、b、c、d、e、f、g、dp”这几段组成的,LED的显示原理就是要看这八段中的哪几段是亮的,那几段是灭的。每段管子不是同时被点亮的并且点亮的时间都是极短的,又因为变化的时间很短暂,亮灭的过程中留下的余光

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号