交通信号灯控制电路设计。
1、概述。城市道路交叉口是城市道路网络的基本节点,也是网络交通流的瓶颈。目前,大部分无控制交叉口都存在高峰小时车流混乱、车速缓慢、延误情况严重、事故多发、通行能力和服务水平低下等问题。
特别是随着城市车流量的快速增长,城市无控制道路交叉口的交通压力越来越大。因此,做好基于eda技术平台的交叉口信号控制设计是缓解交通阻塞、提高城市道路交叉口车辆通行效率的有效方法。交通信号控制的目的是为城市道路交叉口(或交通网络)提供安全可靠和有效的交通流,通常最为常用的原则是车辆在交叉口的通过量最大或车辆在交叉口的延误最小。
交通信号灯控制电路是显示主干道和支干道交替放行时间并用试验箱左上角的彩灯来代替信号灯的一种实际电路。设计一个基于fpga的红绿灯交通信号控制器。假设某个十字路口是由一条主干道和一条次干道汇合而成,在每个方向设置红绿黄三种信号灯,红灯亮禁止通行,绿灯亮允许通行。
黄灯亮允许行驶中车辆有时间停靠到禁止线以外。
本课程的基本原理是在合适的时钟信号的控制下,使主干道与支道的红黄绿灯循环显示,用vhdl语言编辑文本程序,按设计要求连接好线以后,进行波形**,**结果正确后**程序并对试验箱进行调试,使其最终的显示结果符合设计要求。
二、方案设计与论证。
在硬件时钟电路的基础上,采用分频器,输出一个1s的时钟信号,在时钟信号的控制下,实现主干道和支干道红绿灯交替显示。
红绿灯交通灯控制器层次设计:
eda技术的基本设计方法有电路级设计方法和系统级设计方法。电路级设计方法已经不能适应新的形势,本系统采用的是系统级层次设计方法,对整个系统进行方案设计和功能划分,系统的关键电路用一片fpga芯片实现,首先用vhdl语言编写各个功能模块程序,最后通过综合器和适配器生成最终的目标器件,然后用顶层原理图将各功能模块连接起来。下面给出各模块的vhdl设计过程和**结果。
1、 系统时序发生电路clk_gen的vhdl设计。
在红绿灯交通信号控制系统中,大多数的情况是通过自动控制的方式指挥交通的。因此,为了避免意外事件的发生,电路必须给一个稳定的时钟(clock)才能让系统正常运作。但为了配合高峰时段,防止交通拥挤,有时也必须使用手动控制,即让交警能够顺利地指挥交通。
clk_gen电路最主要的功能就是产生一些额外的输出信号,并将其用做后续几个电路的使能(enable)控制与同步信号处理。
该电路的核心部分就是分频电路,通过对外接信号发生器提供1khz的时钟信号进行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;
beginprocess (clr,clk)
beginif(clk='1' and clk'event) then
if clr='1' then
counter<=0;
elsif counter =4999999 then
counter<=0;
q<=not q;
else counter<=counter+1;
end if;
end if;
end process;
end one;
2、 开关控制部分的asm图。
i、j、k、分别代表开关状态;1表示开关闭合,为高电平;0表示开关断开为低电平。当开关处于不同的状态时,分别给变量g不同的值,用来实现控制通行时间。
x<=i&j&k;
cnt:process (clk)
variable s:integer range 0 to 49;
variable g:integer range 0 to 49;
variable nclr,en:bit;
beginif x<="001"then g:=29;
elsif x<="010"then g:=39;
elsif x<="100"then g:=49;
else g:=0;
end if;
3、 信号灯转换控制部分的asm图。
rm、ym、gm分别表示主干道红、黄、绿;rf、yf、gf分别表示支道红、黄、绿;
s表示灯亮的时间;nclr是计时器的清零端,低电平有清零;en是计时器的使能端,高电平使能。
if (clk'event and clk='1') then
if nclr='0' then s:=0;
elsif en='0' then s:=s;
else s:=s+1
end if;
case state is
when a=>rm<='0';ym<='0';gm<='1';
rf<='1';yf<='0';gf<='0';
if s=g then
state <=b;nclr:='0';en:='0';
elsestate<=a;nclr:='1';en:='1';
end if;
3、状态装换。
(1)开始设置为支路为绿灯、主路为红灯,持续时间为30秒;
(2)30秒后,支路由绿灯变为黄灯,主路红灯不变,持续时间为4秒;
(3)4秒后,支路由黄灯变为红灯,主路由红灯变为绿灯,持续时间30秒;
(4)30秒后,支路红灯不变,主路由绿灯变为黄灯,持续时间为4秒;
(5)4秒后,支路由红灯变为绿灯,主路由黄灯变为绿灯,持续时间为30秒;
随时间,主、支系统依次循环,可以自动切换,红绿灯时间间隔可以手动设置,以适应不同需求。
case state is
when a=>rm<='0';ym<='0';gm<='1';
rf<='1';yf<='0';gf<='0';
if s=g then
state <=b;nclr:='0';en:='0';
elsestate<=a;nclr:='1';en:='1';
end if;
when b=>rm<='0';ym<='1';gm<='0';
rf<='1';yf<='0';gf<='0';
if s=3 then
state <=c;nclr:='0';en:='0';
elsestate<=b;nclr:='1';en:='1';
end if;
when c=>rm<='1';ym<='0';gm<='0';
rf<='0';yf<='0';gf<='1';
if s=g then
state <=d;nclr:='0';en:='0';
elsestate<=c;nclr:='1';en:='1';
end if;
when d=>rm<='1';ym<='0';gm<='0';
rf<='0';yf<='1';gf<='0';
if s=3 then
state <=a;nclr:='0';en:='0';
elsestate<=d;nclr:='1';en:='1';
end if;
end case;
4、总原理图。
1、电路连接图。
2、分频器模块
3、交通灯控制器模块。
4、波形**。
**图一。**图二。
5、硬件**:
为了能对所设计的红绿灯交通灯控制器电路进行硬件测试,应将其输入输出信号锁定在开发系统的目标芯片引脚上,并重新编译,然后对目标芯片进行编程**,完成红绿灯交通灯控制器的最终开发,其硬件测试示意图如图6-62。不失一般性,本设计选用的eda开发平台为gw48电路模式为no.5,选择目标器件为cylone系列ep1c3t144c8芯片。
锁定引脚时将clk接至clock2(接受1khz的时钟频率);内部自复位信号同键3(pio8)相连;手动、自动切换钮(1:自动、0手动)接键4(pio9);:红绿灯状态切换键(每按一次就切换一个状态)接键5(pio13); r1接发光二级管d8(pio23)用于指示南北路口红灯;g1接发光二级管d7(pio22)用于指示南北路口绿灯;y1接发光二级管d6(pio21)用于指示南北路口黄灯;r0接发光二级管d5(pio20)用于指示东西路口红灯;g0接发光二级管d4(pio19)用于指示东西路口绿灯;y0接发光二级管d3(pio18)用于指示东西路口红灯;next_s 接发光二级管d1(pio16)用于转态指示。
引脚锁定完成后,重新对该工程进行编译,综合适配后将配置数据**入gw48实验平台的fpga中(有关clk等引脚在fpga芯片ep1c6q240c8引脚中的序号,请参见eda书后的附录的附表)。
选模式5,情况一(红绿灯间隔30秒,黄绿间隔5秒),设定最右边三个灯(从右到左)为支路灯:红灯、绿灯、黄灯;紧接着为主路:红灯、绿灯、黄灯(6号灯已坏顺延到7号灯);
****如下:
图一:支路绿灯,主路红灯。
图二:支路黄灯,主路红灯。
图三:支路红灯,主路绿灯。
图四:支路红灯,主路黄灯。
图五:支路绿灯,主路红灯。
五、实验目的。
1. 熟练掌握vhdl 语言和max+ plusii 软件的使用;
2. 理解状态机的工作原理和设计方法;
3. 掌握利用eda 工具进行自顶向下的电子系统设计方法。
六、实验步骤。
1.将实验系统上rs232接口与计算机串行口相连。
2.用vhdl将两个方案的源程序输入max+ plusii 软件中。
3.编译程序并进行引脚分配,最后将程序**到器件中去。
七、结果分析。
本次课程设计基本上满足了任务的设计要求,可以通过开关手动设置主干道和支道每次通行的时间分别为为30s、40s、50s,从而控制通行时间长短的转换;各个状态之间的转化及各个状态的通行时间也可以满足“主干道和支干道自动循环。主干道和支道每次通行的时间为30s,而在两个状态交换过程出现的"主黄,支红"和"主红,支黄"状态,持续时间都为4s”的设计要求。
但是设计也存在一定的缺陷,设计只能完成当开关i,j,k只有一个为高电平时使交通灯正常工作,,其他状态时定义g=0,这时交通灯不能正常工作。例如当x=i&j&k=’101’,时,其波形**各个状态时间通行时间长短会出现差错,如下图。
然而,这种状况在实际生活中是不允许出现的。其解决方法是:在各个when语句后增加一条if判断语句,判断如果g等于0,则保持原状态,如果g不等于0,则执行原来方案中的状态转换语句。
EDA交通灯课程设计
学院 电气与信息工程学院。1.东西各设有一个绿 黄 红指示灯 一个2位7段数码管。1 南北和东西方向各有一组绿,黄,红灯,各自的持续时间分别为20s,5s,25s 2 当有特殊情况时,两个方向均为红灯,计时暂停,当特殊情况结束后,控制器恢复原来状态,继续正常工作。3 用两组数码管,以倒计时方式显示两...
交通灯EDA课程设计
eda交通灯设计。学院 信息工程学院。班级 学号 姓名 目录。第一章设计原理 1 第二章设计流程 2 第三章程序设计说明 3 3.1 程序设计流程图 3 3.2 分频模块 3 3.3 特殊功能及清零模块 4 3.4 交通灯运行模块 4 3.5 扫描显示模块 6 第四章 及调试 8 4.1调试步骤 8...
EDA交通灯课程设计
1.简要说明。在十字路口,每一条道路各有一组红 黄 绿灯和倒计时显示器,用以指挥车辆和行人有序的通行。其中,红灯亮表示该道路禁止通行 黄灯表示停车 绿灯表示可以通行 倒计时显示器是用来显示允许通行或禁止通行的时间。交通灯控制器就是用于自动控制十字路口的交通灯和计时器,指挥各种车辆和行人安全通行。2....