FPGA课程设计报告交通灯设计报告_第1页
FPGA课程设计报告交通灯设计报告_第2页
FPGA课程设计报告交通灯设计报告_第3页
FPGA课程设计报告交通灯设计报告_第4页
FPGA课程设计报告交通灯设计报告_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 交通灯交通灯 设设 计计 报报 告告 论文题目:论文题目: 交通灯的设计与实现交通灯的设计与实现 所属系部:所属系部: 机械与电子工程系机械与电子工程系 指导老师:指导老师: 学生姓名:学生姓名: 专专 业:业: 应用电子技术应用电子技术 20112011 年年 6 6 月月 1313 日日 2 广东科学技术职业学院广东科学技术职业学院 (交通灯)设计任务书(交通灯)设计任务书 题题 目:目: 交 通 灯 任务与要求:任务与要求: (1)一般情况下,保持主干道畅通,主干道绿灯亮、支干道红灯亮,并且 主干道绿灯亮的时间不得少于 60 秒。 (2)主干道无车,支干道有车,则主干道红灯亮、支干道绿

2、灯亮,但支干 道绿灯亮的时间不超过 30 秒。 (3)每次主干道或支干道绿灯变红灯时,黄灯先亮 5 秒。 时时 间:间: 2011 年 6 月 13 日 所属系部:所属系部: 机械与电子工程系 学生姓名:学生姓名: 专专 业:业: 应用电子技术 指导单位或教研室:指导单位或教研室: 广东科学技术职业学院 指导教师:指导教师: 20112011 年年 6 6 月月 1313 日日 3 4 摘摘 要要 交通灯是城市交通监管系统的重要组成部分,对于保证机动车辆的安全运行,维持城市道路的 顺畅起到了重要作用。目前很多城市交叉路口的交通灯实行的是定时控制,灯亮的时间是预先 设定好的,在时间和空间方面的应

3、变性能较差,一定程度上造成了交通资源的浪费,加重了道 路交通压力。本文在 eda 技术的基础上,利用 fpga 的相关知识设计了交通灯控制系统,可 以根据实际情况对灯亮时间进行自由调整,整个设计系统通过 max+plus软件进行了模拟仿 真,并下载到 fpga 器件中进行硬件的调试,验证了设计的交通信号灯控制电路完全可以实现 预定的功能,具有一定的实用性。 关键词 交通灯 定时控制 fpga 5 目 录 摘 要.3 一、设计要求一、设计要求 .5 二、所用设备二、所用设备 .5 三、设计思路三、设计思路 .5 (1)功能要求:.5 (2)交通灯控制器的状态转换表.6 (3)系统构架.7 (4)

4、交通灯的状态转换图.7 (5)思路说明.9 四、详细设计四、详细设计 .9 (1)1hz时钟脉冲产生模块.9 (2)7段led数码管显示译码模块.10 (3)交通灯控制器模块.14 (4)top总图.18 五、绑定引脚,下载测试五、绑定引脚,下载测试 .18 (1)绑定引脚.18 (2)下载测试.20 (3)测试结果.20 六、心得体会六、心得体会 .21 6 交通灯的设计交通灯的设计 一、设计要求一、设计要求 设计一个主干道和支干道十字路口的交通控制电路,要求如下: (1)一般情况下,保持主干道畅通,主干道绿灯亮、支干道红灯亮,并且主干 道绿灯亮的时间不得少于 60 秒。 (2)主干道无车,

5、支干道有车,则主干道红灯亮、支干道绿灯亮,但支干道绿 灯亮的时间不超过 30 秒。 (3)每次主干道或支干道绿灯变红灯时,黄灯先亮 5 秒。 二、所用设备二、所用设备 (1)pc 机一台 (2)fpga 下载版 1 套 (3)quartus 开发软件 1 套 三、设计思路三、设计思路 用 veriloghdl 设计一个十字路口交通灯控制器,其示意图如下所示:a 方 向和 b 方向各设红(r) 、黄(y) 、绿(g)三盏灯,三种灯按照合理的顺序亮 灭,并能将灯亮的时间以计时的形式显示出来。 (1)功能要求:)功能要求: 由设计要求可以知道,这个主干道和支干道的十字路口的交通等系统,支 干道两边安

