航空电子全双工交换式以太网(Avionics Full DupleX switched Ethernet,AFDX)
文章目录
- 1 航空电子全双工交换式以太网(Avionics Full DupleX switched Ethernet,AFDX)
- 1.1 协议概述
- 1.2 协议层次
- 1.3 拓扑结构
- 1.3.1 基本拓扑结构
- 1.3.2 冗余拓扑结构
- 1.3.3 拓扑结构应用
- 1.4 消息格式
- 1.5 虚拟链路
1 航空电子全双工交换式以太网(Avionics Full DupleX switched Ethernet,AFDX)
1.1 协议概述
在普通以太网技术的基础上,采用交换技术与单网段全双工传输方式之后,可以克服共享介质以太网CSMA/CD机制固有的介质访问时间不确定性的问题。然而,单纯的交换式网络和有限的优先级,仍无法满足复杂的航空电子系统通信任务在实时性和可靠性方面的严格需求;并且,通信任务之间缺乏流量的管理与隔离,无法支撑实时通信任务发布与调度的设计。随着欧洲空中客车A380工程的实施,推出了"航空电子全双工交换式以太网"(Avionics Full DupleX switched Ethernet,AFDX)技术,对交换式网络进行严格实时性和冗余配置改造,以用于大中型飞机的航空电子系统。
AFDX由A380项目中的产品演化为规范化定义的技术。2000年前后,ARINC公司发布了ARINC664 part7规范草案,对这种"确定性网络"进行了定义;在2004-2006年之间,规范草案演化为正式的标准,并于2005年6月公布。
AFDX的物理层服从ARINC664 part2规范中对于飞机数据网络(Aircraft Data Network,ADN)物理层的定义,后者考虑到飞机上以太网应用的适用性,对COTS以太网协议的物理层进行选择,对部分参数进行定制,并规定计算链路预算的方法。根据该规范的定义,AFDX网络可以选用的电信号接口包括10Base-T和100Base-TX,光信号接口包括100Base-FX和1000Base-SX。
AFDX是专用于航空电子网络互联的"确定性网络"。“确定性"主要是指时间的确定性,即"实时性”。ARINC664 part7规范定义了实时性的性能保证机制,同时包含固定路由和冗余数据包管理等内容。另外,在ARINC664规范定义的协议族中,网络管理、SNMP字典服务、网络管理远程监视器的配置、网络综合与区分服务、保密性和简单文件传输协议等分别根据不同的商用或工业标准改造而成,并在AFDX的上层应用中使用。一个典型的AFDX网络由端系统(EndSystem,ES)、交换机和链路组成。实时性能的保证机制主要由端系统实现,交换机具有流量的管制与过滤功能。AFDX的实时性主要体现在基于虚拟链路(Virtual Link,VL)的通信方式。
AFDX网络主要在大型客机上得到应用,包括空客宽体飞机A380和波音梦想飞机B787,我国大飞机C919也采用了AFDX组网技术。
1.2 协议层次
AFDX基于商业以太网标准,采用IEEE802.3/IP/UDP协议的大部分内容,并根据航空电子系统实际情况在实时性、可靠性等方面进行改造,是一个适用于航空电子系统的通信接口协议。按照0SI协议层次划分,AFDX协议可以分为传输层、网络层、链路(MAC)层和物理层四层,如图所示。

在消息发送过程中,发送协议首先将信息发送到AFDX端口,UDP传输层责添加UDP报头(包括合适的源和目的UDP端口号)。一般情况下,这些端口号都是通过系统配置确定,并固定映射于每个AFDX通信端口。IP网络层接收到UDP数据包后根据虚拟链路最大帧长Lmax来决定是否要对包进行分包处理,当数据包长度大于最大帧长Lmax时,就将数据包分成一些小的数据块。然后添加IP报头,对每个数据包计算IP校验和。IP网络层还在数据包上添加以太网报头,并将以太网帧发送到合适的虚拟链路队列中。帧进入链路层,虚拟链路负责调度以太网帧的发送时间,添加顺序号,然后将此帧发送到r冗余管理模块。在冗余管理模块,复制帧(如果需要的话),然后把网络地址添加到以太网源端地址,将此帧发送。在交换式网络里,根据虚拟链路地址进行路由。
在消息的接收过程中,其接收过程同发送过程相反。当终端接收到以太网帧,首先利用帧校验序列号(FCS)检查帧的正确性,如果没有错误,AFDX帧去掉FCS校验位,再通过数据完整性的校验,传输到冗余管理单元,这几步是在链路层完成的。然后帧进人IP网络层,IP网络层主要负责IP校验、检测和UDP帧的重组。最后,通过UDP传输层把数据包传输到合适的UDP端口,完成消息接收,并通知上层应用。
1.3 拓扑结构
1.3.1 基本拓扑结构
AFDX网络相较于ARINC429、MIL-STD-1553B等总线形网络,具有带宽高、扩展性好的优势,同时还具有确定性好和实时性高的特点。如图所示,AFDX通信网络由三大部分组成:端系统、交换机和通信链路。AFDX网络消息的通信过程可简要概括为:通信任务由驻留于端系统的分区产生,并交由端系统上的VL来承载,VL从源端系统发出,历经交换机网络静态转发,最后到达目的端系统分区中。

