摘 要: 采用软件控制方式的道路交通信号机在死机时往往失去其绿冲突保护功能。根据“绿冲突矩阵”的检测原理,本文提出一种道路交通信号控制机的信号冲突检测方案,采用自顶向下的设计方法,通过FPGA实现系统的各个功能模块。该系统可以独立地检测绿灯信号冲突这种道路交通的异常情况,并能立即做出处理。仿真及实际测试结果表明,该系统时序分配与程序设计合理,工作稳定可靠,并能够提高信号机嵌入式系统的实时性。
0 引言
随着各国城市化进程的不断发展,智能交通系统在城市道路交通控制中得到了广泛的应用。智能道路交通信号机是智能交通系统的重要组成部分,也是解决城市交通问题的关键设备。信号机中的绿冲突检测可以提高智能交通系统的安全性和可靠性。由于过去的绿冲突保护控制方式相对简单,通常是用简单的继电器互锁或者信号灯的接线实现[1],随着多相位、多时段控制方式和线控、面控方式的发展,目前的绿冲突检测多通过信号机的控制软件实现。然而,当这类信号机出现死机导致信号冲突时,其保护功能就失效。因此研究一种新的绿冲突检测电路在智能交通控制中具有十分重要的现实意义。
本文研究的绿冲突检测电路采用FPGA实现。FPGA适合于组合逻辑和时序逻辑电路设计,并且具有并发执行的功能,相对于微控制器的程序设计更加稳定可靠[2]。同时,基于FPGA的绿冲突检测电路实现信号机的绿冲突检测功能,可以减轻信号机CPU的负担,提高系统的实时性。
1 绿冲突绿冲突是指规定不允许同时放行的信号灯组中的绿色信号灯同时点亮[3]。就目前的交通信号控制机来说,产生绿冲突的原因大概有以下几类:
(1)系统软故障
此类绿冲突通常是由于交通信号机里面的控制系统出现死机或者是一些数据处理错误等软故障造成的。不仅如此,如果交通信号机在较为恶劣的电磁环境下工作,也会受到电磁干扰而出现短暂的绿冲突现象。
(2)硬件故障
由于信号机的硬件变质、损坏或者温度变化、受潮等原因造成的绿冲突。这种情况如果发生,就可能长时间持续下去,只能对信号机进行维修或者更换里面的部件[4-5]。
2 基于绿冲突矩阵的校验原理本文设计的绿冲突检测是基于绿冲突矩阵的检测原理,冲突矩阵的行和列分别对应一个信号灯组,为一对称矩阵,如图1所示。
在图1(a)中假设有G0、G1、G2三个绿灯信号,设G0和G1同时点亮视为冲突,G1和G2同时点亮视为冲突,则图中对应冲突的位置填入1,G0和G2同时点亮不视为冲突的位置填0,如图所示,本文称之为绿冲突矩阵数据,因此,绿冲突矩阵数据中的位信息1就是某绿灯对子不允许同时点亮的定义。校验过程如下:
当输入的信号为G0G1G2=010时(1表示绿灯亮,0表示绿灯灭):
(1)G0为0,不与G0所在的行校验,转下一行;
(2)G1为1,进行校验,将输入信号“010”与G1所在的行“101”相与,即010&101=0,数据正确;
(3)G2为0,同理不需要校验。
当G0G1G2=110,即G0和G1同时亮时,与G0所在行相与后结果非0,说明G0和G1信号冲突,此时,信号机应立即切断所有绿灯信号,转而执行黄闪信号。
本文设计的绿冲突检测电路对应15路绿灯信号G0~G14,如东西方向的直行绿灯、左转绿灯、右转绿灯、掉头绿灯、行人绿灯等。在本文中绿冲突矩阵数据是以字节为单位的,所以15路信号对应的绿冲突矩阵数据分成4块,每一块有8字节,按照图1(b)的编号顺序通过FPGA串口写进FPGA的ROM中。其中第一块数据用于校验G0~G7绿信号之间的冲突,第二块数据用于校验G8~G14与G0~G7绿信号之间的冲突,第三块数据用于校验G8~G14绿信号之间的冲突。第四块数据也是用于校验G8~G14与G0~G7绿信号之间的冲突,因此不需要写进ROM。在校验的过程中还应排除Gx与Gx自身的比对,如图1(b)中斜方向所示。
3 总体方案根据绿冲突矩阵的检测原理,采用自顶向下的设计方法将检测电路分为以下几个模块:(1)信号灯的灯组驱动电路,通过SPI方式在正常状态下接收信号控制机的灯组数据,在黄闪状态下接收冲突检测电路发送的信号灯黄闪数据。(2)冲突检测电路采用Xilinx的FPGA芯片XC3S50,通过SPI模块接收信号灯的状态数据。(3)数据接收结束后复位时钟分频模块,时钟分频模块产生其他模块所需时钟,所有模块都是在统一的时钟线上运行,以免发生时序混乱。(4)冲突检测模块,在检测时序期间对SPI接收的数据即信号灯的状态数据进行绿冲突校验,校验是根据上文所说的绿冲突矩阵比对各绿灯信号状态,该绿冲突矩阵数据存放在FPGA的IP核所生成的ROM里面。(5)黄闪延时判断模块,冲突检测模块的检测结果经过黄闪延时判断模块进行延时检测并确认是否有冲突。如果没有冲突,则灯组驱动继续接收信号控制机的灯组数据;如果有冲突,则黄闪标志置位,切断MCU的SPI通道,冲突检测电路通过SPI开始发送黄闪数据至灯组驱动,从而让灯组驱动切换至黄闪状态。总体方案如图2所示。
4 各模块设计
4.1 SPI模块
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)