基于时间窗的AFDX端系统调度策略设计实现

2023-02-13 03:46范毓洋李子航
电光与控制 2023年1期
关键词:端系统轮询实时性

范毓洋, 肖 洪, 李子航

(1.中国民航大学,天津 300000; 2.西安电子科技大学,西安 710000)

0 引言

随着现代机载系统对数据交互容量和性能的要求提高,航空电子全双工交换式以太网(Avionics Full Duplex Switched Ethernet,AFDX)在很多机型上均得到广泛应用。由于AFDX采用虚拟链路(VL)的机制,与普通以太网相比,网络的时间确定性和网络的可靠性得到了提高[1]。其中,AFDX端系统是AFDX网络组成部分,嵌入在各航空电子系统中,可以通过交换机同时向一个或多个航电子系统提供安全、可靠的数据。端系统主要负责接收航电系统传输的数据包,通过内置信息转换系统将数据信息转变为符合AFDX协议的数据包形式,再通过交换机将数据包发送给其他的端系统。反之,端系统同样能够转换数据包内信息为航电子系统能够识别的信息,同时将信息传输给航电子系统。通过端系统和交换机共同建立起各个子系统间的连接关系,保证航电系统之间数据交换的安全和可靠性[2]。

虽然AFDX最初开发时旨在应用于安全关键的应用场景,但AFDX总线尚未成功应用于需最高可靠性的关键系统的信息交互,如飞行管理信息[3]。为了扩大AFDX总线应用范围,需对AFDX总线进行一些补充和改进。AFDX总线在高安全关键数据传输时需要提高AFDX网络的确定性,保证网络满足所需的服务质量QoS[4]。但是对于要求强实时性的数据,其传输时延和时延抖动的确定性界限仍不易得到保证[5]。此外,若信息的数据抖动不可控或网络配置不合理,则可能出现某一条VL的序列号反转,AFDX网络的故障冗余不能包容此类错误[6]。因此,在AFDX端系统的设计时,降低时延抖动的上限,对于提高时间的确定性和系统的可靠性是非常必要的。

目前AFDX端系统大多采用轮询的调度策略,将数据帧信息从端系统发送出去。所有VL拥有相同优先级,保证调度的公平性。但是由于AFDX端系统发送数据和机载电子系统产生数据是异步的,数据有可能在某一个时刻集中出现,出现数据拥堵,导致一些VL的传输时延很长。如果不能在构建网络时对时延进行有效估计和约束,则可能会出现抖动范围过大的情况,降低网络的可靠性,这样的网络是难以应用于飞控计算机或其他要求高实时性组件的。

为了使系统集成商或主机厂更容易配置整个网络,需保证每条VL在最差情况下的抖动值仍满足ARINC664标准和网络需求,减少每条VL的拥堵状况。本文研究了一种基于时间窗的AFDX端系统调度策略,分别从确定性、最差情况抖动、时延等方面对基于时间窗的调度策略进行了详细分析,并通过对该调度策略验证证明了基于时间窗的调度策略可以对最差情况的抖动做出有效的约束,提高整个网络系统的可靠性。

1 基于时间窗调度策略

1.1 传统轮询调度策略

传统的AFDX端系统采用轮询调度策略,调度方法基于VL进行轮询,一般采用快速的公平轮询策略。若轮询到的AFDX队列有待发送的数据帧且满足带宽分配间隔(Bandwidth Allocation Gap,BAG)就暂停轮询并立即输出该数据帧;下一次轮询时,从暂停的VL号处继续轮询,以保证轮询的公平性。通过轮询将多条VL的AFDX业务整合为一路业务,共用一条业务总线。

传统轮询调度下,所有VL拥有相同优先级,以保证调度的公平性;但当不同的VL同时出现在队列中时,会出现拥堵的情况,导致抖动过大。对于时延、抖动、冗余管理要求较高的VL数据帧,无法控制其优于其他VL进行调度,抖动值也变得不可控。对于有强实时性要求的航电系统,数据发送间隔不可控会导致电子系统无法按时处理数据,所以要对数据发送的最大间隔时间进行约束。

1.2 基于时间窗的调度策略

针对传统调度的缺点,本文提出了基于时间窗的调度策略。基于时间窗的调度策略是基于时间窗来进行业务的调度方法,如图1所示,其中,1,2代表VL号。

