博客
关于我
基于fpga的交通灯的设计
阅读量:300 次
发布时间:2019-03-01

本文共 1966 字,大约阅读时间需要 6 分钟。

课题一:交通灯控制设计

1.课程设计的目的与要求

1.1目的

以FPGA为核心,设计一个交通灯控制器,每个路口都有红、黄、绿三盏灯。该交通信号灯控制器由一条车道A和一条车道B汇合成十字路口,在每个入口处设置红、绿、黄三色信号灯,红灯亮禁止通行,绿灯亮允许通行,黄灯亮则给行驶中的车辆有时间停在禁行线外。用红、绿、黄发光二极管作信号灯。

1.2要求

(1)东西、南北两个方向的信号灯必须交替工作且两个方向通行时间不同;

(2)显示采用LED光柱或数码管倒计时的方式。

(3)遇有紧急情况可人为将两个方向都置为红灯。

(4)每个路口用2个七段数码管倒计时显示。

1.3分工

马浩宁:电路设计、程序调试、画PCB

张晓涵:刻板、焊电路、写论文

王春燕:查找资料

FPGA模块方案论证及选择

各模块端口及信号连接如下图所示:

在这里插入图片描述

由上图可知,FPGA部分包括四个模块,顶层模块(top_traffic)、交通灯控制模块(traffic_light)、数码管显示模块(seg_led)、led灯控制模块(led)。在顶层模块中完

成对其它三个模块的例化,并实现各模块之间的数据传递。

顶层模块(top_traffic):顶层模块完成了对其它三个子模块的例化、实现了子模块间

的信号连接、并将led灯和数码管的驱动信号输出给外接设备(交通信号灯外设)。

交通灯控制模块(traffic_light):交通灯控制模块是本次实验的核心代码,这个模块

控制信号灯的状态转换,将实时的状态信号state[1:0]输出给led灯控制模块(led),同时将
东西和南北方向的实时时间数据ew_time[5:0]和sn_time[5:0]输出给数码管显示模块
(seg_led)。

数码管显示模块(seg_led):接收交通灯控制模块传递过来的东西和南北方向的实时时间数据ew_time[5:0]和sn_time[5:0],并以此驱动对应的数码管,将数据显示出来。

led灯控制模块(led):根据接收到的实时状态信号state[1:0],驱动东西和南北方向的led发光。

原理设计

3.1基本原理

点FPGA开发板上左边的P6扩展口可以用来外接交通信号灯扩展模块,交通信号

灯扩展模块的原理图如图 38.3.1所示。

在这里插入图片描述

图 38.3.1 交通信号灯原理图

由上图可知,交通信号灯扩展模块四个方向共12个LED灯,而我们使用6个LED控制信号来

驱动12个LED灯,这是因为东西方向或者南北方向LED灯的亮灭状态总是一致的,所以我们将东西方向或者南北方向颜色相同的LED灯并联在一起,这样设计的好处是减少了交通信号灯扩展模块LED控制信号的引脚。

上图中四个共阳型数码管分别对应四个路口,每个路口用两位数码管显示当前状态的剩余

时间。我们知道,在十字路口中,东西方向或者南北方向数码管显示的时间总是一样的。以东西方向为例,正因为这两个方向显示的时间一致,所以这两个方向的数码管,它们的十位可以用同一个位选信号来控制,个位用另一个位选信号来控制,这样的话,就可以实现两个位选信号控制东西方向共4位数码管的亮灭,南北方向的数码管同理。这样设计的好处是减少了交通信号灯扩展模块位选信号的引脚。

数码管由PNP型三极管驱动,当三极管的基极为低电平时,数码管相应的位被选通,所以交通信号灯扩展模块的位选信号是低电平有效的。

3.2系统组成框图

交通灯控制模块将需要显示的时间数据连接到数码管显示模块,同时将状态信号连接到led灯控制模块,然后数码管显示模块和led灯控制模块驱动交通信号灯外设工作。系统总体框架图如图

38.4.1所示,
在这里插入图片描述

3.3单元电路设计

3.3.1 FPGA最小系统

FPGA最小系统包括:FPGA芯片、下载电路、外部时钟、复位电路和电源。

