分布式列控目标控制器通信总线的研究

2018-06-01 02:09杨晓东杨东颖孙永奎
铁路计算机应用 2018年5期
关键词:时钟时延总线

杨晓东,杨东颖,孙永奎,曹 源

(1.中车青岛四方机车车辆股份有限公司 科技发展部,青岛 266111;2.北京交通大学 电子信息工程学院,北京 100044;3.北京交通大学 轨道交通运行控制系统国家工程研究中心,北京 100044)

为满足人们出行快速、便捷的需求,保证安全性和运输效率的同时,提高对于多种系统运行平台的兼容性,针对下一代列控系统的研究已经展开[1]。作为道岔、信号机等信号设备的执行单元,列控目标控制器(OC,Object Controller)是列控系统研究工作的关键部分。

OC是室外信号设备的执行单元,由分散的电子接口模块组成,是连接上层计算机与室外信号设备的一个桥梁,是保障列车安全高效行车的关键信号基础设备。在轨道交通领域,站场一般存在多个信号设备,需要多个OC相互协调,保证其与上层计算机安全实时通信[2]。

在文献[3]中,虽然研究与探讨了OC相关关键性问题,并进行研究与设计,但是对于多个OC的安全通信总线方面的问题,还未有相关研究。OC呈分布式特点,存在通信实时性以及通信效率等问题,并且其对通信要求高可靠、高安全,但目前存在的通信总线无法解决这些关键性问题。基于分布式特点,研究多OC的安全通信总线及其通信机制问题具有实际价值。多OC的最终目的就是为了实现对多个信号设备的安全可靠控制,在这种控制中,通过基于分布式的OC通信总线,使数据包能够实时并准确地从源节点送至目的节点,保障信号设备与上层安全计算机的安全可靠通信。

1 通信总线结构

1.1 目标控制器

在下一代列控系统中,OC是信号机、道岔等信号设备的执行单元,设置在信号设备附近,沿轨旁呈分布式结构。

OC实时采集信号设备的状态信息,并通过安全计算机传递到联锁计算机,通过计算处理将进路办理命令通过安全计算机传递给布置在轨旁的OC,控制信号机、道岔的转换和开放[3]。

1.2 通信网络结构

总线结构应当确保在节点掉电和节点故障的情况下不会影响总线控制器与其他节点之间的通信[4],本文采用总线型拓扑结构。由于总线用于固定的OC内,具有固定的网络拓扑结构和设备地址,且拓扑结构为总线型,采用共享方式传输总线数据,列车总线必须有且只有一个主OC控制网络数据通信和介质分配。考虑到总线网络的可靠性,总线上可有多个冗余主OC,但在总线轮回周期时间内,只能有一个主OC是控制网络的数据通信和介质分配,其他备用的主OC在总线中完成从设备的功能。总线管理器之间采用令牌算法进行切换管理总线。OC与列车通信网络拓扑结构如图1所示。

图1 OC与列车通信网络拓扑结构

通信总线采用时间触发[5-7]的方式,主OC将每一个轮回时间划分为固定的时间片,即基本周期。为了保证通信的实时性,一个周期的时间要求尽量短,并且能够支持发送紧急数据。

本文制定了线路冗余以及主设备冗余两种冗余方案以达到容错的目的。

(1)OC同步发送出相同的数据在两条路线上,但是它只从其中的一条线路上接收数据,同时监视另一条线路。这两条线路在一定的情况下可以进行切换。

(2)主设备的冗余描述了从几个总线管理器中选择一个作为主设备在轮回周期内对总线的控制。系统在初始化时根据主权转移协议采用一个总线管理器作为主设备,其余处于备用主设备状态。每个总线管理器内都包含一个总线配置的数据结构,总线配置由一个实现索引来确定,同时该总线配置的数据结构是以令牌的传递来排序。

2 通信总线设计

2.1 总线分层与协议设计

根据OC的通信需求,可将时间触发总线的结构分为OC管理层、驱动层、链路层、物理层4个分层模型,如图2所示。OC管理层将逻辑控制单元的应用数据封装成帧,实现按帧透明传输;驱动层将逻辑处理单元的数据通过不同的通信实现方式传输给总线;数据链路层主要负责将链路层数据帧正确传输给对应的总线对象,包括时间触发机制、组帧和解帧、字符转义、差错控制;物理层负责实际数据传输,根据实际物理引线,通过操作时钟线和数据线实现数据收发。

图2 OC分层结构

