课程设计论文基于FPGA的交通灯控制器.doc
《课程设计论文基于FPGA的交通灯控制器.doc》由会员分享,可在线阅读,更多相关《课程设计论文基于FPGA的交通灯控制器.doc(15页珍藏版)》请在三一办公上搜索。
1、 基于FPGA的交通灯控制器课程设计学生姓名: 王军峰 学 号: 04076026 专业班级: 集成电路0701 指导教师: 刘有耀 2010 年 7月 2日目 录 一、 设计任务:3二、 题目分析与整体构思:3三、 硬件电路设计4四、 验证仿真 6五、 程序设计8六、 验证设计13七、 故障及问题分解 14八、 心得体会:14九、参考文献:15一、 设计任务(一)有一条主干道和一条支干道的汇合点形成十字交叉路口,主干道为东西向,支干道为南北向。为确保车辆安全,迅速地通行,在交叉道口的每个入口处设置了红,绿,黄3色信号灯。(二)要求:(1)主干道绿灯亮时,支干道红灯亮,反之亦然,两者交替允许通
2、行,主干道每次放行45s,支干道每次放行40s。每次由绿灯变为红灯的过程中,黄灯亮5s作为过渡。(2)能实现正常的倒计时显示功能。(3)能实现总体清零功能:计数器由初始状态开始计数,对应状态的指示灯亮。(4)能实现特殊状态的功能显示:进入特殊状态时,东西、南北路口均显示红灯状态。二、题目分析与整体构思(一)该交通灯控制器应具备的功能主干道绿灯45sec,支干道绿灯40sec,黄灯5sec过渡。同时用数码管指示当前状态(红、黄、绿)剩余时间。另外,设计一个紧急状态和复位状态,当紧急状态出现时,两个方向都禁止通行,指示红灯;紧急状态解除后,指示紧急状态前的时间。当复位状态出现时,整个系统恢复起始状
3、态。 (二)实现方案从题目中计数值与交通灯的亮灭的关系如图(1)所示。当主干道绿灯40秒和5秒黄灯过渡时,支干道必须禁止通行,即支干道红灯亮40+5=45秒;当支干道由红灯转为绿灯时,支干道亮40秒绿灯和5秒黄灯过渡,此时主干道红灯应亮40+5=45秒。 0 40s 45s 90s 绿灯亮 黄灯亮 红灯亮 主干道时间 支干道红灯亮 绿灯亮 黄灯亮 45s 85s 90s 图1图(2)为各个模块组成图,显示器模块其功能是输出主干道和支干道的倒计时数。该模块输入为1KHZ的动态扫描时钟信号和4个09的十进制数;输出由LED七段数码管显示输入的4位十进制数。显示模块 控制器分频器50Mflag re
4、tr1 y1 g1 r2 y2 g2 红绿灯显示 图2三硬件电路设计动态LED显示的设计方法是将不同LED模块的所有的LED的驱动端一对一地连接到一起,而将其公共极(阴极或阳极)分别由不同的IO口来驱动(主要针对7段码和LED点阵模块)。动态显示方式主要是出于简化电路和产品成本考虑在大多数场合都可以达到用户要求。动态显示虽然占用的CPU时间多,但使用的硬件少,能节省线路板空间。另外,本设计显示需要使用的是4个七段显示数码管。在计时结果显示电路中,七段数码管显示部分是一个不容忽视的环节,如若处理不得当,可能引起系统功率过大,产生散热问题,严重时甚至会导致系统的烧毁。为了解决好以上问题,下面就对七
5、段数码管显示电路做简要的分析和介绍。通常点亮一个LED所需的电流是550 mA,通电的电流愈大,LED的亮度愈高,相对的也会使其寿命缩短。一般以10 mA的导通电流来估算它所必须串联的阻值,其计算方式参考如图1所示。图1 单个LED的串接电阻计算方式七段显示器可分为共阳极、共阴极型两种,它们都可以等效成8个LED的连接电路,其中如图2就是共阴极型七段显示器的等效电路和每节LED的定义位置图。 因此,若要点亮七段显示器以实现一个3的数字符号并不点亮P点LED,则输入七段显示码是“10110000”(低电平点亮),而且这个码字的每个位所对应位置和如图2相同,顺序是“pgfedcba”。依此类推可得
6、到09的显示码。 图2 共阴极型七段显示器的LED位置定义和等效电路由于本设计的目标是设计倒计时显示系统,要求显示4个09的数字,依照图1的计算方式,同时点亮个七段显示器的8节LED,结果将需电流为10 mA880 mA。若再进步同时点亮4个七段显示器,这时所需电流为80 mA4=320mA。这对于一般的电子电路来说,是一个不小的电流,不但CPLDFPGA无法负荷这样的电流驱动,而且这个功率也太大,散热也是问题,电路容易被烧毁。因此显示电路部分不能直接实现各个计时结果同时显示,只能另外通过一个扫描电路对计时输出进行逐个扫描,使七段数码管以两个为一个组,逐个进行显示。只要每个扫描频率超过人的眼睛
7、视觉暂留频率24 Hz,就可以达到点亮两个七段数码管,却能享有所有七段数码管同时显示的视觉效果,而且显示也不致闪烁抖动,从而间接实现计时结果同时显示。故输入除了四个十进制数外,还需要1KHZ的时钟信号进行扫描显示。对于输出,则需要设置一个片选信号(高电平选中),如下图所示要点亮4个数码显示灯则需要4位的片选信号,即如右图所示的ledout30,在1KHZ的时钟频率扫描下即可显示出主干道和支干道的倒计时数。四、验证仿真1.分频器的仿真:由于分频器将50MHZ的时钟信号分频为1HZ的时钟信号仿真时耗时大,故仿真时采用100ns时钟并进行分频,End time设为100ms,耗时5min左右。仿真结
8、果如下: 仿真波形1仿真波形2仿真波形32.结果仿真:主干道显示45秒支干道显示40秒时,主干道显示44秒支干道显示39秒时,主干道显示43秒支干道显示38秒时,主干道显示42秒支干道显示37秒时,经功能仿真测试,符合预期结果,程序设计正确。五、程序设计1.端口声明:module tra (clk,ret,flag,led0,led1,led2,led3,red1,yellow1,green1,red2,yellow2,green2);input clk,ret,flag;output 7:0 led0,led1,led2,led3;output red1,yellow1,green1,red
9、2,yellow2,green2; wire clk,ret,flag;reg red1,yellow1,green1,red2,yellow2,green2;reg 7:0 led0,led1,led2,led3;wire 3:0 h_sec1,l_sec1,h_sec2,l_sec2;reg 1:0 state;reg 5:0 light;reg 7:0 num1,num2;reg 25:0 count=26b0;reg 15:0 mount;reg clk_1hz,en,en1,en2;2.分频模块:分频器实现的是将高频时钟信号转换成低频的时钟信号,用于触发控制器和显示器。,因为开发板上
10、的时钟比较大,如果要想观察到结果必须对它进行分频,在分频的时候由于开发板上的时钟是50M的所以采用了一个32的计数器,当时钟的上升沿到来的时候判断计数器是不是为 500000,如果是的话清零,否侧加一然后在进行判断。分频器是将50MHZ的时钟信号分频成1HZ的时钟信号,程序代码如下:always (posedge clk )if(count26b 01011111010111100001000000) count=count+1;else begin count=0; clk_1hz=clk_1hz;end3.交通灯控制模块:两个方向各种灯亮的时间能够进行设置与修改,此外假设A方向是主干道,车
11、流量最大,因此A方向通行的时间应该比B方向长。A方向和B方向的红,黄,绿分别用red1,yellow1,green1;red2,yellow2, green2来表示。每个方向四种灯按以下顺序点亮,并不断循环:红灯黄灯绿灯。并且每个方向红灯亮的时间应该与另一方向绿,黄灯亮的时间相等。黄灯所起的作用是用来在绿灯后进行缓冲,以提醒行人该方向马上要禁止了。程序代码如下:assign h_sec1,l_sec1,h_sec2,l_sec2=num1,num2;always (posedge clk_1hz or negedge ret)if (!ret)beginstate=2d0;red1,yello
12、w1,green1,red2,yellow2,green2=6b010010;num1=8b00000000;num2=8b00000000;en=1b0;en1=1b1;en2=1b1;endelsebegin if(!flag) begin if(en) begin num1,num2=mount; red1,yellow1,green1,red2,yellow2,green2=light; en=1d0; en1=1b1; end else case(state) 2d0: begin red2=1b0; red1=1b1; yellow1=1b0; yellow2=1b0; green
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 论文 基于 FPGA 交通灯 控制器
链接地址:https://www.31ppt.com/p-4868764.html