6、装传感器,要求优先保证主干道通畅。平时处于主干道绿灯、支干 7 道红灯的状态。当支干道有车时,则传感器发出信号 s=0,主干道绿灯先变成 黄灯,再变成红灯。支干道有红灯变成绿灯。如果支干道继续有车通过时,则 传感器继续有信号,使支干道保持绿灯亮,但支干道保持绿灯亮的时间不超过 30 秒,否则支干道绿灯先转化成黄灯再变成红灯,同时主干道红灯变成绿灯。 主干道每次通行时间不得少于 60 秒;在此期间,即使支干道有信号 s 输出时, 也不能中止主干道的绿灯亮。 (2)交通灯控制器的状态转换表)交通灯控制器的状态转换表 表中 1 表示灯亮,0 表示灯灭。a 方向和 b 方向的红、黄、绿和左转灯分 别用

7、 r1,y1,g1 和 r2,y2,g2 表示。 a 方向b 方向 绿灯 (g1) 黄灯 (y1) 红灯 (r1) 绿灯 (g2) 黄灯 (y2) 红灯 (r2) 时间 100001不少于 60 秒 0100015 秒 001100不大于 30 秒 0010105 秒 交通灯系统工作主要有三个时间间隔,t60,t30,t05。 t60:主干道绿灯亮时的最短时间间隔,不少于 60 秒。 t30: 主干道红灯亮时的最大时间间隔,不多于 30 秒。 t05: 主干道黄灯亮时的时间间隔,5 秒。 表 1 状态表 8 (3)系统构架)系统构架 从状态转换表中可以看出,该系统有控制器和处理器组成。控制器接

8、受 外部系统时钟信号 clk、传感器信号 s。处理器有时钟产生器和译码显示器 组成。时钟产生器能够向控制器输入 1hz 的时钟脉冲信号,而译码显示器 则在控制器的控制下,改变交通灯信号。 (4)交通灯的状态转换图)交通灯的状态转换图 s0 绿灯 s1 黄灯 s2 红灯 s3 红灯 图 1 主干道状态转换图 s0 红灯 s3 黄灯 s2 绿灯 s1 红灯 由上面的两个干道的状态转换图可知,两个方向的转移是并列关系的,即是按 照计时信号进行状态跳转,然后再加入两者之间的限制关系和 s 传感器信号。 交通灯的控制过程可以分为四个阶段,对应的输出有四种状态,分别为 s0,s1,s2,s3。 图 2 支

9、干道状态转换图 9 s0 状态: 主干道绿灯亮,支干道红灯亮,此时支干道有车等待通过,而且主干道绿 灯已亮,满足规定的时间间隔 t60, 控制器发出计时器青清零信号,状态 s0 转 换到 s1 状态。 s1 状态: 主干道黄灯亮,支干道红灯亮,进入此状态,黄灯亮满足规定的时间间隔 t05 时,控制器发出计时器青清零信号,状态 s1 转换到 s2 状态。 s2 状态: 主干道红灯亮,支干道绿灯亮,进入此状态,若此时支干道继续有车,则 继续保持此状态,但支干道绿灯亮的时间不超过 t30 时间间隔,否则控制器发 出计时器青清零信号,从状态 s2 转换到 s3 状态。 s3 状态: 主干道红灯亮,支干

10、道黄灯亮,进入此状态,黄灯亮满足规定的时间间隔 t05 时,控制器发出控制器发出计时器青清零信号,输出从状态 s3 转换到 s0 状态。 对上述的 s0,s1,s2,s3 四种状态按照格雷码进行编码分别为 00,01,11,10。对于上述的 s0 和 s2 状态要加以说明: 首先,当主干道方向 60 秒计时结束时,若支干道方向无车(即 s=1)时, 这时,控制器应继续运行在 s0 状态,计时器停止计时等待支干道 s 信号,若 支干道方向有车(即 s=0) ,则按照状态转换图进行跳转。同理,支干道也执行 相同的处理。 其次,当支干道开始绿灯亮时,规定必须保持支干道方向一直有车(即 s=0)时,支

11、干道方向的绿灯才能继续维持,否则,一旦在计数未结束但时 s=1 时,执行从 s2 状态跳转到 s3 状态;若 s=0 一直维持到 30 秒计数结束,那 么也要执行状态转换。 10 (5)思路说明)思路说明 根据交通灯控制器要实现的功能,考虑用一个 always 模块来分别控制 a(主干道)和 b(支干道)两个方向的三盏灯。这个 always 模块控制两个方 向的三种灯按照绿灯,黄灯,红灯点亮,并且循环往复。 为便于显示灯亮的时间,计时器输出均采用 bcd 码,显示由两个数码管来 实现完成。 四、详细设计四、详细设计 (1)1hz 时钟脉冲产生模块时钟脉冲产生模块 1、原理说明: 采用计数方式,

