毕业设计(论文)基于FPGA的交通控制灯设计

上传人:1777****777 文档编号:39312545 上传时间:2021-11-10 格式:DOC 页数:32 大小:462.53KB
收藏 版权申诉 举报 下载
毕业设计(论文)基于FPGA的交通控制灯设计_第1页
第1页 / 共32页
毕业设计(论文)基于FPGA的交通控制灯设计_第2页
第2页 / 共32页
毕业设计(论文)基于FPGA的交通控制灯设计_第3页
第3页 / 共32页
资源描述:

《毕业设计(论文)基于FPGA的交通控制灯设计》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于FPGA的交通控制灯设计(32页珍藏版)》请在装配图网上搜索。

1、武汉工业学院工商学院毕业论文(设计)专用稿纸Wuhan Polytechnic University Industrial &Commercial College 本科毕业论文(设计)论文题目:基于FPGA的交通控制灯设计姓名:学号:班级:年级:2006级专业:电子信息工程系部:信息工程系指导教师:完成时间:2010年5月- 27 -作者声明本毕业论文(设计)是在导师的指导下由本人独立撰写完成的,没有剽窃、抄袭、造假等违反道德、学术规范和其他侵权行为。对本论文(设计)的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。因本毕业论文(设计)引起的法律结果完全由本人承担。毕业论文(设

2、计)成果归武汉工业学院工商学院所有。特此声明。作者专业:电子信息工程作者学号:作者签名:年 月 日 基于FPGA的交通控制灯设计XXXThe Design of Traffic Control Lights based on FPGA 2010年 5 月摘 要FPGA(Field Programmable Gate Array)是在PAL、GAL、EPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路领域中的一种半定制电路出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。目前,由于其高密度、低功耗、使用灵活、设计快速、成本低廉、现场可编程和反复可编程等特性,

3、FPGA逐步成为复杂数字硬件电路的理想选择,并且在通信、数据处理、网络、仪器、自动控制、军事和航空航天等众多领域得到了广泛应用。本文阐述了基于FPGA的交通控制灯的特点和意义,对FPGA及交通灯的发展现状和开发前景作了相关说明。对交通控制灯的各种理论及原理进行了介绍,并对FPGA的仿真工具Modelsim及Verilog语言的使用进行了详细说明。同时,做出了交通控制灯的设计方案,并编写了相关模块的Verilog程序。Verilog有着类似C语言的风格,易于学习和掌握。与传统的原理图输入设计方法相比较,Verilog更适用于规模日益增大的数字系统,用Verilog等硬件描述语言进行数字系统的设计

4、是当前EDA发展的趋势。本论文分四部分:第一部分,概述,简要地介绍了FPGA、交通控制灯的国内外发展现状和意义;第二部分,理论研究,对交通控制的基本思想及相关参数等进行了说明;第三部分,仿真工具的使用方法及Verilog编程语言的介绍,第四部分,基于FPGA的交通控制灯的设计方案。关键词:FPGA;交通控制灯;Modelsim;VerilogAbstractFPGA (Field-Programmable Gate Array), or field programmable gate array, it is in PAL, GAL, EPLD and other programmable d

5、evices based on the further development of the product. It is as a field-specific integrated circuit semi-custom circuits occurs, which addresses the lack of custom circuits, programmable devices has to overcome the original gate a limited number of shortcomings. Currently, due to its high density,

6、low power, flexible design fast, low-cost, field-programmable and programmable features such as repeated, FPGA gradually become complex ideal for digital hardware circuit, and in communications, data processing, networking, instrumentation, automatic control, military and aerospace, and many other f

7、ields has been widely applied. In this paper, FPGA-based traffic control features and significance of lights, traffic lights on the FPGA and the development status and development prospects were the instructions. Traffic control lights on the various theories and principles were introduced, and the

8、FPGA and Verilog Modelsim simulation tool the use of language is described in detail. At the same time, made the design of traffic control lights, and the preparation of the relevant modules of the Verilog program. Have similar C language Verilog styles, easy to learn and master. Traditional schemat

9、ic design compared, Verilog is more applicable to the growing size of digital systems, using Verilog hardware description language such as the design of digital systems is the development trend of the current EDA. The thesis is divided into four parts: the first part, an overview, a brief introducti

10、on to the FPGA, the traffic control lights its current development status and significance; the second part, theoretical research ,the basic idea of traffic control and the parameters have been introduced; the third parts, Simulation tools, and Verilog programming language to use the description;the

11、 fourth parts, FPGA-based design of traffic control lights.Keywords: FPGA; traffic control lights; Modelsim; Verilog目 录1 概论11.1本选题研究的目的及意义11.2本选题国内外研究状况综述11.3本选题研究的主要内容22 交通控制灯理论研究32.1交通控制的基本思想32.2交通信号控制理论基础42.3交通控制方式82.4交通灯控制器原理93 Modelsim工具概述11 3.1 Modelsim简介11 3.2 Modelsim使用方法12 3.3 Verilog语言简介15

12、 4 交通控制灯设计方案23 4.1时钟分频模块23 4.2交通灯控制及计时模块23 4.3扫描显示译码模块25 主要参考文献26附 录24 附录一 控制模块Verilog程序24 1 概论1.1本选题研究的目的及意义近年来,随着我国国民经济的发展和人民生活水平的提高,导致了交通量的急剧增长,在大型城市中交通拥挤与阻塞的现象非常严重。由于受到空间的制约,在大城市新建和扩建道路的可能性越来越小。同时,交通规模的复杂性特征及传统控制方法的局限性,也迫使我们不得不研究应用现代化技术来解决城市交通控制问题。而FPGA以其各方面的优势越来越多的被用于各种电子系统的设计,通过FPGA技术实现交通控制具有重

