AFDX构架及协议分析*

2010-09-26 04:24民2王怀胜
电讯技术 2010年1期
关键词:接收端队列以太网

钟 杰,何 民2,王怀胜,郑 力

(1.中国西南电子技术研究所,成都 610036;2.海军驻中国西南电子技术研究所军代室,成都 610036)

1 引 言

新一代航空电子系统的实现依赖于许多技术的突破,而高速多路传输总线接口技术是新一代航空电子系统的关键技术之一。航空电子综合系统的实现主要取决于更通用的数据传输机制,并要求数据总线具有高度的分布式处理能力和高吞吐率。此外,数据总线本身还应具有抗各种干扰的能力,从而提高其在恶劣环境中的生存能力和安全性。

航空电子全双工交换式以太网(Avionics Full Duplex Switched Ethernet,AFDX)技术基于IEEE 802.3以太网和TCP/IP通用原理,利用商用货架(COTS)网络化技术来实现飞机设备间的数据高速通信,AFDX与普通商用以太网最大的不同点在于AFDX采用了虚拟链路技术和冗余管理,提高了数据传输的可靠性和服务质量。

近年来,随着AFDX在空客A-380平台上的成功应用,AFDX得到了航空电子综合技术研究与应用领域的广泛重视。在航空技术比较先进的发达国家,出现了一系列具有较强研究与应用价值的成果以及较多的产品[1~3]。在国内,也引起有关航空电子技术研究与应用领域的系统集成商和设备制造商的高度重视,并积极展开该领域广泛的研究[4]。

下面从系统集成角度来着重分析AFDX在相应的传输层、网络层、链路(MAC)层的组成、构架及设计实现方案。

2 AFDX协议分析

图1描述了AFDX协议与涉及的OSI模型、IEEE以太网标准间的关系。从图1可以看出,AFDX是基于商业以太网标准,采用IEEE802.3/IP/UDP协议的大部分内容,并根据航空电子系统集成的实际情况进行了优化的通信协议,是一个用于航空电子设备集成的系统通信接口协议。AFDX协议按照层次划分,可以分为传输层、网络层、链路(MAC)层和物理层4层。

图1 AFDX协议与OSI模型Fig.1 AFDX protocol and OSI model

2.1 信息处理流程

整个AFDX协议栈主要作用是有效、及时地封装处理接口端的发送和接收数据。AFDX的信息流程包含在链路层中。当在AFDX端口间传送信息时,牵涉到发送端口、AFDX交换机和接收端口的协同工作,并配置合理的地址,使信息到达需要到达的端口。图2为AFDX信息处理流程。M信息被航空电子子系统送入端口1,在AFDX端口1进行规定的封装,形成以太网帧格式,并通过虚拟链接地址100发送到AFDX交换机中;通过AFDX交换机的前向队列表的配置,把M信息传送到AFDX接收端口2;在AFDX接收端口2对M信息进行解包处理,最终把M信息送入需要的航空电子子系统中。在AFDX网络中一个重要的特性是网络信息包中所涉及的虚拟链接ID号在AFDX端口中是一致的。AFDX网络交换机采用虚拟链接ID号来选择预定的路由。因此,虚拟链接使信息包从源头送到固定的目的地。从图2可以看出:从源端系统1发送一个带有虚拟链接ID号的以太网帧信息到AFDX网络,通过AFDX交换机转送到预先设定好目的地址的端系统2和3。

图2 AFDX信息处理流程Fig.2 Message sent to Port 1 by the avionics subsystem

接收协议栈主要处理从AFDX端口接收的信息,其信息接收解包流程如图3所示。首先,接收以太网帧格式信息,在虚拟连接层利用帧校验序列(FCS)进行检验,如果没有错误,去掉FCS后的AFDX帧进行完整性检测和冗余管理检测。生成的IP帧信息进行IP网络层的解包处理,IP网络层主要负责IP校验、检测和UDP帧的重组。最后,通过UDP传输层把AFDX信息送到合适的UDP端口。