端系统(End System,ES)被嵌入在航空电子装备中,它们的主要功能是提供确定性通信服务,以保证应用之间安全可靠的进行数据交换。通常一个端系统能够支持多个航空子系统,可以采用分区机制实现多个航空子系统间的隔离。这种隔离是通过限制每个分区的地址访问空间和处理执行时间来实现,其具体定义在ARINC653中进行了定义。
交换机包含五个相互作用的功能模块。通过交换功能实现数据流在交换网络中的转发和路由,其中包含流量过滤与管制功能,以实现对错误传输帧的检测,以及对流量合规性的进一步检查。监视功能通过MIB库(管理信息库)实现网络管理,从所有组件收集信息,实现信息相关性分析,用来检测/定位失效,并用来分析网络性能。交换机内的端系统用来增强交换机的管理和配置功能,可以把它看作是内嵌于交换机内的端系统,但一般不参与正常通信。配置表包含交换机配置信息,交换机使用存储在配置表的参数来实现过滤与管制功能、交换功能以及内嵌端系统功能的配置和定义。
1.3.2 冗余拓扑结构
为了满足航空电子的可靠性要求,AFDX采用了热备份的冗余设计方案,如图给出了双冗余网络的示意图。端系统通过多个独立冗余的网络进行相互之间的通信,这样无论任何一个网络中交换机或者链路出现故障都不会对端系统的通信造成影响,而且热备份的方式也消除了由链路切换造成的延迟时间对于网络数据通信的影响。

AFDX的冗余机制也是建立在VL的基础之上。数据在传送之前都会被送往通信协议栈进行处理,除了添加分组报头之外,还添加了一个数据发送的序列号SN。在数据的接收端,则根据数据包中的序列号进行冗余管理,对于最先到达的正确数据包进行接收,而对于其他与之具有相同序列号的数据包则进行丢弃处理。冗余管理由终端通过相应的冗余管理算法(Redundancy Management Algorithm,RMA)来实现,如图所示。

1.3.3 拓扑结构应用
虽然AFDX不能像先进综合式航空电子"统一网络"那样满足具有密集的信号和信息处理核心组件的互连需求,但由于它的组网规模大,拓扑结构具有一定的灵活性,很适应大中型飞机的航空电子综合化网络互联。用它替换ARINC429或ARINC629等航空电子总线,具有大幅度减少分立电缆重量、提高信息通道带宽的优势;而且AFDX数据包可以封装原有ARINC429消息,使得原有设备接口的改造较为简易,起到保护既有投资的作用。
空客A380型飞机从航空电子的总体上考虑AFDX互连网络的设计,该型飞机的飞行控制、驾驶舱、燃油、动力和机舱系统的电子设备,在考虑冗余配置和空间位置分布的条件下,分别与AFDX交换机相连,每台交换机连接大约20个节点(通过ES与主机互连),形成接入交换网络;交换机之间形成骨干交换网络。接入网络实行基于数据包的热备份冗余,交换机之间形成多条冗余路径。在空中客车公司的军用运输机型号A400-M,预计也将采用类似于A380的AFDX互联方案。
1.4 消息格式
AFDX采用普通以太网帧格式进行帧定义,其帧结构如图所示。

AFDX结构的特征为:
- 帧间间隔:作为以太网帧,在线路上帧前是前导字(7B)、SFD(1B),帧与帧之间至少间隔IFG(相当于传输12B的时间)。I
- MAC层帧的头部结构:包含目的MAC地址(6B)、源MAC地址(6B)和类型/长度域(Length/Type,T/L,2B),AFDX帧的T/L必须用作"类型",并且被设为"0800h",表示使用IPv4格式。
- MAC层帧的尾部:帧校验序列(Frame Check Sequence,FCS),采用CRC校验。
- IP头部结构:占20B。
- UDP报文头部结构:占8B。
- AFDX有效载荷:以太网帧是变长的,AFDX有效载荷的长度也是可变的,一般为17~1471B;当不足17B时,后面用"0"填充使之达到17B。
- SN域:占1B,用于网络冗余传输。SN是一个8位自循环计数器,计数范围是0~255。帧序列号(SN)对于同一个VL上发送的每个相继的帧递增加一,并且在值为 255 之后回卷到1。通过SN可以检测有无帧丢失,从而增加通信的可靠性保证。
AFDX采用VL进行固定路由寻址,VL的标识号被嵌入到目的MAC地址中,如图所示,通过VL的ID进行消息帧目的MAC地址识别,并依据于存储在交换机内的静态路由表向目的端口进行路由和转发。虚拟链路标识符为一个16位的标记区,最大支持65536条不同VL。

