APP下载

基于FPGA的交通控制灯设计

2019-05-24贺哲明袁申牟晨淏葛楠

电脑知识与技术 2019年7期

贺哲明 袁申 牟晨淏 葛楠

摘要:随着国民经济的不断提高,汽车数量不断增加,交通事故频发。因此,交通问题越来越引起重视,对于交通灯控制器的要求也越来越高。设计一个性能可靠的交通灯控制器,对维持交通秩序和保证交通安全起着至关重要的作用,也是经济与社会发展的需要,极具实际意义。

关键词:交通灯控制器 ;FPGA ;Verilog HDL;Quartus II

中图分类号:TP391 文献标识码:A

文章编号:1009-3044(2019)07-0239-01

随着我国经济的快速发展,车辆拥有量也随之急剧增加,再加上人口数量的膨胀,城市交通拥挤问题变得日益突出。如何使交通灯的控制更加合理,使现有的交通资源发挥最大的功效,已经成为城市管理者和科技工作者共同关心的问题。因此,一个具有更高灵活性,可靠性和可扩展性系统的电路设计可以较好地缓解交通压力,并可以实现对突发事件进行紧急处理。

本文介绍基于FPGA的交通灯控制器设计,采用Verilog HDL语言进行编写,并且结合Quartus II软件进行系统设计与调试。本设计包含主控模块、电源模块、时钟模块、LED显示模块,实现设计功能且验收效果良好。

1 原理

1.1 FPGA简介

FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础。进一步发展的产物。它是作为专用集成电路(ASIC)領域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。

FPGA的开发相对于传统PC、单片机的开发有很大不同。FPGA以并行运算为主,以硬件描述语言来实现;相比于PC或单片机(无论是冯诺依曼结构还是哈佛结构)的顺序操作有很大区别,也造成了FPGA开发入门较难。FPGA开发需要从顶层设计、模块分层、逻辑实现、软硬件调试等多方面着手。

1.2 主控模块介绍

主控模块使用Verilog HDL 语言编写,并用QuartusⅡ仿真调试,模拟交通十字路口的红绿灯使用情况。

2 总体设计

3 详细设计

3.1 设计要求

回状态交通控制灯的东西方向用R1、Y1、G1示意,南北方向用R2、Y2、G2示意,时钟周期CLK为1秒。本设计分为6种状态,状态0:R2、G1亮,其他灭,持续20秒;状态1:R2亮,G1闪烁,其他灭,持续5秒;状态2:R2、Y1亮,其他灭,持续5秒;状态3:G2、R1亮,其他灭,持续20秒;状态4:R1亮,G2闪烁,其他灭,持续5秒;状态5:Y2、R1亮,其他灭,持续5秒;后返1。

3.2 设计原理

首先,由时钟输入端输入频率为50MHZ的时钟脉冲,后经分频器得到周期为1秒的系统时钟CLK,再将CLK输入主控模块,由主控模块内部程序处理,划分出6种状态,最后由LED显示电路显示。

3.3 软件流程图

4 仿真

上图CPA为分频器输出1秒的时钟脉冲,CPB在5个时钟脉冲后置1,并累加一次。此时执行状态0:R2、G1为1,其他为0,持续4个CPB脉冲;当CPB第5个脉冲来临时,执行状态1:R2为1,G1闪烁,其他为0,持续1个CPB脉冲;当CPB第6个脉冲来到,执行状态2:R2、Y1为1,其他为0,持续1个CPB脉冲;当CPB第7个脉冲来到,执行状态3:G2、R1为1,其他为0,持续4个CPB脉冲;当CPB第11个脉冲来到时,执行状态4:R1为1,G2闪烁,其他为0,持续1个CPB脉冲;当CPB第12个脉冲来临时,执行状态5:Y2、R1为1,其他为0,持续1个CPB脉冲,后返回状态1重复执行。

5 验收

6 总结

本实验设计以Quartus II软件为设计平台,采用Verilog HDL语言编写,运用自上而下的模块化设计思路完成了十字路口的交通灯控制器设计,最后通过编译、仿真并下载至FPGA芯片中验证了其设计的正确性。该控制器较传统交通灯控制电路具有外围电路少、开发周期短、功能拓展灵活及带有紧急情况禁止所有车辆通行功能等优点,能够较好地提高现有交通资源的利用效率,降低交通事故的发生率。

参考文献:

[1] 邹道胜 朱如琪.CPLD/FPGA与ASIC设计实践教程[M]. 2版.北京:科学出版社,2010.

【通联编辑:唐一东】