13、大意义。FPGA技术是上世纪90年代以来电子设计领域最具有活力和发展前途的一项技术,它是在PAL、GAL、EPLD等可编程器件的基础上进一步发展的产物。作为专用集成电路(ASIC)领域中的一种半定制电路而出现,FPGA既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。它最大的特点就是速度快、应用灵活,实现你想实现的任何数字电路,而且可以定制各种电路,减少专用芯片对电路设计的束缚。目前,由于其高密度、低功耗、使用灵活、设计快速、成本低廉、现场可编程和反复可编程等特性,FPGA逐步成为复杂数字硬件电路的理想选择,并且在通信、数据处理、网络、仪器、自动控制、军事和航空航天等众多领域得

14、到了广泛应用。交通控制的一个重要内容是信号控制灯的设计与实施。但传统的信号控制灯基于中、小规模集成电路进行,不但电路复杂,而且经常发生故障,很容易造成交通事故。利用FPGA技术对交通控制灯进行设计,通过Verilog硬件描述语言对其电路功能进行描述,使亮灯时间可以随着编程数据的改变进行自由调整,提高了交通灯在时间和空间方面的应变性能,一定程度上节省了交通资源。在设计完成后还可以通过Modelsim、Quartus等仿真软件进行仿真,验证设计的正确性,避免了因设计错误而造成的资源浪费。FPGA将硬件设计转换到软件设计,大大简化了系统的开发过程,使系统不需要一次一次地调试电路并反复修改、制作电路,

15、系统的可靠性高、设计开发周期短、设计制造成本低、质量稳定。基于FPGA的交通控制灯设计在大大增强交通控制灯功能的同时,也为设计者带来了很大的方便体现出了该设计的可行性。1.2本选题国内外研究状况综述交通灯作为城市交通监管系统的重要组成部分,对于保证机动车辆的安全运行,维持城市道路的顺畅起到了重要作用。1868年,英国在伦敦Westminstor地区安装了世界上第一组交通信号灯,它的诞生揭开了城市交通信号灯控制的序幕。1918年纽约街头出现了新的信号灯,它是与当今使用的信号灯极为相似的红黄绿三色灯。1926年,英国人首次安装和使用自动化的控制器来控制交通信号灯,标志着城市交通自动控制的开始。但由

16、于技术的局限性,其数据处理能力有限,信号灯之间的协作也很少。1964年世界上第一台数字电子计算机在美国问世,同年在加拿大多伦多市完成了数字计算机控制信号灯的实用化,从此开始了交通控制发展史的新纪元。此后,美国、英国、澳大利亚、法国、日本等国家对交通控制进行了研究并采用了更多的现代化技术。FPGA作为一项新技术也被广泛的运用其中。FPGA于1985年由Xilinx首次推出至今已经历了十几年的发展历史。在这十几年的发展过程中,以FPGA为代表的数字系统现场集成技术取得了惊人的发展:现场可编程逻辑器件从最初的1200个可利用门,发展到90年代的25万个可利用门,乃至当新世纪来临之即,国际上现场可编程

17、逻辑器件的著名厂商Altera公司、Xilinx公司又陆续推出了数百万门的单片FPGA芯片,将现场可编程器件的集成度提高到一个新的水平。目前,FPGA的主要发展动向是:随着大规模现场可编程逻辑器件的发展,系统设计进入"片上可编程系统"(SOPC)的新纪元;芯片朝着高密度、低压、低功耗方向挺进;国际各大公司都在积极扩充其IP库,以优化的资源更好的满足用户的需求,扩大市场;特别是引人注目的所谓FPGA动态可重构技术的开拓,将推动数字系统设计观念的巨大转变。随着技术的日趋成熟,FPGA在国内的应用也非常广泛。中兴通讯的一位工程师对中国电子报记者说:“在员工应聘的时候,中兴和华为的

18、面试都要考FPGA相关知识。”除了系统产品的应用外,在集成电路(IC)设计这一领域,几乎每家企业都会用到FPGA。杭州国芯是国内最大的数字电视系统级芯片设计企业之一,该公司副总经理兼首席技术官黄智杰告诉记者,FPGA是现阶段系统芯片设计验证中“不可或缺的一个重要帮手”,其在数字电视解调算法验证过程中所起的作用“尤为突出”。近年来,FPGA技术正处于高速发展时期。新型芯片的规模越来越大,成本也越来越低,低端的FPGA已逐步取代了传统的数字元件,高端的FPGA不断在争夺ASIC的市场份额。先进的ASIC生产工艺已经被用于FPGA的生产,越来越丰富的处理器内核被嵌入到高端的FPGA芯片中,基于FPG

19、A的开发已成为一项系统级设计工程。1.3本选题研究的主要内容本选题主要研究交通控制灯的基本原理及基于FPGA的设计实现,了解仿真软件Modelsim的使用方法,并利用Verilog语言对交通控制灯的核心模块进行描述。2 交通控制灯理论研究2.1交通控制的基本思想交通控制是涉及人、车、路、环境和现代科技的复杂系统控制问题,包括从宏观战略到微观措施多层次内容,受到多种因素影响和制约。系统的运行与控制具有开放过程与封闭过程复合并存的特性,而控制作用又常常是与外部环境信息的作用共同施效的。因此,交通控制基本的思想就是系统论、控制论和信息论的思想。(1)系统论系统,是由一些相互制约的要素或环节组成并具有

