AFDX以太网冗余管理的算法设计

2013-08-10 10:21杨金孝刘慧卓
电子设计工程 2013年11期
关键词:端系统顺序号接收端

杨金孝,王 鑫,刘慧卓

(西北工业大学 陕西 西安 710129)

AFDX是航空电子全双工交换式以太网的简称。其在保留了普通交换式以太网高速、易用和低成本的特点的同时,在之基础上增加了一些增强和保障网络可靠性和易用性的机制。AFDX网络的协议标准为ARINC664协议,该协议所规定的冗余链路的设置能显著提高网络传输的可靠性[1]。

因此,对AFDX网络的端系统设计良好的冗余传输的管理算法是一个必须要解决的问题。AFDX以太网冗余管理的算法设计为了进一步的AFDX网络端系统的设计与实现打下了基础。

1 冗余的概念

根据ARINC664协议的规定,AFDX网络的端系统之间的数据传输过程中可以存在多个独立且冗余的网络,通常是2个网络,并分别称之为A网络和B网络。在这样的传输条件下,任何的单个的网络组件发生失效的情况不会造成整个网络通信的瘫痪。例如当一个传输网络失效时,数据流依旧可以通过其他工作正常的数据传输网络传送,使得数据流得到保护。从概率学的角度来看,多个网络同时失效的概率应该明显低于单个网络失效的概率,因此采用AFDX以太网的冗余功能可以明显的提高网络传输的可靠性[2]。图1中展示了网络冗余的基本概念。

图1 冗余的概念Fig.1 Concept of redundancy

冗余的传输方式使得AFDX以太网相对普通以太网更为可靠,是AFDX网络可靠性保障的基础。冗余管理过程在接收端所处的位置在完整性检查之后,即就是达到接收端的帧在通过完整新建超之后才会进入冗余管理。如图2所示,冗余管理在AFDX网络传输过程中所处的位置

图2 冗余管理的所处的位置Fig.2 Location of the redundancy management

2 冗余发送过程

冗余的方案是以每条虚拟链路为基础的。当一个发送端系统向一个接收端系统通过一个特定的虚拟链路发送数据时,发送端系统准备好一些数据并使它通过通信协议栈。在协议栈中,一个顺序号(Sequence Number,简称SN)域被加入到每一个数据帧中。每一帧中SN的顺序号的长度为8 bit,取值范围为0~255。加入的SN能够保证冗余网络的传输有次序 性 且 不 会 重 复[3-4]。

AFDX以太网中每个数据帧同时通过两个在物理上独立的网络传送送。在接收端,接收端系统协议栈中采用“先到有效者胜出”的算法策略来管理冗余发送的数据帧。这意味着从两个传送数据的网络中任意一个网络中得到的第一个并且有效的帧将被接收,并向上通过通信栈到达接收端系统。而接收端收到的带有这个顺序号的第二个帧或者无效的帧将被直接丢弃。这个将适合的帧选出,将不合适的帧丢弃的机制就称作冗余管理 RM(Redundancy Management)[5]。

对接收端系统的冗余管理过程来说,经过A网络和B网络传输的数据帧是等效的。冗余管理过程所关注的是数据帧中所包含的顺序号SN。无论数据帧来自哪个网络,只要是符合算法条件的帧都被作为有效的帧被接收,反之则作为无效的帧被丢弃。

3 顺序号定义与作用

对发送端系统来说,端系统会在每一条链路上传送的帧中都加入一个顺序号。帧顺序号的长度为8位,取值范围是0~255。顺序号的初始值为0,每次发送端系统复位后也为0。在同一条链路上传输的前后相继的帧,后一个帧的顺序号为前一个帧的顺序号加1。当帧的顺序号达到255之后的一个帧的顺序号会回卷到1[6]。

对接收端系统来说,有效帧包括一下几种情况:1)之前一次接收到的有效帧的顺序号规定为PSN(Previous Sequence Number),则对当前的接收端系统来说,在顺序号在区间[PSN+1,PSN+2]中的帧为有效帧。其中的“+”运算即包括一般情况下的数值增加1,也包括顺序号回卷,也就是如果PSN=254,则 PSN+1=255,PSN+2=1。 2)在接收端系统复位后,无论接收端接收到的下一帧的顺序号是什么,它都被视为有效帧而被接收端系统接收。3)如果在接收到一个有效帧之后,接收到下一个有效帧的时间超过了系统设定的最大偏移(SkewMax)时间,则无论下一帧的顺序号是什么,它都将被视为有效帧而被接收端系统接收。4)因为顺序号0标志着发送端系统产生了复位,因此接收端在任何时候接收到顺序号为0的帧都为有效。除此之外的包含其他顺序号的帧将被丢弃[1]。

基于顺序号这样的定义,在通信中涉及到的任何装置的复位或者单次帧丢失的情况下都不影响“先到者胜出”的基本原则,从而使AFDX网络的冗余传送功能具有可用性。

4 冗余管理算法设计与分析

冗余管理的目的是在AFDX网络采用冗余网络发送的情况下,保证网络传输的可靠性,也就是要在冗余的传输情况既保证数据帧的正确性又保证数据帧的非重复性。既要通过冗余传输的方式提高可靠性,又不能因为冗余传输的方式使得接收到的帧发生重复。由此算法的流程设计如下,其中SN为当前接收到的帧的顺序号,PSN为当前接收端系统前一个有效的顺序号。

图3 算法设计的流程图Fig.3 Flow chart the algorithms design

