基于EDA的交通信号灯电路的设计与仿真
传统的交通信号灯控制电路的设计是基于中、小规模集成电路,电路元件多、焊接复杂、故障率高、可靠性低,而且控制系统的功能扩展及调试都需要硬件电路的支持,为日常维护和管理增加了难度。目前很多城市的交通信号灯还是应用传统的电路设计,一旦交通信号灯出现故障,不能及时维修和处理,势必会造成道路的交通混乱。通过技术的改进,采用基于EDA技术的交通信号灯控制电路弥补了传统设计中的缺点,通过VHDL语言编写系统控制程序,利用软件控制整个系统的硬件电路,还可以利用EDA集成开发环境对交通信号灯的设计进行仿真,验证设计结果是否实现。改进后的交通信号灯电路组成元器件少,可靠性高,操作简单,实现可扩展功能。
本文引用地址:http://www.amcfsurvey.com/article/201610/308041.htm1 交通信号灯控制电路
1.1 交通信号灯工作原理
基于FPGA的交通信号灯控制电路主要用于甲乙两条车道汇合点形成的十字交叉路口,甲乙两车道各有一组红、黄、绿灯和倒计时显示器,用以指挥车辆和行人有序的通行。两组红绿灯分别对两个方向上的交通运行状态进行管理,红灯亮表示该道路禁止通行,黄灯表示停车,绿灯表示可以通行;倒计时显示器是用来显示允许通行或禁止通行的时间,以倒计时方式显示交通灯闪亮持续时间。为每个灯的闪亮状态设置一个初始值,指示灯状态改变后,开始按照初始值倒计时,倒计时归零后,灯的状态将会改变至下一个状态。交通灯两车道的指示灯闪亮状态是相关的,每个方向的灯闪亮状态影响着另一个方向的指示灯闪亮状态,这样才能够协调两个方向的车流。甲乙两车道交通灯工作状态如表1所示,其中“1”代表点亮,“0”代表熄灭。
当甲车道绿灯亮时,乙车道对应红灯亮,由绿灯转换红灯的过渡阶段黄灯亮。同理,乙车道绿灯亮时,甲车道的交通灯也遵循此规则。当出现特殊情况时,各方向均亮红灯,倒计时停止,特殊运行状态结束后,控制器恢复原来状态,继续运行。
1.2 交通信号灯电路结构
根据交叉路口交通灯工作原理,图1为交通信号灯控制电路的原理图。该电路包含了1个FPGA芯片,2个七段LED数码显示管,6个发光二极管分别表示甲乙两车道上指示灯,以及一个紧急按钮。FPGA芯片采用EP1C12Q240C8,作为系统总体控制部分;利用外接发光二极管模拟交通信号灯的红、黄、绿,控制甲乙两车道车辆运行状态;2个数码管显示交通信号灯闪亮持续时间,并采用动态扫描方式。
2 交通信号灯控制电路的VHDL设计与仿真
十字交叉路口的交通灯指挥行人和车辆的安全运行,在甲、乙车道的交叉路口设计一个交通控制,根据“红灯停,绿灯行,黄灯等待”的交通规则,实现如下功能:
1)甲车道和乙车道的车辆交替运行,每次通行时间设为30 s;
2)每次黄灯先亮5 s,才能变换运行车道;
3)黄灯亮时,要求每秒钟闪亮一次;
4)信号灯点亮时间可预置;
5)特殊情况下可通过开关单独控制,显示器停止计时并闪烁显示。
通过对电路实现功能分析,整个系统主要由分频模块、状态控制模块、译码模块以及显示电路构成。如图2所示,其中clk为系统外加时钟信号,jin为特殊状态禁止通行信号。
2.1 分频模块
分频模块主要是把基准时钟信号转换为激励信号,由于系统的外接时钟信号设为1 kHz,而系统计时所需时钟信号为1 Hz,因此首先通过分频器把外部高频率的时钟信号转换为内部需要的激励信号,驱动状态控制模块工作。所谓分频器实际上就是一个计数器,计数器对1 kHz信号进行计数,每当999时输出一个脉冲信号,从而得到1 Hz时钟信号,其仿真波形如图3所示。
2.2 状态控制模块
状态控制模块是本系统的核心模块,它的作用是根据计时赋值标志位和时钟信号,判断、调整和控制系统的工作状态,提供适当的指示灯控制信号。其中对应输出的工作状态有4种,分别是st1、st2、st3和st4。控制甲、乙车道的红、黄、绿灯的信号分别用ra、ya、ga和rb、yb、gb表示,其值为‘1’表示灯亮,为‘0’表示灯灭。
状态控制模块在脉冲信号作用下分别对甲乙车道的计数进行减1计数,并监测计数器的计数值,当计数器到临界计数值时,在下一秒脉冲为计数器装载新的计数初值,同时改变车道的指示灯状态。当出现特殊情况时,控制按键输入禁止通行信号,即jin为‘1’,计数器暂停计数,各方向车辆都处于禁止运行状态。各状态及特殊情况指示灯工作仿真波形如图4所示。
当工作状态为st1时ra=‘0’、ya=‘0’、ga=‘1’,即甲车道绿灯亮;rb=‘1’、yb=‘0’、gb=‘0’,即乙车道红灯亮;此时计数器qh=3,ql=0,即30s。当工作状态为st2时ra=‘0’、ya=‘1’、ga=‘0’,即甲车道黄灯亮;rb=‘0’、yb=‘1’、gb=‘0’,即乙车道黄灯亮;此时计数器qh=0,ql=5,即5s。同理,当工作状态处于st3时,甲车道红灯亮,乙车道绿灯亮,计数器置初值30;当工作状态处于st4时,甲乙车道都点亮黄灯,计数器置初值5。在特殊情况jin=‘1’时,ra=‘1’,rb=‘1’,此时甲乙车道红灯都点亮,禁止各方向车辆通行,同时计数器停止计数。
2.3 译码模块
译码模块的作用是根据根据状态控制模块中设置的计时初值显示交通灯的闪亮持续时间,并将灯亮时间以倒计时的形式显示出来。即将状态控制模块中计数器计数位各数值进行译码,输出译码信号,驱动七段数码管,由数码管显示器显示当前计数值。当显示黄灯点亮持续时间和特殊情况时数码管显示器实现闪烁显示功能。
译码模块根据七段数码管显示控制规则,将状态控制模块计数器中数值按规则输入译码信号,驱动数码管各控制端。其中数码管各显示控制信号与数值显示关系如表2所示。
译码模块仿真波形如图5。其中one存放计数器个位数值,ten存放计数器十位数值,seg7_1,seg7_2分别代表个位和十位数码管显示控制信号。根据计数器存放数值,seg7_ 1,seg7_2分别输出对应控制信号,以便驱动数码管显示对应数值,例如:当one=6时seg7_1输出“1011111”信号驱动数码管显示数字6;当ten=0时seg7_2输出“1111110”信号驱动数码管显示数字0。
2.4 交通信号灯整体电路仿真分析
交通信号灯控制电路仿真波形如图6所示。
系统输入的基准时钟脉冲Clk=1 kHz,经过分频后得到系统电路需要的时钟激励信号1 Hz。当工作状态stx=st1时,甲车道绿灯信号ga=‘1’,乙车道红灯信号rb=‘1’,并且计数器置入初始值30(qh=3,ql=0),数码管开始倒计时显示时间,此时甲车道绿灯亮,允许车辆通行30s,乙车道红灯亮,禁止车辆通行;当工作状态stx=st2时,甲车道黄灯信号ya=‘1’,乙车道黄灯信号yb=‘1’,并且计数器置入初始值5(qh=0,ql=5),数码管开始倒计时闪烁显示时间,此时甲乙两车道黄灯亮,两车道车辆运行状态进入转换阶段;当工作状态stx=st3时,甲车道红灯信号ra=‘1’,乙车道绿灯信号gb=‘1’,并且计数器置入初始值30,数码管开始倒计时显示时间,此时甲车道红灯亮,禁止车辆通行,乙车道绿灯亮,允许车辆通行30s;当工作状态stx=st4时如同工作状态st2。
如图中所示,在正常运行时出现特殊情况时,启动特殊控制开关,使禁止通行信号jin=‘1’,此时ra=‘1’,rb=‘1’,甲乙两车道都亮红灯,禁止各方向车辆运行,此时数码管停止计时并闪烁显示,当特殊状态结束后,恢复正常运行,数码管继续计时显示。
3 结束语
基于EDA技术的交通信号灯控制电路设计改变了基于单片机的传统交通灯不稳定和不利于扩展的缺点,突破了单片机的种种限制。通过VHDL语言编程,对交通信号灯控制电路做了改进:增加了指示灯倒计时和闪烁提醒功能,以便让司机控制过交叉路口的车速,使交通更加安全有序;增加了全红灯的特殊状态,保证了紧急情况下公务车能顺利通行。
评论