APP下载

基于跳数的空间TTE控制网络确定性算法

2021-05-24赵琪旻周丽艳李旭东

郑州大学学报(理学版) 2021年2期
关键词:偏移量交换机分区

赵琪旻,刘 波,彭 宇,周丽艳,李旭东

(北京控制工程研究所 北京 100190)

0 引言

时间触发以太网(time-triggered ethernet,TTE)发展迅速,被广泛应用于车辆控制[1-2]、航空控制[3]和无线通信等领域[4]。该技术所表现的安全性、实时性和灵活性等特点,符合工业网络的未来发展方向。

目前,空间网络采用分布式网络架构,如图1所示。网络中每个节点都是对等个体,网络采用了主从双控制器模式和交换机冗余设计,以保障网络的可靠性和信息传输的实时性。由于基于CSMA/CD传输机制的标准以太网无法保证网络设备的“无冲突通信”,空间网络需要引入一种实时通信技术。TTE[5]根据网络中统一的全局时钟进行设备间的通信交互,在遵循IEEE802.3协议的同时兼容SAE AS6802标准,同时支持时间触发通信和事件触发通信。因此,搭载TTE的空间网络有望成为星载系统的主干网络。

图1 航天器控制网络模型

1 相关工作

网络物理拓扑结构由交换机(switch,Sw)、终端系统(end-system,Es)和物理链路(physical link,Pl)组成。TTE支持三种关键性数据流的传输[7]:时间触发(time-triggered,TT)流、速率受限(rate-constrained,RC)流和尽力传输(best effort,BE)流,其中TT流对抖动和延迟的要求最高。

TTE根据离线生成的调度表进行数据流的转发。调度表时间跨度为矩阵周期(matrix cycle,MC)[8],该周期由多个基本周期(basic cycle,BC)组成。数值上MC等于所有TT流传输周期的最小公倍数,BC等于所有TT流传输周期的最大公约数。合理设计的时间调度表可以实现物理链路上无冲突传输。

目前,调度表的生成方法主要分成两类。第一类是基于可满足模理论[6,9]的非确定性算法,该算法主要利用随机化思想,通过优化损失函数来生成满足条件的调度表生成解。这类方法包括采用粒子群算法、遗传算法[10]等进化优化算法实现或是通过强化学习方法搜索最优时间触发调度表。另一类算法为确定性算法,采用一系列规则来保证数据流无冲突传输。此类算法具有算法复杂度低、生成结果可验证、增量化调度性强的特点。文献[11]提出基于贪心思想的TT-RMS算法,该算法会计算消息传输截止时间,以判断下一消息最早何时可以传输,以避免消息碰撞。文献[12]提出将TT消息分为二跳消息和非二跳消息进行配置,通过建立一套配置规则,实现消息无冲突传输。航天器控制系统属于硬实时系统,当发生网络拓扑变化时需要进行动态实时调度[13],以迅速恢复系统功能。因此,确定性算法更加适合空间TTE调度。

本文提出一种增强型的确定性的调度算法。首先,本文介绍如何设计消息的传输路径,来提高网络负载均衡度。之后,介绍调度表生成算法,并对于算法正确性,即是否满足调度表基本约束条件进行论述。最后,通过实验证明所提算法设计的合理性。算法本身的确定性生成特点可以满足星上网络需求,同时对多跳消息的支持能力有明显提高。

2 HCS(hop-count schedule)算法模型

2.1 消息路径设计

降低消息对关键链路的依赖,可以提高网络负载均衡度。首先,对网络状态进行描述。定义消息集合F={f1,f2,…,fi},(0≤i≤N),fi表示第i个消息,N为需要传输的TT消息总数。fi.path={v1,v2,…,vn}表示fi的传输路径为v1→v2→…→vn;网络中存在M条物理链路。接着,对网络负载度进行量化分析,如公式(1)~(5)所示,

(1)

(2)

(3)

(4)

(5)

1)根据网络拓扑图G和消息集合F,计算出消息传输的最短路径配置CP;初始化最终配置方案CP*=CP。

3)若Q为空,算法结束;否则,队首元素pl出队,判断pl是否有中继节点,若存在中继节点则进入步骤4);否则,继续执行步骤3)。

4)找经过pl的所有消息F(pl),按他们消息周期从小到大排序,取其中最小周期对应的一个消息fi;遍历pl的所有中继节点,找到使{μ(源结点到中继节点的边)+μ(中继节点到目标结点的边)}值最小的中继节点,将原有路径修改,得到新消息路径配置CP*;重新计算μ、σ;若μ≤(1+k)·U,跳转步骤1);否则,回溯路径,执行步骤3)。