20、一定功能的整体。交通控制系统论就是要研究交通系统运动控制的模式、性能、行为和规律,它是以系统论的思想方法,结合道路交通系统自身特点,为人们认识交通控制系统的组成、结构、性能、行为和发展规律提供了一般方法论的指导。对于道路交通系统的研究,要从系统思想和观点出发,将所要解决的问题放在系统的模式中加以考察,始终围绕着系统的预期目的,从整体与部分、各部分之间和系统整体与外部环境之间的相互联系、相互作用、相互矛盾、相互制约的关系中综合地考察对象,以达到最优地处理问题的效果。(2)控制论控制论是数学、自动控制、电子技术、数理逻辑等学科和技术相互渗透而形成的综合性科学。城市交通控制中独立交叉路口定时控制、感

21、应控制,以及区域信号协调控制等,无不围绕着控制理论的两个不变主题,即反馈和优化。就不同交通系统特性及控制需求而言,从经典控制理论到现在控制理论、直至智能控制理论,都有其不同的适用性。 最优控制最优控制是研究在运动方程和允许控制范围的约束下,对以控制函数和运动状态为变量的性能指标函数(称为泛函数)求取集值(极大值或极小值)。对一个受控的交通系统或运动过程而言,从一类允许的控制方案中找出一个最优的控制方案,使交通系统的运动状态达到(转移到)目标状态,并且其性能指标为最优。最优控制是现代控制理论的一个主要分支,其一系列思想方法已在交通系统控制中得到广泛深入的应用。 随机控制随机控制理论是控制理论中把

22、随机过程理论与最优控制理论结合起来研究随机系统的分支。交通运输系统是一个含有内部随机参数,外部随机干扰等随机变量的系统,随机变量不能用已知的时间函数描述,而只能了解它的某些统计特性。在进行随机最优控制中,由于存在不确定性,常常需要采取谨慎控制的策略,即把控制作用取得弱一些、保守一些;同时,为了更好和更快地进行参数估计,又需不断获取系统的各种反馈运动,为此需要加入一些试探作用。试探作用的大小,根据性能指标、误差的增减等因素加以折衷权衡进行选择,谨慎和试探已成为设计随机控制策略的两个重要原则。 自适应控制自适应控制是能在系统和环境信息不完备的情况下,改变自身特性来保持良好工作品质的控制系统。信息不

23、完备表现为系统和环境的特性或其变化规律的不确定性。自适应控制系统中采用由目的搜索和试探等方法,通过对环境不断进行观测和对已有控制品质进行评价和分析,在采集和加工信息的基础上学习和该进关于环境特性的知识,减少不确定性,进而模仿工程师的设计过程,自动地调整系统的结构参数,达到改善系统品质的目标。交通控制系统的自适应过程可以克服定时控制方式的局限性。它以检测器实时测量的交通参数为依据,联机生成或选择信号配时方案,对交通流进行实时控制,这一自适应控制过程必须依靠计算机和网络通信技术来完成。由于交通自适应控制系统能适应交通流的动态随机变化,不断修正控制参数,因而据有较高的控制精度和响应速度。(3)信息论

24、在信息时代的背景下,交通运动及其控制更直接地表现为信息系统的运动特性。信息论因此已成为处理交通运动与控制问题不可或缺的基础思想与技术手段。在交通控制系统中,既有表示交通动态的各种指标、参数,又有控制交通运行的各种指令、信号,还有各种相关的规范、标准、计划、方案、图表、记录、票据文件等数据,这些信息有数字、文本、图形、视频、音频等多种格式,具有不同的时效性。交通控制涉及信息的生成、检测、识别、变换、传输、存储、处理、再生、表示和施效等运动过程,因而关于信息的属性、信息的描述和信息的测度,以及微电子技术、计算机技术、通信技术、光信息和图形处理技术等信息论思想和方法,必然是实现先进交通控制系统的一般

25、方法论的指导和具体技术手段。2.2交通信号控制理论基础经过调查统计发现,将城市道路相互连接起来构成道路交通网的城市道路平面交叉口,是造成车流中断、事故增多、延误严重的问题所在,是城市交通运输的瓶颈。一般而言,交叉口的通行能力要低于路段的通行能力,因此如何利用交通信号控制保障交叉口的交通安全和充分发挥交叉口的通行效率引起了人们的高度关注。交通信号控制是指利用交通信号灯,对道路上运行的车辆和行人进行指挥。交通信号控制也可以描述为:以交通信号控制模型为基础,通过合理控制路口信号灯的灯色变化,以达到减少交通拥挤与堵塞、保证城市道路通畅和避免发生交通事故等目的。其中,交通信号控制模型是描述交通性能指标(

26、延误时间、停车次数等)随交通信号控制参数(信号周期、绿信比和信号相位差),交通环境(车道饱和流量等),交通流状况(交通流量、车队离散性等)等因素变化的数学关系式,它是交通信号控制理论的研究对象,也是交通工程学科赖以生存和发展的基础。 2.2.1 交通信号与交通信号灯交通信号是指在道路上向车辆和行人发出通行或停止的具有法律效力的灯色信息,主要分为指挥灯信号、车道灯信号和人行横道灯信号。交通信号灯则是指由红色、黄色、绿色的灯色按顺序排列组合而成的显示交通信号的装置。(1)对于指挥灯信号 绿灯亮时,准许车辆、行人通行,但转弯的车辆不准妨碍直行的车辆和被放行的行人通行; 黄灯亮时,不准车辆、行人通行,

