异构网络高速公路的事故感知与报警方法

2017-07-31 21:57姜海洋李建兵叶珊珊徐静波
单片机与嵌入式系统应用 2017年7期
关键词:子网中继按键

姜海洋,李建兵,叶珊珊,徐静波

(解放军信息工程大学 信息系统工程学院,郑州 450001)

异构网络高速公路的事故感知与报警方法

姜海洋,李建兵,叶珊珊,徐静波

(解放军信息工程大学 信息系统工程学院,郑州 450001)

设计了一种基于异构网络的高速公路事故报警系统。基于该系统,提出了一种高速公路事故感知方法,并设计了异构硬件网络、交互通信协议和事故感知策略。通过设定不同的事故场景,用实验对事故感知方法进行了验证。结果表明,设计的交通事故感知方法实现了对按键报警信息、节点故障信息和总线异常信息的正确判断。

异构网络;智能交通;RS485总线;CAN总线

引 言

高速公路的快速发展,给人们的出行带来方便,同时也引发了一系列行车安全问题。相比普通的交通事故,高速公路交通事故具有损失大、危害重、救援难等特点[1],而且二次事故多发问题严峻[2]。现有的交通事故识别主要有两种方法:一是通过图像处理算法分析摄像机所采集的图像信息,以实现事故自动识别;另一种是由高速公路管理人员通过监视监控大屏幕识别事故[3-4]。两种方法在识别事故后均无法立即发出报警信息提醒后方车辆,难以防止二次事故的发生。

因此,本文设计一种基于异构网络的高速公路事故报警系统,系统可感知交通事故信息,并实时、自动控制布设在公路两侧的信号灯,发布报警信息,提示事故地点后方车辆,同时向高速公路监控中心报警。系统中交通事故感知功能主要由事故感知子网完成,本文重点对感知子网的搭建、事故感知协议的设计和具体感知方法进行介绍。

1 系统总体设计

设计的系统由远程管理系统和终端采集控制平台组成,系统网络拓扑结构示意图如图1所示。远程管理系统位于高速公路监控中心,其核心是服务器和系统管理软件。终端采集控制平台布设在高速公路上,它是基于CAN总线和RS485总线的分布式系统,采用三层网络布局。第一层是网关层,采用移动通信模块(GPRS)与远程管理系统通信,通过CAN总线接入中继层。第二层是中继层,该层的中继节点有A节点和B节点两种类型,两种节点对称分布在公路两侧,并通过ZigBee无线模块通信(各A节点间采用CAN总线中继通信组成主干通信网,B节点不支持CAN总线通信)。第三层是控制层,该层有控制节点(C节点),C节点与对应的A、B节点相连并对称分布在公路两侧。RS485总线和控制节点布设在公路两侧护栏上,每个中继节点均通过RS485总线连接10个控制节点,每个控制节点上安装有信号灯和报警按键。

图1 系统网络拓扑结构示意图

终端采集控制平台需要感知高速公路远距离范围内的事故信息,对可靠性和实时性有很高要求。由于GPRS网络覆盖面广且实时性强,并使用TCP/IP协议保证了通信的可靠性[5],故终端采集控制平台选用GPRS模块与远程管理系统通信。对于有3G或4G覆盖的区域,GPRS可用3G或4G来代替。通过对比不同的现场总线可知,CAN总线具有突出的高可靠性和远距离通信特性[6-8],因此选用CAN总线作为终端采集控制平台中继层的主干通信线路。同时,为了满足高速公路两侧信息的感知和信号灯的控制需求,并考虑到高速公路上横跨路面的布线方式不可行,因此A节点和B节点之间的通信方式选择了低功耗、短时延、高可靠性的ZigBee无线通信[9-10]。

交通事故信息感知的关键是事故信息感知子网,一个子网由1个中继节点(A或B)与10个控制节点(C)组成,下面重点介绍事故感知子网的系统设计、通信协议和事故感知方法的实现。