2.2 调度表设计

2.2.1调度表结构 本文对调度表的设计采用“时间槽”概念,将一个MC分成若干个大小相同的时间槽,并规定时间槽仅可放置一帧。实际情况中,还要考虑消息的传输延迟和发送延迟来确定时间槽的大小,合理调整时间槽的大小可以提高时间利用率[14]。

调度表将BC作为一行,表分为m=MC/BC行,每行分为n个区,n初始化设置为交换机个数swNum,矩阵表示为m·n的结构。

假设终端Es连接的交换机为Swq,则可以对该Es的调度表的列进行编号,编号规则如式(6)所示,Sw(q+j)表示路径第二跳交换机编号,等式右侧表示该交换机对应列号,具体可参考文献[12]。如果消息路径仅有一跳,则放入0号列。针对二跳消息,如果消息fi第二跳为Sw(q+j), 则对(q+j)号列中再编号,同样满足式(6)。但是,列编号中应当删除已经经过的交换机编号,即q和(q+j),并将二跳消息放入号位。这里(q+j)称为一级分区号,0称为二级分区号。对于三跳消息,假设经过的第三跳为Swp,则将消息配置在位置。对于更多跳的消息,可以按照上述方法继续配置。

(6)

归纳调度表结构划分策略,可以得到式(7),

(7)

其中:n表示基本周期的分区个数;H表示网络传输的TT消息的最大跳数;A表示排列运算。

假设在如图1所示的网络中,存在由Es1发送的三个TT帧,其传输路径表示为

f1:Es1→Sw1→Es2;f2:Es1→Sw1→Sw2→Es2;f3:Es1→Sw1→Sw4→Sw3→Es4。

此时H=3,BC分区数为4×3=12个,Es1一个BC下的调度表分区情况如图2所示,可以看出f1的分区号为< 0, 0 >,f1的分区偏移量为9;f2分区号为< 2, 0 >,f2的分区偏移量为2;f3的分区号为< 4, 3 >,f3消息的分区偏移量为8。

图2 Es1一个BC下的调度表

这里给出对于任意消息f,可以通过消息传输路径获得各级分区号f.sectionNo(式(8))、各级分区偏移量f.sectionOffset(式(9))和最终的BC上分区量f.section(式(10))。接下来按照所求f.section按序配置消息。

(8)

式中:f.path表示消息传输经过h1,h2,…,hm编号的交换机,消息f的区域编号是一个长度为S-1的数组,S代表交换机个数。由f.path可以得到区域编号f.sectionNo。若消息跳数小于S-1,则空余位置用0补充。

∀f∈F,f.path=[Esq,h1,h2,…,hm,Esp],S=swNum,n=P(i).size(),i∈[1,m],

P(i)={hk|hk∈(hi,hi-1)orhk∈(hi-1,S]∪hk∈(0,hi),k∈[1,i-2]},

(9)

式(9)主要计算消息在各级分区的偏移量,n表示前向分区对当前分区的影响值。例如,f3经交换机Sw4,Sw4的分区应当为(0, 1, 2, 3),但是f3之前经过了交换机Sw1,Sw4下分区为(0, 2, 3),所以二级分区号3的偏移量由原来的3变为2。n的计算分为两种情况:1)当后跳交换机编号大于前跳交换机编号时,n表示交换机hi-1之前经过的编号在(hi,hi-1)范围内的交换机的个数;2)当后跳交换机编号小于前跳交换机编号时,n的值应当是所经过编号大于在(0,hi)的所有交换机个数。ti表示第i级分区偏移量的计算方法。

∀f∈F,f.path=[Esq,h1,h2,…,hm,Esp],S=swNum→f.sectionNo=[s1,s2,…,sS-1]→

(10)

式(10)表示通过分区号和分区偏移量可以计算出消息所在的具体位置f.section,该值等于前m-2个分区偏移量乘以各级分区的分区数。tm-1表示最后一级分区的偏移量。

2.2.2算法合理性分析 算法的合理性主要体现在网络消息传输过程中不会造成消息传输链路“冲突”。由于本算法主要依据为消息传输路径跳数,可以分为两部分论证调度表的生成规则,有效避免冲突。

第一部分是连接不同Sw的Es的调度表结构不同,避免后续链路产生冲突。