27、但已越过停止线的车辆和已进入人行横道的行人,可以继续通行; 红灯亮时,不准车辆、行人通行; 绿色箭头灯亮时,准许车辆按箭头所示方向通行; 黄灯闪烁时,车辆、行人须在确保安全的原则下通行。(2)对于车道灯信号 绿色箭头灯亮时,本车道准许车辆通行; 红色叉形灯亮时,本车道不准车辆通行。(3)对于人行横道灯信号 绿灯亮时,准许行人通过人行横道; 绿灯闪烁时,不准行人进入人行横道,但已进人人行横道的,可以继续通行; 红灯亮时,不准行人进入人行横道。2.2.2 信号相位与控制步伐在空间上无法实现分离的地方(主要是在平面交叉口上),为了避免不同方向交通流之间的相互冲突,可以通过在时间上给各个方向交通流分配

28、相应的通行权。例如,为了放行东西向的直行车流且同时避免南北向的直行、左转车流与其发生冲突,可以通过启亮东西向的绿色直行箭头灯将路口的通行权赋予东西向直行车流,启亮南北向的红灯消除南北向直行、左转车流对东西向直行车流通行的影响。对于一组互不冲突的交通流同时获得通行权所对应的信号显示状态,我们将其称之为信号相位,简称为相位。可以看出,信号相位是根据交叉口通行权在一个周期内的更迭来划分的。一个交通信号控制方案在一个周期内有几个信号相位,则称该信号控制方案为几相位的信号控制。如图2.1就是一个采用四相位信号控制的控制系统的相位相序。一个路口采用几相位的信号控制应由该路口的实际交通流状况决定,十字路口通

29、常采用24个信号相位。如果相位数设计得太少,则不能有效地分配好路口通行权,路口容易出现交通混乱,交通安全性下降;如果相位数设计得太多,虽然路口的交通次序与安全性得到了改善,但由于相位之间进行转换时都会损失一部分通行时间,过多的相位数会导致路口的通行能力下降,延长驾驶人在路口的等待时间。图2.1 四相位控制系统相位为了保证能够安全地从一个信号相位切换到另一个信号相位,通常需要在两个相邻的信号相位之间设置一段过渡过程,例如对于四相位的信号控制方案而言,从第一信号相位切换到第二信号相位,中间可能需要设置东西向绿色直行箭头灯闪烁、东西向黄灯亮、路口所有方向红灯亮等过渡过程。对于某一时刻,路口各个方向各

30、交通信号灯状态所组成的一组确定的灯色状态组合,称为控制步伐,不同的灯色状态组合对应不同的控制步伐。因此一个信号相位通常包含有一个主要控制步伐和若于个过渡性控制步伐。控制步伐持续的时间称为步长,一般而言主要控制步伐的步长由放行方向的交通量决定,过渡性控制步伐的步长取值为23s。2.2.3 交通信号控制参数(1)信号周期信号周期是指信号灯色按设定的相位顺序显示一周所需的时问,即一个循环内各控制步伐的步长之和,用c表示。信号周期是决定交通信号控制效果优劣的关键控制参数。倘若信号周期取得太短,则难以保证各个方向的车辆顺利通过路口,导致车辆在路口频繁停车、路口的利用率下降;倘若信号周期取得太长,则会导致

31、驾驶人等待时间过长,大大增加车辆的延误时间。一般而言,对于交通量较小、相位数较少的小型路口,信号周期取值在70s左右;对于交通量较大、相位数较多的大型路口,信号周期取值则在180s左右。(2)绿信比绿信比是指一个信号周期内某信号相位的有效绿灯时间与信号周期的比值,用A表示。 (式2.1)式2.1中:TEG有效绿灯时间。某信号相位的有效绿灯时间是指将一个信号周期内该信号相位能够利用的通行时间折算为被理想利用时所对应的绿灯时长。有效绿灯时间与最大放行车流率(饱和流量)的乘积应等于通行时间内最多可以通过的车辆数。有效绿灯时间等于绿灯时间与黄灯时间之和减去部分损失时间,也等于绿灯时间与前损失时间之差再

32、加上后补偿时间(后补偿时间等于黄灯时间减去后损失时间)。 (式2.2)公式2.2中:TG绿灯时间;TY黄灯时间;TL部分损失时间;TFL前损失时间;TAC后补偿时间;TRL后损失时间。部分损失时间是指由于交通安全及车流运行特性等原因,在相位可以通行的时间段内没有交通流运行或未被充分利用的时间。部分损失时间由前损失时间和后损失时间两部分组成。前损失时问是指绿灯初期,由于排队车辆需要起动加速、驶出率较低所造成的损失时间。在绿灯初期车流量由小变大,由零逐渐上升到最大放行车流率。后损失时间是指绿灯时间结束时,黄灯期间停车线后的部分车辆已不许越过停车线所造成的损失时间。后补偿时间是指绿灯时间结束时,黄灯

