1系统总体设计

把由5OM的有源晶振产生的现场可编程逻辑器件FPGA 的系统时钟输入到分频模块,经分频模块分频产生频率为1Hz的时钟脉冲,作为控制定时模块、控制模块、紧急模块、计数模块的时钟信号,然后再由定时模块来控制紧急模块和控制模块,按照交通管理规则控制交通工作状态的切换,最后,由系统时钟和计数模块以及控制模块来共同控制计数器控制模块,计数器的时钟为lHz,再把计数器控制模块送出的BCD码送给译码器译码后,送给数码管显示各方向直行绿灯的倒计时。

图2.1.1

由系统开发需求,我们可以大致规划出系统的控制流程:交通灯控制模块将需要显示的时间数据连接到数码管显示模块,同时将状态信号连接到数码管控制模块,然后数码管显示模块和数码管控制模块驱动交通信号灯外设工作。系统框图如图2.1.1所示。

在分析如下需求状态后,可以得出:

状态1:主干道方向绿灯29s,支路红灯,

状态2:主干道方向黄灯3s, 支路红灯,

状态3:主干道左转方向绿灯14s,支路红灯,

状态4:主干道方向黄灯3s, 支路红灯,

状态5:支路方向绿灯20s,主干道红灯,

状态6:支路方向黄灯3s, 主干道红灯,

救援车紧急通行状态

状态7:主干道和支路都是红灯10s,之后恢复状态1循环进行。

特殊状态1:道路特殊情况时,主干道和支路都是黄灯,数码管为00,不改变。

特殊状态2:夜间黄灯闪烁。

2. 十字路口红绿灯功能设计

功能说明:该十字路口交通灯控制器用于主干道与支道公路的交叉路口,要求是优先保证主干道的畅通,因此,设计要求如下:

设计一个用于十字路口的交通灯控制器,能显示十字路口东西、南北两个方向的红、黄、绿的指示状态;

1.具有倒计时的功能,用两组数码管作为东西和南北方向的倒计时显示,主干道直行(绿灯)29秒后,左转(绿灯)14秒;支干道直行(绿灯)20秒,在每次绿灯变成红灯的转换过程中,要亮黄灯3秒作为过渡。

2.只考虑直行和左转车辆控制信号灯,右转车辆不受信号灯控制,南北向车辆与东西向车辆交替方向,同方向等待车辆应先方向直行车辆而后放行左转车辆。

3.救援车紧急通行模块是方便救护车和消防车快速通行,所以主干道和支路都为红灯。

3.主控制器模块原理上是一个状态机,依据要求设计,设计出信号灯点亮规律的状态转换表,其中0表示灭,1表示亮,状态表显示了信号灯在运行过程中每个状态应该持续的时间,以及状态之间的转换顺序。依据分频计数器,当分频计数器的时钟达到了对应时间则切换为下一个状态,就可以实现控制信号灯的亮灭。

本次设计较复杂,如果不采用状态机的方式实现起来会非常繁琐,所以在功能中采用状态机的方式实现。

状态1:主干道方向绿灯29s,支路红灯,

状态2:主干道方向黄灯3s, 支路红灯,

状态3:主干道左转方向绿灯14s,支路红灯,

状态4:主干道方向黄灯3s, 支路红灯,

状态5:支路方向绿灯20s,主干道红灯,

状态6:支路方向黄灯3s, 主干道红灯,

然后又重新进行状态1循环进行

救援车紧急通行模块

状态7:主干道和支路都是红灯10s,之后恢复状态1循环进行。

4.的verilog实现

module color_led(

input[3:0] led,

output reg green,red,yellow,zuo);

always @(*)

begin

case(led)

4'b1000: begin green<=1;yellow<=0;red<=0;zuo<=0;end

4'b0100: begin green<=0;yellow<=1;red<=0;zuo<=0;end

4'b0010: begin green<=0;yellow<=0;red<=1;zuo<=0;end

4'b0011: begin green<=0;yellow<=0;red<=1;zuo<=1;end

default: begin green<=1;yellow<=0;red<=0;zuo<=0;end

endcase

end

endmodule

说明:对红绿黄灯进行初始化,有四种状态,其中高电平代表灯亮,低电平为灯灭。

状态机部分代码:

case(state)

S0:begin

dig_zhulu_m1<=dig_zhulu_m1-1;Dig_zhilu_n1<=Dig_zhilu_n1-1;

if(dig_zhulu_m1==0) begin dig_zhulu_m1<=9;dig_zhulu_m2<=dig_zhulu_m2-1;end

if(dig_zhulu_m1==0 && dig_zhulu_m2==0) begin dig_zhulu_m1<=3;dig_zhulu_m2<=0;state<=S1;end

