您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 交通运输 > 基于FPGA的交通灯控制课程设计
XXXXXX学院题目:基于FPGA的交通灯控制课程设计学院:信息工程学院班级:设计人:指导教师:设计时间:2016年6月16日目录一.摘要............................................1二.概述............................................11.FPGA的应用.......................................1三.系统总体设计....................................21.设计任务.......................................22.系统设计流程...................................2四.硬件设计........................................41.控制模块.......................................52.时钟分频模块...................................53.分位译码模块...................................54.计数模块.......................................6五.实验程序设计....................................6六.程序仿真与分析..................................131.仿真结果.......................................132.仿真结果分析...................................14七.心得体会........................................14八.参考文献........................................15九.附录............................................151一.摘要EDA工具对于电子设计人员来说极其重要,它可以在电子设计的各个阶段、层次进行计算机模拟验证,确保设计的准确性,可缩短设计周期,降低设计成本。目前交通灯广泛应用于道路交通建设中。交通灯可以实现十字路口红绿灯的自动控制。本文设计一个十字路口交通灯控制电路,要求东西、南北两条干道的红、绿、黄交通灯按要求循环变化,并以倒计时方式指示干道通行或禁止的维持时间。为了对交通灯系统进行精确控制,采用FPGA实验板,在QuartusⅡ软件环境下,分别实现脉冲发生模块、状态定时模块、交通灯显示模块、时间显示模块,进行仿真实验和硬件下载,获得的测试结果满足设计要求。基于FPGA的交通灯设计系统具有可靠性强、实时快速擦写、运算速度高、故障率低、电路简单,且体积小的特点。使用QuartusII软件作为开发平台;采用自顶向下的设计思路对系统进行模块化设计和综合,并通过波形仿真和硬件实现两种方式实现并验证交通灯的功能。二.概述FPGA(Field-ProgrammableGateArray),即现场可编程门阵列,它是在可编程器件的基础上进一步发展的产物。它是作为专用集成电路领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。当今社会是数字化的社会,是数字集成电路广泛应用的社会。数字集成电路本身在不断进行更新换代,随着微电子技术的发展,设计与制造集成电路的任务已不完全由半导体厂商来独立承担。随着电子技术的发展,特别是大规模集成电路和计算机技术的研制和发展,让电子产品设计有了更好的应用市场,实现方法也有了更多的选择,而电子电路的设计却变得越来越复杂,使用“语言”进行电子设计已成为一种趋势。现代电子系统设计方法是设计师自己设计芯片来实现电子系统的功能,将传统的固件选用及电路板设计工作放在芯片设计中进行。在这些专业化软件中,EDA(ElectronicDesignAutomation)具有一定的代表性,EDA技术是一种基于芯片的现代电子系统设计方法。基于EDA技术的现场可编程门阵列(FPGA),在数字系统设计和控制电路中越来越受到重视。VHDL语言是电子设计的主流硬件描述语言,它更适合进行行为描述,这种方式使得设计者专注于电路功能的设计,而不必过多地考虑具体的硬件结构。基于EDA技术的现场可编程门阵列(FPGA)电路,提出现场可编程门阵列(FPGA)是近年来迅速发展的大规模可编程专用集成电路(ASIC),在数字系统设计和控制电路中越来越受到重视。VHDL语言是电子设计的主流硬件描述语言,它更适合进行行为描述,这种方式使得设计者专注于电路功能的设计,而不必过多地考虑具体的硬件结构。目前以硬件描述语言所完成的电路设计,可以经过简单的综合与布局,快速的烧录至FPGA上进行测试,是现代IC设计验证的技术主流。1.FPGA的应用FPGA的应用可分为三个层面:电路设计,产品设计,系统设计。a.电路设计2连接逻辑,控制逻辑是FPGA早期发挥作用比较大的领域也是FPGA应用的基石。事实上在电路设计中应用FPGA要求开发者要具备相应的硬件知识(电路知识)和软件应用能力(开发工具)。b.产品设计把相对成熟的技术应用到某些特定领域开发出满足行业需要并能被行业客户接受的产品。这方面主要是FPGA技术和专业技术的结合问题,重点在性能,FPGA技术在这个领域是一个实现手段,FPGA因为具备接口,控制,功能IP,内嵌CPU等特点有条件实现一个构造简单,固化程度高,功能全面的系统产品设计。c.系统级的应用系统级的应用是FPGA与传统的计算机技术结合,实现一种FPGA版的计算机系统如用XilinxV-4,V-5系列的FPGA,实现内嵌POWERPCCPU,然后再配合各种外围功能,这个平台上跑LINIX等系统这个系统也就支持各种标准外设和功能接口了,这对于快速构成FPGA大型系统来讲是很有帮助的。三.系统总体设计1.设计任务设计一个十字路口交通控制器,方向分为东南西北四个方向。东西方向的红绿灯状态一样,南北方向的红绿灯状态一样。每个方向上,有四盏灯,分别是左转灯、红灯、绿灯和黄灯。左拐灯亮表示左转车辆可以通行;红灯亮表示左转和直行车辆禁行;绿灯亮表示直行车辆和右转的车辆可以通行;黄灯亮表示左转和直行的车辆即将禁行;倒计时显示器用来显示允许通行或禁止通行的时间倒计时。2.系统设计流程提出系统设计要求需求分析模块化方案设计底层电路设计---模块方案设计3系统分析通过分析可以知道,所要设计的十字路口交通灯控制电路要能够使南北、东西各四个灯(红、黄、绿、左转),四个灯能够按顺序依次亮灭。而且要求绿灯亮转红灯亮或者转左转灯亮之前要先转黄灯亮5秒,左转灯亮转红灯亮之前也要先转黄灯亮5秒,红灯亮可以直接转绿灯或左转灯亮(四种灯的循环顺序如图2-1所示)。还要求四种灯的点亮时间能够以倒计时的形式显示出来。可以用VHDL语言合理设计系统功能,使红黄绿左转灯的转换有一个准确的时间间隔和转换顺序。经分析,系统的总体结构可以描述下述的方框图:顶层电路设计---原理图描述+各模块连接时序仿真硬件连接和运行FPGA整体方案设计完成FPGA整体方案设计实现FPGA整体方案编译仿真功能仿真4在FPGA设计描述中,采用自顶向下的设计思路,该思路,首先要描述顶层的接口,上面的描述已经规定了交通灯控制的输入输出信号:输入信号:复位开关信号reset;外部时钟信号clk。LED七段显示数码管的输出信号count1(6downto0),count2(6downto0),count3(6downto0),count4(6downto0);在自顶向下的VHDL设计描述中,通常把整个设计的系统划分为几个模块,然后采用结构描述方式对整个系统进行描述。根据实验设计的结构功能,来确定使用哪些模块以及这些模块之间的关系。通过上面的分析,不难得知可以把交通灯控制系统划分为4个模块:时钟分频模块,计数模块,控制模块,分位译码模块。时钟分频模块:把555多谐振荡器发出的较高频率脉冲用分频电路的到较第频率的时钟信号,本电路通过三次10分平分别得到10Hz、1Hz的时钟信号。控制器电路:根据计数器的计数值控制发光二极管的亮、灭,以及输出倒计时数值给七段译码管的分位译码电路。当检测到手动控制信号(Con=’1’)时,执行手动控制;计数器电路:这里需要的计数器的计数范围为0~89。计到89后,下一个时钟沿升为1时,开始下一轮计数,此外当系统复位信号(Reset=’1’)使计数器异步清‘0’。手动信号(Con=’1’)使系统清‘0’。分位译码电路:因为控制器输出的倒计时数值可能是1位或者2位十进制数,所以在七段数码管的译码电路前要加上分位电路(即将其分为2个1位的十进制数,如20分为2和0,7分为0和7)。七段数码管的译码电路根据控制电路的控制信号,驱动交通灯的显示,通过输入二进制数值,输出信号点亮二极管,我们用的是共阳极数码管,因此译码电路输出逻辑数值‘0’点亮二极管,译码电路输出逻辑数值‘1’熄灭二极管。四.硬件设计计数器控制器分频电路分位译码电路七段数码管驱动电路红、黄、绿发光二极管七段数码管HoldReset倒计时数字及‘闪烁控制信号’51.控制模块控制模块的作用是根据计数器的数值控制发光二极管的亮、灭,以及输出倒计时数值给七段数码管的分位译码电路。此外,当检测到特殊情况(EMI=‘1’)发生时,无条件点亮红灯的二极管(急救灯按下EMI='1',则东西南北都亮红灯,在这种状态下原来的状态必须保持,即东西南北方向定时时间保持不变。急救灯未按下或者按下后恢复,则继续计时(计时通过计数器ct),同时恢复东西南北原来灯的状态)。2.时钟分频模块分频器实现的是将高频时钟信号转换成低频时钟信号,用于触发控制器、计数器和扫描显示电路。将频率变为1Hz的脉冲波,从而得到周期为1s的脉冲波。3.分位译码模块(1)因为控制输出的倒计时数值可能是1位或2位十进制数,所以七段数码管的译码电路前要加上分位电路(即将其分为两个1位的十进制数,如25分为2和5)。6(2)分位模块输出的计数值将十位数和个位数分别存到数组里,这样就可以得到两个路口倒计时时间显示的十位和个位信号。4.计数模块实现计数为0-80计数,计数到80后,下一个时钟沿回复到0,开始下一计数。此外当检测到特殊情况(hold=“1”)发生时,计数器暂停计数,无条件点亮红色的发光二极管。而系统复位信号Reset则使计数器异步清零。五.实验程序设计1.顶层模块libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitydingcengisport(clkd,resetd,cond,con1d:instd_logic;count1:outstd_logic_vector(6downto0);—七段数码管显示count2:outstd_logic_vector(6downto0);—七段数码管显示count3:outstd_logic_vector(6downto0);—七段数码管显示count4:outstd_logic_vector(6downto0);—七段数码管显示reda,yellowa,greena,lifta:outstd_logic;—a发光二极管输出redb,yellowb,greenb,liftb:outstd_logic);—b发光二极管输出endentitydingceng;architectureoneofdingcengis2.实体定义componentclk_10—脉冲输入port(clk:instd_logic;)--时钟频率为250KHz.clk_div10:outstd_logic);--十分频后脉冲输出endcomponent;componentcounter3.计
本文标题:基于FPGA的交通灯控制课程设计
链接地址:https://www.777doc.com/doc-2533900 .html