33、初期已越过停车线的车辆可以继续通行所带来的补偿时问。后损失时问与后补偿时间之和等于黄灯时间,恰恰也正反映了黄灯的过渡性与“两面性”。在黄灯期间车流量由大变小,由最大放行车流率逐渐下降到零。(3)相位差相位差是指系统控制中联动信号的一个参数。它分为相对相位差和绝对相位差。相对相位差是指在各交叉口的周期时间均相同的联动信号系统中,相邻两交叉口同相位的绿灯起始时间之差,用秒表示。此相位差与周期时间之比,称为相对相位差比,用百分比表示。在联动信号系统中选定一个标准路口,规定该路口的相位差为零,其他路口相对于标准路口的相位差,称为绝对相位差。(4)绿灯间隔时间从失去通行权的上一个相位绿灯结束到得到通行权

34、的下一个相位另一方向绿灯开始的时间,称为绿灯间隔时间。在我国,绿灯间隔时间为黄灯加红灯或全红灯时间。当自行车和行人流量较大时,由于自行车和行人速度较慢,为保证安全,需进行有效调整,可以适当增加绿灯间隔时间。(5)饱和流量和延误饱和流量是指在一次连续的绿灯信号时间内,进口道上一列连续车队能通过进口道停车线的最大流量。饱和流量随交叉口几何因素、渠化方式、信号配时及各流向交通冲突等情况而异,比较复杂。它是衡量路口交通流释放能力的重要参数。延误是指交通冲突或信号控制设施的限制给车辆带来的时间损失。它是计算信号配时和衡量路口通行效果的一个重要参数,也常作为确定信号控制系统性能的重要参量。此外,信号控制的

35、基本参数还有饱和流率、有效绿灯时间、信号损失时间、黄灯时间、交叉口的通行能力与饱和度等。2.3交通控制方式(1)定时控制。定时信号控制也称周期控制,定时周期控制属于自动控制。配时方案包括周期长度、相位次序,绿信比和相位转换时间都是根据历史的交通数据事先确定的。在事先确定的配时方案中,绿灯时间的长短、信号周期长度以及每个相位上的绿灯起止时间都是相对固定的,亦即在某一确定的时间区段,上述参数保持不变。可根据一天中交通量的波动情况,划分若干时间区段,对应于每一时间区段的平均交通量制定相应配时方案。单点定时周期控制。预先调整信号机的控制相位、周期长度和绿信比,根据设计好的程序轮流给各方向的车辆和行人分

36、配通行权,控制不同方向的交通流。多段定时周期控制。若一天当中各时间段的交通量相差较大,则应采用多套配时方案。根据一天内不同时段交通量的变化,选择相应的配时方案,以适应交通流变化的需要。定时控制方式适用于那些交通量不大、变化较稳定、相隔距离较远的交叉口。(2)感应式信号控制。根据车辆感应器所提供的信息调整周期长度和绿灯时间。它可更好地适应交通量的变化,减少延误,提高交叉口的通行能力。特别适用于各方向交通量明显随时间变化较大且无规律的交叉路口。它的主要型式有以下两种:半感应式信号控制。在部分进口道上设置车辆感应器,通常设在次要路口。平时主干道维持长绿信号,当埋设支路上的检测器检测到有车辆到达交叉口

37、时,经过一个适当的信号转换间隔后,信号状态发生变化,主干道信号灯变为红灯,而让支干道变为绿灯。该绿灯将持续到支干道上的车辆全部通过交叉叉口或直到规定的最大绿灯时间为止。该控制方式的周期长度和绿灯时间可根据实际需要随时进行调整,当支干道没有车辆时,主干道总保持常绿,分配到支干道的绿灯时间被充分利用,所有“多余”绿灯时间都分配给主干道。这种控制适用于主干道上交通量特别大,而支路上流量较小的交叉口。全感应式信号控制。所有进口道上都安装车辆感应器。当主干道和支道的交通量都比较小时,主、支道入口的信号均维持最短绿灯时间,此时它相当于定时周期控制,当交通量较大时,可自动延长绿灯时间。在这种控制方式下,信号

38、周期长度和绿灯时间可根据实际的交通状况作很大的变化。全感应式信号控制的另一打优点是可以设置可选相位,在此相位中,如果没有检测到车辆的到达,那么就可以跳过该相位,继续运行其他的相位。这种控制适用于相交道路的交通流量都比较大、且都不稳定的情况。(3)按钮式信号控制。按钮式信号控制,属于人工控制,它适用于支线路口或非交叉口的人行横道处,平时主干道路是绿灯信号,支线路口来车或有行人横穿道路时,可按一下路旁与信号机相连的开关(有的设计为遥控开关),则绿灯变为红灯。这种控制方式,适用于支线路口车辆或行人较少的道路。2.4交通灯控制器原理城市道路平面交叉口是道路的集结点、交通流的疏散点,是实施交通信号控制的

39、主要场所。本文主要研究十字路口的交通灯控制,采用定时控制的方法。在东西方和南北方两条干道汇合点形成的十字交叉路口放置两组红绿灯分别对两个方向上的交通运行状态进行管理。灯亮时序如图2.2所示:图2.2 交通灯闪亮时序图当东西方(主)干道红灯亮时,南北方向对应绿灯亮,此时南北方(支)干道上车辆通行;反之亦然,两者交替允许通行。由绿灯转换成红灯的过渡阶段亮黄灯,各干道上安装有数码管,以倒计时的形式显示本道各信号灯闪亮的时间,交通灯的持续闪亮时间根据交通流量的大小和相关参数设定(本设计中将东西干道放行时间设定为30s,南北方向设定为25s,黄灯亮5s)。当出现特殊情况时,各方向上均亮红灯,倒计时停止。