if(Dig_zhilu_n1==0) begin Dig_zhilu_n1<=9;Dig_zhilu_n2<=Dig_zhilu_n2-1;end end

S1:begin

dig_zhulu_m1<=dig_zhulu_m1-1;Dig_zhilu_n1<=Dig_zhilu_n1-1;

if(dig_zhulu_m1==0 && dig_zhulu_m2==0) begin dig_zhulu_m1<=4;dig_zhulu_m2<=1;end

if(Dig_zhilu_n1==0 && Dig_zhilu_n2==0) begin Dig_zhilu_n1<=0;Dig_zhilu_n2<=1;state<=S2;end

end

S2:begin

dig_zhulu_m1<=dig_zhulu_m1-1;Dig_zhilu_n1<=Dig_zhilu_n1-1;

if(dig_zhulu_m1==0) begin dig_zhulu_m1<=9;dig_zhulu_m2<=dig_zhulu_m2-1;end

if(Dig_zhilu_n1==0) begin Dig_zhilu_n1<=9;Dig_zhilu_n2<=Dig_zhilu_n2-1;end

if(Dig_zhilu_n1==0 && Dig_zhilu_n2==0) begin Dig_zhilu_n1<=3;Dig_zhilu_n2<=0;state<=S3;end

end

说明:该部分为实现红绿灯,左转功能的变化,主要利用了减法器原理,初始主干道方向绿灯29s,支路红灯,然后黄灯闪烁,当数码管为00时状态跳到S1,主干道左转绿灯赋值14s,然后是支路赋值20Ss依次循环,

救援车紧急通行模块

always @(posedge clk1hz,negedge rst_n,negedge M,negedge N,negedge shan)

begin

if(!M)begin state<=S6;dig_zhulu_m1<=9;dig_zhulu_m2<=0;Dig_zhilu_n1<=9;Dig_zhilu_n2<=0;end

S6:begin dig_zhulu_m1<=dig_zhulu_m1-1;Dig_zhilu_n1<=Dig_zhilu_n1-1;

if(dig_zhulu_m1==0 && dig_zhulu_m2==0) begin dig_zhulu_m1<=9;dig_zhulu_m2<=2;end

if(Dig_zhilu_n1==0 && Dig_zhilu_n2==0) begin Dig_zhilu_n1<=3;Dig_zhilu_n2<=3;state<=S0;end end

S6: begin light_zhulu<=4'b0010;

Light_zhilu<=4'b0010;end

说明:代码段为M判断按钮状态,当按下M按钮时执行代码段状态机S6,主干道和支路都变为红灯,倒计时10s后恢复为状态1.

3 十字路口红绿灯,左转,救援车紧急通行模块

1、功能测试设计的测试与分析

我主要是测试红绿黄灯,左转能否正常亮和跳转下一个状态,所以我先给clk和复位信号初值为0,然后经过#10单位时间后复位为1,交通灯开始工作,#10000时间按下按键M后进入救援车紧急通行模块。

clk=0;

rst_n=0;

#10 rst_n=1;

#10 M=1;

#10 N=1;

#10 shan=1;

//#10 M=0;

#10000 M=0;

#10010 M=1;

#10520 rst_n=0;

#10530 rst_n=1;

#11000 N=0;

#11010 N=1;

#11050 shan=0;

#11060 shan=1;

// --> end

$display("Running testbench");

end

always #10 clk=~clk;

2、modelsim仿真和分析

仿真结果和分析

分析:开始主干道直行(绿灯)29秒后,亮红灯,之后左转(绿灯)14秒变为3s黄灯;支干道直行(绿灯)20秒,在每次绿灯变成红灯的转换过程中,要亮黄灯3秒作为过渡。仿真结果正确