12、因为我们所用的实验开发板所提供我们的时钟频率有 50mhz 和 27mhz 两种,实验中任选一个频率。根据所选择的频率设计分频器。 输出为 1hz 时钟频率。 2、代码 module fenpin(_1000hzout,_1hzout,_50mhzin); input _50mhzin; output _1000hzout,_1hzout; parameter width=16,value=24999; reg _1000hzout,_1hzout; reg width-1:0 count; reg 8:0q; always (posedge _50mhzin) /3000*2*200hz=1

13、2mhz if (count=value) /binary counter(029999) begin count = 15d0; _1000hzout = _1000hzout; 11 end else count = count + 1b1; always (posedge _1000hzout) /500*2*1hz=1000hz if(q=9d499) begin q=9d0;_1hzout=_1hzout; end else q=q+1b1; endmodule 3、说明 由于代码编写时频率过高,以致 quartusii 软件无法进行仿真,只能的到 编译通过的结果。 4、经过编译后得

14、到的符号 (2)7 段段 led 数码管显示译码模块数码管显示译码模块 1、原理说明 在七段数码管显示部分,应该注意,在我们所用的实验开发板上我们的 七段数码管的七段码的分布和顺序与平时所接触的不同。图 3 所示为实验板 上 7_seg 结构,这一结构在我们进行七段译码的时候必须注意: the 4-digit 7-seg displays are sharing the same data bus (oseg77:0). each digit has its own enable pin (ocom3:0). you can display a desired number on any on

15、e of the digits by sending the display data to the shared data bus and enable the digits corresponding ocom pin (by driving low). the segments illuminate if the 12 cyclone pin to which they are connected drives low; they appear unlit when the connected cyclone device pin drives high. 若在 fpga 中实现 4 位

16、数字的显示,采用动态扫描方式来实现,该数码管 是共阳极的。4 位数字 7 段显示共用相同的数据总线 oseg77:0,每一个数码 管都有自己的使能引脚,即 ocom3:0。你可以让向 ocom3:0中的对应位送 低电平使数码管工作,实验用的 fpga 开发板数码管的引脚时低电平驱动的。 而每一个数码管的的显示数字具体显示和上图的 oseg 的具体位置有关, 具体是: 4h1: oseg = 8b11010111; / 显示 1 4h2: oseg = 8b01001100; / 显示 2 4h3: oseg = 8b01000101; / 显示 3 4h4: oseg = 8b10000111

17、; /显示 4 4h5: oseg = 8b00100101; /显示 5 4h6: oseg = 8b00100100; /显示 6 4h7: oseg = 8b01010111; /显示 7 4h8: oseg = 8b00000100; /显示 8 4h9: oseg = 8b00000111; /显示 9 4ha: oseg = 8b00000110; /显示 a 4hb: oseg = 8b10100100; /显示 b 4hc: oseg = 8b00111100; /显示 c 4hd: oseg = 8b11000100; /显示 d 图 3 fpga 上的 led 数码管 13

18、 4he: oseg = 8b00101100;/显示 e 4hf: oseg = 8b00101110; /显示 f 4h0: oseg = 8b00010100; /显示 0 (2)yima.v 代码 module yima(q,dm);/译码显示 input 3:0q; output 7:0 dm; reg 7:0 dm; always (q)/把相应的 bcd 码翻译成数码管段码 case(q) 4d0:dm=8hc0; 4d1:dm=8hf9; 4d2:dm=8ha4; 4d3:dm=8hb0; 4d4:dm=8h99; 4d5:dm=8h92; 4d6:dm=8h82; 4d7:d

19、m=8hf8; 4d8:dm=8h80; 4d9:dm=8h90; default:dm=8ha3; endcase endmodule 注意,人的眼睛适合观察频率在 350-400hz,此时人眼的有视觉暂留现象,可 以让人觉得 2 个数码管在一直显示。所以数码管的扫描频率也应在这个频率以 上。 (3)利用 verilog 产生的符号 14 (3)交通灯控制器模块)交通灯控制器模块 1、原理说明 利用有限状态机 fsm 定义主干道和支干道的灯的状态,采取一个独立的 always 模块执行,然后在模块中加入 s 限制条件,同时输出两个 3 位的二进制数用于 向实验板的 led 形象表示两个方向的