40、特殊运行状态结束后,控制器恢复原来的状态。 通过对控制过程的分析,交通灯控制器主要由置数器、定时计数器、主控制器和译码显示器构成。置数器将交通灯的点亮时间预置到置数电路中,计数模块以秒为单位倒计时,当计数值减为零时,主控电路通过改变输出状态,控制交通灯的亮灯顺序并发出信号协调其他部分进行工作。输出状态可以根据实际路况及交通流量所需要的亮灯顺序及亮灯时间的要求进行设置,其具体设计过程将在下文进行阐述。主控制模块是整个控制器的核心,采用Verilog语言对其进行设计。一般情况下,主控制器控制整个电路的运行状态,并输出信号控制相应干道上亮灯的灯色及时间。由于亮灯时间不同,采用一个置数模块由主控模块输

41、出的信号控制定时器选择定时时间。定时计数器用倒计时的方式,由主控模块输出的信号控制定时的开始,定时时间结束时输出定时时间结束信号到主控模块,通过主控模块控制交通灯的开关。译码模块把计数器输出的信号进行译码后输出到数码管显示。遇到特殊情况时,给控制器输入特殊状态信号使电路进入特殊状态。结束后,通过复位信号恢复到原来状态。由此可以画出交通灯控制器的原理框图,如图2.3所示:图2.3 交通灯控制器原理框图主控制器的设计可以采用FPGA、PLC、单片机等,通过软件设计对其功能进行实现。3 Modelsim工具概述3.1 Modelsim简介Modelsim仿真工具是Model公司开发的。它支持Veri

42、log、VHDL以及他们的混合仿真,它可以将整个程序分步执行,使设计者直接看到他的程序下一步要执行的语句,而且在程序执行的任何步骤、任何时刻都可以查看任意变量的当前值,可以在Dataflow窗口查看某一单元或模块的输入输出的连续变化等,比quartus自带的仿真器功能强大的多,是目前业界最通用的仿真器之一。3.1.1 Modelsim的主要特点作为一种简单易用,功能强大的逻辑仿真工具,Modelsim具有广泛的应用,是作FPGA/ASIC设计的RTL级和门级电路仿真的首选。它采用直接优化的编译技术、TCL/TK技术、和单一内核仿真技术,编译仿真速度快,编译的代码与平台无关,便于保护IP核,个性

43、化的图形界面和用户接口,为用户加快调错提供强有力的手段。全面支持VHDL和Verilog语言的IEEE 标准,支持C/C+功能调用和调试。Modelsim专业版,具有快速的仿真性能和最先进的调试能力,全面支持UNIX(包括64位)、Linux和Windows平台。 主要特点:RTL和门级优化,本地编译结构,编译仿真速度快;单内核VHDL和Verilog混合仿真;源代码模版和助手,项目管理;集成了性能分析、波形比较、代码覆盖等功能。它是业界唯一单一内核支持VHDL、Verilog 和SystemC混合仿真的仿真器。Modelsim最大的特点是其强大的调试功能:先进的数据流窗口,可以迅速追踪到产生

44、不定或者错误状态的原因;性能分析工具帮助分析性能瓶颈,加速仿真;代码覆盖率检查确保测试的完备;多种模式的波形比较功能;先进的Signal Spy功能,可以方便地访问VHDL 或者VHDL和Verilog混合设计中的底层信号;支持加密IP;可以实现与Matlab的Simulink的联合仿真。Modelsim分几种不同的版本:SE、PE、LE和OEM,其中SE是最高级的版本,而集成在 Actel、Atmel、Altera、Xilinx以及Lattice等FPGA厂商设计工具中的均是其OEM版本。在本设计中我们用SE版进行仿真。3.1.2 Modelsim的基本结构启动Modelsim可以看到Mod

45、elsim的主窗口,包括菜单栏、工具栏、工作区和命令行操作区。在工作区可以根据操作显示Project标签、Library标签、Sim标签以及Files标签;在命令行操作区,可以用命令提示符的方式进行编译、仿真设计,同时打开其他窗口。Modelsim的图形界面主要包括:Workspace窗口:查看库,仿真中按层次排列的实体、设计文件等和设计相关的窗口;Transport窗口:命令行的接口,输入执行命令,以及查看运行的结果;Object窗口:查看在Workspace窗口选定的实体信号、变量、常量等;Wave窗口:查看仿真中信号、变量变化的波形。3.1.3 Modelsim仿真方法Modelsim的

46、仿真分为前仿真和后仿真。前仿真也称为功能仿真,主旨在于验证电路的功能是否符合设计要求,其特点是不考虑电路门延迟与线延迟,主要是验证电路与理想情况是否一致。可综合FPGA代码是用RTL级代码语言描述的,其输入为RTL级代码与Testbench.。       后仿真也称为时序仿真或者布局布线后仿真,是指电路已经映射到特定的工艺环境以后,综合考虑电路的路径延迟与门延迟的影响,验证电路能否在一定时序条件下满足设计构想的过程,是否存在时序违规。其输入文件为从布局布线结果中抽象出来的门级网表、Testbench和扩展名为SDO或SDF的标准时延

47、文件。SDO或SDF的标准时延文件不仅包含门延迟,还包括实际布线延迟,能较好地反映芯片的实际工作情况。一般来说后仿真是必选的,检查设计时序与实际的FPGA运行情况是否一致,确保设计的可靠性和稳定性。3.2 Modelsim的使用方法(1)创建工程用Modelsim完成一个HDL设计的仿真,必须建立一个Modelsim工程。Modelsim的向导功能,能帮助开发者迅速创建仿真工程。启动Modelsim,单击菜单【File】/【New】/【New Project】,就会出现对应的“Create Project”窗口。窗口中包含工程名、工程路径、“Default Library Name”、“Cop