对MAC源地址,AFDX建议其格式如图所示。

该地址前面包含24位的常量域,接着为User_Defined_ID域,作为发送ES的标识;该地址还包含3位的接口标识(Interface_ID),表示以太网MAC控制器连接哪个冗余网络,最后是5位的常量域"00000"。
IP源地址被定义为与ES关联的发送分区,如图所示。IP源地址的前8个二进制位必须是"0000 0100",其中第1位表示为"A类地址",也是单播地址,其余7位表示私有IP地址。

AFDX网络中使用的IP单播地址中嵌有16位的User_Defined_ID,由系统集成者为AFDX网络中每个IP可寻址的端系统赋以一个唯一的并且有意义标识,建议与帧中MAC源地址中的User_Defined_ID相同。
对于使用固定的VL设置的通信,使用多播地址,地址格式如图所示。

多播地址的高4位二进制值为"1110",表示为D类(多播)地址;后面28位中的高12位二进制值必须取固定值"0000 1110 0000",使多播地址按照点分十进制表示为"224.224.x.x";28位中的低16位为VL_ID。
1.5 虚拟链路
AFDX引进了虚拟链路(Virtual Link,VL)的概念,对带宽资源进行有效地分隔。VL是指从数据源发出的一路数据包流量,可以是一对多的多播方式。在逻辑上,VL类似于 ARINC429的一路链路;在物理上,多多路VL共用一条以太网链路,并通过交换机进行交换。由于VL流量的异步到达造成VL流量存在时延抖动现象,抖动值的大小取决于交换机多路复用的具体配置,如果VL跨越几个交换机,则在每个交换机中的时延抖动值都可能不同。实时通信的设计目标要求端到端的时延抖动被限制于确定的界限之内。
AFDX网络协议通过虚拟链路实现普通以太网实时性改造,主要反映在流量整形、静态路由、帧过滤和流量管制、冗余管理等方面。
- AFDX网络通过VL承载航电通信任务,通过VL对不同的消息流量进行逻辑隔离;
- 流量整形功能对每条发送的VL,按照配置的带宽分配间隔(Bandwidth Allocation Gap,BAG)在发送端进行整形,从而约束每条VL的逻辑带宽;
- AFDX采用静态路由方式实现基于VL的帧路由和转发,VL流经的源端系统、目的端系统和途经交换机都是确定的,保障了VL路径的确定性;
- 在交换机中帧过滤功能将对每条VL进行检查,错误的数据帧将被丢弃,保障了错误帧的隔离;
- 交换机中的流量管制功能将丢弃或者缓存突发的消息数据帧,实现VL流量带宽消耗的合约检查,并可以隔离因为故障而突发的VL流量;
- 目的端系统中冗余管理功能将依据于VL实施流量的完整性检查和冗余管理算法,增加通信的可靠性。
-
流量整形
在发送端采用流量整形机制在多条虚拟链路间分配通信资源。对每条VL定义:- 最大帧长度(Maximum Frame Size):记为Lmax,并将线路上的最大帧长度记为Smax。
- 带宽分配间隔(Bandwidth Allocation Gap,BAG):记为TBAG;对于给定的VL,BAG定义前后两个数据包之间的最小间隔。
由最大帧长度Lmax和带宽分配间隔TBAG约束下的VL,其承载的流量最大能利用的带宽为Smax/TBAG,从而实现消息源端的流量限制,并决定了聚合流量在最坏情况下的排队延迟界限。基于BAG的虚拟链路流量整形功能如图所示,可以看到第2个和第3个到达的AFDX帧被BAG推迟发送,而对于第4个到达的AFDX帧,由于其与第3个AFDX帧的帧间隔大于BAG,可以立即送入VL调度器进行数据帧发送。

-
VL调度
当多条VL进入VL调度器进行数据帧发送时,VL调度器对这多条VL按照轮转调度策略进行调度,如图所示。来自不同AFDX端口的消息,分别进入子虚拟链路(sub-VL)队列,通过流量整形,这些sub-VL组装成VL,VL经过调度器聚合,共享物理链路,并可以通过冗余的物理网络接口接入到AFDX网络。