2 事故感知子网设计

中继节点与控制节点组成的事故感知子网主要用于采集按键报警信息和严重的交通事故中护栏上总线被撞断的事故信息。事故感知子网的通信选用可靠性高、成本低廉、技术成熟的RS485总线,其网络结构图如图2所示。

图2 事故感知子网结构图

以A节点和C节点为例,介绍事故感知子网中的节点硬件设计。A节点以32位ARM微处理器STM32F105R8T6为核心,它是针对需要互联和实时性能的应用而设计的互联型微控制器,支持2个CAN 2.0B控制器,满足做CAN总线中继的要求。A节点通过SP3485芯片连接RS485总线。C节点的核心是功耗低、稳定性强的STC12C5A32S2单片机,通过MAX485芯片连接RS485总线。总线首尾两端各接有一个120 Ω的匹配电阻,以消除总线上信号的反射回波,保证通信可靠性[11]。

3 事故感知策略设计

事故感知子网可采集的交通事故分为两类:第一种是事故当事人按下报警按键的情况;第二种是撞到护栏的严重事故,总线受损的情况。这两类事故信息的采集,主要通过中继节点轮询地与各个控制节点通信,并分析各控制节点返回应答信息来实现。

3.1 事故感知协议设计

中继节点对控制节点的访问采用静态时分复用(TDMA)策略,每个控制节点占用一个时隙,以避免总线冲突。中继节点是总线的主节点,由其发起总线上的对话,分别与各个控制节点握手通信。控制节点不主动向总线发出数据,只有收到中继节点的握手邀请才作出应答。中继节点轮询与全部控制节点完成握手的过程称为一个TDMA周期,若每个周期内,各个节点的应答指令均正常,则中继节点认为无事故发生,然后进行下一个握手通信周期,依次循环。中继节点发出信息的数据帧格式如下所示:

帧首信息类型控制节点起始/终止地址消息体长度消息体CRC校验码帧尾0xA50x5ATypeStartEndLenthDataCRCHCRCL0xBF

帧格式中Type用于标识信息的类型;在中继节点与单独的控制节点握手通信时,Type为1表示握手通信帧;Start与End的值相等且等于控制节点地址;Lenth的值为0。控制节点在接收完全部信息后,若Start和End的值与本节点地址相同,且CRC校验正确时,才对中继节点作出应答;否则抛弃该信息,等待下一次接收。

中继节点根据控制节点的应答信息来判定交通事故,应答信息的帧格式如下所示:

帧首信息类型控制节点地址消息长度消息内容CRC校验码帧尾0xA50x5ATypeAddressLenthC_AlarmCRCHCRCL0xBF

当发生轻微事故,事故当事人按下某个控制节点所连接的报警按钮时,该节点内的按键报警标志位Button_Down将被置为1。控制节点在应答中继节点时,若判断Button_Down为1,则返回的应答消息帧格式中的C_Alarm的值为2表示按键报警,Type的值为1表示应答信息帧,Address为此控制节点的地址。中继节点收到信息后,若判断C_Alarm的值为2,则认为有事故发生。

当发生严重的交通事故导致某个控制节点与中继节点的通信线路被撞断时,中继节点将无法接收到相应控制节点的应答信息。中继节点会再次与该节点发起握手通信,在无应答的情况下,重复该过程三次,然后地址信息加1,再与下一个控制节点进行握手通信,若下一个节点仍无应答,则认为出现严重事故,若下一节点应答正常,则认为前一节点出现故障,但总线连接正常,最后中继节点继续轮询与控制节点握手通信以检测事故。

3.2 事故感知方法的软件实现