时间轴由多个密集的可配置的时间窗组成,图1中的每一个正方形小框为一个时间窗。该调度策略可依据配置文件将时间窗按VL号分配给不同的VL,产生一个调度表来进行调度。因为ARINC664P7中规定VL的BAG范围是[1,128],综合考虑延时和抖动两方面,设定每个小时间窗为50 μs,整个时间窗的小周期(时间窗中的一行)为1 ms,大周期(整个时间窗)为128 ms。端系统调度时基于大周期形成调度表重复进行,图中所示是将周期为100 μs的VL1和周期为200 μs的VL2加入到调度表中。

图1 时间窗调度表Fig.1 Scheduling table of time window

2 设计实现

数据发送流程如图2所示。

图2 数据发送流程Fig.2 Data transmission process

电子设备产生的待调度的VL数据存入数据缓存,根据数据缓存情况可知当前哪些VL有数据待发送,然后对相应的VL依据各自BAG的值进行流量整形,给一条VL分配一定量的带宽。通过流量整形模块后,该VL的数据帧间隔将不会小于BAG定义值。

由于不同VL对应应用可能是相互异步的,各VL的数据也是异步的,因此,可能出现不同VL的BAG 计时器同时耗尽的情况。若采用基于缓冲区的轮询策略,最后一帧需要等待其他所有帧发送完成才能发送,这会导致数据传输时间不可控,接收端不能按照预设周期处理数据。

针对上述问题本文设计了基于时间窗的调度方式,当VL上的数据满足BAG时,不立即传输数据而是将数据送入调度表,按照时间窗调度发送数据。

整形后的结果会经过业务调度模块,业务调度模块根据整形结果,检查满足BAG的VL是否被调度。当该VL的BAG整形通过且时间窗为该VL的时间窗,则发出发送命令,将缓存的数据读出;若不是该VL的时间窗,则等待其时间窗到来,再进行发送。

3 基于时间窗调度策略性能分析

基于时间窗的调度方式根据调度参数值去进行调度,可以使得抖动波动范围更小,且可根据实际应用需求配置各VL的调度参数,对于时延、抖动要求较高的VL数据帧,可以控制其优于其他VL进行调度,来控制时延与抖动波动范围,使数据发送具有更高的确定性。根据上述基于时间窗的AFDX数据帧的调度设计,下面对其具体参数进行分析,说明基于时间窗的调度设计的特点与优势。

3.1 时延分析

端系统的时延包括技术时延和配置时延,此处的时延可以理解为将数据帧从端系统接口送达到物理层花费的时间,对于时间窗调度方法,每条数据帧等待时间主要由BAG等待时延、调度时延和冲突时延3部分构成(对于传统轮询调度方法,延时时间只包括BAG等待时延和冲突时延两部分),即

D=a+b+c

(1)

式中:a表示BAG等待时延,数据帧到达队列缓存进行排队开始到BAG允许发送时间点的延时;b表示调度时延,BAG允许发送时间点到该VL的调度窗口允许发送的时间点延时;c表示冲突时延,该VL的调度窗口时间点到该数据帧被真正发送时间点的延时。

数据帧发送的时延参数在数据传输中的具体意义如图3所示,其中,bin表示一个时间窗的长度。

BAG等待时延由VL的BAG参数决定。调度时延在该VL的BAG已满足,但还未到达该VL的时间窗情况下存在。调度时延b范围为[0,p],p表示该VL上数据的发送周期。对于调度时延c为该VL时间窗到达时,信道上有其他业务正在被传输,此时,该数据帧需要进行等待。如图3所示,data1到达调度窗口时间点时,data0尚未传输完成,此时,data1需要等到data0数据帧发送完后才能真正被发送。

图3 端系统的时延Fig.3 Delay of end system

调动时延以及冲突时延的和表示为BAG满足的时间点到该VL的数据帧被真正发送的时间点之间的时间间隔,该时间间隔也被称为BAG抖动,即数据帧等待时延=BAG等待时延 + BAG抖动。由于时间间隔a由BAG参数决定,调度策略主要影响BAG抖动,所以对于数据帧等待时延来说,主要需要讨论BAG抖动的情况,说明基于时间窗的调度策略的特点。

3.2 抖动分析

对于轮询调度的模式,端系统输出端口的每条VL的最大允许抖动应同时满足式(2)和式(3)[1]

(2)

jmax≤500

(3)

其中:jmax是允许的最大抖动值,以微秒为单位;BNbw是介质带宽,在航空电子设备中常见的带宽参数是100 Mibit/s;Lmax表示最大帧长度,取值范围是[84,1538];40 μs表示典型的最小固定技术时延抖动。由式(2)、式(3)可知,最大的抖动时间取决于VL的数量以及每个数据帧的长度,对配置进行更改会影响最大抖动时间,而且对于重负载的端系统,最大抖动时延往往受限于式(2)。以100 Mibit/s带宽的网络计算,如果所有VL都按照每帧84字节发送数据,为了保证系统实时性,端系统仅允许同时发送68个VL的数据,但是如果不考虑实时性只考虑带宽性能,端系统能允许同时发送148个VL的数据。

