资源描述:
《基于fpga的交通红绿灯控制器》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、基于FPGA的交通红绿灯控制器姓名:学号:专业:班级:目录1.设计思路11.1设计思想11.2系统功能与要求11.3总体设计22.主要模块设计程序42.1主控制模块42.2主程序52.3定时计数器模块153.所实现功能说明143.1实现功能143.2仿真波形144.所设计原理图及故障分析155.心得体会17参考文献18附录1元件清单19附录2管脚201.设计思路1.1设计思想 交通灯是城市交通监管系统的重要组成部分,对于保证机动车辆的安全运行,维持城市道路的顺畅起到了重要作用。目前很多城市交叉路口的交通灯实
2、行的是定时控制,灯亮的时间是预先设定好的,在时间和空间方面的应变性能较差,一定程度上造成了交通资源的浪费,加重了道路交通压力。本文利用FPGA的相关知识设计了交通灯控制系统,可以根据实际情况,交通拥堵时由交通警察人工控制某方向上的放行时间,以便按照交通负荷疏导阻塞车辆。整个设计系统通过Max+PlusⅡ软件进行了模拟仿真,并下载到FPGA器件中进行硬件的调试,验证了设计的交通信号灯控制电路完全可以实现预定的功能,具有一定的实用性。1.2系统功能与要求交通红绿灯控制器,假定十字交叉路口的两个方向各有一组红,黄,
3、绿三个灯组成的交通灯设计一个可以由交通警察人工控制的红绿灯控制器,要求:(1)正常时,交通放行十字交叉路口的横纵两个方向,放行时间相等;(2)交通堵塞时,由交通警察人工控制某个方向的放行时间,以便按照交通负荷疏导阻塞车辆;(3)在正常运行状态下,两组交通灯按以下规律自动进行转换,在不同时刻分别放行不同方向的车辆:(绿,红)2s→(绿,黄红)0.5s→(黄,红)2s→(黄红,红)2s→(红,黄)1s→(红,绿)5s→(红,黄绿)0.5s→(红,黄)2s→(红,黄绿)2s→(黄,红)1s→(绿,红)3s(括号内以
4、逗号分割的分别为横,纵两方向点亮的交通灯,横向红绿黄灯分别用LEDR0,LEDG0,LEDG1,表示,纵向红绿黄分别用LEDR4,LEDG4,LEDG5表示)(4)人工控制放行的方法是,在欲放行某个方向时按下该方向的“放行”按钮(控制)横向使用KEY0控制纵方向使用KEY1),则红绿灯自动将相应方向的道路方向,此后不会放行另一方向的道路,这时候若只按一次“恢复到正常状态”(KEY3),则整个系统恢复到正常运行状态。(5)可使用VERLOGHDL语言和原理图来设计系统并对系统进行仿真和下载验证。图1十字路口示意
5、图1.3总体设计交通灯控制器系统框图如下图所示所示,包括置数模块,计数模块,和主控制器模块。置数模块将交通灯的点亮时间预置到置数电路中,计数模块以秒为单位倒计时,当计数值减为零时,主控电路改为输出状态,电路进入下一个状态的倒计时。为了简化设计和结构清晰,将置数模块,计数模块视为整个电路的数据通道,与主控制器模块构成了“数据通道+控制器”的系统结构。因为将定时计数器划归到了数据通道,使得控制器的状态数大大减少,主控制部分可以按照有限状态机设计。2.主要模块设计程序2.1主控制模块交通灯控制原理图:根据对设计要求
6、的分析,主控单元的输入信号有:(1)时钟信号;(2)复位清零信号reset(reset=1表示系统复位恢复到正常状态);(3)按键信号KEY(由KEY0,KEY1,KEY3组成,KEY0=1表示横向方向放行车辆,横向亮绿灯,纵向亮红灯;KEY1=1,表示纵向方向放行车辆,纵向亮绿灯,横向亮红灯;KEY3=1表示恢复到正常状态);(4)定时计时器的输入信号sensor(由sensor1,sensor2,sensor3,sensor4,sensor5组成,该信号为高电平时,分别表示2s,0.5s,1s,5s,3s
7、的计时完成)。输出信号有:(1)横向交通灯控制信号(LEDR0,LEDG0,LEDG1);(2)纵向交通灯控制信号(LEDR4,LEDG4,LEDG5);(3)控制状态信号:state(输出到定时计数器,分别表示2s,0.5s,1s,5s,3s计时)。主控单元的状态转移图:主控制模块程序:moduletraffic_control(clock,reset,KEY,sensor,LEDR0,LEDG0,LEDG1,LEDR4,LEDG4,LEDG5);inputclock,reset,KEY,sensor;ou
8、tputLEDR0,LEDG0,LEDG1,LEDR4,LEDG4,LEDG5;parameterst0=0,st1=1,st2=2,st3=3,st4=4,st5=5,st6=6,st7=7,st8=8,st9=9,st10=10,st11=11;reg[2:0]state,nxstate;regLEDR0,LEDG0,LEDG1,LEDR4,LEDG4,LEDG5;always@(posedge