PLD课程设计报告--交通灯控制器设计.doc_第1页
PLD课程设计报告--交通灯控制器设计.doc_第2页
PLD课程设计报告--交通灯控制器设计.doc_第3页
PLD课程设计报告--交通灯控制器设计.doc_第4页
PLD课程设计报告--交通灯控制器设计.doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

洛 阳 理 工 学 院课 程 设 计 报 告 课程名称 PLD原理与应用 设计题目 交通灯控制器设计 专 业 通信工程 班 级 学 号 姓 名 完成日期 2012.12.23 课 程 设 计 任 务 书设计题目: 交通灯控制器设计 设计内容与要求: 通过采用VHDL 语言对交通灯控制器的设计,使交通灯控制电路用数字信号自动控制十字路口两组红、黄、绿交通灯的状态转换的方法,指挥各种车辆和行人安全通行,实现十字路口交通管理的自动化。绿灯亮时,准许车辆通行,但转弯的车辆不得妨碍被放行的直行车辆、行人通行,黄灯亮时,已越过停止线的车辆可以继续通行,红灯亮时,禁止车辆通行。 指导教师: 吕治国 2012 年 12 月 23 日课 程 设 计 评 语 成绩: 指导教师:_ 年 月 日洛 阳 理 工 学 院 课 程 设 计 报 告1、 设计背景 随着我国城市化建设的发展,越来越多的新兴城市的出现,使得城市的交通成为了一个主要的问题。同时随着我国经济的稳步发展,人民的生活水平日渐提高,越来越多的汽车进入寻常老百姓的家庭,再加上政府大力发展的公交、出租车,车辆越来越多了。这不仅要求道路要越来越宽阔,而且要求有新的交通管理模式的出台。旧有的交通控制系统的弊病和人们越来 越高的要求激化了矛盾,使原来不太突出的交通问题被提上了日程。现在有关部门愈来愈多的注重在交通管理中引进自动化、智能化技术,比如“电子警察”、自适应交通信号灯以及耗资巨大的交通指挥控制系统等。随着经济的发展和社会的进步,道路交通已愈来愈成为社会活动的重要组成部分。对交通的管控能力,也就从一个侧面体现了这个国家对整个社会的管理控制能力,因此各国都很重视用各种高科技手段来强化对交通的管控能力。 为了确保十字路口的行人和车辆顺利,畅通的通过,往往采用电子控制的交通信号来进行指挥。而利用PLD技术来设计交通灯来完成这个需求就显的更加迫切,同样也是非常的实用和合理。二、设计目标 通过采用VHDL 语言对交通灯控制器的设计,使交通灯控制电路用数字信号自动控制十字路口两组红、黄、绿交通灯的状态转换的方法,指挥各种车辆和行人安全通行,实现十字路口交通管理的自动化。绿灯亮时,准许车辆通行,但转弯的车辆不得妨碍被放行的直行车辆、行人通行,黄灯亮时,已越过停止线的车辆可以继续通行,红灯亮时,禁止车辆通行。三、设计原理1.可编程逻辑器件概述 可编程逻辑器件(简称PLD)是允许用户编程(配置)实现所需逻辑功能的电路,一般可利用计算机辅助设计,即用原理图、状态机、硬件描述语言(VHDL)等方法来表 示设计思想,经过一系列编译或装换程序,生成相应的目标文件,再由编程器或下载电 缆将设计文件配置到目标器件中,这时的可编程逻辑器件就可作为满足用户需求的专用 集成电路使用了。可编程逻辑器件,不仅速度快、集成度高,并且能随心所欲地完成用户定义的逻辑 功能,还可以加密和重新编程,其编程次数最大可达1万次以上。使用可编程逻辑器件可以大大简化硬件系统、 降低成本、提高系统的可靠性、灵活性和保密性。PLD的出现,打破了由中小规模通用型集成电路和大规模专用集成电路垄断的局面,在通信、数据处理、网络、仪器、工业控制、军事和航空航天等众多领域得到广泛应用,可以预见,不 久的将来,PLD 将在集成电路市场占统治地位。2.硬件描述语言介绍 常用的硬件描述语言有VHDL、Verilog、ABEL。VHDL:作为IEEE的工业标准硬件描述语言,在电子工程领域,已成为事实上的通用硬件描述语言。Verilog:支持的 EDA 工具较多,适用于RTL级和门电路级的描述,其综合过程较VHDL稍简单,但其在高级描述方面不如VHDL。ABEL:一种支持各种不同输入方式的HDL,被广泛用于各种可编程逻辑器件的逻 辑功能设计,由于其语言描述的独立性,因而适用于各种不同规模的可编程器件的设计。3.仿真软件Quartus II简介 Altera设计的Quartus II软件提供了完整的多平台设计环境,它可以轻易满足各种 特定设计的需要,也是单芯片可编程系统(SOPC)设计的综合性环境和 SOPC 开发的基 本设计工具,并为 Altera DSP 开发包进行系统模型设计提供了集成综合环境。Quartus II 设计工具完全支持 VHDL、Verilog的设计流程,其内部嵌有 VHDL、Verilog 逻辑综合器。Quartus II包括模块化的编译器。编译器包括的功能模块有分析/综合器(Analysis Synthesis)、适配器Fitter)、装配器(Assembler)、时序分析器(Timing Analyzer)、设计辅助模块(Design Assistant)等。可以通过选择 Start Compilation (Processing 菜单)可以通过选择Start Processing菜单,然后从Start子菜单中为模块选择相应的指令。此外,还可以通过选择Compiler Tool(Tools 菜单)并在Compiler Tool窗口中运行该模块来启动编译器模块。在Compiler Tool 窗口中,可以打开该模块的设置文件或报告文件,还可以打开其它相关窗口。Quartus II支持层次化的设计,可以在一个新的编辑输入环境中对使用不同输入设 计方式完成的模块进行调试,从而解决原理图与HDL混合输入设计的问题。在设计输入之后,Quartus II的编译器将给出设计输入的错误报告。可以使用 Quartus II 带有的RTL Viewer观察综合后的 RTL 图。Quartus II自动设计的各主要处理环节和设计流程,包括设计输入编辑、设计分析与综合、适配、编译文件汇编(装配)、时序参数提取以及编程下载几个步骤。四、系统分析与总体方案1.系统分析 通过分析可以知道,所要设计的十字路口交通灯控制电路要能够使南北方向有左转、直行各三个灯(红、黄、绿),东西方向有左转、直行各三个灯(红、黄、绿),三个灯能够按顺序依次亮灭。而且要求绿灯亮转黄灯亮然后其他时间为红灯,红灯亮可以直接转绿灯(三种灯的循环顺序如图3.1所示)。还要求三种灯的点亮时间能够以倒计时的形式显示出来。可以用VHDL语言合理设计系统功能,使红黄绿灯的转换有一个准确的时间间隔和转换顺序。绿灯黄灯红灯黄灯红灯图4.1三种灯的循环顺序2.设计思路(1)时间脉冲可以直接赋予得到。(2)10s、5s、40s、30s定时信号用倒计时,计时起始信号由控制流程电路给出,每当计满所需时间,即向控制电路输出“时间到”的信号,并使计数器清零,由控制电路启、闭三色信号灯。(3)主控电路是核心,这是一个时序电路,其输入信号为东西、南北方向:10s、5s、40s、30s定时信号,其输出状态控制相应的三色灯。(4)三种灯转换状态表:时间|S105405105305东西左转绿黄红红红红红红东西直行红红绿黄红红红红南北左转红红红红绿黄红红南北直行红红红红红红绿黄3.设计方案 根据设计要求和系统所具有功能,并参考相关的文献资料经行方案设计画出如下所示的十字路口交通灯控制器系统框图,及为设计的总体方案,框图如下图3.2所示:CLK交通灯控制及计时模块扫描显示模块LED显示图4.2 系统的框图五、电路设计1.控制器电路设计流程控制器的作用是根据计数器的计数值控制各方向上发光二极管的亮、灭,当计时时间到达,状态控制器就响应,自动跳转到下一个状态。此外,当检测到特殊情况(urgen =1)发生时,无条件点亮红灯的二极管(急救灯按下urgen =1,则东西南北都亮红灯,在这种状态下原来的状态必须保持,即东西南北方向定时时间保持不变。急救灯未按下或者按下后恢复,则继续计时(计时通过计数器count),同时恢复东西南北原来灯的状态)。具体实物模块如图5.1所示:图5.1控制器模块2.VHDL程序设计如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ledcontrol ISPORT(reset,clk,urgen: INSTD_LOGIC;state: OUTSTD_LOGIC_VECTOR(2 DOWNTO 0);sub,set1,set2,set3,set4: OUTSTD_LOGIC);END ledcontrol;ARCHITECTURE a OF ledcontrol ISSIGNAL count : STD_LOGIC_VECTOR(6 DOWNTO 0);SIGNAL subtemp: STD_LOGIC;BEGINsub=subtemp AND (NOT clk);-将电平型信号变为脉冲型,即高电平时输出一个脉冲statelabel:PROCESS (reset,clk)BEGINIF reset=1 THEN-系统复位 count=0000000;state=000;set2=1;set4=1;ELSIF clkevent AND clk=1 THEN IF urgen=0 THEN count=count+1;subtemp=1;ELSE subtemp=0;END IF;-经过脉冲电平变换后,使得正常状态时,正常减计数,紧急状态下停止计数IF count=0 then state=000;set1=1;set2=1;set3=1;set4=1; ELSIF count=10 then state=001;set1=1;ELSIF count=15 THEN state=010;set1=1;set2=1;ELSIF count=55 THEN state=011;set2=1;ELSIF count=60 THEN state=100;set2=1;set3=1;elsif count=70 THEN state=101;set3=1;elsif count=75 THEN state=110;set3=1;set4=1;elsif count=105 THEN state=111;set4=1;ELSIF count=110 THEN count=0000000;ELSE set1=0; set2=0;set3=0;set4=0;END IF;END IF; - 控制流程END PROCESS statelabel;END a;2.输出显示电路设计根据状态控制器所控制的状态和计数器的计时时间,选择当前状态下的显示器,使显示器输出当前状态下的数码管亮、灭指令,其中数码管的显示采用动态扫描显示。具体实物模块如图:图5.2译码显示电路模块3.VHDL程序设计如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ledshow ISPORT(clk,urgen: IN STD_LOGIC;state: IN STD_LOGIC_VECTOR(2 DOWNTO 0);sub,set1,set2,set3,set4: IN STD_LOGIC;eg1,ey1,er1,edg2,edy2,edr2,ng1,ny1,nr1,ndg2,ndy2,ndr2:OUTSTD_LOGIC;led1,led2: OUTSTD_LOGIC_VECTOR(7 DOWNTO 0);END ledshow;ARCHITECTURE a OF ledshow ISSIGNAL count1,count2,count3,count4 : STD_LOGIC_VECTOR(7 DOWNTO 0); SIGNAL setstate1,setstate2,setstate3,setstate4 : STD_LOGIC_VECTOR(7 DOWNTO 0); SIGNAL etg1,ety1,etr1,edirr1,edirg1, ediry1,norg2,nory2,norr2,nordirg2,nordiry 2,nordirr2 : STD_LOGIC; BEGINled1=00000000 WHEN urgen=1 AND clk=0 ELSE -显示东西向行和停止count1 WHEN state=000 ELSEcount1 WHEN state=001 ELSE count2 WHEN state=010 ELSEcount2 WHEN state=011 ELSEcount2;led2=00000000 WHEN urgen=1 AND clk=0 ELSEcount3 WHEN state=000 ELSEcount3 WHEN state=001 ELSE count3 WHEN state=010 ELSEcount3 WHEN state=011 ELSEcount3 WHEN state=100 ELSEcount3 WHEN state=101 ELSEcount4 WHEN state=110 ELSEcount4;etg1=1 WHEN state=000 AND urgen=0 ELSE 0;ety1=1 WHEN state=001 AND urgen=0 ELSE 0;etr1=1 WHEN state=010 or urgen=1 OR state=011 OR state=100 OR state=101 OR state=110 OR state=111 ELSE 0;edirg1=1 WHEN state=010 and urgen=0 ELSE 0;ediry1=1 WHEN state=011 and urgen=0 ELSE 0;edirr1=1 WHEN state=000 OR urgen=1 OR state=001 OR state=100 OR state=101 OR state=110 OR state=111 ELSE 0;norg2=1 WHEN state=100 AND urgen=0 ELSE 0;nory2=1 WHEN state=101 and urgen=0 ELSE 0;norr2=1 WHEN state=000 OR state=001 OR state=010 OR state=011 OR state=110 OR state=111 OR urgen=1 ELSE 0;nordirg2=1 WHEN state=110 AND urgen=0 ELSE 0;nordiry2=1 WHEN state=111 and urgen=0 ELSE 0;nordirr2=1 WHEN state=000 OR state=001 OR state=010 OR state=011 OR state=100 OR urgen=1 OR state=101 ELSE 0;setstate1= 00010000 WHEN state=000 ELSE00000101 WHEN state=001 ELSE10010101 ;setstate2= 00010101 WHEN state=000 ELSE-00000101 WHEN state=001 ELSE01000000 WHEN state=010 ELSE00000101 WHEN state=011 ELSE01010000 ;setstate3= 01100000 WHEN state=000 ELSE00010000 WHEN state=100 ELSE00000101 WHEN state=101 ELSE00110101 ;setstate4= 01110101 WHEN state=000 ELSE00110000 WHEN state=110 ELSE00000101 ;label4: -南北直行PROCESS (sub)BEGINIF subevent AND sub=1 THENIF set4=1 THEN count4=setstate4;elsif count4(3 downto 0)=0000 then count4=count4-7; ELSE count4=count4-1; END IF;ndy2=nordiry2;ndg2=nordirg2;ndr2=nordirr2;END IF;END PROCESS label4;label3: -南北左行PROCESS (sub)BEGINIF subevent AND sub=1 THENIF set3=1 THEN count3=setstate3;elsif count3(3 downto 0)=0000 then count3=count3-7;ELSE count3=count3-1; END IF;ng1=norg2;ny1=nory2;nr1=norr2;END IF;END PROCESS label3;label2: -东西直行PROCESS (sub)BEGINIF subevent AND sub=1 THENIF set2=1 THEN count2=setstate2;elsif count2(3 downto 0)=0000 then count2=count2-7; ELSE count2=count2-1; END IF;edg2=edirg1;edy2=ediry1;edr2=edirr1;END IF;END PROCESS label2;label1: -东西左行PROCESS (sub)BEGINIF subevent AND sub=1 THENIF set1=1 THEN count1=setstate1; elsif count1(3 downto 0)=0000 then count1=count1-7;ELSE count1=count1-1; END IF;eg1=etg1;er1=etr1;ey1=ety1;END IF;END PROCESS label1;END a;6、 程序仿真与分析1. 仿真原理图2.仿真结果利用Quartus II软件对本程序进行编译,生成了可以进行仿真定时分析以及下载到可编程器件的相关文件。仿真结果如图6.1所示:图6.1 仿真结果3.仿真结果分析通过设定clk值以及reset和urgen的初值,就可以得到如上所示的仿真波形图。由仿真波形图可以看出波形是由reset初值信号触发而显示出各个状态的。Urgen高电平信号输入时,所有交通灯都变为红灯状态。由仿真波形图还可以清楚的看出各时间段每个交通灯的状态。要得到正确的仿真波形图就不许设定合适的时间信号clk

温馨提示

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

评论

0/150

提交评论