APP下载

AFDX端系统协议软件设计与实现

2012-08-27王红春

电光与控制 2012年11期
关键词:端系统延时端口

刘 芸, 王红春, 王 兵

(1.中航工业西安航空计算技术研究所,西安 710068; 2.西安应用光学研究所,西安 710065)

0 引言

航空电子系统[1]是飞机的重要组成部分,现代信息技术、微电子技术的高速发展使航空电子设备的智能化程度提高,规模扩大,各设备之间的信息共享程度也越来越高。航电通信网络[2]实现机载电子设备之间的互联通信功能,需要传输各类命令、状态数据、大量的中间结果以及各类传感器实时监控数据。这就对航电通信技术提出了更高的要求传输带宽高、网络延时确定、网络传输可靠。

传统的航电通信技术ARINC429和1553B[2],传输速率分别为100 kb/s和1 Mb/s,只能实现点对点或共享总线通信方式,已不能满足现代航电系统规模扩大以及传输信息种类增多后对互联高速、分布的数据传输要求。商用的总线型以太网[3]采用 CSMA/CD方式共享网络带宽,虽然传输速率较高,但难以保证数据传输的确定性,尤其是在网络上多个端口同时通信时,由于网络拥挤,传输性能急剧下降。在这种情况下,航空标准化机构——ARINC于2005年定制了AFDX网络标准[4](Avionics Full Duplex Switched Ethernet,AFDX),该标准由工业标准以太网经过适用性改进形成,支持10(Mb·s-1)/100(Mb·s-1) 可配置的数据传输速率,具有更高的确定性、可靠性,能够满足现代航电系统对网络传输的技术要求。国际上,Rockwell Collins公司和Thales公司已研制出AFDX网络产品,并成功应用到 A350、A380、A400M、C-17 以及波音公司的B787等机型中[5]。目前国内对AFDX技术还处于理论研究阶段,为开发具有我国自主知识产权的新一代航电网络平台,就需要深入研究该技术并开发相关软硬件产品。

本文在深入研究AFDX标准的基础上,分析AFDX协议的体系结构及保证数据传输的“确定性”和“可靠性”机制,提出了一种AFDX端系统协议软件的设计方法,该方法实现了AFDX协议规定的端系统功能,具有确定性好、稳定性高的特点,能够满足实际应用的技术需求,并为 AFDX端系统产品的研发提供基础。

1 AFDX网络

AFDX网络[4]作为新一代航空电子网络传输技术,具有组网规模大和灵活性强的特点,适用于大中型飞机的航空电子系统互联。

1.1 网络简介

AFDX网络结构[4]为可拓展的星型拓扑结构,由端系统、交换机和传输链路组成,每个交换机允许连接若干个端系统,多个交换机可以互联组成更大的网络。

AFDX交换机是AFDX网络的核心,通过基于虚链路(Virtual Link,VL)的数据转发机制,实现了网络中各个设备之间的数据传输。相比于普通交换机,AFDX交换机具有过滤功能、故障隔离和静态功能等特点。AFDX端系统[4]是 AFDX网络的重要组成部分,应用于航电系统[6]AFDX网络的每个设备中,为网络中的不同设备提供与AFDX交换机连接的统一接口,实现AFDX网络中各设备之间安全可靠的数据传输功能,具有全双工、带宽高、确定、可靠等特点。AFDX网络“确定型网络”的特性主要由端系统实现[4]。图1所示为AFDX网络应用的一个实例,图中多个具有冗余端口的AFDX端系统,与两个互为冗余的AFDX交换机连接,构成双余度的AFDX航电网络,实现网络中多个航电设备之间可靠稳定的数据通信。该冗余机制可以有效避免单条链路失效引起的通信错误。

图1 AFDX网络结构Fig.1 AFDX network structure

1.2 网络确定性

AFDX网络的确定性通过虚链路机制来实现[5]。VL是一个端系统到一个或多个端系统的单向逻辑通路,该机制将一条物理通路划分为多个互相隔离的虚拟通路,提供各部件之间具有固定带宽的逻辑隔离,保证了传输过程中每条虚链路的带宽不受其他试图占用带宽的虚链路影响。基于VL的带宽分配和流量控制机制保证了AFDX网络数据传输的确定性。

对每条VL,通过定义带宽分配间隔(Bandwidth Alignment Gap,BAG)和最大帧长度Lmax,为数据传输分配固定的带宽(BandWidth=Lmax/GBA)。其中,GBA为同一条VL上相邻两帧之间的最小时间间隔,计算公式为:GBA=2kms(k=0,1,…,7)。

