1、第 - 1 - 页 共 14 页 交通信号灯控制电路设计交通信号灯控制电路设计 一、一、概述概述 城市道路交叉口是城市道路网络的基本节点,也是网络交通流的瓶颈。目前,大部 分无控制交叉口都存在高峰小时车流混乱、车速缓慢、延误情况严重、事故多发、通行能 力和服务水平低下等问题。特别是随着城市车流量的快速增长,城市无控制道路交叉口的 交通压力越来越大。 因此, 做好基于 EDA 技术平台的交叉口信号控制设计是缓解交通阻塞、 提高城市道路交叉口车辆通行效率的有效方法。交通信号控制的目的是为城市道路交叉口 (或交通网络)提供安全可靠和有效的交通流, 通常最为常用的原则是车辆在交叉口的通过量 最大或车辆
2、在交叉口的延误最小。 交通信号灯控制电路是显示主干道和支干道交替放行时间并用试验箱左上角的彩灯来 代替信号灯的一种实际电路。设计一个基于 FPGA 的红绿灯交通信号控制器。假设某个十 字路口是由一条主干道和一条次干道汇合而成,在每个方向设置红绿黄三种信号灯,红灯 亮禁止通行,绿灯亮允许通行。黄灯亮允许行驶中车辆有时间停靠到禁止线以外。 本课程的基本原理是在合适的时钟信号的控制下,使主干道与支道的红黄绿灯循环显 示,用 VHDL 语言编辑文本程序,按设计要求连接好线以后,进行波形仿真,仿真结果正 确后下载程序并对试验箱进行调试,使其最终的显示结果符合设计要求。 二、方案设计与论证二、方案设计与论
3、证 在硬件时钟电路的基础上,采用分频器,输出一个 1S 的时钟信号,在时钟信号的控制 下,实现主干道和支干道红绿灯交替显示。 红绿灯交通灯控制器层次设计:红绿灯交通灯控制器层次设计: EDA 技术的基本设计方法有电路级设计方法和系统级设计方法。电路级设计方法已经 不能适应新的形势,本系统采用的是系统级层次设计方法,对整个系统进行方案设计和功 能划分,系统的关键电路用一片 FPGA 芯片实现,首先用 VHDL 语言编写各个功能模块程 序,最后通过综合器和适配器生成最终的目标器件,然后用顶层原理图将各功能模块连接 起来。下面给出各模块的 VHDL 设计过程和仿真结果。 1、 系统时序发生电路系统时
4、序发生电路 clk_gen的的 VHDL 设计设计 在红绿灯交通信号控制系统中,大多数的情况是通过自动控制的方式指挥交通的。因 此,为了避免意外事件的发生,电路必须给一个稳定的时钟(clock)才能让系统正常运作。 红黄绿红黄绿 红红 黄黄 绿绿 主干道主干道 支支 干干 道道 第 - 2 - 页 共 14 页 但为了配合高峰时段,防止交通拥挤,有时也必须使用手动控制,即让交警能够顺利地指 挥交通。Clk_gen电路最主要的功能就是产生一些额外的输出信号,并将其用做后续几个电 路的使能(enable)控制与同步信号处理。 该电路的核心部分就是分频电路,通过对外接信号发生器提供 1kHz的时钟信
5、号进行 1000 分频,得到一个周期为 1 秒的输出使能信号 ena_lhz (占空比 1:1000)和 flash_lhz (占 空比 1:1);4 分频后得到红绿灯信号译码电路所需的频率为 250Hz 的显示使能信号 ena_scan。 architecture one of fenpingqi is signal counter:integer range 0 to 4999999; Begin process (CLR,CLK) Begin if(CLK=1 and CLKevent) then if CLR=1 then counterclk,q=Q); u2: kongzhi po
6、rt map(i=i,j=j,k=k,clk=Q,rm=rm,ym=ym,gm=gm1,rf=rf, yf=yf,gf=gf); u3:count_down port map(RE,CLK,ena_1Hz_1,recount_1,load,S,next_state_1); NEXT_S=next_state_1; end architecture JTD; 第 - 11 - 页 共 14 页 分频器代码 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity fenpingqi is port (CLR,CLK:in std_logic ; q:buffer std_logic); end fenpingqi; architecture one of fenpingqi is signal counter:integer range 0 to 4