图3 AFDX接收解包过程Fig.3 AFDX Rx protocol stack

发送协议栈主要处理信息按AFDX信息格式发送到AFDX端口,其信息封装流程如图4所示。UDP传输层主要负责添加UDP报头,包括信息源和目的端的UDP端口地址;在AFDX通信状态下,这些UDP端口地址通常是设置好、固定不变的,只有在维修端口,其IP地址和UDP地址是动态分配的。IP网络层主要负责接收UDP帧和确定是否需要进行IP分区,IP网络层采用适当的虚拟链接来确定分区是否必要,对每一个分区进行IP头和校验和的封装,IP网络层还负责以太网帧格式的封装。虚拟链接层负责安排以太网格式信息的发送,并添加到发送顺序队列中,该发送的信息格式还需通过检测是否重复、信息格式中以太网地址是否已进行更新等冗余管理单元后才能发送到AFDX网络中。

图4 AFDX发送打包过程Fig.4 AFDX Tx protocol stack

从图5可以看出,在AFDX数据格式负载段中包含多个报头。IP信息包(报头和数据负载)组成AFDX以太网数据负载段。UDP信息包(报头和数据负载)组成IP信息包,UDP的数据段由相关航空电子子系统的信息组成。当有用信息的长度小于18 byte时,需要在有用信息后添加字节,重组为18 byte的数据段;当有用信息的长度大于或等于18 byte,不需添加任何字节。IP报头一个重要功能是为超长的UDP信息包提供分段控制。IP报头中包含有目的端口的识别码和分区识别符,或者多点传送地址。IP目的地址中还包含虚拟链接目的地址和ID号。UDP报头中包含信息源和目的地的UDP端口号。一般情况下,通过这些地址信息,AFDX可以把某信息从源地安全发送到目的地。

图5 AFDX数据格式Fig.5 AFDX frame and sequence number

2.2 虚拟链接

AFDX的虚拟链接调度机制包含在链路层中。虚拟链接调度机制有效分割带宽资源,可实现100 Mbit/s连接网速的物理层可支持多个虚拟链接。在共用一个物理带宽时,为了防止不同虚拟链接间发生冲突和干扰,AFDX设计了虚拟链接调度机制。图6描述了信息在虚拟链接中的工作机制。

图6 虚拟链接的工作机制Fig.6 Virtual link scheduling mechanism

在发送端,采用流量整形机制在虚拟链接间分配通信资源,即对每一具体的虚拟链接需分配可用带宽分配间隔(BAG)和最大发送的帧长(Lmax),可用带宽分配间隔规定了某个虚拟链接向整个网络发送以太网帧信息的最小间隔,而最大发送的帧长则规定了某个虚拟链接的最大传输速率。流量整形同时限制了虚拟链接的突发度,决定了聚合流量最坏条件下的排队延迟界限。

虚拟链接主要由VL参数、路径队列、SubVL队列和VL输出队列组成。其中,VL参数主要包括VL的IP、BAG和Lmax;SubVL队列则是用于描述通过VL传输的消息集;而VL输出队列用于描述SubVL到VL的数据包输出排队的情况,也相应地封装了FIFO、RR等调度算法,可以根据用户定义选择相应的调度算法。

每一个发送到AFDX端口的信息都涉及到虚拟链接。信息在送到通信端口的过程中已经用UDP、IP和以太网的报头进行了封装,并放在合适的虚拟链接队列中等待发送,该过程主要由每个AFDX端口的虚拟链接调度控制器完成。在接收端的虚拟链接与应用层的接口,提供采样和队列两种形式的端口,采样口和队列口的差别主要是在接收处理过程的不同。

采样口只能缓冲存储一条消息;要到达的消息将覆盖当前在缓冲区的消息,而不管它是否已被应用程序读取;另一方面,从采样口读取消息的时候,并不能有效清除缓冲区的内容,因此,可以反复读取,为了描述采样口缓冲区内容的新旧,必须提供一个刷新标志,当这个标志有效时,说明当前在通信口缓冲区中的消息是新的。采样口具有最新覆盖的特性,适用于交换状态消息。