流量控制机制保证了数据传输的确定性,该功能由BAG和抖动实现,VL的最大抖动J服从

式中:Lmax为最大数据帧长度,单位为B;N为传输带宽,单位为b/s。

AFDX网络的数据传输还具有固定的技术延时,ARINC664 P7标准规定数据帧的传输技术延时小于150 μs加帧延时,即满足

式中:Ltec为技术延时(单位μs);D为数据帧延时(单位 μs)。

1.3 网络的可靠性

AFDX网络的可靠性[3]通过完整性检测、数据CRC校验和冗余管理来实现。

完整性检测功能是保证通信中数据帧的顺序正确且完整,并丢弃无效帧,该功能通过检测数据帧的序列号是否连续来实现。发送端在要发送的数据帧中加入一个SN号,SN号以1为步长逐个递增,相邻两个帧的序列号是连续的;接收端接收数据时,依据SN号判断收到的帧是否有效,并构造一个有序的帧流。完整性检测机制可有效避免数据顺序混乱而导致的通信错误。

数据CRC校验功能保证数据帧内容的完整性,对无效帧进行丢弃处理。该功能计算整个帧数据的校验和,并与数据帧尾部的标准校验和数据进行比较,就可以检测出该数据帧内容是否正确。

冗余管理是指数据以VL为基础在两个独立的网络中通信,该机制可以有效抵御AFDX网络系统因部分连接线路故障、交换机单点故障所引起的通信失效,保证了航空电子系统任务间数据通信的安全性和可靠性,其原理如图2所示。

图2 AFDX冗余网络Fig.2 AFDX redundant network

在数据发送过程中,冗余管理负责将需要发送的数据帧复制成相同的两个,发送到两个网络中;具有冗余管理功能的目的端系统接收数据时采用“先到先有效”的策略[6],从不同网络收到的数据帧中选择一路正确的数据提交上层协议处理。

2 系统方案

AFDX端系统的主要功能是为分区软件提供安全可靠的数据传输。ARINC664 P7协议规定的端系统通信协议结构[4]如图3所示。

AFDX端系统模块在具体的方案设计中,基于分层设计的思想,按功能将其划分为4层:MAC层、IP协议层、UDP协议层以及主机服务接口层。具体的层次结构及其对应的实现方法如图4所示。

MAC 层实现链路虚通道管理[7-8](VL 管理)和冗余管理(RM)功能。VL管理机制负责将每个MAC对应的物理链路划分为多个独立的逻辑虚链路。冗余管理实现MAC层数据帧的冗余处理功能,发送数据时,RM负责将数据通过两个冗余的端口发送到两个不同的网络;接收数据时,RM从通过两个端口收到的不同网络的两个数据中,选择一个正确的数据提交给上层处理,该功能由硬件和FPGA逻辑部分实现。

IP协议层[3]提供无连接的数据报传输机制,对数据进行“尽力传递”,主要实现数据的IP封装和分片功能,并采用完整性检测方法来保证数据的完整性。IP封装负责对数据添加IP首部和尾部组成标准的IP数据包;分片功能实现了数据的片划分、片重组、分片控制功能,使长度大于AFDX数据包最大帧长1518字节的IP数据包也能进行传输。

图3 端系统协议层次结构Fig.3 End system protocol structure

UDP协议层[3]建立在IP协议之上,提供无连接的 数据报传输,实现用户数据报文协议。为用户提供3类协议端口采样、队列、SAP,通过端口机制保证了具有相同IP地址的不同进程的数据通信。IP层和UDP层功能由驱动软件实现。

图4 ES通信层次结构Fig.4 ES communication structure

3 软件设计

AFDX端系统协议软件在设计[9]中,遵循模块化、开放式的思想,基于IP/UDP协议实现了ARINC664 P7规定的3类端口的数据传输功能[10]。该软件支持3类端口的AFDX标准数据传输,并提供应用接口,可以不用修改软件内部结构,通过接口方便灵活地控制数据传输过程,实现特定数据的发送和接收功能。3类端口包括采样、队列、SAP端口,其中,AFDX采样和队列端口与ARINC653协议[11]规定的采样和队列端口对应,用来进行AFDX网络内的数据通信;服务访问点(Service Access Point,SAP)用来进行TFTP文件传输和AFDX与非AFDX系统之间的通信。

AFDX端系统协议软件由初始化、加载配置表和数据通信这3个功能模块来实现。

3.1 初始化