48、y Settings From”。如图3.1所示:图3.1 创建工程每一个Modelsim工程都有一个ini文件,这个文件主要是初始化Modelsim的各个链接库以及相关设置的。一般在“Copy Settings From”栏里面就直接指定Modelsim安装目录下面的ini文件就行了。单击“Create Project”窗口上的【OK】按钮,弹出“Add items to the Project”的窗口。一般情况下,设计的HDL源文件已经在EDA设计工具里面编译好了。可以单击【Add Existing File】将其添加进来。添加完成后,一个工程就建立完成了。需要仿真的设计已经被添加到“Wo

49、rkspace”里面了。(2)编译对已经添加的HDL设计文件仿真之前,需要对文件进行编译。编译后,HDL文本设计描述会变成Modelsim识别的二进制数据文件。Modelsim这样做的目的是加速仿真。任意选择“Workspace”窗口里的文件,右键弹出菜单【Compile】/【Compile Order】,弹出“Compile Order”窗口。也可以选择“Compile”菜单下的“Compile Order”子菜单打开“Compile Order”窗口。设计是有一定层次的,Modelsim也要按照设计层次编译自底向上。这是由于当底层设计编译后,上层设计的编译就很顺利。否则,先编译上层文件会找

50、不到已编译的底层文件而出现错误。不过,这种错误一般多编译几次都能通过。Modelsim还有更好的方法。Modelsim可以自己识别设计的层次,只要单击【Auto Generat】按钮Modelsim就会自动识别层次,并编译设计。编译后每个文件的“Stutas”列表会由问号变成勾,表明编译成功。如果是红色的叉,则表明编译失败,需要更正设计的错误,以通过编译。如图3.2所示: 图3.2 文件编译(3)启动仿真编译完成以后将“Workspace”窗口下面的选项卡由“Project”切换到“Library”,可以看到设计已经被编译到了“Work”。展开“Work”库,选中设计仿真的顶层单击右键,在弹出

51、的菜单中单击【Simulation】,Modelsim即调入相关库,启动仿真。此时在“Workspace”窗口多了一个“Sim”选项卡,启动仿真后会自动进入。在“Workspace”窗口中选中某个模块,会在“Objects”窗口中出现对应的信号。此时可以把“Object”里面列表的信号添加到“Wave”窗口中,以观察仿真中的变化。只需选中要添加的信号单击鼠标右键,选择弹出菜单中的【Add to Wave】/【Selected Signals】,把选中的信号添加到“Wave”窗口。选择【Signals in Region】将“Object”窗口中列出的信号都添加到“Wave”窗口。如果选择【Si

52、gnals in Design】会将整个设计的信号添加到波形窗口,包括其他没有选中的模块信号,为了便于观察一般不会将整个设计的信号添加到波形窗口。如图3.3所示:图3.3 添加波形(4)产生信号激励一般复杂信号激励的产生都是在“Testbench”里面产生的,仿真时随设计一起编译,在启动仿真时直接运行就可以了。Modelsim可以产生简单的激励信号,对于需要简单仿真的时候非常有用。在“Object”或“Wave”窗口中选择需要激励的信号,单击鼠标右键,在弹出的菜单中选择【Clock】或【Force】,可以产生时钟激励或Force激励。对于时钟信号,可以指定时钟周期、占空比、偏移量以及第一个信号

53、是上升沿还是下降沿。对于信号值,使用Force命令产生,可以指定信号的值、延迟的周期、信号值持续的时间。如图3.4所示:图3.4 设置信号激励在设置完成激励后,即可单击工具栏上的运行按钮进行仿真,运行结果显示到波形窗口中。还可以右键需要观察的信号,在弹出的菜单中“Radix”下可以选择信号的方式,在“Format”下可以选择信号的显示模式。如图3.5所示:图3.5 产生波形3.3 Verilog语言简介Verilog是在C语言的基础上发展而来的,从语法结构上看,Verilog继承和借鉴了C语言的很多语法结构。Verilog语言由于具有简洁、高效、易用、功能强大等优点,已逐渐为众多设计者接受和喜

54、爱。本节主要介绍Verilog语言的几个基本要素。(1)Verilog模块的结构Verilog程序是由模块构成的,每个模块首先要进行端口定义,并说明输入口和输出口,然后对模块的功能进行逻辑描述。模块声明模块声明包括模块名字、模块输入、输出端口列表。模块定义格式如下:module 模块名(端口1、端口2、端口3、);模块结束的标志为关键字:endmodule。端口(Port)定义对模块的输入/输出端口要明确说明,其格式为: input 端口名1、端口名2、端口名n; /输入端口 output 端口名1、端口名2、端口名n; /输出端口 inout 端口名1、端口名2、端口名n; /输入输出端口每

55、个端口除了要声明是输入、输出还是双向端口外,还要声明其数据类型。如果没有声明,则综合器将其默认为连线(wire)型。输入和双向端口不能声明为寄存器型。信号类型声明及逻辑功能描述对模块中所用到的所有信号(包括端口信号、节点信号等)都必须进行数据类型的定义。Verilog语言提供了各种信号类型,分别模拟实际电路中各种物理连接和物理实体。模块中最核心的部分是逻辑功能描述。有很多种方法可在模块中描述和定义逻辑功能,如用“assign”持续赋值语句定义、调用元件(元件例化)、用“always”工程块赋值等。(2)数据类型数据类型是用来表示数字电路中物理连线、数据存储和传输单元等物理量的。Verilog中