为实现OC管理层能对总线进行统一操作,需要设计一个OC应用协议(OCAP,Object Controller Application Protocol)。OC管理层待服务用户需要总线通信服务时,利用OC应用协议组OCAP数据帧后,再由驱动层将数据传输给总线链路层。总线控制单元根据目的地址将数据帧传输到对应的节点,并交付给OC管理层,完成一次数据通信。

OC管理层协议实现了总线上设备之间的通信透明传输。OC传输的数据具有非固定长度的短报文的特性,因此OCAP数据段适宜采用变长方式,以及短报文方案设计(256 byte),整体定义如表1所示。

表1 OCAP格式

字段解释:

(1)帧序号(16 bit):分组序号,按1递增,无分组默认为0x01;

(2) 目的地址(16 bit):目标地址,识别目的接收方;根据OC的数量选择8 bit,留有余量;

(3) 源地址(16 bit):数据发送者的地址;

(4) 周期号(16 bit):用于识别进行的周期数;

(5) 类型信息(8 bit):用于识别协议信息所表达类型;

(6) 应用属性(8 bit):表示所属应用数据属性,如是否携带数据等。其他位预留,第1位表示当前应用类型是否有应用数据,1是,0否;

(7) 帧长度(8 bit):数据长度,不包括两字节的校验和;

(8) 数据段(变长):将要发送的数据,大小在0~230 Byte;

(9) 校验和(16 bit):使用校验和对要数据进行校验。

链路层实现时间触发通信总线核心部分,包括时间触发机制管理、主从控制逻辑、时钟同步、差错控制、调度等。

链路安全通信协议满足时间触发总线设计需求的链路层通信协议,用于完成通信总线通信设备之间数据安全可靠通信。设计的数据链路安全协议帧格式如表2所示。

协议字段说明:

(1) 起始位(8 bit):帧0x02,表示该帧开始标识;

表2 链路层协议格式

(2) 帧长度(8 bit):表示该数据段长度;

(3) 目的地址(8 bit):表示该帧是属于哪个通信对象;

(4) 应答序号(8 bit):应答已接受到的帧的序号,用于差错重传;

(5) 帧序号(8 bit):标识数据帧唯一性;

(6) 控制信息(8 bit):携带一些属性信息;

(7) 源地址(8 bit):表示该数据帧发送对象;

(8) 时间戳(16 bit):用于时钟同步的计时时间;

(9) 数据段:长度变长,需要传输的上层数据;

(10) 校验码(16 bit):检验码采用CRC-CCITT标准码,多项式表示0x11021;

(11) 帧尾(8 bit):帧尾0x03,表示该帧结束。

2.2 总线时间同步设计

采用局部时钟和全局时钟相结合方式,在主控节点的发送周期内,各从节点同步于主控节点;在从节点的发送周期内,各个节点以自身时钟为基准。本文在总线上实现从节点时钟同步于主节点时钟。在微周期的同步时隙内,主节点向总线广播带有主节点时间戳的同步信息,并且带有在此微周期内传输的从节点的ID信息,所有的从节点(OC)被动接受这些同步信息。其中,在此微周期内传输的从节点,接收到主节点发送的同步时钟报文后,发送同步反馈报文给主节点;主节点收到从节点的同步反馈报文后,计算内总线网络延时delay,并将delay值发送给从节点;从节点收到delay值后,通过delay值校正时钟,然后通过delaynew=[delaylast×(n–1)+delay]/n得到新的delay值,并保存新的delay值。而其它从节点,根据之前保存的delay值,调整局部时钟,使之同步于主时钟。

delay值的计算如式(1)[8]:

式中,t1为主节点发送同步报文中的时间戳(s);t2为从节点接收同步时钟报文时的时钟读数(s); t3为从节点发送同步反馈报文中的时间戳(s);t4为主节点接收到同步反馈报文时的时钟读数(s)。

从节点时钟t从调整算式如式(2):

式中:t主为主控节点发送的同步报文的时间,即时间戳的值(s); delay为之前所计算的内总线网络延迟时间(s)。

算法的同步精度主要取决于网络延时的准确度,同步精度用∑(delay–delay)2/n表示。

图3是上述算法的主从节点同步示意图,其中,t1~t4包含在tc内。

图3 主从节点时钟同步

同步初始化,主要是实现各个节点第一次时钟同步,并统一协商确定主控节点的ID。基于本文的设计模式,通信板是主控节点,因此上电时各个节点统一认为通信板为主控节点,协商一致后进入正常通信阶段。