对于同一个VL上的数据帧,TBAG为前后两个数据包之间的最小间隔,当没有其他流量干扰时,理论上该VL承载的数据包会按照固定间隔TBAG从物理端口输出,但当VL调度器同时需要对多条VL流量进行调度时,多条VL的流量可能会同时竞争端口聚合输出,造成同一VL承载的数据包在物理端口的出现时间不确定,也叫作抖动,抖动是由调度算法引起的,而不是由流量本身造成的。在调度器的输出端,对于给定的某个虚拟链路,帧能够在某个有界的时间间隔中出现,这个时间间隔则被定义为最大允许抖动Jmax,如图所示。

实际上可以通过下式计算端系统发送VL的最大抖动边界:

式中:C为端口速率;Jmin为最小固定技术时延抖动。40μs是典型的最小固定技术时延抖动值。根据该公式,端系统若具有较少的VL并且其中待处理的帧是短帧,则最大允许的抖动将较低。依据于ARINC664协议,在所有的情况下,抖动需要被限制在500μs的界限内,以限制对整个网络传输确定性的影响。 -
静态路由
对于AFDX交换节点,ARINC664协议约束其采用存储转发的方式进行消息转发处理,在其消息寻址过程中,采取静态路由方式,并通过UDP源端口 + IP源地址 + MAC目的地址(VL标识) + IP目的地址 + UDP目的端口的组合寻址方式进行寻址,如图所示。

在这里,VL成为了路由的关键识别标志,交换节点通过识别消息报头的VL,根据转发配置表中VL的映射端口进行消息转发。对于每条VL,配制表包含的典型参数包括:输入物理端口、输出物理端口列表、MAC目的地址(VL标识符)、带宽分配间隔(BAG)、最大允许抖动、最大允许以太网帧线路总长度(Smax)、最小允许以太网帧线路总长度(Smin)、优先级等。AFDX协议为每个端口分配了缓冲,对竞争输出的流量进行临时储存,避免消息丢失,同时采用优先级策略增强关键消息转发的实时性,在AFDX协议中,目前只支持高低两级优先级。 -
流量管制
为了保证VL帧与帧之间间隔满足流量约束条件,同时在空分交换结构中隔离不同VL承载的流量,在交换节点上采用信用量令牌桶的方法进行流量管制功能的实现。交换节点的管制功能为每个VL设定一个"账户"(account),以Smax/TBAG的速率进行充值,但最大不超过Smax * (1 + Jswitch/TBAG),其中Jswitch为系统设计者在VL经过交换机进行流量管制功能实现中所配置的参数;当该VL承载的一个数据帧到达交换节点时,管制功能模块查看该VL"账户"中的信用量,当当前"账户"信用量大于数据帧消耗值时,该帧数据被允许转发输出,并在"账户"中减去其所对应的消耗量;当信用量不足时,该帧数据被拒绝,从而约束VL承载流量的带宽消耗,使正常工作的VL不受"违规"流量的阻塞影响。流量管制算法分为基于字节管制和基于帧管制两种,分别对应账户Byte_ACi和Frame_ACi。交换机可以有选择地实现两种算法中的任意一种,或者两者都实现。算法的选择将影响网络可调度性的证明方法。
对于基于字节的管制:
- 如果Byte_ACi不小于到达帧的线路长度S,则帧被接受,并且从账户Byte_ACi的数值中减去S;
- 否则,该帧被丢弃,刷新相应的网络管理MIB实体,Byte_ACi的值不变。
对于基于帧的管制:
- 如果Frame_ACi不小于Smax,则帧被接受,并且从账户Frame_ACi的数值中减去Smax;
- 否则,该帧被丢弃,刷新相应的网络管理MIB实体,Frame_ACi的值不变。
此外,按照ARINC664协议,可以将几个相关VL按照某种分组策略进行分组,对该分组统一进行基于信用量的流量管制,从而增加流量管制功能的灵活性。
-
帧过滤与故障隔离
为了保证整个网络的稳健性,交换机只转发没有破坏的帧。按照IEEE802.3标准对到达的帧的CRC(循环冗余校验)序列进行校验。对于不满足该项测试的帧,交换机直接予以丢弃。如果以太网帧长度大于其所在VL定义的最大帧长度,将消耗多于预约分配的带宽,参照ARINC664协议,这样的帧也应该被交换机丢弃。交换机将丢弃那些VL中带有不允许进入输入端口标识符的帧。对于目的MAC地址中前部的32个二进制位,必须遵循ARINC664 part7规范的定义,否则违规的帧也会被丢弃。端系统的故障有可能造成VL不受BAG和最大帧长度的约束,而向交换机端口发送无意义的数据包,造成"违规"的流量;AFDX交换机具有"违规"流量隔离机制,如图所示。即在运行时间发现不符合流量特性的VL,并将它们与输出端口断开,使正常工作的链路不受"违规"流量的阻塞。

