基于vhdl的智能交通灯控制系统的设计.docx
- 文档编号:28697318
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:16
- 大小:27.75KB
基于vhdl的智能交通灯控制系统的设计.docx
《基于vhdl的智能交通灯控制系统的设计.docx》由会员分享,可在线阅读,更多相关《基于vhdl的智能交通灯控制系统的设计.docx(16页珍藏版)》请在冰豆网上搜索。
基于vhdl的智能交通灯控制系统的设计
基于vhdl的智能交通灯控制系统的设计
基于vhdl的智能交通灯控制系统的设计摘要摘要EDA技术的一个重要特征就是使用硬件描述语言(HDL)来完成系统的设计文件,应用VHDL的数字电路实验降低了数字系统的设计难度,这在电子设计领域已得到设计者的广泛采用。
本设计就是针对交通信号灯控制器的设计问题,提出了基于VHDL语言的交通信号灯系统的硬件实现方法。
通过对系统进行结构分析,采用了层次化的设计方法,给出了各个模块的VHDL程序,并且利用QuartusⅡ对应用程序进行了仿真,并给出了相应的仿真结果。
通过电路优化设计,可以使用规模更小的可编程逻辑芯片,从而降低系统成本。
关键词:
交通信号灯;VHDL;仿真33AbstractABSTRACTOneimportantcharacteristicoftheEDAisthatthedesigndocumentsshouldbecompletedbytheHDL,thedigitalcircuitexperimentutilizedvery-high-speedintegratedcircuithardwaredescriptionlanguage(VHDL)mayreducethedifficultiesofdigitalsystemdesigning,anditiswidelyusedbyelectronicdesignernow.Aimingatthedesignproblemoftrafficlightcontroller,thispaperputsforwardahardwarerealizationmethodoftrafficlightsystemwithVHDL.Byanalyzingthearchitectureofsystem,itgivestheprogramofeachmodulewithVHDLusinghierarchicaldesignmeans.ItalsogivesthesimulationresultsbyQuartusⅡ.Optimizesthedesignthroughtheelectriccircuit,mayusethescalesmallerprogrammablelogicchip,thusreducesthesystemcost.Keyword:
Street-trafficcontrollights;VHDL;Simulation目录目录第1章引言1第2章EDA技术概述22.1EDA技术及其发展22.2EDA与传统电子设计方法的比较22.3EDA的工程设计流程2第3章可编程技术简介43.1可编程逻辑器件概述43.2FPGA/CPLD概述43.3硬件描述语言介绍53.4选择VHDL硬件描述语言设计的优势63.5软件开发工具QuartusII简介6第4章智能交通控制系统的设计84.1系统功能分析84.2系统结构设计94.3系统程序实现104.3.1分频计数电路104.3.2交通信号控制器电路124.3.3动态数码管扫描电路154.3.4194.3.5建立程序包224.3.6连接各个模块234.3.7状态机的优势244.4仿真及仿真结果分析结束语26参考文献27致谢28附录291.时钟发生电路程序代码292.计数秒数选择电路程序代码313.倒计时控制电路程序代码324.红绿灯信号控制电路程序代码345.连接各个模块的程序代码38外文资料原文41翻译文稿55第1章引言第1章引言不同的城市存在着不同的城市问题,但其中有一个共同的问题就是城市交通。
在交叉路口如何解决混合交通流中的相互影响,就是解决问题的关键所在!
随着我国经济的稳步发展,人民生活水平的日渐提高,越来越多的汽车进入寻常百姓的家庭,再加上政府大力地发展公交、出租车行业,道路上的车辆越来越多,使得城市的交通成为了一个主要的问题。
严重的拥堵现象,逐渐恶化的城市环境,都给广大市民带来了许多困扰。
要解决这些问题不仅要求道路越来越宽阔,而且更需要有新的交通管理模式出台。
实现路口交通灯系统的控制方法很多,可以用标准逻辑器件、可编程序控制器PLC、单片机等方案来实现。
但是这些控制方法的功能修改及调试都需要硬件电路的支持,在一定程度上增加了功能修改及系统调试的困难。
交通系统未来的发展趋势就是要提高通行能力,加强环境保护,开展智能化运输和环保专项技术的研究,并且要做到以人为本,重点开展交通安全技术的研究,在这个过程中要确定经济合理的目标,促进新材料的广泛应用和开发。
EDA技术是用于电子产品设计中比较先进的技术,可以代替设计者完成电子系统设计中的大部分工作,而且可以直接从程序中修改错误及系统功能而不需要硬件电路的支持,既缩短了研发周期,又大大节约了成本,受到了电子工程师的青睐。
因此,本设计中采用EDA技术,应用目前广泛应用的VHDL硬件电路描述语言,实现交通灯系统控制器的设计,利用QuartusⅡ集成开发环境进行综合、仿真,完成系统的控制作用。
第2章EDA技术概述第2章EDA技术概述2.1EDA技术及其发展现代电子设计技术的核心是EDA(ElectronicDesignAutomation)技术。
EDA技术就是依赖功能强大的计算机,在EDA工具软件平台上,对以硬件描述语言HDL(HardwareDescriptionLanguage)为系统逻辑描述手段完成的设计文件,它能自动地完成逻辑编译、逻辑化简、逻辑分割、逻辑综合、结构综合(布局布线),以及逻辑优化和仿真测试,直至实现既定的电子线路系统功能。
EDA技术使得设计者的工作仅限于利用软件的方式,即利用硬件描述语言和EDA软件来完成对系统硬件功能的实现。
利用EDA技术(特指IES/ASIC自动设计技术)进行电子系统的设计,具有以下几个特点:
①用软件的方式设计硬件;②用软件方式设计的系统到硬件系统的转换是由有关的开发软件自动完成的;③设计过程中可用有关软件进行各种仿真;④系统可现场编程,在线升级;⑤整个系统可集成在一个芯片上,体积小、功耗低、可靠性高。
因此,EDA技术是现代电子设计的发展趋势。
EDA技术在进入21世纪后,得到了更大的发展。
在仿真和设计两方面支持标准硬件描述语言的功能越来越强大,软硬件技术也进一步得到了融合,在电子行业的产业领域、技术领域和设计应用领域得到了进一步的肯定,使得复杂电子系统的设计和验证趋于简单化。
2.2EDA与传统电子设计方法的比较与传统的电子设计方法相比,EDA技术对于复杂电路的设计和调试都比较简单,如果某一过程存在错误,查找和修改起来比较方便,而且EDA技术的可移植性很强。
2.3EDA的工程设计流程假设我们需要建造一栋楼房,第一,我们需要进行“建筑设计”——用各种设计图纸把我们的建筑设想表示出来;第二,我们要进行“建筑预算”——根据投资规模、拟建楼房的结构及有关建房的经验数据等计算需要多少基本的建筑材料(如砖、水泥、预制块、门、窗户等);第三,根据建筑设计和建筑预算进行“施工设计”——这些砖、水泥、预制块、门、窗户等具体砌在房子的什么部位,相互之间怎样连接;第四,根据施工图进行“建筑施工”——将这些砖、水泥、预制块、门、窗户等按照规定施工建成一栋楼房;最后,施工完毕后,还要进行“建筑验收”——检验所建楼房是否符合设计要求。
同时,在整个建设过程中,我们可能需要做出某些“建筑模型”或进行某些“建筑实验”。
那么,对于目标器件为FPGA和CPLD的VHD设计,其工程设计步骤如何呢?
EDA的工程设计流程与上面所描述的基建流程类似:
第一需要进行“源程序的编辑和编译”——用一定的逻辑表达手段将设计表达出来;第二要进行“逻辑综合”——将用一定的逻辑表达手段表达出来的设计,经过一系列的操作,分解成一系列的基本逻辑电路及对应关系(电路分解);第三要进行“目标器件的布线/适配”——在选定的目标器件中建立这些基本逻辑电路及对应关系(逻辑实现);第四,目标器件的编程/下载——将前面的软件设计经过编程变成具体的设计系统(物理实现);最后,要进行硬件仿真/硬件测试——验证所设计的系统是否符合设计要求。
同时,在设计过程中要进行有关“仿真”——模拟有关设计结果与设计构想是否相符。
综上所述,EDA的工程设计的基本流程如图2.1所示图2-1EDA工程设计第3章可编程技术简介第3章可编程技术简介3.1可编程逻辑器件概述可编程逻辑器件(简称PLD)是允许用户编程(配置)实现所需逻辑功能的电路,一般可利用计算机辅助设计,即用原理图、状态机、硬件描述语言(VHDL)等方法来表示设计思想,经过一系列编译或装换程序,生成相应的目标文件,再由编程器或下载电缆将设计文件配置到目标器件中,这时的可编程逻辑器件就可作为满足用户需求的专用集成电路使用了。
可编程逻辑器件,不仅速度快、集成度高,并且能随心所欲地完成用户定义的逻辑功能,还可以加密和重新编程,其编程次数最大可达1万次以上。
使用可编程逻辑器件可以大大简化硬件系统、降低成本、提高系统的可靠性、灵活性和保密性。
PLD的出现,打破了由中小规模通用型集成电路和大规模专用集成电路垄断的局面,在通信、数据处理、网络、仪器、工业控制、军事和航空航天等众多领域得到广泛应用,可以预见,不久的将来,PLD将在集成电路市场占统治地位。
3.2FPGA/CPLD概述FPGA(现场可编程门阵列)和CPLD(复杂可编程逻辑器件)都是可编程逻辑器件,他们是在PAL,GAL等逻辑器件的基础上发展起来的。
同以往的PAL,GAL相比较,FPGA/CPLD的规模比较大,它可以替代几十甚至几千块通用IC芯片。
这样的FPGA/CPLD实际上就是一个子系统部件。
这种芯片受到世界范围内电子工程设计人员的广泛关注和普遍欢迎。
比较典型的就是Altera公司和Xilinx公司的CPLD器件系列和FPGA器件系列,他们开发较早,占用了较大的PLD市场。
对用户而言,虽然FPGA/CPLD的内部结构稍有不同,但其用法都一样,所以大多数情况下,不加以区分。
FPGA/CPLD芯片都是特殊的ASIC芯片,除了具有ASIC的特点外,还具有以下几个优点:
(1)随着VLSI(VeryLargeScaleIC,超大集成电路)工艺的不断提高单一芯片内部可以容纳上百万个晶体管,FPGA/CPLD芯片的规模也越来越大,其单片逻辑门数已达到上百万门,它所实现的功能也越来越强,同时也可以实现系统集成,即片上系统SOC.
(2)FPGA/CPLD芯片在出厂之前都做过百分之百的测试,不需要设计人员承担芯片风险和费用,设计人员只需在自己的实验室就可以通过相关的软硬件环境来完成芯片的最终功能设计。
所以,FPGA/CPLD的资金投入就小,减少了潜在的花费。
(3)用户可以反复地编程、擦除、使用或者在外围电路不动的情况下用不同软件就可实现不同的功能。
FPGA/CPLD软件包中有各种输入工具和仿真工具,及版图设计工具和编程器等全线产品,电路设计人员在很短的时间内就可完成电路的输入、编译、优化。
仿真,直至最后芯片的制作。
当电路有少量的改动,更能显示FPGA/CPLD的优势。
电路设计人员在使用FPGA/CPLD进行电路设计时,不需要具有专门的IC(集成电路)深层次的知识,FPGA/CPLD软件易学易用,能使设计人员更能集中精力进行电路设计,快速将产品推向市场。
(4)在线可编程技术(ISP)使得使用FPGA/CPLD的产品可以做到远程升级。
3.3硬件描述语言介绍常用的硬件描述语言有VHDL、Verilog、ABEL。
VHDL:
作为IEEE的工业标准硬件描述语言,在电子工程领域,已成为事实上的通用硬件描述语言。
Verilog:
支持的EDA工具较多,适用于RTL级和门电路级的描述,其综合过程较VHDL稍简单,但其在高级描述方面不如VHDL。
ABEL:
一种支持各种不同输入方式的HDL,被广泛用于各种可编程逻辑器件的逻辑功能设计,由于其语言描述的独立性,因而适用于各种不同规模的可编程器件的设计。
有专家认为,在新世纪中,VHDL与Verilog语言将承担几乎全部的数字系统设计任务。
3.4选择VHDL硬件描述语言设计的优势首先,简单地介绍一下什么是VHDL硬件描述语言。
VHDL的英文全称是VHSIC(VeryHighSpeedIntegratedCircuit)HardwareDescriptionLanguage。
是EDA设计中使用最多的语言之一,它具有很强的电路描述和建模能力,能从多个层次对数字系统进行建模和描述,从而大大地简化了硬件设计任务,提高了设计效率和可靠性。
其次,这次设计选用VHDL硬件描述语言的优势就在于传统的用原理图设计电路的方法具有直观形象的优点,但如果所设计系统的规模比较大,或者设计软件不能提供设计者所需的库单元时,这种方法就显得很受限制了。
而且用原理图表示的设计,通用性、可移植性也比较弱,所以在现代的设计中,越来越多地采用了基于硬件描述语言的设计方式。
利用硬件描述语言来设计电路,使探测各种设计方案变成一件很容易的事,因为只需要对描述语言进行修改,这比更改电路原理图要容易实现得多。
3.5软件开发工具QuartusII简介Altera的QuartusII设计软件提供了完整的多平台设计环境,它可以轻易满足各种特定设计的需要,也是单芯片可编程系统(SOPC)设计的综合性环境和SOPC开发的基本设计工具,并为AlteraDSP开发包进行系统模型设计提供了集成综合环境。
QuartusII设计工具完全支持VHDL、Verilog的设计流程,其内部嵌有VHDL、Verilog逻辑综合器。
QuartusII包括模块化的编译器。
编译器包括的功能模块有分析/综合器(Analysis&Synthesis)、适配器(Fitter)、装配器(Assembler)、时序分析器(TimingAnalyzer)、设计辅助模块(DesignAssistant)等。
可以通过选择StartCompilation(Processing菜单)来运行所有的编译器模块。
若要单独运行各个模块,可以通过选择Start(Processing菜单),然后从Start子菜单中为模块选择相应的指令。
此外,还可以通过选择CompilerTool(Tools菜单)并在CompilerTool窗口中运行该模块来启动编译器模块。
在CompilerTool窗口中,可以打开该模块的设置文件或报告文件,还可以打开其它相关窗口。
QuartusII支持层次化的设计,可以在一个新的编辑输入环境中对使用不同输入设计方式完成的模块进行调试,从而解决原理图与HDL混合输入设计的问题。
在设计输入之后,QuartusII的编译器将给出设计输入的错误报告。
可以使用QuartusII带有的RTLViewer观察综合后的RTL图。
设计输入综合或编译适配器件下载图形或HDL编译Analysis&Synthesis(分析与综合)Fitter(适配器)Assembler(编程文件汇编)编程器TimingAnalyzer(时序分析器)仿真图3-1QuartusII设计流程上图显示的是QuartusII编译设计主控界面,显示了QuartusII自动设计的各主要处理环节和设计流程,包括设计输入编辑、设计分析与综合、适配、编译文件汇编(装配)、时序参数提取以及编程下载几个步骤。
第4章交通灯控制系统的设计第4章智能交通控制系统的设计4.1系统功能分析在交通信号灯的设计中,外部硬件电路方面主要包括:
两组红绿灯、两组LED显示器(见图1,说明:
图1中只画出了东西、南北方向的红绿灯及南北方向的LED显示器,东西方向的LED显示器与南北方向的相同)。
软件方面包括:
(1)电路合成模块的概念:
将交通灯信号系统划分成若干个小电路,编写每一个模块的VHDL程序代码,并将各个小电路相连接。
这样可以增加程序的调试速度,同时也能够将工作细分,以提高编程速度(见图2)北(主)北东(支)南LED显示器红黄绿信号灯…红黄绿信号灯图4-1十字路口示意图分频计数器模块CLK1kHZ1HZCAR支干道车辆检测交通信号控制器模块1kHZ动态数码管扫描模块交通信号灯LED显示LED显示图4-2交通信号灯系统结构图4.2系统结构设计由交通信号灯控制系统的功能可知,该系统由3个子电路组成,如图2所示,其中包括:
(1)分频计数器电路;
(2)交通信号控制器电路;(3)动态数码管扫描电路。
由图2可以看出系统大体的工作程序是:
首先由时钟发生电路产生稳定的时钟信号,为下面三个子电路提供同步工作信号。
接收到时钟信号的红绿灯信号控制电路开始工作,并将产生的重新计数的输出使能控制信号发送给计数秒数选择电路和倒计时控制电路,同时还会将目前电路产生的状态信号发送给前者。
接收到重新计数的信号后计数秒数选择电路就会负责产生计数器所需要的计数值,并将这一数值发送给倒计时控制电路,由它利用发光二极管显示倒计时的状态。
当计数器计时完毕,倒计时控制器就会负责产生一个脉冲信号发送给红绿灯信号控制电路进入下一个状态,之后循环这一过程。
4.3系统程序实现4.3.1分频计数电路在红绿灯交通信号系统中,大多数的情况是通过自动控制的方式指挥交通的。
因此,为了避免意外事件的发生,电路必须给出一个稳定的时钟(clock)才能让系统正常的工作。
分频器实现的是将高频时钟信号转换成底频的时钟信号,用于触发控制器、计数器和扫描显示电路。
该分频器实现的是一千分频,将一千赫兹的时钟信号分频成一赫兹的时钟信号。
因此,clkgen分频电路(见图3)最主要的功能就是产生稳定的1赫兹输出信号,用做下一级电路的同步信号。
图4-3时钟发生电路模块图系统输入信号:
clk:
由外部信号发生器提供1kHZ的时钟信号;系统输出信号:
newclk1:
产生每秒一个脉冲的时钟信号。
经仿真后得到的时序图(见图4、图5)图4-4将clk经分频处理后得到的ena_scan信号图4-5时钟发生电路时序图4.3.2交通信号控制器S=0立刻转换下一状态S=1S=1S=0S=0S=1STEP0系统下载,主干道开始60s倒计时,不论S有无信号,皆为MGCR状态。
判断SSTEP1保持MGCR状态,显示保持4秒。
STEP2转入MYCR状态,开始4s倒计时STEP3转入MRCG状态,开始20s倒计时判断SSTEP4转入MRCY状态,开始4s倒计时图4-6交通控制器的状态转换图上图为交通控制器的状态转换图,平时系统停留在MGCR(主干道通行)状态,一旦S信号有效,经MYCR(黄灯状态)转入MRCG(乡间公路通行)状态。
控制器的作用是根据计数器的计数值控制发光二极管的亮、灭,以及输出倒计时数值给动态数码管电路。
图4-7交通信号控制器模块图系统输入信号:
clk:
由外部信号发生器提供1HZ的时钟信号;ena:
使能信号;s:
支路请求信号;系统输出信号:
mql、mqh、cql、cqh:
计数显示信号;mr:
主干道红灯输出信号;my:
主干道黄灯输出信号;mg:
主干道绿灯输出信号;cr:
支路红灯输出信号;cy:
支路黄灯输出信号;cg:
支路绿灯输出信号。
经仿真后得到的时序图(见图7):
图4-7计数秒数选择电路时序图由计数描述选择电路的时序图(见图7)可以看出这段程序中定义了在正常车流量情况下,东西及南北方向红灯、黄灯和绿灯需要维持的秒数分别是15s、5s和25s4.3.3动态数码管扫描电路通过日常生活中的观察,我发现在一些交通路口已经开始使用倒计时显示器,它们的作用就是用来提示车辆行人目前还有多长时间信号灯会发生变化,这样车辆行人就可以提前判断是否有足够的时间通过路口,进而就可以避免很多意外事故的发生。
例如:
南北方向绿灯,车辆处于正常行驶中,东西方向红灯,车辆处于等待中,若南北方向行驶的车辆看到倒计时显示器上可以通行的时间很短,可能就会放慢速度等待下一次通行,这样在东西方向绿灯时,车辆就能够正常行驶,不会为等待南北方向强行的车辆而耽误更多的时间。
如此循环下去,道路就会畅通无阻了。
考虑到有些路口的交通拥堵现象较为严重,车辆会在道路上排成很长的一队,这样排在较远距离的司机就很难看清楚倒计时显示器上变化的数字,有可能会影响到车辆之间的正常行驶。
因此,如果采用发光二极管作为倒计时的显示装置就会使司机和行人一目了然,同样也能够起到很好的提示作用。
动态数码管扫描电路是为了让数码管显示倒数计时计数,所以,scan动态数码管扫描电路(见图8)最主要的功能就是负责接收hld2电路输出的值,然后将其转换成BCD码,并利用发光二极管显示出来,让车辆行人能够清楚地知道再过多久信号灯就会发生变化。
图4-8倒计时控制电路系统输入信号:
clk:
由外部信号发生器提供1kHz的时钟信号;num1:
接收系统主干道低电平信号;num2:
接收系统主干道高电平信号;num7:
接收系统支路低电平信号;num8:
接收系统支路高电平信号。
系统输出信号:
sel:
负责将计数数值转换成BCD码,并利用发光二极管显示倒计时状态;next_state:
当计数器计时完毕后,负责产生一个脉冲信号,作为下一个状态的触发信号。
经仿真后得到的时序图(见图9):
图4-9倒计时控制电路时序图由倒计时控制电路的时序图(见图9)可以看出,当clk时钟信号来临后,在ena_1hz脉冲信号的同时激励下,led会按照预先设置好的时间开始逐1递减,进行倒计时显示。
这段程序是采用的就是查表的方法并且利用发光二极管进行倒计时显示,如图9所示:
当绿灯点亮开始计数后,load就会将减1后的值赋给cnt_ff,之后cnt_ff又会从case语句中查找到相对应的值再赋给led显示所剩余的时间。
在程序编写过程中运用到了conv_integer()语句,它可以将cnt_ff所赋的值转换成整数。
由图可知led是25位的系统输出信号,负责控制发光二极管的输出,所以25位的输出信号可以分成七组控制发光二极管的显示,其中“1”为点亮,“0”为熄灭。
程序代码见附录3倒计时控制电路。
4.3.4建立程序包在程序设计语言中,程序的开始总会调用库(library)来提供设计程序时所需要的基本命令。
但是,如果要进一步设计较为复杂的程序时,库中的命令可能就无法支持了。
因此,可以设计一个子程序来满足程序设计的需求。
上述问题在硬件描述语言的设计中也存在,在VHDL程序中的第一行(libraryieee;)就是要使
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 vhdl 智能 交通灯 控制系统 设计