20、灯,共使用 6 个;输出两个 8 位的时间 bcd 码,接到 yima 模块的 dm7.0,用于显示时间。 2、kongzhi.v 代码 module kongzhi(s,reset,clk,st,t05,t30,t60,hg,hy,hr,fg,fy,fr);/主控模块 input reset,clk,t05,t30,t60,s;/复位,1 秒时钟,5 秒 30 秒 60 秒信号输入, 传感器信号输入 output st;/定时器清零信号 output hg,hy,hr,fg,fy,fr;/主干道红,黄,绿 ;支干道红,黄,绿 ; reg hg,hy,hr,fg,fy,fr; reg1:0cu

21、rrentstate,nextstate;/当前状态,下一状态 reg st; parameter s0=2b00,s1=2b01,s2=2b11,s3=2b10;/用格雷码定义的四个状态 always(posedge clk or negedge reset) begin if(reset) currentstate=s0;/异步清零 else currentstate=nextstate; 15 end always(s or currentstate or t05 or t30 or t60) begin case(currentstate) s0:begin nextstate=(t6

22、0st=(t60end /*当 (t60st=(t05)?1:0;end /计时 5 秒到达下一 状态 s2,并发出计时器清零信号。 s2:begin nextstate=(s)|(t30st=(t30|s)?1:0;end /*当(s) |(t30st=(t05)?1:0;end /计时 5 秒到 达下一状态 s1,并发出计时器清零信号。 endcase end always (currentstate)/四个状态的亮灯情况 begin case(currentstate) s0:begin hg,hy,hr=3b011;fg,fy,fr=3b110;end/主干道绿灯,支干 道红灯。 s1

23、:begin hg,hy,hr=3b101;fg,fy,fr=3b110;end/主干道黄灯,支干 道红灯。 s2:begin hg,hy,hr=3b110;fg,fy,fr=3b011;end/主干道红灯,支干 道绿灯。 s3:begin hg,hy,hr=3b110;fg,fy,fr=3b101;end/主干道红灯,支干 16 道黄灯。 endcase end endmodule 3、仿真后生成的模块 4.按键消抖模块 module xiaodou(clk,k1,k1_out);/按键消抖模块 input clk; input k1; output k1_out; reg dout1,do

24、ut2,dout3; assign k1_out=(dout1|dout2|dout3);/当取到的三个信号都为低电平(有按键按下), 按键按下有效 always(posedge clk) begin dout1=k1; dout2=dout1; dout3=dout2; end endmodule 17 仿真后生成的模块 5.计时器模块 module dingshiqi(reset,clk,st,t05,t30,t60,timerh,timerl);/计时器模块 input reset,clk,st;/复位,1 秒时钟,计时器清零 output t05,t30,t60;/5 秒 30 秒 6

25、0 秒信号 reg 3:0timerh,timerl; output 3:0timerh,timerl;/时间的高位和低位 always(posedge clk or negedge reset) begin if(reset) timerh,timerl=8b0;/按键清零 else if(st) timerh,timerl=8b0;/当有计时器清零信号的时候清零时间 else if(timerh=5) end else if(timerl=9) /低位为 9 是下一脉冲高位加 1 低位置 0 begin timerh=timerh+1;timerl=0;end else begin tim

26、erh=timerh ; timerl=timerl+1;end end assign t05=(timerh=0) assign t30=(timerh=2) assign t60=(timerh=5) endmodule 18 图 6 top 总图 仿真后生成的模块 (4)top 总图总图 五、绑定引脚,下载测试五、绑定引脚,下载测试 (1)绑定引脚)绑定引脚 _50mhz_50mhz inputinputpin_17pin_17 b1b1outputoutput pin_94pin_94 19 b0b0 outputoutputpin_96pin_96 dm7dm7 outputoutp

27、utpin_113pin_113 dm6dm6 outputoutputpin_79pin_79 dm5dm5 outputoutputpin_58pin_58 dm4dm4 outputoutputpin_55pin_55 dm3dm3 outputoutputpin_86pin_86 dm2dm2 outputoutputpin_87pin_87 dm1dm1 outputoutputpin_92pin_92 dm0dm0 outputoutputpin_93pin_93 fgfg outputoutput pin_65pin_65 frfr outputoutput pin_70pin_70 fyfy outputoutput pin_69pin_69 hghg outputoutput pin_73pin_73 hrhr outputoutput pin_60pin_60 hyhy outputoutput pin_74pin_74 resetresetinputinput pin_43pin_43 s s inputinput pin_48pin_48 利用 quartusii 的 assignmenteditor 选项,按照上表进行引脚的绑定,注 意要在工程的 setting 选项中选择芯片类型 ep2c5t1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论