如果使用NIOS II软嵌入式处理器还要包括SDRAM和Flash。

图3-3 FPGA最小系统在这里插入图片描述

3.3.2 数码管显示电路

采用简单的4组2位共阳极数码管数码管由PNP型三极管驱动,当三极管的基极为低电平时,数码管相应的位被选通,所以交通信号灯扩展模块的位选信号是低电平有效的。

图3-4数码管显示电路在这里插入图片描述

3.4总体电路图

交通灯控制模块将需要显示的时间数据连接到数码管显示模块,同时将状态信号连接到led灯控制模块,然后数码管显示模块和

led灯控制模块驱动交通信号灯外设工作。

总体电路图如下图所示:

图3-6整体电路在这里插入图片描述

3.5 程序设计

3-7 系统软件流程图在这里插入图片描述

3.6元件列表

发光二极管(红绿黄) 12个
2.54单排针1*40 2排
三极管8550 4个
排母 2排
数码管2位共阳 4组
FPGA模块 1块

4.方案实现与测试(或调试)

实现题上已给要求,在程序调试花费时间较多。

交通灯成品及实验现象在这里插入图片描述

转载地址:http://psxo.baihongyu.com/

你可能感兴趣的文章
ngrok | 内网穿透,支持 HTTPS、国内访问、静态域名
查看>>
NHibernate学习[1]
查看>>
NHibernate异常:No persister for的解决办法
查看>>
NIFI1.21.0_Mysql到Mysql增量CDC同步中_日期类型_以及null数据同步处理补充---大数据之Nifi工作笔记0057
查看>>
NIFI1.21.0_NIFI和hadoop蹦了_200G集群磁盘又满了_Jps看不到进程了_Unable to write in /tmp. Aborting----大数据之Nifi工作笔记0052
查看>>
NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表多表增量同步_增删改数据分发及删除数据实时同步_通过分页解决变更记录过大问题_02----大数据之Nifi工作笔记0054
查看>>
NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表或全表增量同步_实现指定整库同步_或指定数据表同步配置_04---大数据之Nifi工作笔记0056
查看>>
NIFI1.23.2_最新版_性能优化通用_技巧积累_使用NIFI表达式过滤表_随时更新---大数据之Nifi工作笔记0063
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_根据binlog实现数据实时delete同步_实际操作04---大数据之Nifi工作笔记0043
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置binlog_使用处理器抓取binlog数据_实际操作01---大数据之Nifi工作笔记0040
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置数据路由_实现数据插入数据到目标数据库_实际操作03---大数据之Nifi工作笔记0042
查看>>
NIFI从MySql中离线读取数据再导入到MySql中_03_来吧用NIFI实现_数据分页获取功能---大数据之Nifi工作笔记0038
查看>>
NIFI从MySql中离线读取数据再导入到MySql中_无分页功能_02_转换数据_分割数据_提取JSON数据_替换拼接SQL_添加分页---大数据之Nifi工作笔记0037
查看>>
NIFI从PostGresql中离线读取数据再导入到MySql中_带有数据分页获取功能_不带分页不能用_NIFI资料太少了---大数据之Nifi工作笔记0039
查看>>
nifi使用过程-常见问题-以及入门总结---大数据之Nifi工作笔记0012
查看>>
NIFI分页获取Mysql数据_导入到Hbase中_并可通过phoenix客户端查询_含金量很高的一篇_搞了好久_实际操作05---大数据之Nifi工作笔记0045
查看>>
NIFI同步MySql数据_到SqlServer_错误_驱动程序无法通过使用安全套接字层(SSL)加密与SQL Server_Navicat连接SqlServer---大数据之Nifi工作笔记0047
查看>>
Nifi同步过程中报错create_time字段找不到_实际目标表和源表中没有这个字段---大数据之Nifi工作笔记0066
查看>>
NIFI大数据进阶_FlowFile拓扑_对FlowFile内容和属性的修改删除添加_介绍和描述_以及实际操作---大数据之Nifi工作笔记0023
查看>>
NIFI大数据进阶_Json内容转换为Hive支持的文本格式_操作方法说明_01_EvaluteJsonPath处理器---大数据之Nifi工作笔记0031
查看>>