交通灯控制器的设计.docx
- 文档编号:30631977
- 上传时间:2023-08-18
- 格式:DOCX
- 页数:28
- 大小:914.68KB
交通灯控制器的设计.docx
《交通灯控制器的设计.docx》由会员分享,可在线阅读,更多相关《交通灯控制器的设计.docx(28页珍藏版)》请在冰豆网上搜索。
交通灯控制器的设计
电子技术课程设计
题目:
交通灯控制器的设计
院系:
控制科学与工程系
班级:
测控1001班
姓名:
学号:
指导教师:
龚军
报告时间:
2013.3.27
1.绪论
1.1课题背景
在公路交通运输作用愈来愈得以凸显的今天,公路交通安全也越来越得人们的
重视。
红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。
1858年,在英国伦敦主要街头安装了以燃煤气为光源的红、蓝两色的机械扳手式信号灯,用以指挥马车通行,这是世界上最早的交通信号灯。
1868年,英国机械工程师纳伊特在伦敦Westminster的议会大厦前的广场上,安装了世界上最早的煤气红绿灯,它由红绿两以旋转式方形玻璃提灯组成,红色表示“停止”,绿色表示“注意”。
1869年1月2日,煤气灯爆炸,使警察受伤,遂被取消。
电气启动的红绿灯出现在美国,这种红绿灯由红绿黄三色圆形的投光器组成,
1914年始安装于纽约市5号大街的一座高塔上。
红灯亮表示“停止”,绿灯亮表示“通行”。
1918年,又出现了带控制的红绿灯和红外线红绿灯。
带控制的红绿灯,一种是把压力探测器安在地下,车辆一接近红灯便变为绿灯;另一种是用扩音器来启动红绿灯,司机遇红灯时按一下嗽叭,就使红灯变为绿灯。
红外线红绿灯当行人踏上对压力敏感的路面时,它就能察觉到有人要过马路,红外光束能把信号灯的红灯延长一段时间,推迟汽车放行,以免发生交通事故。
从1868年英国伦敦首次使用燃汽色灯信号以来,城市交通信号机由手动到自
动,交通信号由固定周期到可变周期,系统控制方式由点控到面控,从无车辆检测器到有车辆检测器,经历了近百年的历史。
到1963年加拿大Toronto市建立了一套使用IBM650型计算的集中协调感应控制信号系统,从而标志着城市道路交通信号系统的发展进入了一个新的阶段。
之后,美国、英国、德国、日本、澳大利亚等多家相继建成数字电子计算机区域交通控制系统,这种系统一般还配备交通监视系统组成交通管制中心。
到80年代初,全世界建有交通管制中心的城市有300多个,代表了未来交通控制的发展方向。
1.2课题研究的目的和意义
随着城市机动车辆的不断增加,许多大城市出现了交通超负荷运行的情况。
因
此,自80年代后期,这些城市纷纷修建城市高速道路,在高速道路建设完成的初期,它们也曾有效地改善了交通状况。
然而,随着交通量的快速增长和缺乏对高速道路的系统研究和控制,高速道路没有充分发挥出预期的作用。
而城市高速道路在构造上的特点,也决定了城市高速道路的交通状况必然受高速道路与普通道路耦合处交通状况的制约。
所以,如何采用合适的控制方法,最大限度利用好耗费巨资修建的城市高速道路。
缓解主干道与匝道、城区同周边地区的交通拥堵状况,越来越成为交通运输管理和城市规划部门亟待解决的主要问题。
目前,国内大部分中小城市仍采用传统的交通灯控制模式,但随着城市的不断
发展,基于车流量的智能交通灯控制系统必将受到广大人民的青睐。
传统的交通信号灯,通常采用定时分配方式控制,主要存在三方面的缺陷:
(1)车道放行车辆时,十字路口经常出现不同相位上车辆放行时问相同,车辆多的一方容易出现车辆堆积,造成下一路口的交通阻塞;;
(2)当某相位上无车时,恰好是该相位上的车辆通行时间,则在这段时间内,就出现了交通指挥盲点;(3)当一路口车流量很大时,不能够自动延长口的绿灯时间,导致在一个周期内此路口的车辆不能完全通过。
在实现正常交通灯控制功能的基础上,本课题研究的一个方向便是智能交通,
着眼于传统交通灯控制系统的缺陷,希望能够缓解这些问题。
1.3国内外研究概况
在国内普遍使用的交通灯还比较落后,但处在研究阶段的项目比较多,我个人
感觉交通灯的设计不仅仅是一个技术问题,很大程度上包含了
在西方发达国家,交通控制系统基本上完成了由传统的交通控制系统向智能交
通控制系统ITS的转变,而在我国,智能交通系统则刚刚处于起步阶段。
对于传统的交通控制系统而言,对红绿灯一般采用定时控制,无法对实际的交通流进行识别优化,以至于不能适应交通量的不确定性和随机性的原因,往往造成交通资源的浪费和道路的梗阻。
而智能交通控制系统则在不产生大的硬件改动的情况下有效的提高效率。
ITS(IntelligentTransportsystems)这一国际性术语于1994年被正式认定。
在此之前,美国称这类技术或相关研究项目为“智能车辆道路系统(IVHS)”
(IntelligentVehicleHighwaySystem)。
日本将这类技术称为UTMS、VICS等,欧盟则称之为“道路交通信息技术(RTI)”。
智能交通系统强调的是系统性、信息交流的交互性以及服务的广泛性,其核心
技术是电子技术、信息技术、通信技术、交通工程和系统工程。
智能交通系统ITS
是在较完善的道路设施基础上,将先进的电子技术、信息技术、传感器技术和系统工程技术集成运用于地面交通管理所建立的一种实时、准确、高效、大范围、全方位发挥作用的交通运输管理系统。
在国内,受客观条件的制约,ITS起步比较晚,在20世纪90年代初,我国的相关学者开始意识到研究和开发ITS的重要性。
到90年代中期,由于受到国外ITS研发的影响,政府部门也开始重视对ITS的研究,随后,又得到中央部门和部分地方政府的支持。
1999年,我国成立了全国智能交通系统(ITS)协调指导小组及办公室,同年,
又成立了全国智能交通运输系统(ITS)专家咨询委员会,其中,同济大学、清华大学、北方交通大学、北京航空航天大学、吉林工业大学、东南大学等高校的有关专家为咨询委员,并启动了国家“九五”科技攻关课题和国家“十五”科技攻关课题。
目前,在对一些大中型城市引入的国外ITS进行研究的基础上已经逐渐开始摸索开发设计适合自己国情的ITS系统。
2.任务概述
2.1设计内容与基本要求
①设计一个十字路口交通信号灯的控制电路。
要求红、绿灯按一定的规律亮和灭,并在亮灯期间进行倒计时,且将运行时间用数码管显示出来。
②绿灯亮时,为该车道允许通行信号,红灯亮时,为该车道禁止通行信号。
要求主干道每次通行时间为Tx秒,支干道每次通行时间为Ty秒。
每次变换运行车道前绿灯闪烁,持续时间为5秒。
即车道要由X转换为Y时,X在通行时间只剩下5秒钟时,绿灯闪烁显示,Y仍为红灯。
③可以对X,Y车道上交通灯运行的时间进行重新设置,
20≦Tx≦99,10≦Ty≦39
④对器件进行在系统编程和实验验证。
⑤写出设计性实验报告,并打印各层次的源文件和仿真波形,然后作简要说明。
3.系统设计
3.1设计思路
关键词:
主/支干道红绿灯时间设置绿灯闪烁倒计时
根据交通灯控制器要实现的功能,主控制模块考虑使用几个并行执行的always
模块来分别控制A、B两个方向的4盏灯的变化。
这些always模块使用同一个时钟信号。
四个灯按如下顺序点亮,并且循环往复:
每种灯亮的时间采用一个减法计数器进行计数,计数器用同步预置法设计,这
样只需改变预置数据,就能改变计数器的模;同时可以利用开关编码来实时设置各绿灯的亮灯时间,方便手动改变X、Y两条路线的通行时间。
使用DE0开发板,必须考虑到可用资源的有限性。
DE0开发板上有10个拨动开关,4个数码管,10个发光二极管。
为了便于显示亮灯时间,计数器的输出均采用BCD码,显示由4个数码管来完成,X方向和Y方向各用两个数码管,置数的时间在相应的数码管上显示。
3.2系统框图与说明
3.3状态转换表
LA、LB分别表示主干道直行绿灯和红灯
LC、LD分别表示支干道直行绿灯和红灯
此交通灯系统工作主要有5个时间间隔,分别为:
1.主干道直行绿灯时间,可手动设置
2.主干道直行红灯时间,与3(支干道直行绿灯时间)相同
3.支干道直行绿灯时间,可手动设置
4.支干道直行红灯时间,与1(主干道直行绿灯时间)相同
5.主/支干道绿灯闪烁时间,时间为5秒
由于结合实际的十字路口交通灯的情况,将其简化为4个状态:
状态1:
主干道亮直行绿灯,支干道亮直行红灯,两者时间相同
状态2:
主干道直行绿灯最后5秒闪烁,支干道亮直行红灯
状态3:
支干道亮直行绿灯,主干道亮直行红灯,两者时间相同
状态4:
支干道直行绿灯最后5秒闪烁,主干道亮直行红灯
3.4输入输出设计
3.4.1开关输入
本设计系统共需要10个开关,其中sw0~sw3用来对主支干道的时间进行设置,
sw4~sw7用来选择需要设置时间的数码管,sw8为复位开关,sw9为清零开关
sw0:
用于对主支干道的时间进行设置,二进制编码,拨上去表示1,拨下来表示0
sw1:
用于对主支干道的时间进行设置,二进制编码,拨上去表示1,拨下来表示0
sw2:
用于对主支干道的时间进行设置,二进制编码,拨上去表示1,拨下来表示0
sw3:
用于对主支干道的时间进行设置,二进制编码,拨上去表示1,拨下来表示0
sw4:
用来选择需要设置时间的数码管,拨上去表示对支干道通行时间的个位进行时间设置
sw5:
用来选择需要设置时间的数码管,拨上去表示对支干道通行时间的十位进行时间设置
sw6:
用来选择需要设置时间的数码管,拨上去表示对主干道通行时间的个位进行时间设置
sw7:
用来选择需要设置时间的数码管,拨上去表示对主干道通行时间的十位进行时间设置
sw8:
复位开关,拨上去可以选择数码管对时间进行设置,拨下来开始通行时间的倒计时
sw9:
清零开关,设置时间时,拨上去对所设置的时间清零,重新设置
当然,也少不了时钟信号的输入,这里不用外接信号源,利用DE0开发板上自带的信号发生器就好。
原时钟信号产生的是50MHz的信号,输入到各个模块之前先进行一步分频,就可以很好的使用了。
3.4.2输出设计
分别用4个LED灯来表示X、Y干道的红绿灯,用2个LED灯来表示操作错误时的报错提示和设置时间超出规定范围的提示。
用4个数码管来计数,第一对儿显示主干道的绿灯和支干道的红灯时间,第二对儿显示支干道的绿灯和主干道的红灯时间。
时间设置时,在相应的数码管上进行。
3.4.3引脚配置与说明
将各个引脚配置表列出如下表,同时给出引脚配置图如下:
引脚配置表如下:
3.5系统模块仿真
进行系统仿真其实是和写程序代码同步进行的,在每编写一个模块后,都要进
行编译仿真,这样能及时发现问题,避免的最后出现一堆问题不好排除错误,提高检验的效率。
这里对关键模块进行仿真,以保证每一步设计的可靠性。
至于总体的仿真,个人认为没有必要:
一方面总体仿真操作太多,频繁改变信号不科学;另一方面,下载到开发板上看功能是否正常更为直接、方便,故总体验证采用开发板而不是仿真。
3.5.1分频模块
fenpin(CLK,clk);
名称:
分频模块;
功能:
将50MHz的输入信号分频为1Hz的输出信号;
这个模块理论上虽然可以仿真,但是1Hz和50MHz数量级相差太大,即使仿
真结果正确,也无法直观的用眼睛观察出来,所以这里不在列出该模块的仿真图形,其模块的正确性可以在以后的开发板上明显的体现出来。
3.5.2时间设置模块
zhishu(cr,clk,rst,xuanshu,zhishu,tx1,tx2,ty1,ty2,tx,ty,error,error1);
名称:
时间设置模块;
功能:
手动设置主支干道绿灯通行时间
仿真波形如下:
3.5.3译码模块
display(qout,led);
名称:
译码模块;
功能:
将数值转换为相应数码管的编码;
仿真波形如下:
3.5.4复位开关选择模块
fuwei(rst,inx,iny,outz);
名称:
复位开关选择模块;
功能:
实现设置时间和倒计时的切换;
仿真波形如下:
3.5.5控制模块
kongzhi(clk,rst,txa,tya,LA,LB,LC,LD,tx,ty);
名称:
控制模块;
功能:
根据设置的时间和倒计时的时间对主支干道的红绿灯进行控制
仿真波形如下:
4.使用说明
4.1输出显示
用数码管来显示计时,具体各个作用如下:
左边两个数码管表示主干道X的计时器的十位和个位数字。
对时间进行设置时也在其上面显示。
右边两个数码管表示支干道Y的计时器的十位和个位数字。
对时间进行设置时也在其上面显示。
分别用6个LED灯来表示主支干道的红绿灯和报错灯。
右一灯表示主干道绿灯。
右二灯表示主干道红灯。
右三灯表示支干道绿灯。
右四灯表示支干道红灯。
左一灯表示操作错误时的报错灯。
左二灯表示置数时超出范围的提示灯。
4.2输入开关
第一个开关是清零开关,用于置数时对所有数字清零。
第二个开关是复位开管,拨上去是设置时间,拨下来是开始倒计时。
第三到第六个开关是在置数时选择数码管的开关,第三个开关拨上去其他的三个开关拨下来选择第一个数码管,第四个开关拨上去其他的三个开关拨下来选择第二个数码管,一次类推。
第七到第十个开关是设置时间的开关,才用二进制编码,拨上去代表1,拨下来代表0,当对每一个数码管置数时,可以选择他们四个的组合而置出0~9。
实验总结及心得体会
5.1心得体会
完成课程设计的基本要求。
基本要求中,做到了红绿灯转换,绿灯闪烁,设置通行时间。
虽然这些功能可以实现,但是毕竟过于简单,仅仅有这些功能是不够的,在实际运用中如果仅仅有这些功能,就根本没有任何价值,所以必须进行功能的扩展。
增强动手能力。
这是一个将我们平时所学运用于实践的机会,而这正是我们学
生最欠缺的,正好可以弥补我们的不足,增强我们的动手能力,在实践中运用我们的知识解决实际的问题。
当我们在遇到困难的时候不应该气馁,而应该要努力去解决问题。
当遇到真正自己无法解决的,可以多和同学讨论或者是向老师请教。
好多事情可能在没做之前觉得很困难,但是一旦你真正开始投入精力去做的时候,你会发现事情没有你想的那么难。
而且你能够感觉到你在其中收获了很多。
设计数字系统的能力得以提升。
在进行Verilog编写的时候,对于wire与reg
的变量开始总是会用错,导致编译不能通过,之后查看了资料发现了我们完全用c语言的思路进行代码的编写,由于Verilog中的always语句中是并行执行的,所以不是像我们想的顺序执行,这样写出的代码的仿真经常会与我们所想的有一些出入,而且引起不必要的时序的混乱。
同时在进行代码与仿真的同时,加强了自己的查错改错的能力,完善了自己的Verilog功底,加深了对硬件电路的认识。
通过这个实验,使我更深的了解了Verilog编程时的一种模块化的思想。
在设计的时候,由于我们接触的一般都是小模块,所以对于小模块的编写还是比较习惯的,然而这次的交通灯的设计却是一个比较大的完整的项目。
故采用从上到下的设计方法,先设计整体的主模块,然后再分别设计各个所需要的模块,这样做的一个好处就是到时进行整合的时候可以更好的衔接而不会不连贯的现象。
5.2改进与展望
这次课程设计我也在网络、书籍资料上找了很多关于交通的信息,虽然自己已
经能比较完整的做好了自己的设计内容,但是这仅仅是非常简单的交通灯,今后我们交通会越来越发达,具体表现在道路会越来越宽,通行能力会越来越强,路口也会越来越复杂,那么就要求设计的交通灯控制系统要更加智能化、人性化。
比如图的设计,这是我在网上找到的一个比较复杂的路口,上面交通灯的控制也更加有难度。
尤其是在人行道的控制需要花费很大的心思。
这种设计更加贴近生活,更加实用。
这次设计的十字路口简单的红绿灯是最基本的,已经不能满足现在交通的需求。
故需要我们更加深入的探索。
开发出更加智能的交通系统。
参考文献
1.谢自美.电子线路设计综合设计.华中科技大学出版社,2006
2.罗杰,谢自美.电子线路设计.实验.测试(第4版).电子工业出版社,2008.4
3.王金明.VerilogHDL程序设计教程.人民邮电出版社.2004.1
附录程序源代码
/*******************************************************************/
顶层模块
Moduletrafficlight(cr,rst,in_50MHz,xuanshu,zhishu,LA,LB,LC,LD,led1,led2,led3,led4,error,error1);
inputin_50MHz;
inputrst;
inputcr;
input[3:
0]xuanshu;
input[3:
0]zhishu;
output[6:
0]led1;
output[6:
0]led2;
output[6:
0]led3;
output[6:
0]led4;
outputLA,LB,LC,LD;
outputerror;
outputerror1;
wireclk;
wire[3:
0]tx2;
wire[3:
0]tx1;
wire[3:
0]ty2;
wire[3:
0]ty1;
wire[6:
0]tx;
wire[6:
0]ty;
wire[6:
0]txa;
wire[6:
0]tya;
wire[3:
0]ta;
wire[3:
0]tb;
wire[3:
0]tc;
wire[3:
0]td;
wire[3:
0]outz1;
wire[3:
0]outz2;
wire[3:
0]outz3;
wire[3:
0]outz4;
freqDivZ1(in_50MHz,clk);
zhishuD1(cr,clk,rst,xuanshu,zhishu,tx1,tx2,ty1,ty2,txa,tya,error,error1);
kongzhiK1(clk,rst,txa,tya,LA,LB,LC,LD,tx,ty);
displayF1(outz1,led1);
displayF2(outz2,led2);
displayF3(outz3,led3);
displayF4(outz4,led4);
zhuanhuan(tx,ty,ta,tb,tc,td);
switchS1(rst,tx1,ta,outz1);
switchS2(rst,tx2,tb,outz2);
switchS3(rst,ty1,tc,outz3);
switchS4(rst,ty2,td,outz4);
endmodule
分频模块
modulefreqDiv(in_50MHz,out_1Hz);
inputin_50MHz;
outputout_1Hz;
regout_1Hz;
reg[24:
0]cnt;
always@(posedgein_50MHz)
begin
cnt<=cnt+1'b1;
if(cnt<24999999)
out_1Hz<=0;
else
begin
if(cnt>=50000000)
cnt<=0;
elseout_1Hz<=1;
end
end
endmodule
转换模块
modulezhuanhuan(tx,ty,ta,tb,tc,td);
input[6:
0]tx;
input[6:
0]ty;
outputreg[6:
0]ta;
outputreg[6:
0]tb;
outputreg[6:
0]tc;
outputreg[6:
0]td;
always@(tx,ty)
begin
ta<=tx/10;
tb<=tx%10;
tc<=ty/10;
td<=ty%10;
end
endmodule
置数模块
modulezhishu(cr,clk,rst,xuanshu,zhishu,tx1,tx2,ty1,ty2,tx,ty,error,error1);
inputclk;
inputrst;
inputcr;
input[3:
0]xuanshu;
input[3:
0]zhishu;
outputreg[3:
0]tx1;
outputreg[3:
0]tx2;
outputreg[3:
0]ty1;
outputreg[3:
0]ty2;
output[6:
0]tx;
output[6:
0]ty;
outputregerror;
outputregerror1;
assigntx=tx1*10+tx2;
assignty=ty1*10+ty2;
always@(xuanshu,zhishu,cr)
begin
if(cr)
begin
tx1<=0;
tx2<=0;
ty1<=0;
ty2<=0;
end
elseif(rst)begin
error<=0;
error1<=0;
if(xuanshu[3:
0]==4'b1000)
begin
case(zhishu[3:
0])
4'b0000:
tx1<=4'd0;
4'b0001:
tx1<=4'd1;
4'b0010:
tx1<=4'd2;
4'b0011:
tx1<=4'd3;
4'b0100:
tx1<=4'd4;
4'b0101:
tx1<=4'd5;
4'b0110:
tx1<=4'd6;
4'b0111:
tx1<=4'd7;
4'b1000:
tx1<=4'd8;
4'b1001:
tx1<=4'd9;
default:
error<=1;
endcase
end
elseif(xuanshu[3:
0]==4'b0100)
begin
case(zhishu[3:
0])
4'b0000:
tx2<=4'd0;
4'b0001:
tx2<=4'd1;
4'b0010:
tx2<=4'd2;
4'b0011:
tx2<=4'd3;
4'b0100:
tx2<=4'd4;
4'b0101:
tx2<=4'd5;
4'b0110:
tx2<=4'd6;
4'b0111:
tx2<=4'd7;
4'b1000:
tx2<=4'd8;
4'b1001:
tx2<=4'd9;
default:
error<=1;
endcase
end
elseif(xuanshu[3:
0]==4'b0010)
begin
case(zhishu[3:
0])
4'b0000:
ty1<=4'd0;
4'b0001:
ty1<=4'd1;
4'b0010:
ty1<=4'd2;
4'b0011:
ty1<=4'd3;
4'b0100:
ty1<=4'd4;
4'b0101:
ty1<=4'd5;
4'b0110:
ty1<=4'd6;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 交通灯 控制器 设计