事故感知方法的软件实现包含中继节点软件和控制节点软件两部分。中继节点软件包括事故检测程序和串口中断程序,控制节点软件包括外部中断程序和串口中断程序。事故感知方法的各程序关系如图3所示。中继节点的事故检测程序发起与控制节点的握手通信,控制节点在串口中断程序中接收握手信息,并根据其外部中断程序中的Button_Down来识别按键报警信息,再返回应答信息给中继节点。中继节点的串口中断程序接收控制节点的应答信息,若接收完成,则将接收完成标志位Finish置为1,并提取C_Alarm信息。事故检测程序根据Finish判断是否接收到控制节点的应答信息,根据C_Alarm信息来判断报警按键是否按下。

图3 事故感知方法的各程序关系示意图

(1) 中继节点的事故检测程序

事故检测程序主要功能是检测节点故障信息和事故信息并报警,其程序流程图如图4所示。中继节点首先设置要检测的节点地址,其次执行握手通信子函数,该子函数的流程图如图5所示,然后地址加1。在握手通信子函数中,首先发送握手通信指令,并根据Finish信息判断是否握手成功。若成功,则返回握手成功标志位Link_OK=1给事故检测程序,否则再次发送握手通信指令,在连续握手失败三次的情况下,返回Link_OK=0。

图4 中继节点的事故检测程序流程图

图5 中继节点的握手通信子函数流程图

然后事故检测程序根据Link_OK判断控制节点的连接情况。分两种情况讨论:

① 有Link_OK等于1,即握手成功,则需要根据C_Alarm判断按键报警。若C_Alarm不等于2,则认为无按键报警,然后继续轮询检测其他控制节点。若C_Alarm等于2,则认为存在按键报警,然后停止事故检测并报警。

② Link_OK不等于1,则需要继续判断是节点故障还是总线损坏。中继节点再次执行握手通信子函数,判断是否与下一个控制节点握手通信成功。若握手失败,则认为有事故发生,然后停止事故检测并报警。若握手成功,则认为前一个节点故障但无事故发生,并发出节点故障报警信息,然后判断是否有按键报警,在无报警情况下,继续轮询检测,若有按键报警,则停止事故检测并报警。

(2) 中继节点的串口中断程序

中继节点的串口中断程序接收完应答信息后进行CRC校验。若校验正确,则提取C_Alarm值,并置位Finish为1;否则,清零接收计数器和接收缓存。

(3) 控制节点的外部中断程序

控制节点通过外部中断采集报警按键信息。若报警按键被按下,则外部中断被触发,置Button_Down为1;否则,Button_Down保持0不变。

(4) 控制节点的串口中断程序

控制节点在串口中断程序中接收握手通信指令并应答。控制节点接收完握手指令后,首先进行CRC校验,并判断中继节点是否与本节点握手通信,若是,则根据Button_Down判断报警按键是否按下。若按下则置C_Alarm为2,否则C_Alarm为1。最后将信息发送给中继节点。控制节点的串口中断程序流程图如图6所示。

图6 控制节点的串口中断程序流程图

4 事故感知策略的验证与分析

4.1 事故感知策略的验证方法

图7 测试平台

事故感知策略的验证选用由1个中继节点A1和3个控制节点(C1、C2、C3)组成的事故感知子网,子网中各节点按照本文图2所示的方式连接,测试平台如图7所示。测试分为4种场景:①系统正常,无报警;②报警按键被按下;③总线连接正常,但某个控制节点故障;④总线被撞断或损坏的异常情况。针对这4种场景,利用软件工具对节点间的通信数据进行采集和分析,以此来验证交通事故感知方法。

对于4种不同的场景,分别进行如下操作:①系统上电后,不进行任何操作。②系统正常运行一段时间后,按下C2节点上的报警按键。③系统正常运行一段时间后,关闭C2节点的电源,模拟节点故障。④系统正常运行一段时间后,断开C2节点与C1节点之间的总线,模拟总线被撞断。

4.2 测试结果与分析

使用软件工具采集RS485总线数据的情况如图8所示。

图8(a)是系统正常时的数据采集情况,A1节点与3个C节点不断地轮询握手。

