电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

基于FPGA的交通灯控制系统-学术论文

29页
  • 卖家[上传人]:cre****111
  • 文档编号:36400694
  • 上传时间:2018-03-28
  • 文档格式:DOC
  • 文档大小:661.62KB
  • / 29 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、基于基于 FPGAFPGA 的交通灯控制系统的交通灯控制系统摘 要:针对现实中越来越严重的城市交通拥堵现象,提出了一种城市十字路口交通信号灯控制与 FPGA 实现的新方法。利用超高速硬件描述语言 VHDL 设计十字路口交通信号灯控制器,实现主干道和支干道的交通控制功能,实时监测每个路口的车辆通行情况,以此更改主干道与支干道的交通灯状态,提高十字路口的车辆通行效率,最后通过硬件测试实现具体功能。关键词:VHDL FPGA 交通灯控制1、概述1.1 设计要求:(1)设计一个交通信号灯控制器,由一条主干道和一条支干道汇合成十字路口,在每个入口处设置红、绿、黄三色信号灯,红灯亮禁止通行,绿灯亮允许通行,黄灯亮则给行驶中的车辆有时间停在禁行线外。(2)红、绿、黄发光二极管作信号灯。(3)主干道处于常允许通行的状态,支干道有车来时才允许通行。主干道亮绿灯时,支干道亮红灯;支干道亮绿灯时,主干道亮红灯。(4)主、支干道均有车时,两者交替允许通行,主干道每次放行 45 秒,支干道每次放行 25 秒,设立 45 秒、25 秒计时、显示电路。(5)在每次由绿灯亮到红灯亮的转换过程中,要亮 5 秒黄灯作为过

      2、渡,使行驶中的车辆有时间停到禁行线外,设立 5 秒计时、显示电路。1.2 课题分析(1)主支道路分 4 种行车状况,无无、无有、有无、有有,此信号从传感器输出信号得到,作为系统的输入,在本系统中用拨片开关模拟状态输入。(2)主支道路有 4 种亮灯情况:主绿支红、主黄支红、支绿主红、支黄主红。(3)只要支路无车通行,则一直为主绿支红状态,只有支路有车通过才会进入支绿主红状态。(4)系统可以根据行车情况智能进入相应亮灯情况,提高了十字路口的通车效率。(5)用 6 个发光二极管作为主道路绿黄红三灯显示输出和支道路绿黄红三灯显示输出;用 4 个数码管分别作为主支道路倒计时显示输出。2、系统方案设计2.1 整体模块设计2.1.1 整体设计思路整体设计思路为:交通灯控制系统主要包括两个模块,即交通灯控制模块和倒计时显示模块。首先利用教学实验箱提供的 1HZ 时钟信号,实现计数功能,1s 计数一次,同时设定主干道、支干道的交通灯的具体亮灯时间,并将计数结果传给倒计时模块,以实现倒计时模块显示的时间与交通灯的状态相对应。在交通灯控制过程中,用状态机来实现,设定主干道、支干道的行车检测信号,用以进行状态

      3、变换。每进入一个状态就开始计数,该状态结束则清零,在下个状态开始时重新计数,实现每个状态亮灯时间不同的需求。2.1.2 整体设计框架根据系统要求可知:输入信号为系统时钟,主支道路行车情况模拟输入。输出信号为主支道路红绿黄显示信号、倒计时显示。2.2 交通灯状态转换模块设计由原理分析可知系统需要在 4 种亮灯状态之间切换,所以需要设计一个状态转换控制模块,而倒计时显示则来自内部的计数,所以状态转换模块内部包含了计数模块,又因为二极管模拟红绿灯显示是和亮灯状态紧密相关的,所以相应的二极管控制整合在状态转换控制模块内部。故在状态转换模块内部包含3 个子模块,分别为计数模块、状态转换控制模块、二极管实现模块。最后因为数码管动态显示模块需要根据亮灯状态决定输出,所以本模块还需增加计数输出以及状态输出信号。该模块计数采用 1hz 的时钟脉冲,以期实现交通灯的秒数设置。状态循环控制:S0:主干道绿灯支干道红灯 45sS1:主干道黄灯支干道红灯 5sS2:主干道红灯支干道绿灯 25sS3:主干道红灯支干道黄灯 5s2.3 数码管倒计时显示模块设计由于此模块采用了数码管的动态显示原理,所以代码量较多,单

      4、独分为一个模块,又因为动态显示倒计时间是与亮灯状态紧密相关的,所以必须从交通灯状态控制模块获取相关的状态输入,引出状态输出信号,以供本模块使用。又因为动态显示需要较高的时钟频率,所以本模块的时钟信号采用系统输入信号,而非之前计数的 1hz 时钟。4 位数码管的前两位显示支干道的亮灯时间,后两位显示主干道的亮灯时间。3、硬件设计3.1 总体设计框图由 clk1hz 输入,用来计数,道路行车检测由 pass_state1,pass_state0 控制,pass_state1 为主干道行车检测,pass_state0 为支干道行车检测。1 为有车通行,0 为无车通行,输出为数码管的位选信号和段选信号,以及 6 个二极管控制信号。3.2 交通灯状态转换模块输入计数时钟和行车控制,输出主干道以及支干道红绿黄三灯的控制信号,最重要的是将此时的计数时间输出给倒计时模块,并将 4 个状态的状态输出信号给倒计时模块,实现在对应的状态下显示对应的时间。3.3 数码管倒计时显示模块为了实现数码管动态扫描,此模块的时钟使用较高频率,输入上级电路的计数输出和状态输出,给出位选以及段选信号的控制。 4、硬件测试4

      5、.1 引脚分配Pin_31hz 时钟输入,用于状态控制模块Pin_3324khz 时钟输入,用于数码管动态扫描Pin_4K1 支干道行车模拟输入Pin_5K2 主干道行车模拟输入Pin_6,Pin_8,Pin_10数码管位选信号Pin_11,Pin_12,Pin_13,Pin_14,Pin_15,Pin_30,Pin_31数码管段选 信号Pin_34R1 主干道红灯Pin_35Y1 主干道黄灯Pin_36G1 主干道绿灯Pin_37R2 支干道红灯Pin_39Y2 支干道黄灯Pin_40G2 支干道绿灯4.2 仿真结果交通灯显示:倒计时显示:S1 状态(支红主黄):S0 状态(支红主绿)5、总结基本实现了设计所需的功能,能根据道路行车情况实现交通灯的智能控制,并将红绿灯通行的时间通过数码管直观显示出来,较好的完成了十字路口交通情况的模拟。6、附录6.1 顶层模块源程序LIBRARY IEEE; -自动交通灯控制系统顶层描述USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY TRAFFIC_LIGHT_CO

      6、NTROL ISPORT ( CLK1hz,CLK1khz : IN STD_LOGIC; -信号时钟输入PASS_STATE : IN STD_LOGIC_VECTOR(1 DOWNTO 0); -主支通道的通车情况,低位为支通道高位为主通道,0 为无车 1 为有车ALIGHT : OUT STD_LOGIC_VECTOR(2 DOWNTO 0); -主干道红绿黄灯控制信号BLIGHT : OUT STD_LOGIC_VECTOR(2 DOWNTO 0); -支干道红绿黄灯控制信号SEL : OUT STD_LOGIC_VECTOR(2 DOWNTO 0); -输出数码管位选信号LED7S : OUT STD_LOGIC_VECTOR(6 DOWNTO 0) -输出数码管段选信号);END ENTITY TRAFFIC_LIGHT_CONTROL;ARCHITECTURE behav OF TRAFFIC_LIGHT_CONTROL ISCOMPONENT STATE_CONTROLPORT ( CLK1 : IN STD_LOGIC; -1Hz 时钟信号输入PASS_STATE_I

      7、N : IN STD_LOGIC_VECTOR(1 DOWNTO 0); -主支通道的通车情况,低位为支通道高位为主通道,0 为无车 1 为有车A_LIGHT: OUT STD_LOGIC_VECTOR(2 DOWNTO 0); -主干道红绿黄灯控制信号B_LIGHT: OUT STD_LOGIC_VECTOR(2 DOWNTO 0); -支干道红绿黄灯控制信号CNTOUT : OUT STD_LOGIC_VECTOR(5 DOWNTO 0); -已计数时间输出STATEOUT : OUT STD_LOGIC_VECTOR(1 DOWNTO 0) -状态输出,传递给数码显示模块);END COMPONENT;COMPONENT DISPLAYPORT ( CLK2 : IN STD_LOGIC; -1KHz 时钟信号输入CNTIN : IN STD_LOGIC_VECTOR(5 DOWNTO 0); -亮灯已过时间输入STATEIN : IN STD_LOGIC_VECTOR(1 DOWNTO 0); -状态输入LED7SOUT : OUT STD_LOGIC_VECTOR(6 DOW

      8、NTO 0); -数码管段选信号输出SELOUT : OUT STD_LOGIC_VECTOR(2 DOWNTO 0) -数码管位选信号输出);END COMPONENT;SIGNAL MSTATE : STD_LOGIC_VECTOR(1 DOWNTO 0); -中间信号传递通车状态SIGNAL MCNT : STD_LOGIC_VECTOR(5 DOWNTO 0); -中间信号传递亮灯已计数时间BEGIN -例化语句U1: STATE_CONTROL PORT MAP (CLK1=CLK1hz,PASS_STATE_IN=PASS_STATE,B_LIGHT=BLIGHT, A_LIGHT=ALIGHT, CNTOUT=MCNT, STATEOUT=MSTATE);U2: DISPLAY PORT MAP(CLK2=CLK1khz,CNTIN=MCNT,STATEIN=MSTATE,LED7SOUT=LED7S,SELOUT=SEL);END ARCHITECTURE behav;6.2 交通灯状态转换模块源程序LIBRARY IEEE;USE IEEE.STD_LOGIC_116

      9、4.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY STATE_CONTROL ISGENERIC ( GREENA_CNT:INTEGER:=45; -主通道绿灯亮的时间 45sYELLOWA_CNT:INTEGER:=5; -主通道黄灯亮的时间 5sGREENB_CNT:INTEGER:=25; -支通道绿灯亮的时间 25sYELLOWB_CNT:INTEGER:=5);-支通道黄灯亮的时间 5sPORT ( CLK1 : IN STD_LOGIC; -1Hz 时钟信号输入PASS_STATE_IN : IN STD_LOGIC_VECTOR(1 DOWNTO 0); -主支通道的通车情况,低位为支通道高位为主通道,0 为无车 1 为有车A_LIGHT : OUT STD_LOGIC_VECTOR(2 DOWNTO 0); -主干道红绿黄灯控制信号B_LIGHT : OUT STD_LOGIC_VECTOR(2 DOWNTO 0); -支干道红绿黄灯控制信号CNTOUT : OUT STD_LOGIC_VECTOR(5 DOWNTO 0); -已计数时间输出STATEOUT : OUT STD_LOGIC_VECTOR(1 DOWNTO 0) -剩余时间输出显示);END ENTITY STATE_CONTROL;ARCHITECTURE behav OF STATE_CONTROL ISTYPE STATES IS (ST0,ST1,ST2,ST3); -4 个状态分别为【主绿支红 45s、主黄支红 5s、支绿主红25s、支黄主红 5s、】SIGNAL STATE : STATES:=ST0; -初始化状态为状态 0SIGNAL CNT_EN : STD_LOGIC:=0; -计数使能控制信号,初始不计数SIGNAL CNT : STD_LOGIC_VECTOR(5 DOWNTO 0):=“000001“; -因为初始不计数,但已过一个周期,所以初值为 1BEGINPROCESS(CLK1)BEGINI

      《基于FPGA的交通灯控制系统-学术论文》由会员cre****111分享,可在线阅读,更多相关《基于FPGA的交通灯控制系统-学术论文》请在金锄头文库上搜索。

      点击阅读更多内容
    TA的资源
    点击查看更多
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.