接收端首先判断接收端系统是否复位,之后判断等待接收是否超时,这两个判断条件任意一个为真时,无论接收到的帧的SN为多少都为有效,接收端将这一帧作为有效帧并向上通过接收协议栈,此时这一算法周期结束,接收到的SN被作为PSN保存,并带入下一个算法周期。反之当这两个判断条件均不满足时,进一步判断SN是否为0,当SN=0时表明发送端发生复位,接收端将这一帧作为有效帧并向上通过接收协议栈,此时这一算法周期结束,0被作为PSN保存,并带入下一个算法周期。反之当SN不为0时,进一步判断如果SN属于区间[PSN+1,PSN+2],接收端将这一帧作为有效帧并向上通过接收协议栈,此时这一算法周期结束,接收到的SN被作为PSN保存,并带入下一个算法周期。反之则该SN为无效SN,携带该SN的帧将被丢弃,接收端系统的PSN在这一个算法周期将不做改变而带入下一个算法周期。

冗余的数据帧传输方式可以规避单网络传输中出现的单个帧的错误、丢失或被阻塞的风险。当出现某个网络的单个帧出现错误时,这个帧在到达冗余管理过程之前会被完整性检查丢弃,这个帧不会到达冗余管理过程,而经过另一个网络传输的与该帧SN相同且正确的帧会被作为有效的帧并被接收端系统接收,保证了接收端收到的数据帧流的正确。当出现某个网络上传送的单个帧反生丢失时,这个帧不会到达冗余管理过程,而经过另一个网络传输的与该帧SN相同且未丢失的帧会被作为有效的帧并被接收端系统接收,保证了接收端收到的数据帧流的不会发生丢失。当出现某个网络上传送的单个帧由于阻塞而没有及时到达接收端时,经过另一个网络传输的与该帧SN相同且未被阻塞的帧将被作为有效的帧接收。并且之后该帧到达接收端时,由于SN已经不符合此时算法的要求,因此该帧被作为无效的帧被丢弃,使得接收端接收到的帧流不会因单个帧的阻塞受到影响,这就保证了冗余传输的数据帧的正确性。当两个网络中的包含相同SN的帧都被正确传输到接收端时,由于后到的帧的SN不符合冗余管理算法的要求而会被舍弃,使得同包含一个SN的数据帧只会被接收一次,这就保证了冗余传输的数据帧的非重复性。

需要注意的问题是,该算法在传输初始化时存在这样的的风险——当接收端系统产生复位或超时的第一个算法周期无论接收到的帧的SN为多少都为有效,因此当在这种情况下如果恰好接收端接收到一个原本不期望通过冗余管理的帧,该帧也会通过冗余管理过程。

5 应 用

该算法设计应用于某研究所的机载AFDX以太网端系统的设计。以该算法设计端系统中冗余管理过程的状态机,通过在单个帧发生的错误情况的下接收到数据帧流的情况来检验系统能否接收到正确的帧流。通过实际应用的结果表明,应用该算法设计的AFDX[7]以太网端系统功能实现简便准确、稳定可靠。

6 结束语

在本文的算法过程中,接收端系统根据接收到的SN与PSN来判断网络中数据帧的传输状态,算法实现方法简便,功能可靠。该冗余算法达到了AFDX[7]以太网相比普通以太网提高数据传输可靠性的目的,实现了设计的要求。

[1]Engineering C.ARINC664.Avionics full duplex switched ethernet(AFDX)network[S].2005.

[2]LV Tang-qi,NING Hu,WU Zhi-tao,et al.The analysis of End-to-End delays based on AFDX configuration[C]//2011 9th InternationalConference on Reliability,M.Guiyang,2011:1296-1300.

[3]陈昕,周拥军,万剑雄.AFDX端系统关键技术的研究与实现[J].计算机工程,2009,35(5):1-3.CHEN Xin,ZHOU Yong-jun,WAN Jian-xiong.Research and implementation of key techniques in AFDX end system[J].Computer Engineering,2009,35(5):1-3.

[4]赵永库,李贞,唐来胜.AFDX网络协议研究[J].计算机测量与控制,2012,20(1):8-10.ZHAO Yong-ku,LI Zhen,TANG Lai-sheng.Research on networkprotocolofAFDX[J].ComputerMeasurement&Control,2012,20(1):8-10.

[5]宋东,曾星星,丁丽娜,等.AFDX网络系统建模与仿真实现[J].测控技术,2012,31(2):76-80.SONG Dong,ZENG Xing-xing,DING Li-na,etal.The modelingand thesimulation implementation ofAFDX network system[J].Measurement&Control Technology,2012,31(2):76-80.

[6]武华,马捷中,翟正军.AFDX端系统通信端口的设计与实现[J].测控技术,2009,28(3):56-59.WU Hua,MA Jie-zhong,ZHAIZheng-jun.Design and implementation of communication port in AFDX end-system[J].Measurement&Control Technology,2009,28(3):56-59.

[7]李建.基于AFDX总线的端系统测试技术[J].现代电子技术,2012(7):40-42.LI Jian.The testing technology based on AFDX bus[J].Modern Electronics Technique,2012(7):40-42.

猜你喜欢
端系统顺序号接收端
关于参考文献著录格式
一种PCIe接口AFDX端系统的设计与实现
基于扰动观察法的光通信接收端优化策略
顶管接收端脱壳及混凝土浇筑关键技术
基于多接收线圈的无线电能传输系统优化研究
OKUMA MCR 系列加工中心ATC 故障修复
冶金联合循环机组汽机冷端系统运行优化
酸槽内钢带位置测量传感器
CentOS下AFDX端系统驱动设计与实现*
一种PCI接口AFDX端系统模块的设计与实现