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

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

交通灯控制设计

课程设计目的与要求

本课程设计旨在通过FPGA核心实现交通灯控制器,研究一个十字路口的信号灯控制系统。系统需要支持两条车道的交替运行,且每条车道的通行时间可设定不同。信号灯采用LED光柱或数码管倒计时显示,并支持紧急情况下的双向红灯触发功能。

目的
  • 使用FPGA芯片作为控制核心,设计交通灯信号灯控制器。
  • 每个路口设置红、绿、黄三色信号灯,实现车辆的正常通行和应急情况下的控制。
  • 采用LED光柱或数码管倒计时方式进行时间显示。
要求
  • 东西、南北两个方向信号灯必须交替工作,且通行时间可设定不同。
  • 信号灯采用LED光柱或数码管倒计时显示方式。
  • 系统支持紧急情况下的双向红灯触发。
  • 每个路口使用两位七段数码管进行倒计时显示。
  • 分工
    • 马浩宁:负责电路设计、程序调试及PCB绘制。
    • 张晓涵:负责电路制作、焊接及论文撰写。
    • 王春燕:负责资料收集与整理。

    FPGA模块方案论证及选择

    FPGA模块由四个部分组成:顶层控制模块(top_traffic)、交通灯控制模块(traffic_light)、数码管显示模块(seg_led)和LED灯控制模块(led)。顶层模块负责对其他三个子模块进行配置并完成信号连接,实现各模块之间的数据传递。

    • 顶层模块(top_traffic):完成子模块的配置,实现信号连接,并将驱动信号输出给外设(交通信号灯)。
    • 交通灯控制模块(traffic_light):控制信号灯状态转换,输出实时状态信号和时间数据给数码管显示模块和LED灯控制模块。
    • 数码管显示模块(seg_led):接收并处理东西、南北方向的实时时间数据,驱动对应数码管进行显示。
    • LED灯控制模块(led):根据接收到的状态信号驱动东西、南北方向的LED发光。

    原理设计

    基本原理

    FPGA开发板的P6扩展口用于外接交通信号灯模块。信号灯模块由12个LED组成,采用共阳型数码管控制。由于东西、南北方向的LED亮灭状态一致,减少了控制信号的引脚数量。

    系统组成框图

    交通灯控制模块将时间数据连接至数码管显示模块,状态信号连接至LED灯控制模块。系统总体框架如图所示,实现信号灯和数码管的驱动控制。

    单元电路设计
    • FPGA最小系统:包括FPGA芯片、下载电路、外部时钟、复位电路和电源。
    • 数码管显示电路:采用PNP型三极管驱动四组两位共阳数码管,基极低电平有效。

    总体电路图

    交通灯控制模块将时间数据连接至数码管显示模块,状态信号连接至LED灯控制模块,驱动交通信号灯外设工作。

    软件设计

    系统软件流程图如图所示,展示了程序设计流程。

    元件列表

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

    方案实现与测试

    本课题通过FPGA控制实现了交通灯信号灯的逻辑设计,实验现象如图所示。系统符合设计要求,能够正常运行,支持不同车道的通行时间设定及紧急情况下的双向红灯触发功能。

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

    你可能感兴趣的文章
    Netty工作笔记0013---Channel应用案例4Copy图片
    查看>>
    Netty工作笔记0014---Buffer类型化和只读
    查看>>
    Netty工作笔记0020---Selectionkey在NIO体系
    查看>>
    Vue踩坑笔记 - 关于vue静态资源引入的问题
    查看>>
    Netty工作笔记0025---SocketChannel API
    查看>>
    Netty工作笔记0027---NIO 网络编程应用--群聊系统2--服务器编写2
    查看>>
    Netty工作笔记0050---Netty核心模块1
    查看>>
    Netty工作笔记0057---Netty群聊系统服务端
    查看>>
    Netty工作笔记0060---Tcp长连接和短连接_Http长连接和短连接_UDP长连接和短连接
    查看>>
    Netty工作笔记0063---WebSocket长连接开发2
    查看>>
    Netty工作笔记0070---Protobuf使用案例Codec使用
    查看>>
    Netty工作笔记0077---handler链调用机制实例4
    查看>>
    Netty工作笔记0084---通过自定义协议解决粘包拆包问题2
    查看>>
    Netty工作笔记0085---TCP粘包拆包内容梳理
    查看>>
    Netty常用组件一
    查看>>
    Netty常见组件二
    查看>>
    netty底层源码探究:启动流程;EventLoop中的selector、线程、任务队列;监听处理accept、read事件流程;
    查看>>
    Netty心跳检测机制
    查看>>
    Netty核心模块组件
    查看>>
    Netty框架内的宝藏:ByteBuf
    查看>>