图8(b)是C2节点的报警按键被按下的情况,方框内的数据帧是C2返回的数据帧,帧格式中的C_Alarm为0x02。A1节点收到该信息并判断C_Alarm为0x02,即认为C2节点的按键被按下,然后停止与各控制节点握手通信。

图8(c)是C2节点出现故障的情况,故障信息被感知过程的数据如方框内所示。由于C2节点故障,其无法应答A1节点的握手信息。A1节点按照协议连续三次发送与C2节点握手的信息均未收到应答,转而与C3进行了一次握手;与C3节点握手成功,则中继节点认为C2节点故障,总线正常。然后A1节点继续与其他C节点轮询握手通信。

图8(d)是C2与C1之间总线断开的情况,此时A1节点无法与C2和C3握手通信。中继节点按照协议,连续三次发送与C2节点握手的信息,C2节点均无应答,然后中继节点向C3节点发送三次握手信息,C3节点同样无应答,此时A1节点认为C1与C2之间总线被撞断,并停止与各C节点握手通信。上述测试结果表明,本文提出的事故感知策略可有效地在设计的4种场景中正确判断出系统正常、报警按键被按下、节点故障和总线被撞断的信息。

结 语

[1] 刘东,马社强,牛学军.我国高速公路交通事故特点分析[J].中国人民公安大学学报:自然科学版,2008,14(4):65-68.

[2] 尚炜,高大庆.高速公路安全形势及对策研究[J].中国公路,2012(18):106-108.

[3] 蔡志理.高速公路交通事件检测及交通疏导技术研究[D].长春:吉林大学,2007.

[4] 胡宏宇.基于视频处理的交通事件识别方法研究[D].长春:吉林大学,2010.

[5] 赵亮,黎峰.GPRS无线网络在远程数据采集中的应用[J].计算机工程与设计,2005,26(9):2552-2554.

[6] 张桢,牛玉刚.DCS与现场总线综述[J].电气自动化,2013,35(1):4-6,46.

[7] 冀石磊,夏继强,陶震宇,等.基于GPRS及CAN总线的远程电机群控制[J].单片机与嵌入式系统应用,2015,15(1):27-30.

[8] 李真花,崔健.CAN总线轻松入门与实践[M].北京:北京航空航天大学出版社,2011.

[9] 蒲泓全,贾军营,张小娇,等.ZigBee网络技术研究综述[J].计算机系统应用,2013,22(9):6-9.

[10] 杜军,马俊,周亚强.基于ZigBee技术的电子标签识别系统设计[J].单片机与嵌入式系统应用,2015,15(3):54-57.

[11] 于月森,叶王庆.RS-485总线可靠性应用研究[J].微计算机信息,2007,23(23):274-276.

姜海洋(硕士研究生),主要研究方向为嵌入式系统应用与开发、电子系统设计。

Freeway Accident Detection and Alarm Method Based on Heterogeneous Network

Jiang Haiyang,Li Jianbing,Ye Shanshan,Xu Jingbo

(School of Information System Engineering,PLA Information Engineering University,Zhengzhou 450001,China)

In the paper,a freeway accident alarm system based on heterogeneous network is designed.Based on the system,a method of sensing freeway accident is proposed.And the heterogeneous network,the interactive communication protocol and the accident detection method are designed.By setting different accident scenarios,the realization of the method is verified.The experiment results show that the design of traffic accident detection method can realize the correct judgment of button alarm information,node fault information and bus abnormal information.

heterogeneous network;intelligent transportation;RS485 bus;CAN bus

TP277

A

�士然

2017-03-13)

猜你喜欢
子网中继按键
一种简单子网划分方法及教学案例*
基于有限状态机的按键检测程序设计
子网划分问题研究及应用
考虑中继时延的协作中继选择方法
子网划分的简易方法
一种多方向导光按键结构设计
中继测控链路动态分析与计算方法研究
Nakagami-m衰落下AF部分中继选择系统性能研究
基于安全协议的虚拟专用子网研究
基于有限状态机的STM32系统按键识别方法