欢迎来到天天文库
浏览记录
ID:23122901
大小:237.51 KB
页数:21页
时间:2018-11-04
《fpga课程设计交通灯》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、目录1.设计思路11.1设计思想11.2系统功能与要求11.3总体设计22.主要模块设计程序42.1时基脉冲发生模块42.2技术及红绿灯控制模块52.3译码模块92.4主程序113.所实现功能说明143.1实现功能143.2仿真波形144.所设计原理图及故障分析155.心得体会17参考文献18附录1元件清单19附录2管脚20201.设计思路1.1设计思想 交通灯是城市交通监管系统的重要组成部分,对于保证机动车辆的安全运行,维持城市道路的顺畅起到了重要作用。目前很多城市交叉路口的交通灯实行的是定时控制,灯亮的时间是预先设定好的,在时间和空间方面的应变性能
2、较差,一定程度上造成了交通资源的浪费,加重了道路交通压力。本文在EDA技术的基础上,利用FPGA的相关知识设计了交通灯控制系统,可以根据实际情况对灯亮时间进行自由调整,整个设计系统通过Max+PlusⅡ软件进行了模拟仿真,并下载到FPGA器件中进行硬件的调试,验证了设计的交通信号灯控制电路完全可以实现预定的功能,具有一定的实用性。1.2系统功能与要求交通灯控制器控制两个主干道交叉路口的交通,路口车辆多,直行信号、左转弯信号分开显示,a,b两个主干道的通行时间相等,其中指示直行的绿灯亮30s,指示左转弯的绿灯亮12s,绿灯变至红灯时,黄灯亮3s,以便于车辆
3、能停在停车线内,红灯信号的最后3s相应的黄灯也同时亮,以便提示驾驶人员准备起步。在两个主干道路口都配备传感器用来检测有无车辆通行。当两个主干道都有车辆时,自动处于主干道a绿灯,主干道b红灯的状态,然后轮流切换通行。当主干道a无车辆时,自动处于主干道b绿灯,主干道a红灯的状态;反之亦然,以提高通行效率。20所设计的交通信号灯控制电路,主要适用于在两条干道汇合点形成的十字交叉路口,路口设计两组红绿灯分别对两个方向上的交通运行状态进行管理。交通灯的持续闪亮时间由键盘输入控制。灯亮规则为:当B方向的红灯亮时,A方向对应绿灯亮,由绿灯转换成红灯的过渡阶段黄灯亮,即
4、B方向红灯亮的时间等于A方向绿灯和黄灯亮的时间之和。同理,当A方向的红灯变亮时,B方向的交通灯也遵循此规则。各干道上安装有数码管,以倒计时的形式显示本道各信号灯闪亮的时间。当出现特殊情况时,各方向上均亮红灯,倒计时停止。特殊运行状态结束后,控制器恢复原来的状态,继续运行。图1十字路口示意图1.3总体设计首先由晶振产生出发信号,由控制器处理成1HZ的时钟,利用此时钟进行计数,通过判断计数的值来控制交通灯的亮灭。通过每种灯亮的时间总数与计数值比较得到数码管应该显示的数值,利用分位程序将其分成十位和个位。通过译码电路来实现数码管的显示。本实验所使用的芯片为EP
5、F10K10LC84-4。整个系统主要由计数模块、控制模块、分频模块、分位模块以及显示电路构成。其中分频模块主要将系统输入的基准时钟信号转换为120Hz的激励信号,驱动计数模块和控制模块工作。控制模块根据计数器的计数情况对交通灯的亮灭及持续时间进行控制,并通过分位电路将灯亮时间以倒计时的形式通过数码管显示出来。由设计任务要求可知,输入部分有:CLK时钟频率输入,可由实验板上直接提供,为准确确定时间长度,选择High挡的1MHz高平信号;无车状态按键KEY,当按一下键,表示路上无车,信息学院路道路显示红灯,东风路显示绿灯。有车时两路红绿交替。输出部分有:东
6、西方向和南北方向各使用4个LED显示,红黄绿各代表红黄绿灯,绿灯和另一个红灯同时亮时为左转时间;东西方向和南北方向计时均为2位数,共需要4个LED七段数码管显示。Time信号输出显示的内容。Clkr1g1t1Keyr2g2t2time1[4..0]time2[4..0]CLK按键数码管显示东风路交通灯信息学院路交通灯译码图2总体设计图202.主要模块设计程序2.1时基脉冲发生模块在红绿灯交通信号系统中,大多数的情况是通过自动控制的方式指挥交通的。因此,为了避免意外事件的发生,电路必须给出一个稳定的时钟才能让系统正常的工作。因此时钟发生模块最主要的功能就是
7、产生一些稳定的输出信号,并将其用做后面几个电路的使能控制与同步信号。通过编程实现1Hz脉冲的产生,程序如下所示。LibraryIEEE;useIEEE.std_logic_1164.all;ENTITYCLKGENISPORT(CLK:INSTD_LOGIC;CLK1:OUTSTD_LOGIC);ENDCLKGEN;ARCHITECTUREbehavOFCLKGENISSIGNALCNTER:INTEGERRANGE0TO25000000;BEGINPROCESS(CLK)BEGINIFCLK'EVENTANDCLK='1'THENIFCNTER=250
8、00000THENCNTER<=0;ELSECNTER<=CNTER+1;END
此文档下载收益归作者所有