总线节点时钟同步采用主从广播式。在每个时间片里额外划分出一段同步等待时间ts,如果某个节点身份确定为主控节点时,该节点的时钟升为全局时钟,并将自己时钟信息广播给全部的节点。根据主控节点反馈,使得从节点能采用时钟补偿方式修正时钟偏差。在时间[t–ts, t+ts]内,从节点只要收到主节点的同步信息则认为时间片计时结束,立即进入下一个时间片计时,同步过程如图4所示。

图4 节点时钟同步策略

显然ts取值大小会影响通信数据正确性。理论上ts越大,可容忍的时钟误差就越大,但通信效率就越低。该参数主要受各节点晶振误差的影响。该时间段在0.3%~0.6%之间能有效地保证各节点同步,且能容忍丢失两个节点情况下同步追踪。

2.3 总线通信调度设计

本文的调度算法采用基于时间片轮转的调度机制[9-10],周期性的划分时间片,建立一张信息调度表,使数据的传输都在确定的时间内进行。

状态信息调度表的生成主要根据编号的顺序。在初始化阶段,为总线中的节点分配编号,用于排列通信的顺序,称之为相对地址。同时,每个节点有一个固定的绝对地址,保证可以识别出每个节点。初始化阶段,每个节点向主控节点报告自己的绝对地址,主控节点分配给每个节点一个相对地址。总线采用半双工的方式,同一时刻只允许一个节点发送数据,在设备刚上电时,多个节点同时要获取相对地址,这就需要采用竞争的方式选出一个节点在总线上与主控节点进行通信。本文采用二进制指数退避算法作为竞争机制[11-12]。

然而,使用单纯的时间片轮转的调度算法,总线的灵活性很低。在每个周期中,通信节点发送数据只在自己的时隙内,存在紧急事件得不到及时处理的情况。为了满足更高的应变要求,需要增加一种更加灵活的调度机制。

在时间片轮转的基础上,用每个时间片的剩余时间来实现随机事件的传输。为了满足事件信息的发送,在每个微周期通信完成后,时隙内的剩余时间用来查找是否有随机事件发生。同时,为了满足节点的增加或者退出(热插拔)的需要,也要预留一定的时间来处理。

每个微周期时间分为两部分:(1)正常的状态信息发送,根据调度表发送状态信息;(2)事件信息的传输或检测是否有节点退出或加入,随机事件信息的传输比查找节点退出或加入的优先级高。时隙的分配情况如图5所示。

在收到事件信息时,将其放入消息队列。在8 bit标志位中,第1 bit代表信息类型,在事件信息队列中的帧,这位永远是1。接下来的7 bit是事件ID。事件ID即可以描述一个事件,事件信息在存入队列时,采用静态优先级进行排序。事件信息的ID就代表它的静态优先级。可配置事件ID与优先级大小的关系。

图5 时隙分配情况

要实现热插拔,即在通信节点数量可变的条件下实现时间触发,合理划分时间片。在时间片数量的设置上,根据初始化检测到的节点的数量进行时间片划分;检测到新加入节点或是节点退出的情况,根据节点数量实时更新时间片数量的划分。对于查找节点的退出或是加入,若是在时间片剩余时间内不能完成,只要时间片完成,则停止执行这项任务,留给下个时间片进行处理。

在系统初始化阶段,首先生成时间触发调度表。初始化流程图如图6所示。

图6 调度初始化流程图

在系统初始化完成后,正式周期开始。在两节点完成同步后,进入到正常通信阶段。一个时间片内,一个节点发送和另一个节点接收数据。周期调度流程图如图7所示。

图7 周期性调度流程图

3 通信总线验证

测试基于实验室已有的硬件以及平台,根据实验室实际情况,安全计算机部分采用实验室现有设备,利用PC104模拟通信板,以3个OC为例组成硬件实验平台。

3.1 OC与安全计算机通信时延测试

安全计算机与通信板之间通过以太网连接通信,为了获取安全计算机与通信板之间的通信时延,测试以太网的通信平均延迟如图8所示。

由图8可知,基于以太网的往返通信延迟在2 ms左右。将安全计算机到通信板之间的通信时延与安全计算机到OC的通信时延分离统计,使得通信子系统的时延分析方法可在不同的网络通信实现方案中都适用。

图8 以太网通信平均时延

3.2 分布式OC数量与其通信时延关系测试

分布式OC通信总线中,通信板是连接安全计算机与OC的重要设备,其决定了安全计算机与多个OC之间的性能。因此需要在通信板连接不同数量OC的情况下,测试安全计算机到OC的通信延迟。为了测试安全计算机与分布式OC数量之间的通信延迟关系,通过在安全计算机端分别与1个、2个、3个OC进行通信测试,获得的通信时延数据,利用MATLAB工具整理成绘图,如图9、图10和图11所示。