AFDX端系统软件的初始化模块实现硬件资源的打开、配置功能以及寄存器配置和存储空间的分配功能。

待配置的寄存器包括MAC层和链路层芯片,配置方法为:按照相应的硬件手册在配置寄存器中写入特定的值,使该芯片能够正常工作。由于芯片地址已映射到系统内存,所有对寄存器的操作就成了对内存空间的操作。读寄存器的操作为Data_value=*(unsigned int*)(REG_Base_Addr+offset);写寄存器的操作为*(unsigned int*)(REG_Base_Addr+offset)=Data_value。

根据系统应用需求,存储空间分为控制命令区和数据区。控制命令区的存储内容为各个控制寄存器的控制参数,如每个 VL的 BAG、SkewMax、Jitter值等;数据区为端口的发送和接收数据缓冲区,用于存储各个端口的数据内容及其标志信息。这里按照端系统的配置表,为每个端口分配特定大小和深度的数据缓冲区。

3.2 加载配置表

加载配置表模块在设计中为用户提供接口,使用户能够按需求创建端系统配置表,并将其加载到端系统的控制命令区,从而控制数据的发送和接收过程。较之于配置表固定的软件设计,该方法更加灵活,便于用户根据不同的需求,实现数据传输功能。

创建端系统配置表的软件实现为定义端系统、通信端口、VL的控制参数,并按照实际需求对结构体中的各个成员赋值。对象的结构体应该涵盖其所有的属性和参数,例如端口的结构体必须包含端口的IP地址、UDP号、方向、缓冲区深度、UDP消息长度等信息,VL的结构体中包含VL的方向、BAG、Jittter等信息。

加载配置表软件将配置表的信息写入端系统特定的控制区域。通过循环查找的方式,将配置表中端系统、端口和VL的全部配置,写入相应的控制命令区。在数据传输过程中,通过这些实现定义的配置参数,就能够控制数据的传输速率、传输VL、传输目的。

3.3 数据通信

数据通信功能基于UDP/IP通信协议[4],该软件模块实现以3类端口(采样、队列、SAP)为基础的数据发送和接收功能,并采用了VL管理、完整性检测、数据CRC校验方法,有效提高了数据传输的确定性和稳定性。

软件的数据发送单元负责将数据通过端口发送到链路层VL缓冲区。

数据发送的软件设计方法为:主机发送数据时,UDP层软件将要发送的数据构造成一个UDP数据报,存储在UDP端口的发送缓存中,并更新发送缓冲区的读写指针,该层支持SAP、采样和队列3类端口的数据发送。IP层软件的功能通过创建发送任务来实现,该任务以查询或中断的方式运行,当检测到UDP的端口发送缓冲区有数据要发送时,将UDP数据报划分为一个或多个IP数据报,并添加IP首部校验和、数据CRC校验以及SN号,提交给指定的硬件链路VL发送,如果没有则不做任何操作。通过该数据发送机制,主机应用就可以调用3类端口的数据发送函数,实现AFDX端系统的数据发送功能。具体的数据发送过程如图5所示。

图5 AFDX端系统协议软件数据发送流程Fig.5 Data transmission flow of AFDX end system protocol software

软件的数据接收单元负责将数据从链路层VL缓冲区接收到应用层,提交给对应的应用程序。

数据接收的软件设计方法为:IP协议层软件负责从MAC层接收数据,通过创建接收任务来实现,该任务以查询或中断的方式运行,当检测到MAC层的VL缓冲区收到数据时,就接收该数据并检查其SN号、CRC校验和分片标志。如果SN号正确、CRC校验正确且分片标志有效,将数据报根据分片标志进行重构提交给UDP层,即解析出数据的IP目的地址和UDP目的地址,并将其拷贝到对应UDP端口的接收缓冲区中,如果SN号、CRC校验值或SN号任何一项有误,就对该数据做丢弃处理;如果MAC层没有收到数据则不做任何操作。UDP层软件负责接收UDP数据报,通过比较端口的读写指针检测端口是否有新数据,如果有新数据,就将UDP数据报从端口接收缓冲区中拷贝出来,提交给上面的应用层软件,并更新UDP端口接收缓冲区的读写指针;否则返回“端口无新数据”标志。通过该接收机制,主机应用就可以调用3类端口的数据接收函数来实现AFDX端系统的数据接收功能。具体的数据接收过程如图6所示。

图6 AFDX端系统协议软件数据接收流程Fig.6 Data reception flow of AFDX end system protocol software

4 测试结果分析

