本章主要介绍了软件系统设计中的顶层流程图和主要模块,包括按键模块、控制模块、数码管显示模块和车流检测模块。

4.2 顶层流程图

如图20所示为顶层流程图:

图20 顶层流程图

顶层流程图主要分为控制模块、两个数码管输出模块和多种输入模块。控制模块负责处理时钟、复位、东西方向车流量检测数据、南北方向车流量检测数据以及9个按键的输入信号,并对其进行控制。输出部分包括交通灯显示、车流量显示和LED灯显示。通过控制模块的处理,各个模块协同工作,实现交通灯、车流量、LED灯的显示和控制。为确保系统的稳定性和正常运行,需要对系统进行严格的测试和维护。

4.3 主要模块介绍

4.3.1 按键模块

按键模块包括采集模块和消抖模块;

  • 采集模块:设置的按键为低电平有效,将按下的按键作为信号传给FPGA芯片。
  • 消抖模块:由于输入有按键,则需要消抖,消抖分为硬件和软件消抖。本设计选用为软件消抖。

消抖(Debouncing)是指在输入信号(如按键、传感器数据等)发生变化时,为了避免出现多次触发,对信号进行一定的延迟和去抖动处理的过程。消抖的作用是保证输入信号的可靠性和准确性,避免误触和重复触发,从而提高系统的稳定性和可靠性。在电子系统、自动化控制、计算机软件等领域中都有广泛的应用。

按键模块仿真如图所示:

图21 按键模块仿真图

4.4.2 控制模块

如图所示为控制部分的流程图:

图22 控制模块流程图

控制模块通过软件编程完成都交通灯程序的设计。

模式0

如图22所示为模式0运行流程图:

图23 模式0运行流程图

该模式主要完成基本的四象限运行。当FPGA芯片供电,直接运行的就是模式0,设置的时间为东西方向20秒,南北方向20秒。此时为初始的时间。当有其余按键按下后会自动跳出模式0进行其他模式的运行。当FPGA小系统上的复位按键按下时。系统恢复成刚通电的初始模式,此时运行模式0;当系统处于非模式1条件下,当按键9按下,系统恢复成初始模式,此时按键9与复位按键无差别;当系统处于模式1时,按键9按下,系统成更改时间的模式0。更改的时间与模式1改变时间一致。

模式1

如图24所示为模式1运行流程图:

图24 模式1运行流程图

模式1该模式是对各个方向时间的调整,来应对不同路口的不同需求进行调整。

  • 按键1对应南北方向通行时间加1,按键2对应南北方向通行时间减1,按键3应南东西方向通行时间加1,按键4对应东西方向通行时间减1。

手动模式

如图25所示为手动模式运行流程图:

图25 手动运行流程图

  • 当按键5按下的时候为模式2为来应对东西方向的通行,南北方向为禁止通行,工作人员可以通过与模式3相配合,进行远程或者现场的控制,完成人工控制的手式。
  • 按键6按下时为模式3为南北方向的通行,东西方向为禁止通行。
  • 按键7按下的时候为模式4为各个方向均为每0.5秒间隔闪烁黄灯,用来模拟夜间通行。

车流检测模式

如图26所示为车流检测运行流程图:

图26 车流检测运行流程图

模式5为车流量控制模块的模块该模块的运行模式如下

通过硬件部分介绍的红外运动传感器,我们可以检测出车流量,并根据南北方向与东西方向的车流量差值来进行时间调整,初始时间设定为20秒。当两个方向的车流量差值小于等于10时,时间不做调整,因为这属于正常差值范围。但是当车流量的差值超过10量但不超过20量时,我们会对车流量较大的方向的通行时间进行延长,将其调整至40秒。而当车流量的差值大于20时,我们会将时间调整为60秒。以上是模式5的主要逻辑。需要注意的是,这种车流量调整方式可以有效缓解交通拥堵,提高交通流畅度。

4.4.3 数码管显示模块

如图27所示为数码管显示部分的顶层流程图:

图27 数码管显示部分顶层流程图

首先,需要对控制部分的时间进行取余数和取十位的操作,以获得输出结果。接下来,将输出结果传递给显示模块,该模块将使用数码管的位选和段选功能来进行输出。

如图28所示为数码管部分的仿真图:

图28 数码管仿真图

本章总结

本章主要介绍了软件系统设计中的顶层流程图和主要模块,包括按键模块、控制模块、数码管显示模块和车流检测模块。按键模块采用软件消抖处理,控制模块通过编写交通灯程序实现各种模式的运行,数码管显示模块使用数码管的位选和段选功能进行输出,车流检测模块可以根据车流量差值来进行时间调整,以缓解交通拥堵。本章的设计为交通灯系统的正常运行和控制提供了基础,同时也为后续的测试和维护奠定了基础。


原文地址: https://www.cveoy.top/t/topic/n2Os 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录