
专 业: 08电子信息工程
姓 名: 扈晓锋、李小波
学 号:20081601B02、20081601B029
指导老师: 龙 翔
日 期: 2010/12/18
一、交通控制灯设计实现目标:
信号控制器勇于主干道与支道公路的交叉路口,要求是优先保证主干道的畅通。因此平时处于“主干道绿灯,支干道红灯”状态,只有在支道有车辆要穿行主干道时,才将交通灯切向“主干道红灯,支干道绿灯”,一旦支道无车辆通过路口,交通灯又回到“主干道绿灯,支干道红灯”的状态。此外,主干道每次通行的时间不得短于60s和支道每次通行的时间不得短于20s,而在两个状态交换过程出现的“主黄,支红”和“主红,支黄”状态,持续时间都为5s。其流程图如下:
:
图1:交通灯流程图
二、设计思想:
超高速硬件描述语言VHDL, 是对数字系统进行抽象的行为与功能描述到具体的内部线路结构描述, 利用EDA 工具可以在电子设计的各个阶段、各个层系进行计算机模拟验证, 保证设计过程的正确性。本交通控制灯设计, 利用基于VHDL 的EDA 设计工具, 采用大规模可编程逻辑器件FPGA, 通过设计芯片来实现系统功能根据交通灯信号控制要求,可把它分解为定时器和控制器两部分,其原理方框图下所示:
SM
5S MR
60S MY
CLK CLR MG
BR
EN BY
MG
SB
图2:交通灯控制原理方框图
三、设计过程:
交通灯控制器的控制过程分为四个阶段,分别是高速绿乡间红、高速黄乡间红、高速红乡间绿、高速红乡间黄,并分别用S0、S1、S2、S3表示。交通灯控制系统的工作流程见要求中的流程图。设系统的初始状态为高速绿灯,乡间小路红灯。
交通灯系统工作主要有三个时间间隔,表示高速路绿灯亮的时间间隔60s,表示小路绿灯亮的时间间隔20s,高速路与小路黄灯亮的时间间隔5s。设定一个变量S为秒定时器,当它分别产生三个时间间隔后,向控制器发出“时间已到”信号,控制器根据该信号以及小路上是否有车判断是否转换状态。如果肯定,则控制器发出状态转换信号,计数器清零,准备重新计数。
表1 交通灯循环状态表
状态名 状态信息 时间长度
S0 主干道绿灯,小路红灯 60s
S1 主干道黄灯,小路红灯 5s
S2 主干道红灯,小路绿灯 20s
S3 主干道红灯,小路黄灯 5s
3.1交通灯控制器流程图:
图3:交通灯流程图
3.2 交通灯VHDL源程序:
library ieee;
use ieee.std_11.all;
entity jtdkz is
port(clk,sum,sb,:in bit;
mr,my,mg,br,by,bg:out bit);
end jtdkz;
architecture art of jtdkz is
type state_type is (a,b,c,d);
signal state:state_type;
begin
cnt:process(clk)
varible s:integer range 0 to 59;
varible clr,en:bit;
begin
if(clk'event and clk='1')then
if clr='0' then s:=0;
elsif en='0' then s:=s;
else s:=s+1;
end if;
case state is
when a=>mr<='0';my<='0';mg<='0';
br<='1';by<='0';bg<='0';
if (sb and sm)='1' then
if s='59' then
state<=b;clr:='0';en:='0';
else
state<=a;clr:='1';en:='1';
end if;
elseif (sb and (not sm))='1' then
state<=b;clr:='0';en:='0';
else
state<=a;clr:='1';en:='1';
end if;
when b=>mr<='0';my<='1';mg<='0';
br<='1';by<='0';bg<='0';
if s=4 then
state<=c;clr:='0';en:='0';
else
state<=b;clr:='1';en:='1';
end if;
when c=>mr<='1';my<='0';mg<='0';
br<='0';by<='0';bg<='1';
if (sm and sb)='0' then
if s='19' then
state<=d;clr:='0';en:='0';
else
state<=c;clr:='0';en:='1';
elseif sb ='0' then
state<=d;clr:='0';en:='0';
else
state<=c;clr:='1';en:='1';
end if;
when d=>mr<='1';my<='0';mg<='0';
br<='0';by<='1';bg<='0';
if s=4 then
state<=a;clr:='0';en:='0';
else
state<=d;clr:='1';en:='1';
end if;
end case;
end if;
end process cnt;
end art;
四、仿真结果截图
经实验仿真可知道本次设计符合主干道和支路行车要求达到了设计目的。
五、课程设计心得体会:
在这次的课程设计中不仅检验了我们所学习的知识,也培养了我们如何去把握一件事情,如何去做一件事情,又如何完成一件事情。在设计过程中,与同学分工设计,和同学们相互探讨,相互学习,相互监督。学会了合作,学会了运筹帷幄,学会了宽容,学会了理解,也学会了做人与处世。课程设计是我们专业课程知识综合应用的实践训练,着是我们迈向社会,从事职业工作前一个必不少的过程.”千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义.我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础.通过这次设计,我们在EDA实验技能有所提高。综合运用本学期所学课程的理论解决社会问题,巩固与扩充了设计等课程所学的内容,同时相关的课程都有了全面的复习,思考的能力也有了提高。在这次设计过程中,发现自己平时学习的不足和薄弱环节,从而加以弥补。在此感谢我们的龙翔老师.,老师严谨细致、一丝不苟的作风一直是我工作、学习中的榜样;老师循循善诱的教导和不拘一格的思路给予我无尽的启迪。同时感谢对我帮助过的同学们,谢谢你们对我的帮助和支持,让我们感受到同学的友谊。
【参考文献】:
[ 1] 罗勇, 韩晓军. 基于FPGA 的交通灯控制与实现[ J] . 电子器件,
2008, 6: 76- 78.
[2] 杨显富. 基于EDA 技术的交通灯自适应控制系统[ J] . 成都大
学学报: 自然科学版, 2003, 3: 19- 24.
