《EDA技术课程设计交通灯控制器的设计.doc》由会员分享,可在线阅读,更多相关《EDA技术课程设计交通灯控制器的设计.doc(25页珍藏版)》请在三一办公上搜索。
1、成绩 课 程 设 计 说 明 书课程设计名称:EDA技术课程设计题 目:交通灯控制器的设计学 院:电气信息学院学 生 姓 名:*专 业:测控技术与仪器学 号:*指 导 教 师:*日期:2010年6月18日交通灯控制器的设计摘要:本设计是基于EDA技术的交通灯控制器的设计。该设计通过用数字信号自动控制十字路口交通灯状态转换的方法,指挥各种车辆和行人安全通行,实现十字路口交通管理的自动化。在本次课程设计里,用VHDL语言为基础来实现设计交通控制信号灯,在Quartus II软件完成其仿真,实现主干和枝干道上的红绿灯转换。关键词:交通信号灯, VHDL, 仿真Abstract:This design
2、 is based on EDA technology, traffic light controller. The design with digital signal control intersections by traffic light state transition method, the command of various vehicles and pedestrians safe passage, a crossroads of traffic management to achieve automation. In this curriculum design, the
3、 use of VHDL language-based approach to design traffic control signal, the Quartus II software to complete the simulation, realization of the trunk and branches Road to the traffic lights change.Keywords:Street-traffic control lights, VHDL , Simulation目录1绪论11.1设计背景11.2设计目标12总体方案设计22.1方案比较22.2方案论证32.
4、3方案选择43EDA和可编程技术概述53.1EDA技术及其发展53.2可编程逻辑器件概述53.3硬件描述语言介绍63.4软件开发工具Quartus II 简介64单元模块设计74.1时钟脉冲发生电路74.2计时/倒计数电路84.3红绿灯信号控制电路124.4建立程序包及连接模块145系统调试165.1硬件实验方案165.2调试过程和结果176结论187总结与体会198谢辞209参考文献21附录 思考题221 绪论不同的城市有不同城市的问题,但共性就是混合交通流问题。在交叉口如何解决混合交通流中的相互影响或彼此的相互影响,就是解决问题的关键!随着我国城市化建设的发展,越来越多的新兴城市的出现,使
5、得城市的交通成为了一个主要的问题。同时随着我国经济的稳步发展,人民的生活水平日渐提高,越来越多的汽车进入寻常老百姓的家庭,再加上政府大力发展的公交、出租车,车辆越来越多了。这不仅要求道路要越来越宽阔,而且要求有新的交通管理模式的出台。旧有的交通控制系统的弊病和人们越来越高的要求激化了矛盾,使原来不太突出的交通问题被提上了日程。现在有关部门愈来愈多的注重在交通管理中引进自动化、智能化技术,比如“电子警察”、自适应交通信号灯以及耗资巨大的交通指挥控制系统等。随着经济的发展和社会的进步,道路交通已愈来愈成为社会活动的重要组成部分。对交通的管控能力,也就从一个侧面体现了这个国家对整个社会的管理控制能力
6、,因此各国都很重视用各种高科技手段来强化对交通的管控能力。1.1 设计背景随着城市机动车量的不断增加,许多大城市如北京、上海、南京等出现了交通超负荷运行的情况,因此,自80年代后期,这些城市纷纷修建城市高速道路,在高速道路建设完成的初期,它们也曾有效地改善了交通状况。然而,随着交通量的快速增长和缺乏对高速道路的系统研究和控制,高速道路没有充分发挥出预期的作用。而城市高速道路在构造上的特点,也决定了城市高速道路的交通状况必然受高速道路与普通道路耦合处交通状况的制约。因此,开发一套能够社会服务的交通灯控制器将是非常必要的,也是十分及时的。1.2 设计目标通过采用VHDL语言对交通灯控制器的设计,使
7、交通灯控制电路用数字信号自动控制十字路口两组红、黄、绿交通灯的状态转换的方法,指挥各种车辆和行人安全通行,实现十字路口交通管理的自动化。绿灯亮时,准许车辆通行,但转弯的车辆不得妨碍被放行的直行车辆、行人通行, 黄灯亮时,已越过停止线的车辆可以继续通行,红灯亮时,禁止车辆通行。2 总体方案设计通过查阅大量相关技术资料,并结合自己的实际知识,主要提出了三种技术方案来实现系统功能。下面我将首先对这三种方案的组成框图和实现原理分别进行说明,并分析比较它们的特点,然后阐述最终选择方案的原因。2.1 方案比较城市路口交通信号控制系统大体上分为三种类型:传统数字逻辑电路、可编程序控制器和单片机等方案来实现。
8、具体采用哪种类型,应根据其应用场合及特点加以确定。2.1.1 方案一用传统的数字电路设计并制作,方案一原理框图如图2-1所示。控制器A车道信号灯译码电路B车道信号灯秒脉冲信号发生器定时器图2-1 传统数字逻辑电路系统框图系统主要由控制器、定时器、秒脉冲信号发生器、译码器、信号灯组成。其中控制器是核心部分,由它控制定时器和译码器的工作,秒脉冲信号发生器产生定时器和控制器所需的标准时钟信号,译码器输出两条信号灯的控制信号。2.1.2 方案二由软件设置交通灯的初始时间,南北方向和东西方向通行时间,数码管的段码用不同的口线,东西方向的是用的P0口,南北的使用P3口,用单片机来控制各种信号灯的燃亮时间,
9、通过单片机的P2口控制。由软件设置交通灯的初始时间,南北方向和东西方向各25秒,数码管的段码用不同的口线,东西方向的是用的P0口,南北的使用P3口,用单片机来控制各种信号灯的燃亮时间,通过单片机的P2口控制。电 源信号灯AT89S52信号灯时间显示部分震 荡部 分复 位电 路图2-2 用单片几实现控制的系统框图2.1.3 方案三交通灯的电路由下载电路及外围电路组成,所用到的器件有EMP7064SLC44芯片、钟振、发光二极管、电阻和导线。EDA流程图如图2-3所示:CLK时钟脉冲发生模块记时/倒计时模块交通灯控制转换模块显示电路LED图2-3用EDA技术实现交通灯控制器该方案采用VHDL硬件描
10、述语言实现交通灯的控制电路设计。设计思路为根据交通控制器要实现的功能,考虑用两个并行执行的awlays模块来分别控制A和B两个方向的四盏灯,这两个always模块使用同一个时钟信号,以进行同步。也就是说,两个always模块的敏感信号是同一个,每个always模块控制一个方向的四种灯按如下顺序点亮,并往复循环:绿灯黄灯左拐灯黄灯红灯。每种灯亮的时间采用一个减法计数器进行计数,计数器用同步预置法设计,这样只需改变预置数据,就能改变计数器的模,因此每个方向只要一个计数器进行计时即可。为便于显示灯亮的时间,计数器的输出均采用BCD码,显示由4个数码管来完成,A方向和B方向各用两个数码管。2.2 方案
11、论证实现路口交通灯系统的控制方法很多,如上述方法,可以用传统数字逻辑电路、可编程序控制器和单片机等方案来实现。方案一中,用传统数字逻辑电路实现,、为定时器的输出信号,为控制器的输出信号。当某车道绿灯亮时,允许车辆通行,同时定时器开始计时,当计时到45S时,则输出为1,否则,=0;当某车道黄灯亮后,定时器开始计时,当计时到5S时,输出为1,否则=0。为状态转换信号,当定时器计数到规定的时间后,由控制器发出状态转换信号,定时器开始下一个工作状态的定时计数。方案二中,若用单片机方案来实现的话,模型可以由电源电路、单片机主控电路、无线收发控制电路和显示电路四部分组成。在电源电路中,需要用到+5V的直流
12、稳压电源,无线收发控制电路和显示电路应由编码芯片和数据发射模块两部分组成,主控电路的主要元件为AT89C51。硬件设计完成后还要利用计算机软件经行软件部分的设计才能够实现相应的功能。方案三中,与传统的电子设计方法相比,EDA技术对于复杂电路的设计和调试都比较简单,如果某一过程存在错误,查找和修改起来比较方便,而且EDA技术的可移植性很强。2.3 方案选择通过这三个方案的对比,传统数字逻辑电路电路复杂,所用期间繁琐。利用单片机系统设计的交通灯控制器相对来说较稳定,能够完成较多功能的实现,但这些控制方法的功能修改及调试都需要硬件电路的支持,在一定程度上增加了功能修改及系统设计与调试的困难。相反,使
13、用基于EDA的设计方法具有周期短,设计灵活,易于修改等明显的的优点。而且,随着可编程逻辑器件、设计语言和电子设计自动化工具的发展和改进,越来越多的电子系统采用可编程逻辑器件来设计。未来,使用可编程逻辑器件设计的产品将出现在各个领域里。因此,此次的交通信号灯控制器的设计将采用基于EDA的设计方案来实现所要求的功能。3 EDA和可编程技术概述本设计中采用EDA 技术,应用目前广泛应用的VHDL 硬件电路描述语言,实现交通灯系统控制器的设计, 利用Quartus 集成开发环境进行综合、仿真,完成系统的控制作用。3.1 EDA技术及其发展现代电子设计技术的核心是EDA(Electronic Desig
14、n Automation)技术。EDA技术就是依赖功能强大的计算机,在EDA工具软件平台上,对以硬件描述语言HDL(Hardware Description Language)为系统逻辑描述手段完成的设计文件,它能自动地完成逻辑编译、逻辑化简、逻辑分割、逻辑综合、结构综合(布局 布线),以及逻辑优化和仿真测试,直至实现既定的电子线路系统功能。EDA技术使得设计者的工作仅限于利用软件的方式,即利用硬件描述语言和EDA软件来完成对系统硬件功能的实现。利用EDA技术(特指IES/ASIC自动设计技术)进行电子系统的设计,具有以下几个特点: 用软件的方式设计硬件; 用软件方式设计的系统到硬件系统的转换
15、是由有关的开发软件自动完成的; 设计过程中可用有关软件进行各种仿真; 系统可现场编程,在线升级; 整个系统可集成在一个芯片上,体积小、功耗低、可靠性高。因此,EDA技术是现代电子设计的发展趋势。EDA技术在进入21世纪后,得到了更大的发展。在仿真和设计两方面支持标准硬件描述语言的功能越来越强大,软硬件技术也进一步得到了融合,在电子行业的产业领域、技术领域和设计应用领域得到了进一步的肯定,使得复杂电子系统的设计和验证趋于简单化。3.2 可编程逻辑器件概述可编程逻辑器件(简称PLD)是允许用户编程(配置)实现所需逻辑功能的电路,一般可利用计算机辅助设计,即用原理图、状态机、硬件描述语言(VHDL)
16、等方法来表示设计思想,经过一系列编译或装换程序,生成相应的目标文件,再由编程器或下载电缆将设计文件配置到目标器件中,这时的可编程逻辑器件就可作为满足用户需求的专用集成电路使用了。可编程逻辑器件,不仅速度快、集成度高,并且能随心所欲地完成用户定义的逻辑功能,还可以加密和重新编程,其编程次数最大可达1万次以上。使用可编程逻辑器件可以大大简化硬件系统、降低成本、提高系统的可靠性、灵活性和保密性。PLD的出现,打破了由中小规模通用型集成电路和大规模专用集成电路垄断的局面,在通信、数据处理、网络、仪器、工业控制、军事和航空航天等众多领域得到广泛应用,可以预见,不久的将来,PLD将在集成电路市场占统治地位
17、。3.3 硬件描述语言介绍常用的硬件描述语言有VHDL、Verilog、ABEL。VHDL:作为IEEE的工业标准硬件描述语言,在电子工程领域,已成为事实上的通用硬件描述语言。Verilog:支持的EDA工具较多,适用于RTL级和门电路级的描述,其综合过程较VHDL稍简单,但其在高级描述方面不如VHDL。ABEL:一种支持各种不同输入方式的HDL,被广泛用于各种可编程逻辑器件的逻辑功能设计,由于其语言描述的独立性,因而适用于各种不同规模的可编程器件的设计。3.4 软件开发工具Quartus II 简介Altera的Quartus II 设计软件提供了完整的多平台设计环境,它可以轻易满足各种特定
18、设计的需要,也是单芯片可编程系统 (SOPC) 设计的综合性环境和SOPC开发的基本设计工具,并为Altera DSP开发包进行系统模型设计提供了集成综合环境。Quartus II设计工具完全支持VHDL、Verilog的设计流程,其内部嵌有VHDL、Verilog逻辑综合器。Quartus II 包括模块化的编译器。编译器包括的功能模块有分析/综合器(AnalysisSynthesis)、适配器(Fitter)、装配器(Assembler)、时序分析器(Timing Analyzer)、设计辅助模块(Design Assistant)等。可以通过选择 Start Compilation (P
19、rocessing 菜单)来运行所有的编译器模块。 若要单独运行各个模块,可以通过选择 Start(Processing 菜单),然后从 Start 子菜单中为模块选择相应的指令。此外,还可以通过选择 Compiler Tool (Tools 菜单)并在 Compiler Tool窗口中运行该模块来启动编译器模块。 在 Compiler Tool 窗口中,可以打开该模块的设置文件或报告文件,还可以打开其它相关窗口。Quartus II支持层次化的设计,可以在一个新的编辑输入环境中对使用不同输入设计方式完成的模块进行调试,从而解决原理图与HDL混合输入设计的问题。在设计输入之后,Quartus
20、II的编译器将给出设计输入的错误报告。可以使用Quartus II带有的RTL Viewer观察综合后的RTL图。Quartus II自动设计的各主要处理环节和设计流程,包括设计输入编辑、设计分析与综合、适配、编译文件汇编(装配)、时序参数提取以及编程下载几个步骤。4 单元模块设计本章主要介绍系统各单元模块的具体功能,主要包括:时钟发生电路;计数秒数选择电路;倒计时控制电路;红绿灯信号控制电路。系统大体的工作程序是:首先由时钟发生电路产生稳定的时钟信号,为下面三个子电路提供同步工作信号。接收到时钟信号的红绿灯信号控制电路开始工作,并将产生的重新计数的输出使能控制信号发送给计数秒数选择电路和倒计
21、时控制电路,同时还会将目前电路产生的状态信号发送给前者。接收到重新计数的信号后计数秒数选择电路就会负责产生计数器所需要的计数值,并将这一数值发送给倒计时控制电路,由它利用发光二极管显示倒计时的状态。当计数器计时完毕,倒计时控制器就会负责产生一个脉冲信号发送给红绿灯信号控制电路进入下一个状态,之后循环这一过程。4.1 时钟脉冲发生电路在红绿灯交通信号系统中,大多数的情况是通过自动控制的方式指挥交通的。因此,为了避免意外事件的发生,电路必须给出一个稳定的时钟(clock)才能让系统正常的工作。因此,hld1时钟发生电路最主要的功能就是产生一些稳定的输出信号,并将其用做后面几个电路的使能控制与同步信
22、号。图4-1时钟发生电路图图4-1时钟发生电路图中:reset:系统内部自复位信号。系统输出信号:ena_scan:将外部的时钟信号进行分频处理;ena_1hz:产生每秒一个的脉冲信号;flash_1hz:产生每秒一个脉冲的时钟信号。经仿真后得到的时序图如图4-2和4-3所示。图4-2 将clk经分频处理后得到的ena_scan信号图4-3时钟发生电路时序图从图4-2中可以看出,当外部信号发生器提供了1kHZ的时钟信号后,系统输出信号ena_scan就将时钟信号进行了4分频。从图4-3又可以看出,当加入1kHZ的时钟信号后,ena_1hz产生了周期为一秒的脉冲信号,给予图4-8红绿灯信号控制电
23、路。flash_1hz产生了周期为一秒的脉冲时钟信号,图4-8红绿灯信号控制电路。在这段程序的设计过程中最大的特点就是引用了参数化的概念,即使用了常数(constant)。常数的定义和设置主要是为了使程序更容易阅读和修改,只要改变了常量的数值,使用到该常数的地方都会随着更新而使用新的常数值。这就使设计的灵活性增强了。例如程序中用到的:constant scan_bit:positive:=2;signal clk_scan_ff: std_logic_vector (scan_bit-1 downto 0);第一句就是将scan_bit设为常数2,这个数值是可以根据设计的需要任意设定的。第二句
24、是定义一个信号,它的位数就是(scan_bit-1),因为之前scan_bit设定的值为2,所以信号的位数就是2位。如果想增减信号的位数,只需要改动常数的赋值就可以了。4.2 计时/倒计数电路4.2.1 计数秒数选择电路当通过交通路口时,如果能在一个方向增添一个倒计时显示器对车辆、行人加以提示,可能会有更好的效果。因此,hld2计数秒数选择电路(见图4-4)最主要的功能就是负责输出显示器需要的数值(即倒数的秒数值),作为倒计时显示器电路的计数秒数。图4-4计数秒数选择电路系统输入信号:clk:由外部信号发生器提供1kHZ的时钟信号;reset:系统内部自复位信号;ena_scan:接收由时钟发
25、生电路提供的250Hz的时钟脉冲信号;recount:接收由交通灯信号控制电路产生的重新计数的使能控制信号;sign_state:接收由交通灯信号控制电路产生的状态信号。系统输出信号:load:负责产生计数器所需要的计数数值。经仿真后的时序图(见图4-5):图4-5 计数秒数选择电路时序图由计数描述选择电路的时序图(见图7)可以看出这段程序中定义了在正常车流量情况下,东西及南北方向红灯、黄灯和绿灯需要维持的秒数分别是15s、5s和25s。当外部信号发生器提供了1kHZ的时钟信号,并且重新计数信号(recount)为“1”时,load信号就会按照预先设置的数值逐1递减,直至减到零为止,当下一个重
26、新计数信号(recount)再次为“1”时,会重复此过程。在这段程序的设计中用到了conv_std_logic_vector(value,n)语句,它的用法就是将已经定义的数值 (value)转换成n位(bit)的表示方法。例如程序中:when 000=load=conv_std_logic_vector(greenew_time,8);就是将十进制的25转换成十六进制的19,这就使设计减少了很多不必要的麻烦。4.2.2 倒计时控制电路通过日常生活中的观察,我发现在一些交通路口已经开始使用倒计时显示器,它们的作用就是用来提示车辆行人目前还有多长时间信号灯会发生变化,这样车辆行人就可以提前判断是
27、否有足够的时间通过路口,进而就可以避免很多意外事故的发生。例如:南北方向绿灯,车辆处于正常行驶中,东西方向红灯,车辆处于等待中,若南北方向行驶的车辆看到倒计时显示器上可以通行的时间很短,可能就会放慢速度等待下一次通行,这样在东西方向绿灯时,车辆就能够正常行驶,不会为等待南北方向强行的车辆而耽误更多的时间。如此循环下去,道路就会畅通无阻了。考虑到有些路口的交通拥堵现象较为严重,车辆会在道路上排成很长的一队,这样排在较远距离的司机就很难看清楚倒计时显示器上变化的数字,有可能会影响到车辆之间的正常行驶。因此,如果采用发光二极管作为倒计时的显示装置就会使司机和行人一目了然,同样也能够起到很好的提示作用
28、。所以,hld3倒计时控制电路(见图4-6)最主要的功能就是负责接收hld2电路输出的值,然后将其转换成BCD码,并利用发光二极管显示出来,让车辆行人能够清楚地知道再过多久信号灯就会发生变化。图4-6倒计时控制电路系统输入信号:clk:由外部信号发生器提供1kHz的时钟信号;reset:系统内部自复位信号;ena_1hz:接收由时钟发生电路提供的1Hz的脉冲信号;recount:重新计数的使能控制信号;load:负责接收计数器所需要的计数数值。系统输出信号:led:负责将计数数值转换成BCD码,并利用发光二极管显示倒计时状态;next_state:当计数器计时完毕后,负责产生一个脉冲信号,作为
29、下一个状态的触发信号。经仿真后得到的时序图(见图4-7):图4-7倒计时控制电路时序图由倒计时控制电路的时序图(见图4-7)可以看出,当clk时钟信号来临后,在ena_1hz脉冲信号的同时激励下,led会按照预先设置好的时间开始逐1递减,进行倒计时显示。process(clk,reset)beginif (reset=1) then cnt_ff=00000000; led=0000000000000000000000000;-当reset=1,则将cnt_ff与led清零。elsif (clkevent and clk=1) then if ena_1hz=1 then if (recoun
30、t=1) then cnt_ff=load-1;-当reset=0,clk为上升沿触发,且ena_1hz与recount为1时,load将减1的数值赋给cnt_ff。 else cnt_ffled(24 downto 0)led(24 downto 0)led(24 downto 0)led(24 downto 0)led(24 downto 0)led(24 downto 0)led(24 downto 0)=0000000000000000000000000; end case;这段程序是采用的就是查表的方法并且利用发光二极管进行倒计时显示,如图9所示:当绿灯点亮开始计数后,load就会将
31、减1后的值赋给cnt_ff,之后cnt_ff又会从case语句中查找到相对应的值再赋给led显示所剩余的时间。在程序编写过程中运用到了conv_integer()语句,它可以将cnt_ff所赋的值转换成整数。由图可知led是25位的系统输出信号,负责控制发光二极管的输出,所以25位的输出信号可以分成七组控制发光二极管的显示,其中“1”为点亮,“0”为熄灭。4.3 红绿灯信号控制电路在红绿灯交通信号系统中,大多数的情况是通过自动控制的方式指挥交通。但为了配合高峰时段,防止交通拥挤,有时还必须使用手动控制,即让交通警察自行指挥交通。因此,hld4红绿灯信号控制电路(见图4-8)除了负责监控路口红绿
32、灯之外,最主要的功能就是能够利用开关来切换手动与自动的模式,让交通警察能够通过外部输入的方式来控制红绿灯交通信号系统的运做。图4-8红绿灯信号控制电路系统输入信号:clk:由外部信号发生器提供1kHZ的时钟信号;reset:系统内部自复位信号;ena_scan:接收由时钟发生电路提供的250Hz的时钟脉冲信号;ena_1hz:接收由时钟发生电路提供的1Hz的脉冲信号;flash_1hz:接收由时钟发生电路提供的1Hz的脉冲时钟信号;a_m:手动、自动切换按钮(1:自动、0:手动);st_butt: 红绿灯状态切换按钮(在手动操作下,每按一次按钮就变换一个状态);next_state:接收由倒计
33、时控制电路提供的下一个状态的触发信号。系统输出信号:recount:产生重新计数的输出使能控制信号;sign_state:产生输出状态信号;red:负责红色信号灯的显示;green:负责绿色信号灯的显示;yellow:负责黄色信号灯的显示。经仿真后得到的时序图(见图4-9).图4-9红绿灯信号控制电路时序图从图上可以看到:当a_m=1,处于自动状态时,在next_state的触发下,Red,Green,Yellow为01,10,00时,对应state.rewgsn=1,表明东西方向红灯亮(red01),南北方向绿灯亮(green10)Red,Green,Yellow为01,00,10时,对应s
34、tate.rewysn=1,表明东西方向红灯亮(red01),南北方向黄灯亮(yellow10)Red,Green,Yellow为10,01,00时,对应state.gewrsn=1,表明东西方向绿灯亮(Green01),南北方向红灯亮(red10)当st_butt1时,由自动状态切换到手动状态(a_m=0),因为reset1,Red,Green,Yellow由10,01,00变为01,10,00(即东西方向红灯亮,南北方向绿灯亮,初始状态)4.4 建立程序包及连接模块4.4.1 建立程序包在程序设计语言中,程序的开始总会调用库(library)来提供设计程序时所需要的基本命令。但是,如果要进
35、一步设计较为复杂的程序时,库中的命令可能就无法支持了。因此,可以设计一个子程序来满足程序设计的需求。上述问题在硬件描述语言的设计中也存在,在VHDL程序中的第一行(library ieee;)就是要使用IEEE设计好的库文件,但如果需要使用的元器件并不在库中时,就只能自己定义了。一个程序包中至少应该包含以下结构中的一种:常数说明:如定义系统数据总线通道的宽度。VHDL数据类型说明:主要用于在整个设计中通用的数据类型。元件定义:元件定义主要规定在VHDL设计中参与文件例化的文件接口界面。子程序:并入程序包的子程序有利于在设计中任一处进行方便地调用。4.4.2 连接各个模块light电路的工作就是
36、将所有的子电路全部连接起来,进行时序分析,当程序完成后,再下载到FPGA,以便硬件电路的验证工作。图4-10 子模块连接后电路经仿真后得到的时序图(见图4-11):图4-11 连接各个模块后的时序图开始时,支干道没有车辆行驶。主干道处于常通行状态,支干道处于禁止状态;当支干道有车来时,主干道亮绿灯,经行45秒倒计时,支干道亮红灯,经行50秒倒计时;主干道45秒倒计时结束后跳变到黄灯,进行5秒倒计时,支干道继续亮红灯,进行倒计时;主干道5秒倒计时结束后跳变到红灯,经行30秒倒计时,支干道跳变到绿灯,进行25秒倒计时;支干道25秒倒计时结束后跳变到黄灯,进行5秒倒计时,主干道继续亮红灯,进行倒计时
37、;支干道5秒倒计时结束后,判断支干道是否有车,若有车跳变到S1状态,没有车跳变到S0状态。5 系统调试将程序进行编译后,就可以把管脚绑定后把程序下载到实验板上进行调试了。图5-1 实验开发板5.1 硬件实验方案管脚绑定如表5-1所示:表5-1 管脚绑定表序号TOLocationI/O Bank1CLKPIN_15232CARPIN_16033SEG0PIN_17534SEG1PIN_17635SEG2PIN_17736SEG3PIN_17837SEG4PIN_17938SEG5PIN_18039SEG6PIN_1110SEL0PIN_3111SEL1PIN_4112SEL2PIN_5113LE
38、D0PIN_170314LED1PIN_173315LED2PIN_174316LED3PIN_165317LED4PIN_166318LED5PIN_1673备注:CLK绑定时钟1KHZ;CAR绑定DK4LED0绑定LED6;-支干道红灯LED1绑定LED7;-支干道黄灯LED2绑定LED8;-支干道绿灯LED3绑定LED1;-主干道红灯LED4绑定LED2;-主干道黄灯LED5绑定LED3;-主干道绿灯SEL0绑定LI0;SEL1绑定LI1;SEL2绑定LI2。SEG0绑定G8;SEG1绑定F8;SEG2绑定E8;SEG3绑定D8;SEG4绑定C8;SEG5绑定B8;SEG6绑定A8。将管
39、脚按上图绑定后就可以下载到实验板上进行调试了5.2 调试过程和结果将程序下载到实验板后,CAR置于低电平后,可以看到LED灯的显示情况为主干道亮绿灯,支干道亮红灯,主干道数码管显示45秒,支干道数码管显示50秒。但支干道有车时,把CAR置于高电平,可以看到主、支干道的数码管开始倒计时;主干道倒计时结束后再进行5秒倒计时,并且交通灯变为黄灯;当主干道倒计时结束后,主干道数码管显示30,支干道数码管显示25,主干道变为红灯,支干道变为绿灯,继续进行倒计时;支干道倒计时结束后再经行5秒倒计时,交通灯变为黄灯;支干道倒计时结束后再回到初始状态。从实验板上可以看出硬件测试下的效果达到了设计的要求,能够实
40、现交通信号灯控制器的基本功能。但是,由于实验板的系统时钟不稳定,导致数码管的扫描有时会出现闪动的现象,在更换了实验板后可以看出,数码管的扫描基本稳定,在视觉上不会出现闪动的情况。或者可以将系统的时钟频率改为2KHZ,更改分频模块后再进行编译下载,这样可以加快数码管扫描的速度,从而达到消除视觉上闪动的现象。6 结论本设计采用了VHDL硬件描述语言文本输入方式,在确立总体预期实现功能的前提下,分层次进行设计。实现了三种颜色交通信号灯的交替点亮,以及时间的倒计时显示,指挥行人和车辆安全通行。程序中所用到的数据均可以根据实际情况进行设置,修改灵活方便。通过此次设计,我对于VHDL硬件描述语言有了更深入
41、地了解,也在原来所学的理论基础上得到了进一步地应用。但由于经验上的不足,有些地方还需要做进一步地改善,如可通过FPGA/CPLD开发套件验证。数字化时代的到来给人们的生活水平带来了极大的改变,我们有理由相信,随着数字化的深入,交通灯控制器的功能将日趋完善。而且,VHDL语言对EDA技术产生的影响也是深远的,它缩短了电子产品的设计周期,为设计者提供了方便。在今后的电子产品研究开发过程中,EDA技术将会具有更好的开发手段和更高的性价比,并且将拥有更为广阔的市场应用前景。7 总结与体会通过这次课程设计,加强了我动手、思考和解决问题的能力.现在设计已经做好了,自己感觉还是比较好的,虽然花了很多的时间,
42、但学到了很多东西.做课程设计的时候,自己把整个书本都看了几遍,增强了自己对知识的理解,很多以前不是很懂的问题现在都已经一一解决了。在课程设计的过程中,我想了很多种方案,对同一个问题都想了很多种不同的接法,运用不同的芯片进行了比较,最后还是采取了上面的方法进行连接.从开始做课程设计那天起,脑中天天都想着同样的问题,怎么去把电路和程序弄得更加简单,怎么别人更容易看懂.但似乎时间过得真的很快,我用了好几天才把它完全弄完,完成后,心里有一种说不出的高兴。在设计过程中遇到很多麻烦,但我都上网查资料,去图书馆找参考书,努力地去解决所遇到的问题。 这次课程设计之后,使我明白了,做任何事情都要认真仔细,不然的
43、话,你会花更多的时间才会做好.课程设计有利于提高我们的动手能力,能把我们所学的书本知识运用到实际生活中去.同时也丰富了我们的业余生活,提高我们对知识的理解能力。8 谢辞通过这两周的努力,我的课程设计终于完成了,这意味着大学三年级生活即将结束。在此阶段,我在学习上和思想上都受益非浅,这除了自身的努力外,与各位老师、同学和朋友的关心、支持和鼓励是分不开的。在本课程设计的完成过程中,我的指导老师黄勇老师倾注了大量的心血,从选题到开题报告,从写作提纲,到一遍又一遍地指出每稿中的具体问题,严格把关,循循善诱,在此我表示衷心感谢。同时我还要感谢在我学习期间给我极大关心和支持的各位老师以及关心我的同学和朋友
44、。由于时间的仓促及自身专业水平的不足,整个课程设计肯定存在尚未发现的缺点和错误。恳请阅读此篇说明书的老师、同学,多予指正,不胜感激!9 参考文献1 元红妍.电子综合设计实验教程(第一版)M,山东:山东大学出版社,20052 杨晓慧.电子技术EDA实践教程(第一版)M,北京:国防工业出版社,20053 王新安.FPGA/CPLD最新实用技术指南(第一版)M,北京:清华大学出版社,20054 林明权.VHDL数字控制系统设计范例(第一版)M北京:电子工业出版社,2003年5 黄继业.EDA技术实用教程(第二版)M,北京:科学出版社,2005年6 杨恒新.自顶向下法设计交通灯控制系统J,电气电子教学学报,2006年第四期7 曾素琼.EDA技术在数字电路中的探讨J,实验科学与技术,2005年第一期8 陈赜 CPLD/FPGA与ASIC设计实践教程M北京:科学出版社,2005 9 王金明数字系统设计与Verilog HDL M北京:电子工业出版社,200910 谢自美电子线路设计.实验.测试 M武汉:华中科技大学出版社,2003附录 思考题1、数字管的动态和静态显示有什么区别?静态显示:系统在每一次显示输出后,能保持显示不变,仅仅在待显示数字需要改变时,才更新其数字显示器中锁存的内容,这种显示占用CPU时间少,显示