队列口具有相对充足的缓冲区,可以缓存一定数量的消息,新消息被填充到队列中,从队列中按照先进先出(FIFO)的规则读取消息,并将读取的消息从队列移出。队列口适合于传输非周期数据。

2.3 冗余管理

AFDX的冗余管理机制包含在链路层中,冗余链路的设置保证了数据报传输的可靠性。在一个AFDX系统中,通常有两个独立的虚拟交换网络,每一帧在AFDX端口都分别被发送到这两个独立的网络中,所以,在接收端将接到描述同一信息的两个帧包。

在AFDX中依靠虚拟链接调度机制所发送的帧中都包含一个字节的序列号,该序列号的作用是描述一帧的完整性、重复性和有效性,AFDX检测该序列号进行冗余管理。

每个AFDX接收端口需要识别在不同网络中相关的帧。通过检测接收到的每帧序列号内容来判断该帧的完整性、有效性。有关AFDX的冗余管理机制如图7所示。从链路层传入的数据帧先要进行完整性检查,只有当序列号符合要求时,数据帧才会被提交给冗余管理机制模块。接收端的冗余管理机制,是将接收到的帧与其冗余帧进行比较,来确定是否接收该帧。

图7 冗余管理机制Fig.7 Redundancy management mechanism

冗余管理机制模块采用简单的“先到为胜”的方法来过滤数据的重复拷贝,即接收两个网络中先传入的数据拷贝,而丢弃后传入的拷贝。冗余管理机制可以有效地保证数据帧向上层应用程序传输实时性、可靠性。

冗余管理机制的构造一般基于SkewMax变量,SkewMax是指两个链路上的冗余帧发送的最大时间间隔。在理想状态下两个网络中的拥塞程度相同,所以在到达接收端时冗余帧之间的时间间隔不发生变化。接收端的冗余管理机制,是将接收到的帧与其冗余帧进行比较,来确定是否接收该帧。如果SkewMax的值越大,冗余帧到达的时间就越晚,那么需要的缓存队列也就越长,这无疑增加了接收端系统的资源占用量。同时,系统在接收到冗余帧后,需要先在缓存队列中查找出该帧,然后再与其冗余帧进行比对。随着缓存队列的增加,查找的速度也会变慢。所以,SkewMax限定的越小,接收端系统的资源占用就越小。假设B链路上到达帧的冗余帧在A链路上到达帧的后续帧之前到达接收端,那么,接收端系统的缓存队列只需要存储一个帧,对于刚到达接收端系统的帧只需要与缓存中的一个帧进行比较,就可以确定到达帧的处理方式。这无疑减少了接收端系统的资源占用量,简化了接收端的冗余算法。因为SkewMax主要是由数据帧在发送端,以及经过交换机时的排队等待引起的,因此是不可避免的,所以准确地限定SkewMax变量对于提高接收端的效率、保证通信的实时性是十分重要的。

3 实现方案

3.1 系统构成

采用AFDX协议构建的航空电子数据网络系统主要包括以下部分:

(1)航空电子综合计算机子系统:机载的传统航空电子子系统如飞行控制计算机、全球定位系统、胎压监控系统等,通过综合计算机来整合各类航空电子子系统,并为各类航空电子子系统提供一个计算和AFDX端口的环境;

(2)AFDX端口:提供每一个航空电子综合计算机与AFDX网络交换机的连接方式,通过AFDX端口,实现各航空电子子系统间数据的安全、可靠传输;

(3)AFDX网络交换机:实现内部全双工网络数据的交换,它的主要功能是构建一个机载内部网络,并把相关数据信息及时地传送到不同的航空电子子系统或设备中。

3.2 方案设计

3.2.1 AFDX网络交换机构成