56、的变量都分为net和variable两种数据类型。net型net型数据相当于硬件电路中的各种物理连接,其特点是输出的值随输入值的变化而变化。net型中常用的有wire、tri。Verilog模块中的输入/输出信号没有明确指定数据类型时都被默认为wire型。wire型信号可以用作任何表达式的输入,也可以作“assign”语句和实例元件输出。wire型变量的定义格式如下: wire 数据名1、数据名2、数据名n; /数据宽度为1位 wiren-1:0 数据名1、数据名2、数据名n; /数据宽度位n位或 wiren:1 数据名1、数据名2、数据名n; 例如:wire a,b; /定义了两个wire型

57、变量a、b wire 7:0 databus; /定义databus宽度为8位的wire变量 wire 8:1 databus;tri和wire的功能及使用方法是完全一样的,对于Verilog综合器来说,对tri型数据和wire型数据的处理是完全相同的,将信号定义位tri型只是为了增加程序的可读性。variable型variable型变量必须放在过程语句(如initial、always)中,通过工程赋值语句赋值;在always、initial等过程块内被赋值信号必须定义成variable型。Variable型中常用的有reg、integer。reg型的的定义格式为: reg 数据名1、数据名2

58、、数据名n; /数据宽度为1位 regn-1:0 数据名1、数据名2、数据名n; /数据宽度为n位或 regn:1 数据名1、数据名2、数据名n;integer型变量多用于表示循环变量,比如用来表示循环次数等。integer型变量的定义与reg型变量相同。例如: integer i,j; /i、j为integer型变量 integer 6:0 D; (3)Verilog基本语句Verilog 支持许多高级语句,使其成为结构化和行为级的语言。Verilog 语句包括:过程语句、块语句、条件语句、循环语句等。always过程语句always过程语句使用模板如下: always(敏感信号表达式) 块

59、语句always过程语句通常是带有触发条件的,触发条件写在敏感信号表达式中,只有当触发条件满足时,其后的块语句才能够被执行。所谓敏感信号表达式又称事件表达式或敏感信号列表,即当该表达式中变量的值变化时,就会引发块内语句的执行。因此,敏感信号表达式中应列出影响块内取值的所有信号。如: (a) /当信号a的值发生改变时 (a or b) /当信号a或b的值改变时 (posedge clock) /当clock的上升沿到来时串行块 begin-endbegin-end串行块中语句按串行方式顺序排列执行,如: begin regb=rega; regc=regb; end由于begin-end块内的语

60、句顺序执行,在最后将regb、regc的值都更新为rega的值。执行后,regb、regc的值是相同的。如果用并行块fork-join,则两个语句同时执行最后regb、regc的值不同。条件语句条件语句有if-else语句和case两种,应放在always块内。if-else格式于C语言中if-else语句类似。case语句是一种多分支语句,故case语句多用于条件译码电路如描述译码器、数据选择器等。case语句使用格式如下: case(敏感表达式) 值1: 语句1; 值2: 语句2;. . . 值n: 语句n; default: 语句n+1; end case当敏感表达式的值为1时,执行语句

61、1;为2时,执行语句2;依次类推。如果敏感表达式的值与上面列出的值都不符的话,则执行default后面的语句。如果前面已列出敏感表达式所有可能的取值,则default语句可以省略。循环语句在Verilog中存在4种类型的循环语句,用来控制语句的执行次数。本节简要介绍for语句和while语句。for语句的使用格式如下(同C语言): for(表达式1;表达式2;表达式3); 块语句;即:for(循环变量赋初值;循环结束条件;循环变量增值)执行语句;循环变量赋初值和循环变量增值是两句赋值语句,它们分别用来对循环计数变量执行初值操作和增值操作。循环结束条件代表循环进行时必须满足的条件,它常常是一逻辑

62、表达式。在每一次执行循环体之前都要对这个条件表达式是否成立进行判断。如: for(i=0;i<=6;i=i+1) /表示i的初值为0当i小于等于6时i的值加1while语句的使用格式为: while(循环执行语句); 块语句;while语句在执行时,首先判断循环执行条件表达式是否为真。若为真,执行后面的语句或语句块,然后再回头判断循环执行条件表达式是否为真。为真的话,再执行一遍后面的语句,如此不断,直到条件表达式不为真为止。4 交通控制灯设计方案根据设计要求和系统所具有的功能,并参考相关的文献资料,进行方案设计。整个系统由时钟分频模块、交通灯控制及计时模块、扫描显示译码模块和相关显示的LED和数码管组成。由此可以得到整个系统设计的框图如图4.1所示:图4.1 系统框图4.1时钟分频模块系统的动态扫描需要1KHZ的脉冲,而系统时钟模块需要1HZ的脉冲。分频模块主要为系统提供所需的时钟计时脉冲。该模块将外界输入的1KHZ脉冲信号进行分频,给系统提供1HZ的时钟脉冲。其工作过程与计数器相似,都是在输入脉冲信号的作用下完成若干个状态的循环运行。本设计中输入1KHZ的脉冲信号,要求输出1HZ的秒脉冲,则分频系数为1000,需要10位计数器,即计数器的输出,每次从全“0”变化到全“1”时最高位输出一个1HZ脉冲。利用一个简单

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!