FPGA智能交通灯控制器系统系统设计相关推荐

  1. CASE_01 基于FPGA的交通灯控制器

        该系类博客序言和资源简介可浏览该博客:PREFACE FPGA经典案例序言 快速了解该系列博客的内容与可用 资源. 目录 1 案例引导 1.1 硬件设计初窥 1.2 逻辑设计初窥 2 模块级逻 ...

  2. 微型计算机k80,微型计算机原理与接口技术课程设计报告智能交通灯控制系统设计(15页)-原创力文档...

    微型计算机原理与接口技术课程设计报告智能交通灯控制系统设计 摘 要 根据十字路口交通灯的控制要求,采用PLC 设计实现正常交通的时序控制,通过传感器完成对交通异常状况的智能判别及处理.在系统的设计中, ...

  3. 基于数字电路交通灯信号灯控制系统设计-基于单片机病房温度监测与呼叫系统设计-基于STM32的无线蓝牙心电监护仪系统设计-基于STM32的智能蓝牙温控风扇控制设计-基于STM32的智能温室控制系统设计

    1617基于数字电路交通灯信号灯控制系统设计(仿真电路,论文报告)  摘  要:交通灯控制系统在城市交通控制中发挥着重要的作用,本次课程设计就是以城市交通灯控制系统为背景的,主要通过运用学过的数字电路 ...

  4. 基于FPGA的交通灯系统

    基于FPGA的交通灯系统 一.实验目的 1.学习和掌握将实践中的要求抽象为逻辑需求关系的方法. 2.掌握将小型数字系统划分为控制器和处理器的方法. 3.掌握依据ASM图设计小型数字系统的方法 4.掌握 ...

  5. Python基于OpenCV的智能交通灯系统(南北车流量比例)

    1.研究背景: 在传统城市道路交通信号灯的应用过程中,存在专业技术人员较缺乏.项目投入资金少.信号灯故障抢修较困难等问题,为城市居民生活与出行带来极大不便.对此,文章进行深入研究,分析了城市道路智慧交 ...

  6. Python基于OpenCV的智能交通灯系统(南北车流量比例)[源码&部署教程]

    1.研究背景: 在传统城市道路交通信号灯的应用过程中,存在专业技术人员较缺乏.项目投入资金少.信号灯故障抢修较困难等问题,为城市居民生活与出行带来极大不便.对此,文章进行深入研究,分析了城市道路智慧交 ...

  7. 基于fpga的交通灯的设计

    课题一:交通灯控制设计 1.课程设计的目的与要求 1.1目的 以FPGA为核心,设计一个交通灯控制器,每个路口都有红.黄.绿三盏灯.该交通信号灯控制器由一条车道A和一条车道B汇合成十字路口,在每个入口 ...

  8. matlab的交通灯信号识别,交通灯识别系统.docx

    摘要:近些年来随着城市化建设的迅速加快,机动车数量增加迅速普及到人们的生活中,机动车辆的行驶安全已经成为全世界关注的热点.然而由于道路状况的复杂性与交通信息的多样性使得驾驶员在行驶的过程中注意力不容易 ...

  9. eda交通灯控制器波形输入_基于VHDL的交通灯控制器设计

    应用VHDL语言设计数字系统,大部分设计工作可在计算机上完成,从而缩短系统开发时间,提高工作效率.下面介绍基于VHDL设计交通灯控制器的一种方案,并给出源程序和仿真结果. 1 系统功能与要求 交通灯控 ...

最新文章

  1. POJ - 3160 Father Christmas flymouse tanjar缩点构图+dfs
  2. 最长下降/上升子序列问题
  3. php 元素插入数组指定位置,数组任意位置插入元素,删除特定元素的实例
  4. 7-39 魔法优惠券 (25 分)(思路加解释 用容器做的)加油兄弟们
  5. mysql简单常用语句汇总
  6. python保存列表到json_将json数据保存到python列表中时出现问题
  7. Java 1.1.7 String API (!!!)
  8. 推荐一款接口自动化测试数据提取神器 JSonPath
  9. 做完自动化测试,但别让不会汇报毁了你...
  10. camerax_Android CameraX OpenCV图像处理
  11. 一个空格惹的祸:服务器端接收不到前端采用问号传参方式传过来的值
  12. 网站域名过户查询_过期域名查询
  13. 智能制造在美国、德国、日本有什么不同
  14. ipad文献管理软件_ipad和电脑双向同步文献的奥秘
  15. python数据挖掘入门与实践-第一章-用最简单OneR算法对Iris植物分类
  16. 南卡315打假!揭露山寨耳机“十宗罪”!
  17. 转自Avan_Lau
  18. 杨辉三角——C语言实现
  19. 贴片电阻具有哪些特性?
  20. P3964 松鼠聚会(切比雪夫距离模板)

热门文章

  1. 2017暑假集训总结
  2. Selenium 国内镜像源加速下载
  3. 一年内卖旧房买新房可退税 夫妻财产如何操作
  4. win7没有显示wifi连接到服务器,win7系统找不到wifi无线连接,只显示宽带连接,怎
  5. 病毒考古:20年前全球首个病毒曾感染4500万台计算机,创建人如今在马尼拉修电话?...
  6. 俞敏洪的大学演讲:生活其实很美好
  7. 代码统计---使用SourceCounter
  8. 目前国内主流的人事管理系统有哪些?
  9. CISSP第二章:资产安全知识点
  10. linux用5块磁盘组rid5,Raid5需要几块硬盘Raid10需要几个硬盘?服务器如何选择raid?使用raid几最好?...