交通灯控制器的设计 - 图文

更新时间:2023-09-23 22:12:01 阅读量: IT计算机 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

电子技术课程设计

题目:交通灯控制器的设计

院系:控制科学与工程系 班级:测控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(Intelligent Transport systems)这一国际性术语于1994 年被正式认定。 在此之前,美国称这类技术或相关研究项目为“智能车辆道路系统(IVHS)” (Intelligent Vehicle Highway System)。日本将这类技术称为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 模块使用同一个时钟信号。

四个灯按如下顺序点亮,并且循环往复:

主干道绿灯亮,支干道红灯亮 主干道绿灯在最后5秒闪烁,支干道红灯亮 支干道绿灯亮,主干道红灯亮 支干道绿灯在最后5秒闪烁,主干道红灯亮 每种灯亮的时间采用一个减法计数器进行计数,计数器用同步预置法设计,这 样只需改变预置数据,就能改变计数器的模;同时可以利用开关编码来实时设置各绿灯的亮灯时间,方便手动改变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: 清零开关,设置时间时,拨上去对所设置的时间清零,重新设置

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

else if(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

else if(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; 4'b0111:ty1<=4'd7; 4'b1000:ty1<=4'd8; 4'b1001:ty1<=4'd9; default:error<=1; endcase

end

else if(xuanshu[3:0]==4'b0001) begin

case(zhishu[3:0]) 4'b0000:ty2<=4'd0; 4'b0001:ty2<=4'd1; 4'b0010:ty2<=4'd2; 4'b0011:ty2<=4'd3; 4'b0100:ty2<=4'd4; 4'b0101:ty2<=4'd5; 4'b0110:ty2<=4'd6; 4'b0111:ty2<=4'd7; 4'b1000:ty2<=4'd8; 4'b1001:ty2<=4'd9; default:error<=1; endcase end

//tx<=tx1*10+tx2; //ty<=ty1*10+ty2; else

if((tx1<=4'd2)||(ty1>=4'd4)||(ty1==0)) begin

error1<=1; end end end endmodule

译码模块

module display(qout,led);

input [3:0]qout; output reg [6:0] led;

always @(qout) begin case(qout)

4'b0000: led[6:0]<= 7'b0000001; 4'b0001: led[6:0]<= 7'b1001111; 4'b0010: led[6:0]<= 7'b0010010; 4'b0011: led[6:0]<= 7'b0000110;

4'b0100: led[6:0]<= 7'b1001100; 4'b0101: led[6:0]<= 7'b0100100; 4'b0110: led[6:0]<= 7'b0100000; 4'b0111: led[6:0]<= 7'b0001111; 4'b1000: led[6:0]<= 7'b0000000; 4'b1001: led[6:0]<= 7'b0000100; endcase end endmodule

复位开关选择模块

module fuwei(rst,inx,iny,outz); input [3:0]inx; input [3:0]iny; input rst;

output reg [3:0]outz;

always@(inx,iny) begin if(rst) begin

outz<=inx; end else begin

outz<=iny; end end endmodule

控制模块

module kongzhi(clk,rst,txa,tya,LA,LB,LC,LD,tx,ty); input clk; input rst;

input [6:0]txa; input [6:0]tya;

output reg LA,LB,LC,LD;

output reg [6:0]tx; output reg [6:0]ty;

reg [1:0]s;

parameter s0=2'b00,s1=2'b01,s2=2'b10,s3=2'b11; always@(posedge clk) begin if(rst) begin tx<=txa;

ty<=tya;s<=s0; end else

begin case(s) s0:begin

if(tx<7'd6) s<=s1; else begin

LA<=1;

LB<=0; LC<=0; LD<=1; tx<=tx-1; ty<=tya; end end s1: begin if(tx==0) s<=s2; else begin

LA<=~LA; LB<=0; LC<=0; LD<=1;

tx<=tx-1; ty<=tya; end

end s2: begin

if(ty<7'd6) s<=s3; else begin

LA<=0; LB<=1; LC<=1; LD<=0; tx<=txa; ty<=ty-1; end end s3: begin if(ty==0) s<=s0; else begin

LA<=0; LB<=1; LC<=~LC; LD<=0; tx<=txa; ty<=ty-1; end end endcase

end end endmodule

/*****************************************************************************/

本文来源:https://www.bwwdw.com/article/axzd.html

Top