图8为AFDX交换机硬件原理框图。交换机核心控制芯片采用AMCC公司的PowerPC 440EP,AFDX接口实现芯片采用Xilinx公司的FPGA Virtex-5 FXT,SRAM芯片采用Cypress公司的产品作为交换机共享存储器,嵌入操作系统选用Windriver公司的VxWorks,PowerPC 440EP作为SNMP的代理,实现系统管理和交换机与其它AFDX接口的交互;通过PowerPC 440EP将连接参数表配置到各FPGA内部寄存器的方式来完成Virtex-5 FXT芯片的配置。交换机的管理包括配置管理、端口管理、VL管理、性能管理和故障管理。配置管理用于设置系统属性、运行时间和交换机工作状态等;端口管理包括更改端口名、工作状态和工作速率等;VL管理包括VL资源的分配及VL表项信息的更新;性能管理负责统计端口输入分组数、输出分组数、单播和多播分组数等;故障管理主要负责对设备和网络运行的故障进行实时监控,并给出告警信息。交换机的初始化和配置主要由硬件完成,管理功能由软件实现。

图8 AFDX交换机原理框图Fig.8 AFDX switch principle

3.2.2 AFDX端口的实现

AFDX端口的实现分为:AFDX网络交换机的AFDX端口实现,采用Xilinx公司的FPGA Virtex-5 FXT;航空电子分系统的AFDX端口采用Xilinx公司的FPGA Virtex-4 FX[5]。AFDX协议栈中IP层以下由上述FPGA芯片硬件实现,其中完整性检测、冗余管理、虚拟链接打包和解包,以及带宽控制都由硬件实现,并通过FPGA芯片内部的嵌入PowerPC进行加载。同时,嵌入PowerPC还需处理IP层及以上协议。采用这样的设计方案最大的优点是AFDX端口的性能具有可优化和可测试性,满足不同应用的需求。

上述两个芯片的接收电路实现原理框图如9所示。在FPGA中以太网媒介接入控制功能块接收输入的数据进行完整性检测;冗余管理功能块通过先进先出缓存器从完整性检测器中读取数据,并在确定该数据的唯一有效性后,分别传送到嵌入PowerPC和虚拟链接管理信息数据库中进行下一步的处理。由于协议要求对AFDX网络管理功能进行实时统计,因此,在AFDX实现中,需要保持完整性检测和冗余管理与每一个的虚拟链接管理信息数据库的连接。

图9 FPGA芯片实现AFDX接收原理框图Fig.9 AFDX receive path in FPGA

FPGA芯片的发射电路实现原理框图如10所示。航空电子子系统的数据通过FPGA芯片内的嵌入PowerPC的打包处理,变成虚拟链接所规定的帧格式通过其调度程序发送到FIFO中等待处理;FPGA芯片中的规则控制器从FIFO中读取相关数据并根据虚拟链接的带宽来动态分配可用带宽间隔和信号时钟的抖动门限;再通过冗余处理,相关数据数据帧被分成两路进入以太网媒介接入控制功能块及物理接口发送出去。

图10 FPGA芯片实现AFDX发射原理框图Fig.10 AFDX transmit path in FPGA

在嵌入PowerPC中除了处理输入AFDX端口、SNMP代理、UDP和IP层的数据打包外,一项重要的功能是确定数据帧的发送顺序。AFDX协议标准中并未规定该调度程序的具体算法,因此,在该嵌入调度程序的调度算法中需要实现以下功能:

(1)根据每个虚拟链接的允许带宽来确定数据帧的发送可用带宽间隔;如果数据帧被无故延迟,将不被安排进入调度程序,以便确保虚拟链接中一数据帧的延时不可阻挡另一帧的发送;

(2)确定虚拟链接的发送队列及可用带宽间隔,如果数据帧被有意延迟,该数据的发送队列顺序将保留;

(3)确定每一数据帧所需的发送时间;

(4)为确定发送的数据帧预留发送窗口;

(5)为每一数据帧确定虚拟链接发送的优先级。