图9 1个OC时通信时延

图10 2个OC时通信时延

由图9可知,安全计算机到分布式OC的平均时延在15 ms左右,由3.1的分析可知,以太网时延在2 ms左右,因此,总线的时延在13 ms左右。本文设计的调度算法是在连续2个总线调度周期内完成信息传输,视为信息传输成功,总线调度周期是12 ms。13 ms小于24 ms,说明总线在2个调度周期内能完成一次数据的收发,表明实际测试结果符合预期设计。同时,图10、图11分别代表的是安全计算机跟2个和3个OC通信,而其通信时延相对于只有1个OC的情况而言,只是略有增加(15.1 ms<16.3 ms<17.2 ms<24 ms),说明在总线的一个调度周期内,当同时在线通信的OC数量增加时,安全计算机与OC总通信时延的增加主要受安全计算机与通信板之间通信时延的影响。

图11 3个OC时通信时延

3.3 分布式OC的连续发送次数与其通信时延关系测试

分布式OC与安全计算机之间通过以太网和时间触发总线建立通信。时间触发通信总线基于时间片轮转调度,本文设计的通信总线的每个调度周期为12 ms,总线上的节点都能完成一次数据收发。为了验证该时间规划策略在OC连续发送多次的通信延迟变化,在安全计算机端连续多次发送数据,测试结果如图12所示。

由图12可知,安全计算机与分布式OC的通信时延,与总线时间调度周期(本文设计为12 ms)成正比关系。由于总线调度周期内(12 ms),每个OC只能进行一次数据收发,因此当1个OC执行n次通信事件时,约在(n×12)ms内完成。也说明总线时间调度周期将直接制约分布式OC通信子系统的通信性能。

图12 连续发送的次数与通信时延关系

4 结束语

目标控制器作为下一代列车运行控制系统的地面设备,承担着监控基础信号设备的任务,其安全、可靠、实时的通信对列车行车安全起着重要的作用。本文基于目标控制器分布式的特点,设计了一种基于时间触发的通信总线,并对其进行验证测试,测试结果表明,能够满足通信实时性需求。

[1]郭 进,张亚东,王长海,等. 我国下一代列车控制系统的展望与思考[J]. 铁道运输与经济,2016,38(6):23-28.

[2]郭虹利. 列控安全计算机通信控制器的设计与实现[D]. 北京:北京交通大学, 2015.

[3]胡 瑞. 列控系统地面目标控制器的设计与实现[D]. 北京:北京交通大学,2016.

[4]关 越. 航空发动机分布式控制系统通信总线研究[D]. 南京: 南京航空航天大学,2013.

[5]关 越,潘慕绚. 基于DSP的航空发动机分布式控制TTCAN总线的节点设计[J]. 航空发动机,2013,39(4):61-66.

[6]Kopetz H, Bauer G. The time-triggered architecture[J].Proceedings of the IEEE, 2003, 91(1): 112-126.

[7]何浩洋,穆建成,马连川,等. 改进FlexRay总线的设计与实现[J]. 铁路计算机应用,2013,22(4):55-57.

[8]刘忠东. 全路信息系统时钟同步的实现[J]. 铁路计算机应用,2004,13(8):3-6.

[9]肖建明,张向利. 一种改进的时间片轮转调度算法[J]. 计算机应用,2005,25(S1):447-448.

[10]陈劲松,程新明,魏 忠. 时间片轮转算法在单片机程序设计中的应用[J]. 电子技术应用,2003,29(3):18-20.

[11]Zhu Y H, Tian X Z, Zheng J. Performance Analysis of the Binary Exponential Backoff Algorithm for IEEE 802.11 Based Mobile Ad Hoc Networks[C]//IEEE International Conference on Communications. IEEE, 2011:1-6.

[12]Pantazi A, Antonakopoulos T. Equilibrium point analysis of the binary exponential backoffalgorithm[J]. Computer Communications, 2001, 24(18):1759-1768.

猜你喜欢
时钟时延总线
别样的“时钟”
古代的时钟
5G承载网部署满足uRLLC业务时延要求的研究
基于GCC-nearest时延估计的室内声源定位
一种基于CAN总线的误码测试方法
有趣的时钟
简化的基于时延线性拟合的宽带测向算法
时钟会开“花”
CAN总线并发通信时下位机应用软件设计
基于CAN总线的水下通信系统设计