AFDX端系统协议软件的测试工作以ARINC664 P7协议为基础,基于国际权威机构德国AIM公司的端系统测试平台进行,该端系统协议软件通过了其全部测试项。这证明该软件实现了ARINC664 P7协议规定的端系统功能,具有良好的确定性和可靠性,满足航电系统实际应用的技术需求。

4.1 技术延时

ARINC664 P7协议严格规定了AFDX端系统的数据传输技术延时范围。

端系统技术延时测试方法为:通过应用层构造测试用例,连续发送和接收不同长度(1518 B、1000 B、500 B、64 B)、不同个数(10、50、500)的数据帧序列,多次测试并观察测试结果,将第 2、8、20、100、200、400 帧的传输延时记录于表1中。测试结果的最大值和最小值均满足理论要求,表明数据帧传输延时的实际值小于式(2)规定的理论值,该端系统协议软件满足协议规定的传输技术延时要求。

表1 AFDX端系统数据传输技术延时Table 1 Data transmission technology latency of AFDX end system μs

4.2 线速传输

ARINC664 P7协议规定AFDX端系统支持数据的线速传输,即数据帧能够以最小的帧间隔0.96 μs正确传输。

测试方法为:在应用层以全速传输不同长度、不同个数(N)的帧序列,测量VL上帧间隔,并记录帧间隔达到0.96 μs的数据帧个数(Nv),计算该计数与整体的比率P。当帧序列的个数为N时,第1个帧为起始帧,从第2个帧开始才能测量帧间隔,即该序列只有N-1个帧间隔,即P的计算式为

多次测量并记录测试结果,该结果表明,100%的测试数据帧帧间隔达到0.96 μs,端系统支持协议规定的数据线速传输功能。

5 结束语

本文介绍了AFDX端系统的整体结构,深入分析AFDX“确定性”和“可靠性”的数据传输机制,提出了一个可行的AFDX端系统协议软件设计方法。该方法模块化的设计思想、分层的体系架构,以及开放应用接口的理念,增加了软件的易扩展性和灵活性。充分的测试表明,该软件设计方法具有良好的确定性和可靠性,满足具体应用的需求,填补了国内AFDX网络技术的空白,对我国研发具有自主知识产权、并适用于现代航电系统的AFDX网络平台具有重要意义。

[1] 伊恩·莫伊尔.民用航空电子系统[M].范秋丽,译.北京:航空工业出版社,2009.

[2] 支超有.机载数据总线技术及其应用[M].北京:国防工业出版社,2009.

[3] STEVENS W R.TCP/IP 详解[M].范建华,译.北京:机械工业出版社,2000.

[4] ARINC664P7.Aircraft data networks,part 7:Avionics Full Duplex switched ethernet(AFDX)network[S].ARINC Airlines Electronic Engineering Committee,2005.

[5] 吴建鲁,杨福彪,刘煜,等.AFDX技术特点及在舰载武器系统中的应用分析[J].指挥控制与仿真,2010,32(4):112-115.

[6] 李哲,田泽,张荣华.AFDX网络中 SkewMax的研究[J].计算技术与发展,2010,20(6):249-253.

[7] 任向隆,马捷中,翟正军.基于FPGA的AFDX端系统协议栈虚链路层的研究与实现[J].计算机测量与控制,2010,18(1):157-160.

[8] 许燕婷.AFDX端系统协议栈虚拟链路层分析及仿真研究[D].上海:上海交通大学,2011.

[9] KHAZALI L,BOULAIS M,COLE P.AFDX software network stack implementation — Practical lessons learned[C]//Digital avionics systems conference,DASC'09,IEEE/AIAA 28th,2009:1-5.

[10] 陈昕,周拥军,万剑雄.AFDX端系统关键技术的研究与实现[J].计算机工程,2009,35(5):1-3.

[11] ARINC653.Avionics application software standard interface[S].ARINC Airlines Electronic Engineering Committee,2003.

猜你喜欢

端系统延时端口
一种PCIe接口AFDX端系统的设计与实现
一种端口故障的解决方案
基于级联步进延时的顺序等效采样方法及实现
冶金联合循环机组汽机冷端系统运行优化
日光灯断电关闭及自动延时开关设计
CentOS下AFDX端系统驱动设计与实现*
端口阻塞与优先级
一种PCI接口AFDX端系统模块的设计与实现
Two-dimensional Eulerian-Lagrangian Modeling of Shocks on an Electronic Package Embedded in a Projectile with Ultra-high Acceleration
8端口IO-Link参考设计套件加快开发速度