欢迎来到天天文库
浏览记录
ID:3153517
大小:12.91 MB
页数:22页
时间:2017-11-20
《基于verilog hdl的交通灯控制器》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、交通灯控制器专业:电子信息科学与技术_班级:学号:学生姓名:指导教师:黄双林_21摘要交通灯是城市交通监管系统的重要组成部分,对于保证机动车辆的安全运行,维持城市道路的顺畅起到了重要作用。目前很多城市交叉路口的交通灯实行的是定时控制,灯亮的时间是预先设定好的,在时间和空间方面的应变性能较差,一定程度上造成了交通资源的浪费,加重了道路交通压力。本文在EDA技术的基础上,利用FPGA的相关知识设计了交通灯控制系统,可以根据实际情况对灯亮时间进行自由调整,通过数码管显示等待时间,点阵显示运行状态,蜂鸣器提示紧急状况,很好地维护了道
2、路的交通规则。整个设计系统通过QuartusⅡ软件中的VerilogHDL语言进行代码编写,并下载到FPGA器件中进行硬件调试,验证了设计的交通信号灯控制电路完全可以实现预定的功能,具有一定的实用性。关键字:交通灯、定时控制、FPGA、VerilogHDL一、设计原理根据交通灯循环顺序表可以得到如表1的循环状态表,遇到紧急状况的时候,这时候有东西通行、南北通行和全部禁行三种情况,紧急状态结束后条件满足的情况下状态依次往后跳转。状态东西方向南北方向时间0红灯亮绿灯亮20s1黄灯亮绿灯亮10s2绿灯亮红灯亮20s3绿灯亮黄灯亮1
3、0s表1交通灯循环状态表1.方案比较方案一:直接用GPIO口驱动双色点阵;方案二:用两块3-8译码器控制双色点阵,一个控制红色,另一个控制绿色;方案三:用一块4-16选择器控制双色点阵;通过比较方案一需要24个GPIO,方案二需要14个GPIO口,而方案三只需要12个GPIO口,考虑到IO口的数量限制和资源的优化,故选择方案三,硬件部分还包括Led灯和蜂鸣器,用洞洞板搭建好了硬件电路。2.系统框架21图1状态机状态转换图随着现代生活节奏的加快,人们出门便更多地选择自家的交通工具,这无疑加大了交通流量,如何控制十字路口的红绿灯
4、,便显得相当的重要。简单的,有效地控制红绿灯,是减小客流量,甚至减少交通事故的重要保障。而此次课题,我选择了交通灯控制电路,能熟悉VerilogHDL硬件描述语言在现实生活中的重要意义,为以后的学习和工作打好基础。二、总体设计1.主体结构根据确定的系统设计方案,运用模块化的设计思路,我们在QuartusII13.0软件系统中设计了整个交通灯控制器的逻辑结构。交通灯控制器包括分频模块、交通灯模块、蜂鸣器控制模块、数码管显示模块、点阵显示模块和时间调整模块。50M的系统时钟分频到1Hz、2Hz和1KHz用于计时,点阵显示当前处于
5、哪种状态,数码管显示模块提示等待的时间,按键调整时间用于调整时间减少客流量,紧急开关用于发生突发事故是禁止车辆通行。特殊运行状态结束后,控制器恢复原来的状态,继续运行。通过各个模块程序之间的端口合理连接和协调,成功设计出交通灯控制器的电路。21图2交通灯控制原理图2.分模块的设计(1)分频模块分频模块的功能是将50MHz的时钟频率分频到1Hz、2Hz和1KHz,输出给其他模块调用。在红绿灯交通信号系统中,大多数的情况是通过自动控制的方式指挥交通的。因此,为了避免意外事件的发生,电路必须给出一个稳定的时钟才能让系统正常的工作。
6、因此时钟发生模块最主要的功能就是产生一些稳定的输出信号,并将其用做后面几个电路的使能控制与同步信号。always@(posedgeClk)beginif(cnt1==26'd25_000_000)//分频产生1Hz时钟begincnt1<=26'd0;Clk_1Hz<=~Clk_1Hz;endelsecnt1<=cnt1+1;if(cnt2==15'd25000)//分频产生1KHz时钟begincnt2<=15'd0;21Clk_1k<=~Clk_1k;endelsecnt2<=cnt2+1'b1;if(cnt3==23'
7、d12_499_999)//分频产生2Hz时钟begincnt3<=23'd0;Clk_2Hz<=~Clk_2Hz;endelsecnt3<=cnt3+1'b1;end(2)数码管显示模块数码管显示模块的功能是将当前倒计时的数值输出显示,控制数码管显示,提示车辆应该等待的时间。always@(posedgeClk_1k)begincase(Mode)//模式切换2'd0:Time<=Time1;2'd1:Time<=Time2;default:Time<=Time3;endcaseDel<=~Del;//选择十位和个位if(
8、Key>3'd0)Seg<=8'd0;elseSeg<=(Del==2'b01)?(seg[Time/10]):(seg[Time%10]);End(3)蜂鸣器模块如果实现发生紧急事件,如救护车、警车、抢险车通过,蜂鸣器响5声关闭,特别地,全部禁行的优先级比东西禁行和南北禁行的优先级要高,
此文档下载收益归作者所有