对于时间窗调度算法,最大抖动时间受其他VL影响较少,冲突时延的范围是[0,Smax],调度时延范围是[0,t1-t2],参数满足

Smax+t1-t2≤500 μs

(4)

即可保证实时性。式中:Smax为在发送帧前一个时间窗所对应的数据帧的最大时长;t1为VL的调度周期;t2为时间窗长。

时间窗方法可以通过减小p的方式减少调度时延,提高重要数据的实时性。另外,时间窗调度算法限制了冲突时延,只有在前一个时间窗的数据没有完成发送的情况下,才会存在冲突时延,且最大时延时间可控。对于实时性要求较高的数据,可以通过更改调度表的相关参数,减小冲突时延。

表1为某航电设备实际发生数据帧的参数。

表1 数据帧传输参数

将表1中参数代入式(2)计算可知,VL0对应的最差情况的抖动时间应为145 μs,VL1对应的最差情况的抖动时间为195 μs,VL2对应的最差情况的抖动时间为395 μs,VL3对应的最差情况的抖动时间为395 μs,然而按照传统轮询调度方法计算,所有VL的最差冲突时延都是376.4 μs。由此可见,时间窗算法可约束关键数据帧最差情况抖动,且不会对其他数据帧造成很大影响。

3.3 确定性分析

根据上述分析可知,基于时间窗的调度策略通过分割密集的小时间窗,对每条VL安排确定的调度时间窗口。该策略一定程度上增大了AFDX的时延,但很大程度上能减小冲突时延,使得时延与抖动波动范围更小。且使用者可根据实际应用需求配置各条VL的调度参数,确定每条VL时延与抖动上限值,使数据传输更具有确定性,极大地避免了冗余失效情况的发生[6]。

3.4 轮询调度方法与时间窗调度方法选择

在AFDX网络对抖动时间要求不高的应用场景下,针对每条VL,如果其抖动时间在最差的冲突场景中仍然可以满足ARINC664标准,就不需要通过专门的时间窗调度方法进行调度,此时采用轮询方法可以减小数据延时,相对时间窗调度方法更具有优势。而在部分高确定性的应用场景下,系统集成商要求保证VL数据传输的最差抖动时间不超过其规定的上界,在直接采用轮询调度方法无法保证最差抖动时间的情况下,为了有效约束各VL帧的抖动时间,应该采用时间窗调度方法,并通过3.2节提供的分析方法合理配置各条VL的时间调度窗的参数,确保各条VL帧的抖动时间满足网络的确定性需求。

4 仿真验证

本文通过对基于时间窗调度策略设计进行针对理想调度、部分数据帧冲突和最差冲突3种情况的仿真测试,证明调度策略可对抖动做出有效的约束。

仿真过程中AFDX配置4条VL,VL配置参数如表1数据帧传输参数表所示。为了更有针对性地验证基于时间窗调度特点,仿真验证假设数据到来时,该VL的BAG已满足。表2是各种情况下传输质量相关参数的统计。

表2 数据传输质量参数

由表2可知,时间窗方法可以在增加总体数据延时的情况下,减少数据帧的抖动时间并有效约束最差情况下的抖动。系统集成商可以根据总线负载来选择调度方法,对总线负载较轻、VL数量较少的信道采用轮询方法调度。

5 结束语

通过对AFDX端系统基于时间窗调度策略的设计、分析和验证可知,基于时间窗的调度策略可以对最差情况的抖动做出有效的约束;且系统集成商可以根据实际应用需求选择配置不同的时间传输表,适应不同的应用需求。基于时间窗调度策略尽管可能增加所有帧的平均时延,但是通过合理的配置,可以使每条VL帧的抖动减小,最差时延可以控制在系统容许范围内,提高了每条VL帧的确定性,给AFDX在高安全等级信息传输应用创造更大的前景。

猜你喜欢
端系统轮询实时性
一种PCIe接口AFDX端系统的设计与实现
冶金联合循环机组汽机冷端系统运行优化
基于等概率的ASON业务授权设计∗
CentOS下AFDX端系统驱动设计与实现*
一种PCI接口AFDX端系统模块的设计与实现
航空电子AFDX与AVB传输实时性抗干扰对比
计算机控制系统实时性的提高策略
依托站点状态的两级轮询控制系统时延特性分析
利用时间轮询方式操作DDR3实现多模式下数据重排
一种车载Profibus总线系统的实时性分析