基于FPGA的校内十字路口红绿灯控制系统设计实现
2021-06-06陈春先曲鸣飞张丽辛义
陈春先 曲鸣飞 张丽 辛义
【摘要】 本文就校内的十字路口,设计了基于FPGA的红绿灯控制系统,该课题采用当下比较前沿的技术FPGA并且可以使得系统具有电路简单,可靠性强、运算速度高的特点。系統通过功能扩展、接口扩展可同时控制多个路口的红绿灯变换, 并实现具有根据需要实时快速擦写应用程序的功能,为校园安全增添实时保障。
【关键词】 红绿灯控制系统 FPGA
引言
伴随社会经济的不断发展,人们的生活质量得以较大提高,近乎家家都有小轿车,当然校园内的大学生们,也随着与社会接轨程度的加深,开车的逐渐增多,加之校园教职工的车辆,校园安全便增加了一项不可忽略的重点,那就是校园车辆的行驶安全,尤其是路口的安全便尤为突出。
为解决上述问题,经过调查研究,本文设计了一种基于FPGA的控制系统,FPGA 具有可编程、高集成度、高速和高可靠性等优点,通过配置器件内部的逻辑功能和输入/输出端口,将原来电路板级的设计放在芯片中进行,提高了电路性能,降低了印刷电路板设计的工作量和难度,有效提高了设计的灵活性和效率。
系统可以根据校园实际情况实时更换控制功能,比如可以寒暑假期间与学期间设置不同的等灯时长,对于系统只需要改几个数字重新下载即可,具有较好的可扩展性,系统维护也比较简单。
一、功能需求及系统组成
1.1功能需求
为保证校园内十字路口行人和车辆有序通行, 控制需求如下:
(1)A向B向各设一组左拐灯,红、绿、黄灯,显示顺序为:绿—黄—左拐—黄—红
(2)双向各设置一组倒计时显示器
A 向左拐、绿、黄和红灯显示时间分别为10S,40S,5S,50S;
B 向左拐、绿、黄和红灯显示时间分别为10S,30S,5S,60S;
(3) 期望有五种控制模式,可以通过控制开关进行切换,以应对工作日及假期需求
方式1:A向绿灯长亮,B向红灯亮;
方式2:A向左拐灯长亮,B向红灯亮;
方式3:B向绿灯长亮,B向红灯亮;
方式4:B向左拐灯长亮,A向红灯亮
方式5:自动按双向灯的显示要求交替循环。
(4)须有硬件复位控制
1.2系统组成框图
根据需求调研,该控制系统功能框图如下图1所示:
采用FPGA设计实现,不仅可以降低成本,缩短设计周期,还能保证设计正确性。
二、系统硬件平台
设计研发阶段,特采用 Basys2开发板作为硬件平台,其中资源足以实现设计任务,该平台的资源框图如图2所示:
赛灵思公司的Spantan3E-100CP132作为控制器,外围输入用3个拨动开关作为方式控制开关和系统复位开关,8只发光二极管模拟双向的左转、红、黄、绿灯,4个LED数码管正好模拟双向的信号灯计时数。
三、系统软件平台
Xilinx的 开发工具ISE,集成了FPGA开发需要的所有功能,提供了一个功能强大的设计收敛环境。ISE的主要功能包括设计输入、综合、 仿真、实现和 下载。
四、控制系统设计
4.1交通灯控制器功能设计
控制器需要具备控制电路模块、计时模块、译码模块、动态扫描显示模块等,如下图3所示。
依据控制器系统框图,顶层电路设计如下所示,由控制模块JTD_CTRL、 分频模块、计时模块和译码显示模块四部分组成。CLK50M是硬件平台提供的50MHz时钟源,M(2:0)是控制方式拨动开关输入,CLR为系统复位按键,输出信号ABL(7:0)为信号灯显示控制信号,接8只发光二极管,模拟AB双向的左拐、黄、绿、红灯,LED(6:0)为7段LED的段选控制信号,SEL(3:0)为4个LED的位选控制端。
4.2逻辑控制电路
该模块根据外部信号产生系统状态机,控制其它模块协调工作。
自动模式下,状态机生成8个状态转换,八个状态S0—S7逻辑抽象如下:
S0(000):A向红灯,B向黄灯5s; S1(001):A向绿灯40s,B向红灯; S2(010):A向黄灯5S,B向红灯; S3(011):A向左转灯10s,B向红灯; S4(010):A向黄灯5S,B向红灯; S5(011):A向红灯,B向绿灯30s; S6(110):A向红灯,B向黄灯5s; S7(111):A向红灯,B向左转灯10s;
手动模式下,状态机生成4个状态,分别是 S1、 S3、 S5 、S7。
4.3分频
该模块根据平台提供的50MHz时钟信号,分频出1KHz和1Hz,1Hz时钟信号给控制模块和计时模块,1KHz时钟信号给显示控制模块,动态扫描4个LED数码管
4.4计时控制
该模块根据分频提供的1Hz时钟信号,减1计数,为显示电路提供倒计时时间,每种状态下的倒计时时间见前文中状态的逻辑抽象。
4.5扫描显示
该模块对计时单元输出的计时信号进行译码,生成段选码和位选码,分频单元输出的1KHz时钟信号对4位数码管动态扫描。
4.6扫描显示
该模块对计时单元输出的计时信号进行译码,生成段选码和位选码,分频单元输出的1KHz时钟信号对4位数码管动态扫描。
4.7译码驱动
该模块对逻辑控制单元输出的状态机进行译码,生成A向和B向红绿黄灯的显示信号,输出的信号ABL7-ABL0与灯的对应A向左转、A向黄灯、A向绿灯、A向红灯、B向左转、B向黄灯、B向绿灯、B向红灯
五、 综合验证
软件平台提供的综合工具可以对设计文件查找语法错误,修正之后,对部分模块进行仿真测试,验证逻辑功能符合设计需求。
六、约束设计、布局布线、生成可编程代码、下载、测试、修正
结合系统设计输入输出和选定的硬件测试平台BASYS2, 资源分布完成后,布局布线,生成.bit文件,下载到硬件平台,功能测试并调试设计过程,本设计经测试,完全可以实现设计预期。
参 考 文 献
[1] 蒋敏.VHDL语言与数字系统的设计. 应用科技.2010
[2] 罗勇. 基于FPGA的交通灯控制与实现. 电子器件.2008.
[3] 蒋敏. VHDL语言与数字系统的设计. 应用科技,2010.