论文部分内容阅读
摘要:在深入研究ARINC664协议规范基础上,本文实现了一个AFDX端系统软件协议栈,包括ARINC664 P7协议规定的虚链路调度、流量整形、冗余管理、完整性检查、以及发送和接受协议处理等端系统协议栈功能。
关键词:AFDX;端系统;协议栈;虚链路;端口
【Abstract】This paper concentrates on what the design and implementation of a protocol software of AFDX end-system,which was based on the analysis of Arinc specification 664. The software had implemented these functions that contains VL scheduling,Flow/Traffic control,Redundancy Management,Integrity Checking etc.
【key Words】AFDX end-system protocol stack virtual link communication port
全双工交换以太网(AFDX)是目前较先进的航空电子网络数据传输技术,其通过冗余网络、带宽分配间隔、虚链路调度等技术保证数据传输的可靠性、实时性等要求。本文鉴于这些特点,提出并实现了一种通过软件实现AFDX协议栈的解决方案。
1.AFDX协议研究
通过对ARINC664协议的分析,AFDX的IP数据报格式遵循IPv4标准,使用UDP协议。
(1)应用层:应用程序通过AFDX端口收发消息,AFDX端口包括三种类型:采样端口、队列端口、SAP端口;
(2)UDP层:UDP层向低层网络协议解析来自一个或多个应用的数据;
(3)IP层:实现数据报寻址和路由,完成数据报的分片、重组功能;
(4)MAC层:实现虚链路的流量整形、冗余管理、以及虚调度功能;
(5)物理层:物理层是连接到网络的硬件,AFDX使用四绞屏蔽电缆,支持100M带宽。
与普通以太网帧相比,AFDX帧在帧末尾增加了序号字段,用于对传输中的帧进行编号。接收端通过该字段进行数据冗余管理。AFDX帧格式如图1所示。
2.AFDX端系统设计
AFDX ES是AFDX网络重要组成部分,主要实现ARINC664网络层协议栈、流量整形、虚链路调度、冗余管理等功能。ES硬件采用嵌入式计算平台,包含两路网口,系统架构如图2所示。
在图2的方案中,ES通过配置表初始化本地ES虚链路以及端口的配置信息,应用通过三种端口收发数据。AFDX协议栈主要分为发送和接收部分,发送部分包括发送协议层处理,流量整形,虚链路调度,接收部分包括冗余管理、接收协议层处理,网卡驱动提供最底层的网卡数据收发功能功能。
2.1虚链路
虚链路(VL)是一种通信通道,它建立一个ES到一个或多个ES的单向的逻辑路径。每条VL定义一个带宽分配间隔(BAG)和最大帧长Lmax,确定每条VL的最大可用带宽,通过应用合理规划BAG和Lmax,从而最大限度利用物理链路带宽。
一条主VL最多包含4条子VL,主VL下的所有子VL端口类型、目的地址都是相同的。每条子VL有单独的端口以及队列,子VL采用分时调用算法。
2.1端口
提供两种类型的通信端口:采样端口和队列端口,采用UDP数据报服务。采样端口只存储一条消息,收到的消息覆盖当前的消息。队列端口有相对充足的队列缓冲区,采用FIFO策略。
2.3发送协议层处理
发送过程包括首先根据AFDX端口号找到端口对应的VL,并对数据包进行分片。然后依次是对每个分片根据系统配置信息按照AFDX帧格式组包,最后将组建好的AFDX数据帧放到发送缓冲队列里。
2.4流量整形与VL调度
在ES的发送端,VL发送的流量控制由带宽分配间隔(BAG)和抖动(JITTER)来决定。其中BAG表示一条VL上发送连续两个包的间隔,通过BAG控制可使整个网络的各条VL能均匀共享带宽。
经过流量整形器整形后,VL上发送端调度后的数据帧流如下图3所示:
调度管理通过根据VL轮询算法调度实现,在数据帧满足发送条件时,需要在数据帧的序列号域设置序列号,调度原理如图4所示。VL调度算法与子VL类似。
2.5完整性检查
完整性检查(IC)模块是对A、B两路网口分别作IC,然后再将检查通过的数据提交到冗余管理模块处理。
主要过程是通过这一路网口接收到的数据,根据其中的序列号是否连续(累加1或者累加2),来判断该数据是否接收,同时更新当前VL下该路网口最新接收到的数据包序列号。
2.6冗余管理
冗余管理(RM)模块在冗余网络中遵循顺序接收,谁后到丢弃谁的原则。每条VL根据配置的两个相同数据帧在两路冗余网络最大允许间隔的时间skewMax,结合序列号来判断该接收到的数据帧是否是冗余帧。
2.7接收协议处理
接收过程主要过程包括根据已通过冗余管理和完整性检查的AFDX帧头,找到该帧对应的VL以及端口号,并进行协议层分片重组,然后把数据提交到接收端口号配置的缓冲区里。
3.结束语
本文介绍了一种基于普通网卡设计的AFDX端系统协议栈软件的架构,以及其设计与实现。分析了AFDX协议以及AFDX幀格式,同时介绍了AFDX端口、VL,以及协议栈的流量整形、VL调度、冗余管理以及完整性检查等设计实现过程。
参考文献:
[1]ARINC 664P7:Aircraft data network,part7-avionics full duplex switched Ethernet(AFDX)network[S]. 2005.
[2]ARINC.Arinc specification 653-2:Avionics application soft-ware standard interface part1-required services[S]. 2006.
[3]罗杰,霍曼.AFDX通信链路技术及其在航空电子系统的应用[A].全国第十届信号与信息处理、第四届DSP应用技术联合学术会议论文集[C]. 2006.
作者简介:
李 华(1983-),男,重庆丰都人,2008年于东北大学获硕士学位,主要研究方向为航电网络总线、嵌入式软件。
关键词:AFDX;端系统;协议栈;虚链路;端口
【Abstract】This paper concentrates on what the design and implementation of a protocol software of AFDX end-system,which was based on the analysis of Arinc specification 664. The software had implemented these functions that contains VL scheduling,Flow/Traffic control,Redundancy Management,Integrity Checking etc.
【key Words】AFDX end-system protocol stack virtual link communication port
全双工交换以太网(AFDX)是目前较先进的航空电子网络数据传输技术,其通过冗余网络、带宽分配间隔、虚链路调度等技术保证数据传输的可靠性、实时性等要求。本文鉴于这些特点,提出并实现了一种通过软件实现AFDX协议栈的解决方案。
1.AFDX协议研究
通过对ARINC664协议的分析,AFDX的IP数据报格式遵循IPv4标准,使用UDP协议。
(1)应用层:应用程序通过AFDX端口收发消息,AFDX端口包括三种类型:采样端口、队列端口、SAP端口;
(2)UDP层:UDP层向低层网络协议解析来自一个或多个应用的数据;
(3)IP层:实现数据报寻址和路由,完成数据报的分片、重组功能;
(4)MAC层:实现虚链路的流量整形、冗余管理、以及虚调度功能;
(5)物理层:物理层是连接到网络的硬件,AFDX使用四绞屏蔽电缆,支持100M带宽。
与普通以太网帧相比,AFDX帧在帧末尾增加了序号字段,用于对传输中的帧进行编号。接收端通过该字段进行数据冗余管理。AFDX帧格式如图1所示。
2.AFDX端系统设计
AFDX ES是AFDX网络重要组成部分,主要实现ARINC664网络层协议栈、流量整形、虚链路调度、冗余管理等功能。ES硬件采用嵌入式计算平台,包含两路网口,系统架构如图2所示。
在图2的方案中,ES通过配置表初始化本地ES虚链路以及端口的配置信息,应用通过三种端口收发数据。AFDX协议栈主要分为发送和接收部分,发送部分包括发送协议层处理,流量整形,虚链路调度,接收部分包括冗余管理、接收协议层处理,网卡驱动提供最底层的网卡数据收发功能功能。
2.1虚链路
虚链路(VL)是一种通信通道,它建立一个ES到一个或多个ES的单向的逻辑路径。每条VL定义一个带宽分配间隔(BAG)和最大帧长Lmax,确定每条VL的最大可用带宽,通过应用合理规划BAG和Lmax,从而最大限度利用物理链路带宽。
一条主VL最多包含4条子VL,主VL下的所有子VL端口类型、目的地址都是相同的。每条子VL有单独的端口以及队列,子VL采用分时调用算法。
2.1端口
提供两种类型的通信端口:采样端口和队列端口,采用UDP数据报服务。采样端口只存储一条消息,收到的消息覆盖当前的消息。队列端口有相对充足的队列缓冲区,采用FIFO策略。
2.3发送协议层处理
发送过程包括首先根据AFDX端口号找到端口对应的VL,并对数据包进行分片。然后依次是对每个分片根据系统配置信息按照AFDX帧格式组包,最后将组建好的AFDX数据帧放到发送缓冲队列里。
2.4流量整形与VL调度
在ES的发送端,VL发送的流量控制由带宽分配间隔(BAG)和抖动(JITTER)来决定。其中BAG表示一条VL上发送连续两个包的间隔,通过BAG控制可使整个网络的各条VL能均匀共享带宽。
经过流量整形器整形后,VL上发送端调度后的数据帧流如下图3所示:
调度管理通过根据VL轮询算法调度实现,在数据帧满足发送条件时,需要在数据帧的序列号域设置序列号,调度原理如图4所示。VL调度算法与子VL类似。
2.5完整性检查
完整性检查(IC)模块是对A、B两路网口分别作IC,然后再将检查通过的数据提交到冗余管理模块处理。
主要过程是通过这一路网口接收到的数据,根据其中的序列号是否连续(累加1或者累加2),来判断该数据是否接收,同时更新当前VL下该路网口最新接收到的数据包序列号。
2.6冗余管理
冗余管理(RM)模块在冗余网络中遵循顺序接收,谁后到丢弃谁的原则。每条VL根据配置的两个相同数据帧在两路冗余网络最大允许间隔的时间skewMax,结合序列号来判断该接收到的数据帧是否是冗余帧。
2.7接收协议处理
接收过程主要过程包括根据已通过冗余管理和完整性检查的AFDX帧头,找到该帧对应的VL以及端口号,并进行协议层分片重组,然后把数据提交到接收端口号配置的缓冲区里。
3.结束语
本文介绍了一种基于普通网卡设计的AFDX端系统协议栈软件的架构,以及其设计与实现。分析了AFDX协议以及AFDX幀格式,同时介绍了AFDX端口、VL,以及协议栈的流量整形、VL调度、冗余管理以及完整性检查等设计实现过程。
参考文献:
[1]ARINC 664P7:Aircraft data network,part7-avionics full duplex switched Ethernet(AFDX)network[S]. 2005.
[2]ARINC.Arinc specification 653-2:Avionics application soft-ware standard interface part1-required services[S]. 2006.
[3]罗杰,霍曼.AFDX通信链路技术及其在航空电子系统的应用[A].全国第十届信号与信息处理、第四届DSP应用技术联合学术会议论文集[C]. 2006.
作者简介:
李 华(1983-),男,重庆丰都人,2008年于东北大学获硕士学位,主要研究方向为航电网络总线、嵌入式软件。