第二部分是连接相同Sw的不同Es的调度表结构相同,如何保证消息调度不会产生冲突现象是我们要研究的问题。冲突即同一时间槽,一个物理链路上有两条方向相同的消息。为了避免这种情况,引入“同源消息”[6]概念。在文献[12]中,同源消息定义为:若两条消息由连接在同一个交换机的不同设备发出且所经过的交换机路径相同,则两消息互为“同源消息”,记为f1≈f2。意味着f1和f2不能占用同一个时间槽,否则会造成冲突。该定义是针对两条路径定义的,存在另一种情况会产生同源消息。因为当两个多跳消息是由连接到同一个交换机的不同终端发出时,如果传输路径上存在相同的数据链路便会产生冲突,即消息路径上经过大于等于两个相同交换机。例如,Es1→Sw1→Sw4→Sw3→Es4与Es2→Sw1→Sw4→Sw2→Es3两消息都会经过数据链路Sw1→Sw4,如果Sw1同时处理两消息,会发生消息冲突,应做同源消息处理。本文提出的HCS算法,由于对消息路径分辨明确,减少同源消息规模。

针对同源消息,本文采用预先处理的方式记录下所有的同源消息到SS数组中,每当处理f时,对f的所有同源消息进行标注,使其在f所在时间槽为不可占用状态,表示为式(11),

∀f1,f2∈F,f1≈f2→f1.section≠f2.section。

(11)

2.2.3算法步骤

3)沿消息传输路径更新交换机和终端设备的调度表,返回2)。

4)Es的调度表建立完成。

3 实验评估

该部分主要证明HCS算法的可行性,仿真网络拓扑结构如图1所示,包含6个端系统、4个交换机和12条物理链路。调度50条TT消息用于调度表生成,最大路径跳数H=3。TT消息长度不作设置,采用“时间槽”概念设计算法,消息周期为{4 ms,8 ms,16 ms,32 ms }的随机数。因此,MC=32 ms,BC=4 ms,调度表为8行12列的矩阵形式,这里设每行BC包含72个槽,每个槽代表4/72 ms。图3(50条消息中有20%的多跳消息)和图4(100条消息中有80%的多跳消息)显示了在原二跳-非二跳算法下不同的多跳占比消息的配置情况;图5和图6显示了在HCS算法下不同的多跳占比消息的配置情况。

从实验结果可以看出,HCS算法可以完成TT业务的调度;根据各个节点的调度表信息,可以分析出消息的传输路径。当网络出现设备故障时,可以方便定位受影响的TT消息。从图3和图5对比可以发现,两种算法都可以合理的调度TT消息,保证网络无冲突运行。但是,随着多跳消息的所占比例的增加,如表1所示,可以发现二跳-非二跳的算法下TT消息的最大传输片段不断增加,80%多跳消息的传输片段相比20%多跳消息的增加几乎翻倍,而HCS算法下消息没有太大变化。可以看出,HCS对于多跳消息的适应度明显优于原算法。对比图4和图6,在100条数据帧,80%的多跳率的情况下,可以明显看出原二跳-非二跳算法出现多个TT传输片段,而HCS下TT分布较为松散。当算法用于星上数据传输时,传输量庞大,原算法产生的大片TT传输片段会长时间占用时间资源和链路资源,造成非TT消息传输失败,HCS相较其能有效减少该情况的发生。

图3 (50,20%)二跳-非二跳算法

图4 (100,80%)二跳-非二跳算法

表1 多跳消息占比对TT消息配置的影响

图5 (50,20%)HCS算法

图6 (100,80%)HCS算法

4 总结

本文提出了一种根据消息传输跳数来对调度表进行设计的方法。首先从负载均衡和传输时间两个方面,对消息传输路径进行配置。之后,建立一套规则可将TT流合理地安排到调度时间表中。由于调度表的明确划分,能有效避免TT消息“带状化”的现象,RC和BE消息可以减少因长时间等待而造成的失效现象。HCS算法可以有效支持大网络、长距离的数据帧配置,提高系统的实用性。

猜你喜欢

偏移量交换机分区
面向未来网络的白盒交换机体系综述
贵州省地质灾害易发分区图
基于格网坐标转换法的矢量数据脱密方法研究
上海实施“分区封控”
局域网交换机管理IP的规划与配置方案的探讨
更换汇聚交换机遇到的问题
基于地铁交换机电源设计思考
基于AutoLISP的有轨起重机非圆轨道动态仿真
卷烟硬度与卷接、包装工序相关性分析
以南北地震带为例研究面向地震应急的宏观震中与微观震中偏移模型