胡桂戎
【摘要】本文采用FPGA设计,结合了道路传感器,设计了交通信号灯全感应自适应的控制方案。通过仿真与验证结果表明实现对交通道路的畅通达到优化的效果。
【关键词】FPGA;信号灯;系统
现代城市交通车流量大,交通信号灯的时间控制和状态转化往往是造成交通效率高低的主要原因。因此,就需要对信号灯的亮灯时间和转化上,根据道路实际情况,做出最优化的方案。本文对此,基于FPGA进行设计出了较为智能化的交通信号灯的控制系统。
1、设计背景要求
1)需要在道路十字路口四个道口各设一组交通信号灯,包括左转弯的指示灯。2)为体现所设计系统的功能,假设南北道路为主干道。车流量向北东西道较大,南北道可通行时间要长于东西道路。3)为符合实际中的交通规则,所设计的程序需要在绿灯、红灯以及左转灯转换之间,要有黄灯作为缓冲指示。4)根据现实应用需求,指示灯显示时间可设定和调整。交通灯显示时间需要有倒计时方式在旁边亮起显示。特殊情况需要应急车通行时,指示灯需显示出应急功能保障应急车辆优先通过。
2、结构设计
系统具体结构如图1所示。分频器对晶振脉冲进行分频,产生时钟脉冲。主控制器收到时钟信号后,做出转换状态,并输出状态时间。与此同时,信号灯控制器依据得到的状态指示,对道路信号灯做出控制。运行中,主控制器发出的信号是实数类型,分位器须将收到的信号转换为BCD编码送到显示装置内。
3、控制系统的设计
3.1 分频模块设计
系统设计采用模块化方案。其中,分频模块的工作是把50MHz的基准信号分成1Hz的激励信号,然后提供给控制模块。实际在软件QuartusII里面进行操作。在软件的NewProjectWizard窗口下,输入位置d:/trafficlight,然后输入文件名。这个一般设计过程是相同的。依次选择File→New→VerilogHDLFile,这时需要注意的是,在Verilog.v文件板块中录入系统分频程序。最后把此文件进行编译,做出功能仿真。
3.2 控制模块设计
控制模块中,控制信号的产生主要采用按键形式。但运行中按键会有抖动的现象。消除抖动的方式还是使用软件。控制模块的实用性较强,有时间预置、模式选择、复位调整等功能。设计中,4个按键分别为krest、kset、kup和kdown。Krest是复位按钮。Kset作为转换状态的调整使用。kup和kdown分别为设置量的加减。过程中,kset控制state[3..0]进行状态控制。交通信号灯显示时间信号分别为G1_time[6..0],Y1_time[6..0],R1_time[6..0],L1_time[6..0]。显而易见,改变此阈值即为改变信号灯的倒计时时间。具体模式如下表所示。这为具体使用提供了便捷。
3.3 主干道计时模块设计
对主干道模块的设计,主要是为了实现各个道路信号灯的指示时间和转换状态。当然还包括倒计时的显示形式。在模块中录入clk_1s信号,为倒计时提供相应的脉冲指控。主干道各信号灯的显示时间值为G1_time[6..0],Y1_time[6..0],R1_time[6..0]和L1_time[6..0],这些参考值能够为模块准确计数和不同信号等的转换做出判断依据。设计中,复位信号为stt,对各种模式的控制信号是st。同样道理,输出信号为G1_ctime[6..0],Y1_ctime[6..0],R1_ctime[6..0]和L1_ctime[6..0]。在模块设计这些信号时,一定要注重精确。这些信号能够有效的为道路指示灯提供精确的倒计时显示数值。现实中,将这些数值直接送达显示模块。显示模块所需要的显示状态为seg[1..0]的条件。G1、Y1、R1和L1分别为每个信号灯的输入控制信号,并且为高电平点亮。设计中,首先建立main_module.v文件。直接录入每个信号灯相对应的模块记时数据。对此功能,可以进行功能仿真验证,以确保正确性。最终,还是要对此生成元件符号。
3.4 副干道计时模块设计
设计过程中,如果没有特殊要求,副干道的计时模块的设计与上文提到的主干道计时模块设计是比较类同的。设计过程中,只需注意实际运用中的需求,对交通信号灯显示顺序的不同以及倒计时时间长短不同,而进行不同的设置。在程序及符号录入时,同样要十分注意准确性,以确保实际应用的正确。
4、系统仿真验证
在整个系统设计完成后,需要对系统进行仿真验证,确保能够投入到实际应用中。由途中可知这次验证的结果:假设各交通路口一直都有车且机动车辆已经排队,车队长约30m。在S1状态绿灯15s时,达到绿灯熄灭条件。然后再设定每个路口都有车,同样设定机动车辆排队长度30m。通过这个转换,能够知道系统从一个基本状态到另一个基本状态的转换,依次进行,没有混乱。根据仿真验证,绿灯15s后,南北道路上左转方向并无车辆需行驶的情况下,绿灯熄灭。准确实现了S0到S3之间4个主要状态的依次循环转换。这次循环转换仍没有混乱现象。
再次进行设定为上班高峰时段的仿真验证。设定每个道路口都有车,而且机动车排队有30m的长度。在图中140s处,系统控制成功实现了从S0到S34个基本状态的显示转换。此时状态变为设定好的上班高峰时段,状态S4,系统又控制状态有效的在S0到S4之间依次转换。
根据实验顺序,再次对深夜车辆较少的情况下进行仿真验证。设计只有4个时间段有车辆行驶,且为轻微堵车的状态。路口有约40m长的机动车在排队。仿真验证显示,绿灯亮的时间为40s。此时,系统初始态S0仍旧为30s绿灯。可见,现实状态下,已经在在S0和S22个之间做出转换。成功实现了根据排队车辆长度进行智能操控的應用。
结束语:
综上所述,本文设计的交通信号灯控制系统,采用有限状态机设计三种信号灯状态转化方案和两种信号灯时间分配调节机制,实现了针对交通复杂路口的高效智能控制。实际运用中,交通信号灯的智能化控制,为道路的畅通运行提供了有效保障。