3.3 可靠性预计

由于在航空电子系统集成中引入AFDX端口及AFDX交换机,必将影响整个系统的可靠性指标[6]。可靠性定义为给定时间周期内航空电子系统完成其预定功能的概率。通常,电子设备可靠性预计的一般程序为:

(1)按设备、系统的功能建立其可靠性模型,确定各分系统、组件间的串联、并联等关系;

(2)按不同的数学模型,计算元器件的工作失效率;

(3)将同种类元器件的工作失效率相加;

(4)将各种类元器件的工作失效率相加,从而得出分系统的失效率;

(5)按设备、系统的可靠性模型,计算整个设备、系统的平均故障间隔时间等可靠性指标。

图11 可靠性模型图 Fig.11 Reliability model

具体到航空电子系统,由于其设备电路的复杂,所用元器件、材料等种类较多,这些导致整个航电系统的可靠性模型十分繁杂。在此,仅考虑引入AFDX后对系统影响,其系统的可靠性模型如图11所示。通过下列计算公式可以预计引入AFDX的系统失效概率:

式中,p1=e-λ1是单个飞行控制计算机的可靠性概率,p2=e-λ2为单个AFDX端口的可靠性概率,P3为单个AFDX交换机的可靠性概率,PAFDX为整个航电系统的可靠性概率。

引入AFDX后对整个系统的失效概率计算结果如下:

PSystemfailure=1-PAFDX=10×10-9

从上述计算结果可以看出,AFDX通信网络能够满足新一代航电数据通信的高速、实时和可靠性传输要求。

4 结束语

AFDX协议是一种新型的航空数据总线协议,其虚拟链接和双冗余网络的设置有效地增加了系统的可靠性。本文从航空电子集成的角度描述了AFDX通信网络的概念、结构、调度机制和协议栈,给出了AFDX端口和网络交换机的设计思路和实现方案,预计了采用AFDX协议总线构建航空电子系统时系统的失效概率,对AFDX通信网络的研究和设计具有一定的实用参考性。

参考文献:

[1] Courtney R.Aircarft Data Network,Part 7-avionics Full Duplex Switched Ethernet(AFDX) Network[M].Stockholm,Sweden:Airlines Electronic Engineering Committee,2004.

[2] GE Fanuc Embedded System, Inc..AFDX/ARINC 664 protocol tutorial[EB/OL].http:// www.gefanucembedded.com.

[3] Charara H,Scharbarg J L,Ermont J,et al.Methods for Bounding End-to-End Delays on an AFDX Networks[C]//Proceedings of the 18 th Euromicro Conference on Real-time Systems.[S.l.]:IEEE,2006:193-202.

[4] 陈昕,路娟,周拥军.AFDX冗余管理机制的仿真[J].计算机工程,2008,34(23):92-94.

CHEN Xin,LU Juan,ZHOU Yong-jun.Simulation of AFDX Redundancy Management Mechanism[J].Computer Engineering,2008,34(23):92-94.(in Chinese)

[5] Lan Land,Jeff Elliott.Virtex-4 and Virtex-5 FPGAs Architecting ARINC 664,Part 7(AFDX) Solutions[EB/OL].www.xilinx.com.

[6] Forsberg K,Habberstad B,Torin J.FoT25 Systems Architecture WP6, Detailed DIMA and DTT UAV architectures[R]//Saab Technical Report.[S.l.]:[s.n.].

猜你喜欢
接收端队列以太网
基于扰动观察法的光通信接收端优化策略
顶管接收端脱壳及混凝土浇筑关键技术
一种设置在密闭结构中的无线电能传输系统
基于多接收线圈的无线电能传输系统优化研究
基于1500以太网养猪场的智能饲喂控制系统的设计与实现
队列里的小秘密
基于多队列切换的SDN拥塞控制*
在队列里
丰田加速驶入自动驾驶队列
谈实时以太网EtherCAT技术在变电站自动化中的应用