版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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 系统功能与要求 交通红绿灯控制器,假定十字交叉路口的两个方向各有一组红,黄,绿三个灯组成的交通灯设计一个可以由交通警察人工控制的红绿灯控制器,要求:(1) 正常时,交通放行十字交叉路口的横纵两个方向,放行时间相等
3、;(2) 交通堵塞时,由交通警察人工控制某个方向的放行时间,以便按照交通负荷疏导阻塞车辆;(3) 在正常运行状态下,两组交通灯按以下规律自动进行转换,在不同时刻分别放行不同方向的车辆:(绿,红)2s(绿,黄红)0.5s(黄,红)2s(黄红,红)2s(红,黄)1s(红,绿)5s(红,黄绿)0.5s(红,黄)2s(红,黄绿)2s(黄,红)1s(绿,红)3s(括号以逗号分割的分别为横,纵两方向点亮的交通灯,横向红绿黄灯分别用LEDR0,LEDG0,LEDG1,表示,纵向红绿黄分别用LEDR4,LEDG4,LEDG5表示)(4) 人工控制放行的方法是,在欲放行某个方向时按下该方向的“放行”按钮(控制)
4、横向使用KEY0控制纵方向使用KEY1),则红绿灯自动将相应方向的道路方向,此后不会放行另一方向的道路,这时候若只按一次“恢复到正常状态”(KEY3),则整个系统恢复到正常运行状态。(5) 可使用VERLOG HDL语言和原理图来设计系统并对系统进行仿真和下载验证。图1 十字路口示意图1.3 总体设计交通灯控制器系统框图如下图所示所示,包括置数模块,计数模块,和主控制器模块。置数模块将交通灯的点亮时间预置到置数电路中,计数模块以秒为单位倒计时,当计数值减为零时,主控电路改为输出状态,电路进入下一个状态的倒计时。为了简化设计和结构清晰,将置数模块,计数模块视为整个电路的数据通道,与主控制器模块构
5、成了“数据通道+控制器”的系统结构。因为将定时计数器划归到了数据通道,使得控制器的状态数大大减少,主控制部分可以按照有限状态机设计。2. 主要模块设计程序2.1 主控制模块交通灯控制原理图:根据对设计要求的分析,主控单元的输入信号有:(1) 时钟信号;(2) 复位清零信号reset(reset=1表示系统复位恢复到正常状态);(3) 按键信号KEY(由KEY0,KEY1,KEY3组成,KEY0=1表示横向方向放行车辆,横向亮绿灯,纵向亮红灯;KEY1=1,表示纵向方向放行车辆,纵向亮绿灯,横向亮红灯;KEY3=1表示恢复到正常状态);(4) 定时计时器的输入信号sensor(由sensor1,
6、sensor2,sensor3,sensor4,sensor5组成,该信号为高电平时,分别表示2s,0.5s,1s,5s,3s的计时完成)。输出信号有:(1) 横向交通灯控制信号(LEDR0,LEDG0,LEDG1);(2) 纵向交通灯控制信号(LEDR4,LEDG4,LEDG5);(3) 控制状态信号:state(输出到定时计数器,分别表示2s,0.5s,1s,5s,3s计时)。主控单元的状态转移图:主控制模块程序:module traffic_control(clock,reset,KEY,sensor,LEDR0,LEDG0,LEDG1,LEDR4,LEDG4,LEDG5);input
7、clock,reset,KEY,sensor;output LEDR0,LEDG0,LEDG1,LEDR4,LEDG4,LEDG5;parameter st0=0,st1=1,st2=2,st3=3,st4=4,st5=5,st6=6,st7=7,st8=8,st9=9,st10=10,st11=11;reg2:0 state,nxstate;reg LEDR0,LEDG0,LEDG1,LEDR4,LEDG4,LEDG5;always (posedge clock) beginif(!reset)state=st1;elsestate=nxstate;endalways (state or K
8、EY or sensor ) begin case(state) st1:begin if (KEY0) begin nxstate=st1; LEDR0=1'b0;LEDG0=1'b1;LEDG1=1'b0; LEDR4=1'b1;LEDG4=1'b0;LEDG5=1'b0;end else if(KEY1) begin LEDR0=1'b1;LEDG0=1'b0;LEDG1=1'b0; LEDR4=1'b0;LEDG4=1'b1;LEDG5=1'b0; nxstate=st6;end else
9、if(KEY3) LEDR0=1'b0;LEDG0=1'b;LEDG1=1'b0; LEDR4=1'b1;LEDG4=1'b0;LEDG5=1'b0; nxstate=st1;else if(sensor1) begin LEDR0=1'b0;LEDG0=1'b1;LEDG1=1'b1; LEDR4=1'b1;LEDG4=1'b0;LEDG5=1'b0; nxstate=st2; end end end st2:begin if (KEY0) begin LEDR0=1'b0;LEDG0=1
10、'b1;LEDG1=1'b0; LEDR4=1'b1;LEDG4=1'b0;LEDG5=1'b0; nxstate=st1;end else if(KEY1) begin LEDR0=1'b1;LEDG0=1'b0;LEDG1=1'b0; LEDR4=1'b0;LEDG4=1'b1;LEDG5=1'b0; nxstate=st6;end else if(KEY3) LEDR0=1'b0;LEDG0=1'b1,LEDG1=1'b1; LEDR4=1'b1;LEDG4=1'
11、;b0,LEDG5=1'b0; nxstate=st2;else if(sensor2) begin LEDR0=1'b0;LEDG0=1'b0;LEDG1=1'b1; LEDR4=1'b1;LEDG4=1'b0;LEDG5=1'b0; nxstate=st3; end end end st3:begin if (KEY0) begin LEDR0=1'b0;LEDG0=1'b1;LEDG1=1'b0; LEDR4=1'b1;LEDG4=1'b0;LEDG5=1'b0; nxstate=st
12、1;end else if(KEY1) begin LEDR0=1'b1;LEDG0=1'b0;LEDG1=1'b0; LEDR4=1'b0;LEDG4=1'b1;LEDG5=1'b0; nxstate=st6;end else if(KEY3) LEDR0=1'b0;LEDG0=1'b0;LEDG1=1'b1; LEDR4=1'b1;LEDG4=1'b0;LEDG5=1'b0; nxstate=st3;else if(sensor1) begin LEDR0=1'b1;LEDG0=1
13、9;b0;LEDG1=1'b1; LEDR4=1'b1;LEDG4=1'b0;LEDG5=1'b0; nxstate=st4; end end endst4:begin if (KEY0) begin LEDR0=1'b0;LEDG0=1'b1;LEDG1=1'b0; LEDR4=1'b1;LEDG4=1'b0;LEDG5=1'b0; nxstate=st1;end else if(KEY1) begin LEDR0=1'b1;LEDG0=1'b0;LEDG1=1'b0; LEDR4=1
14、39;b0;LEDG4=1'b1;LEDG5=1'b0; nxstate=st6;end else if(KEY3) LEDR0=1'b1;LEDG0=1'b0;LEDG1=1'b1; LEDR4=1'b1;LEDG4=1'b0;LEDG5=1'b0; nxstate=st4;else if(sensor1) begin LEDR0=1'b1;LEDG0=1'b0;LEDG1=1'b0; LEDR4=1'b0;LEDG4=1'b0;LEDG5=1'b1; nxstate=st5; e
15、nd end endst5:begin if (KEY0) begin LEDR0=1'b0;LEDG0=1'b1;LEDG1=1'b0; LEDR4=1'b1;LEDG4=1'b0;LEDG5=1'b0; nxstate=st1;end else if(KEY1) begin LEDR0=1'b1;LEDG0=1'b0;LEDG1=1'b0; LEDR4=1'b0;LEDG4=1'b1;LEDG5=1'b0; nxstate=st6;end else if(KEY3) LEDR0=1'b1
16、;LEDG0=1'b0;LEDG1=1'b0; LEDR4=1'b0;LEDG4=1'b0;LEDG5=1'b1; nxstate=st5;else if(sensor3) begin LEDR0=1'b1;LEDG0=1'b0;LEDG1=1'b0; LEDR4=1'b0;LEDG4=1'b1;LEDG5=1'b0; nxstate=st6; end end endst6:begin if (KEY0) begin LEDR0=1'b0;LEDG0=1'b1;LEDG1=1'b0;
17、 LEDR4=1'b1;LEDG4=1'b0;LEDG5=1'b0; nxstate=st1;end else if(KEY1) begin LEDR0=1'b1;LEDG0=1'b0;LEDG1=1'b0; LEDR4=1'b0;LEDG4=1'b1;LEDG5=1'b0; nxstate=st6;end else if(KEY3) LEDR0=1'b1;LEDG0=1'b0;LEDG1=1'b0; LEDR4=1'b0;LEDG4=1'b1;LEDG5=1'b0; nxs
18、tate=st6;else if(sensor4) begin LEDR0=1'b1;LEDG0=1'b0;LEDG1=1'b0; LEDR4=1'b0;LEDG4=1'b1;LEDG5=1'b1; nxstate=st7; end end endst7:begin if (KEY0) begin LEDR0=1'b0;LEDG0=1'b1;LEDG1=1'b0; LEDR4=1'b1;LEDG4=1'b0;LEDG5=1'b0; nxstate=st1;end else if(KEY1) begi
19、n LEDR0=1'b1;LEDG0=1'b0;LEDG1=1'b0; LEDR4=1'b0;LEDG4=1'b1;LEDG5=1'b0; nxstate=st6;end else if(KEY3) LEDR0=1'b1;LEDG0=1'b0;LEDG1=1'b0; LEDR4=1'b0;LEDG4=1'b1;LEDG5=1'b1; nxstate=st7;else if(sensor2) begin LEDR0=1'b1;LEDG0=1'b0;LEDG1=1'b0; LED
20、R4=1'b0;LEDG4=1'b0;LEDG5=1'b1; nxstate=st8; end end endst8:begin if (KEY0) begin LEDR0=1'b0;LEDG0=1'b1;LEDG1=1'b0; LEDR4=1'b1;LEDG4=1'b0;LEDG5=1'b0; nxstate=st1;end else if(KEY1) begin LEDR0=1'b1;LEDG0=1'b0;LEDG1=1'b0; LEDR4=1'b0;LEDG4=1'b1;LED
21、G5=1'b0; nxstate=st6;end else if(KEY3) LEDR0=1'b1;LEDG0=1'b0;LEDG1=1'b0; LEDR4=1'b0;LEDG4=1'b0;LEDG5=1'b1; nxstate=st8;else if(sensor1) begin LEDR0=1'b1;LEDG0=1'b0;LEDG1=1'b0; LEDR4=1'b1;LEDG4=1'b0;LEDG5=1'b1; nxstate=st9; end end endst9:begin if (
22、KEY0) begin LEDR0=1'b0;LEDG0=1'b1;LEDG1=1'b0; LEDR4=1'b1;LEDG4=1'b0;LEDG5=1'b0; nxstate=st1;end else if(KEY1) begin LEDR0=1'b1;LEDG0=1'b0;LEDG1=1'b0; LEDR4=1'b0;LEDG4=1'b1;LEDG5=1'b0; nxstate=st6;end else if(KEY3) LEDR0=1'b1;LEDG0=1'b0;LEDG1=1'b0; LEDR4=1'b1;LEDG4=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 郑州澍青医学高等专科学校《广告策划与创意》2023-2024学年第一学期期末试卷
- 小学2025-2026学年度第一学期教学工作计划
- 长春汽车工业高等专科学校《酒店管理信息系统》2023-2024学年第一学期期末试卷
- 食品生产过程中交叉污染预防措施
- 保险入职培训模板
- 专业基础知识(给排水)-2020年注册公用设备工程师(给水排水)《专业基础知识》真题
- 代表爱情的花语
- 统编版五年级语文上册寒假作业(九)(有答案)
- 人教版四年级数学下册第一次月考综合卷(含答案)
- 二零二五年特种设备特种买卖合同3篇
- 下套管危害识别和风险评估
- 翼状胬肉病人的护理
- GB/T 12914-2008纸和纸板抗张强度的测定
- GB/T 1185-2006光学零件表面疵病
- ps6000自动化系统用户操作及问题处理培训
- 家庭教养方式问卷(含评分标准)
- 城市轨道交通安全管理课件(完整版)
- 线缆包覆挤塑模设计和原理
- TSG ZF001-2006 安全阀安全技术监察规程
- 部编版二年级语文下册《蜘蛛开店》
- 锅炉升降平台管理
评论
0/150
提交评论