2024年6月11日发(作者:)

大型民机配电系统AFDX总线应用技术研究

戴高乐;邢卉丽;杨善水;王莉

【摘 要】基于AFDX通讯总线模拟了大型民机配电系统的高速通讯网络,对配电系

统中AFDX总线的应用技术进行了研究,提高了配电系统软件在AFDX总线中的读

写效率和兼容性,为系统中AFDX总线的应用提供了借鉴和参考;首先分析了AFDX

通讯总线的组成和关键技术,并构建了大型民机配电系统的模拟通讯网络;随后,进行

了AFDX总线端系统应用软件的研究,采用数据压缩和基于“位运算”的数据处理

方法;以LabVIEW软件为例,针对端系统中用户软件无法开发相应的AFDX总线驱

动问题,设计了无AFDX底层驱动软件与AFDX通讯网络的接口程序;并基于AFDX

总线的采样端口模式,提出了一种基于AFDX网络的多余度系统的冗余通讯方法;最

后,通过通讯实验验证了接口程序及冗余通讯方法的正确性和可靠性.

【期刊名称】《计算机测量与控制》

【年(卷),期】2018(026)005

【总页数】4页(P257-260)

【关键词】航空通讯总线;AFDX;大型民机;配电系统

【作 者】戴高乐;邢卉丽;杨善水;王莉

【作者单位】南京航空航天大学自动化学院,江苏210016;南京航空航天大学自动

化学院,江苏210016;南京航空航天大学自动化学院,江苏210016;南京航空航天大

学自动化学院,江苏210016

【正文语种】中 文

【中图分类】V243.1

0 引言

随着民用客机的迅猛发展,飞机的用电量不断增多,电气负载和电网规模不断加大,

配电系统通讯总线的数据吞吐量也迅速攀升,这就对大型民机配电系统通讯总线的

实时性和可靠性提出了更高的要求。传统的航空通讯总线技术主要采用

ARINC429/629、MIL-STD-1553B、CAN等协议,这些数据通信协议已经广泛

地应用在航空电子系统中,但是它们均存在传输速率较低的缺点,总线带宽均未超

过2 Mbps,数据吞吐量上无法满足今后大型民机配电系统对于通讯总线的要求

[1]。因此,波音和空客公司开发了高实时性、高可靠性和高带宽的新一代航空总

线——AFDX总线。

国内外的学者对AFDX总线做了很多的研究工作,文献[2]开展了AFDX总线协议

与CAN总线协议间网关技术的研究;文献[3]开展了如何优化AFDX总线端系统

之间的传输延时问题的研究;文献[4]提出了插入额外帧的方法来提高AFDX总线

的稳定性。然而这些研究都是针对AFDX总线协议本身的,针对端系统中AFDX

总线的应用技术研究开展的较少。

本文以AFDX总线为基础,模拟了大型民机配电系统的通讯网络,针对大型民机

配电系统数据吞吐量大以及AFDX端系统的底层驱动不支持LabVIEW软件的问题,

开展了AFDX总线应用技术研究。优化了端系统的数据处理能力,解决了基于

LabVIEW软件的航电模拟系统与AFDX通讯网络的兼容问题和配电系统双余度控

制器通讯的冗余管理问题。

1 AFDX总线协议简介

AFDX(Avionics Full Duplex Switched Ethernet)全称为航空电子全双工交换式以

太网,是基于标准以太网技术(IEEE 802.3),由ARINC664协议第7部分定义的一

种确定性网络。

1.1 AFDX网络组成

AFDX通讯总线由端系统、交换机和物理链路三部分构成星形拓扑架构。AFDX网

络的传输路径是静态的,通过网络配置表直接加载实现,可靠性较高。

1)端系统:端系统是AFDX通讯网络中的重要元件,保证了网络中各个节点间安

全、可靠的数据交换。除了提供硬件接口,端系统还向用户提供了各种软件程序接

口,实现用户数据的读写和收发。

2)交换机:交换机在AFDX网络中承担着数据转发的功能,负责连接各个端系统。

交换机之间可以通过互相级联扩展交换端口,便于大型通讯网络的组建。

1.2 虚拟链路技术

虚拟链路(Virtual Link)技术是AFDX总线的核心技术,其建立了一个源终端到一

个或多个目标终端的逻辑上的单向连接,并有效的分割带宽资源,实现了实际带宽

的分时复用。

在发送端,采用了流量整形技术对虚拟链路进行资源的分配,端系统会预先为每条

虚拟链路设定带宽分配间隙(Bandwidth Allocation Gap,BAG,代表帧与帧之间

发送的最小时间间隔)和最大帧长度(Lmax)这两个参数,从而限制了每条虚拟链路

的最大可用带宽(最大可用带宽= Lmax/ BAG),保证了每条虚拟链路按照预先设

定时间间隔进行传输,避免虚拟链路之间的互相冲突。

2 配电系统AFDX通讯网络架构

参考B787的通讯架构,本文构建了大型民机配电技术研究系统的电网框图和通讯

网络架构如图1所示。

图1 配电系统通讯网络架构

汇流条功率控制器(BPCU:Bus Power Control Units)是配电系统控制单元,左右

两台BPCU冗余管理电网,上传电网状态信息至航电系统模拟机;航电系统模拟

机用于模拟航电系统中的通用计算资源柜(Common Computing Resource

Cabinet),汇总和显示电网状态信息,并发出电网管理指令至BPCU;

RPDU(Remote Power Control Units)是远程配电控制单元,将电能分配给部分

远程负载。

配置4个AFDX端系统和一台AFDX交换机。每个端系统上均有两个物理端口,

分别为A网络端口和B网络端口,并根据配置表连至交换机的相应端口上,设置

AFDX通讯链路规划表如表1所示。

3 数据的优化处理

针对大型民机配电系统总线的庞大数据传输需求,本文采用数据压缩的存储方式减

小数据传输量,同时以“位运算”为核心思想编写通讯数据处理程序。该方法不仅

节省了通讯数据空间,而且减少了数据处理程序的代码量,提高AFDX通讯数据

的读写效率。

表1 AFDX通讯链路规划表虚拟链路123源端系统航电系统模拟机(ES1)航电系统

模拟机(ES1)航电系统模拟机(ES1)目标端系统

LBPCU(ES2)RBPCU(ES3)RPDU(ES4)虚拟链路456源端系统

LBPCU(ES2)RBPCU(ES3)RPDU(ES4)目标端系统航电系统模拟机(ES1)航电系统模

拟机(ES1)航电系统模拟机(ES1)

3.1 基于位存储的数据压缩技术

AFDX通讯每一帧中用户数据的存储空间为17~1472字节[3],如果大量的电网

数据以浮点数型的模拟量信号进行存储,则每一个直流电信号会占用4个字节、

每一个交流电信号会占用12个字节,那么每一帧中整个电网的数据存储量极大,

甚至有可能发生存储溢出。因此采用了按位存储的数据压缩方式来处理电网数据。

数据压缩技术的本质是数据类型的转换,将某一电网部件具体的电信号模拟量数据

转换为反映该部件工作状态的数字量数据,并按位对各种部件状态进行存储。通过

软件程序和GJB-181A标准判断采集到的模拟量值反映了电网部件的哪一种工作

状态,并将其转换为有电/没电、正常/故障这4种状态信号进行存储。而对于部分

关键的电网部件,则仍以float型的数据类型存储其电信号模拟量。压缩后每种部

件的状态仅占2bit的存储空间,大大节省了用户数据的存储空间。

3.2 基于位操作的数据处理技术

电网数据进行压缩后还需要进行数据打包,才能组成用户数据帧发送至AFDX总

线上。为了能够有效和快速的实现数据的打包和发送,本文采用C语言,以“位

运算”为核心思想编写了BPCU中AFDX通讯的数据处理程序。

首先,由于AFDX通讯数据为char型格式的变量,宏定义一个占用1字节的基准

值 “#define AFDX_State 0x01”,用于移位运算;再定义一个指针变量指向通

讯数据数组的首地址,并将通讯数据数组清零。

然后,根据通讯数据结构表,BPCU对其采集到的电网信息进行电能质量检测,并

更新通讯数据:

a)对于某一数字量数据,对基准值进行移位操作,再与该数字量对应的数组元素进

行或操作,即可刷新数据。

b)对于某一模拟量数据,本文采用memcpy(void*dest, const void *src, size_t n)

函数,更新通讯数据。

最后,通过通讯接口函数,将更新完数据的AFDX通讯数组SND_AFDX发送至

AFDX通讯总线中,完成通讯数据的打包。由于位操作是直接对内存进行操作,且

代码量较小,提高了端系统对通讯数据的读写速度,优化了端系统的数据处理能力。

4 基于LabVIEW软件的端系统与AFDX总线的兼容问题

航电系统模拟机采用LabVIEW设计软件程序,实现配电系统的数据汇总和电网状

态显示的功能,但是AFDX的底层驱动不支持开发用于LabVIEW的动态链接库文

件。因此,针对端系统中某些应用软件无法开发相应的AFDX总线驱动,从而导

致该端系统应用软件无法读取总线信息的问题,本文提出了设计AFDX通讯接口

程序的方法。该接口程序不仅负责读写AFDX通信总线上的数据,还基于套接字

(socket)建立了C++程序进程与LabVIEW程序进程间的本地TCP通讯连接,解

决LabVIEW软件与AFDX总线的兼容问题,通讯程序结构如图2所示。

图2 系统通讯程序架构

接口程序采用双线程的软件架构,从而提高软件的运行效率和通讯转发的速率。主

线程的任务是接收AFDX通讯数据并转发给LabVIEW程序、完成AFDX板卡的

初始化和套接字库的初始化以及启动子线程,程序流程图如图3所示。子线程的

任务是创建并设置套接字、接收LabVIEW发送的数据并通过AFDX通讯转发给

BPCU以及管理连接套接字链表,程序流程图如图4所示。

图3 主线程程序流程图

图4 子线程程序流程图

子线程中采用select()模型监听套接字的状态,实现数据的读取。先定义fd_set结

构的套接字集合,并将主线程中创建的监听套接字加入该集合中;随后调用select

函数查询该集合的可读性,可写性和错误信息;若select函数返回值大于0,代

表某些集合可读写或已经出错,再调用FD_ISSET函数检查可读套接字是否在该集

合中;如果该套接字为监听套接字,则调用accept()函数,返回一个连接套接字,

并将其加入套接字集合和连接套接字链表中,如果不是监听套接字而是连接套接字,

则调用recv()函数接收连接套接字中LabVIEW客户端发送的数据,并将其转发至

AFDX通讯网络。

双线程程序的一个关键问题就是共享资源的同步访问,本程序中accept()函数返

回的连接套接字就是一个共享资源,主线程需要向该socket写数据,而子线程需

要从该socket读数据。为了解决这个问题,将该连接套接字存入一个链表中,并

通过CCriticalSection类控制该链表,构建数据临界区,达到同一时刻只允许一个

线程访问该链表。同时,还需要定义一个CSingleLock型的变量,线程通过调用

成员函数Lock()占用共享资源,资源访问完后,通过调用Unlock()释放该共享资

源,保证线程之间对共享资源的互斥访问。

5 多余度配电系统冗余通讯管理

大型民机配电系统中,左、右BPCU对重要的电网部分进行冗余管理,并都上传

该部分的数据至AFDX总线,构成双余度控制系统。为了解决系统中冗余通讯的

问题,就需要考虑通讯数据优先级和数据有效性的问题。

AFDX通讯网络本身是一个确定性网络,并通过虚拟链路定义了端系统之间的单向

连接。因此端系统能够分辨出数据的来源,从而根据预先定义的优先级读取高优先

级的数据。

将端系统的端口设置为采样模式以解决数据有效性问题。AFDX总线的端口采样模

式能够与ARINC653(航空电子应用软件标准接口)标准完美地衔接[5],其工作机

制使得采样端口只能缓存一条信息,当AFDX总线上有新的信息到达时,缓冲区

中旧的信息将被直接覆盖。同时,每个采样端口都和一个刷新标志相关联,当这个

刷新标志有效时,说明当前缓冲区中的信息是最新的[6]。所以,可以通过检测该

刷新标志,来判断每个端系统发送的冗余数据是否有效。

基于采样端口的冗余数据处理程序流程图如图5所示。首先,定义RBPCU数据的

优先级高于LBPCU,随后程序先读取来自RBPCU的冗余数据,并判断其刷新标

志是否有效,若有效,直接将该部分数据写入套接字并发送给LabVIEW程序,直

接丢弃LBPCU的冗余数据;若无效,则读取来自LBPCU的冗余数据,并判断其

刷新标志是否有效,若有效,将该部分数据写入套接字发送给LabVIEW程序;若

无效,则仍将RBPCU的数据发送给LabVIEW程序。

图5 通讯数据冗余管理流程图

6 通讯实验验证与分析

6.1 配电系统AFDX模拟通讯网络系统实验

系统正常情况下,进行通讯网络点对点的数据收发实验。

左右BPCU通过数据压缩和位运算处理,形成AFDX通讯数组。通过BPCU宿主

机中的Tornado2.2调试环境实时观测该数组,如图6所示。其中SND_AFDX为

数据发送数组,以十六进制显示,RCV_AFDX为数据接收数组,以十进制显示。

接口程序实现了BPCU与航电系统模拟机之间的数据传递,如图7所示。图8中

显示的“AFDX接收数据Y”为LabVIEW程序接收到的数据,“AFDX发送数据

X”为发送的数据。

图6 左右BPCU发送、接收数据 图7 接口程序发送、接收数据

图8 LabVIEW程序收发数据及状态显示

有图可得,航电系统模拟机接口程序转发的数据分别为[0x12,0x 40 , 0x 1, 0x 40,

0x 21 , 0x 8 , 0x 8 , 0x 8]和[18, 16],该组数据与通讯网络中BPCU程序、和

LabVIEW程序收发的数据均一致。点对点互相通讯实验表明,数据发送、接收正

确,接口程序能够实现基于LabVIEW软件的端系统与AFDX总线的兼容。

6.2 双余度配电系统冗余通讯实验

上节的系统通讯实验,系统正常,图8中LabVIEW程序显示左右BPCU均工作,

无报警提示。

关闭右BPCU,进行冗余通讯实验,通讯数组仍如图6所示。图9中,接口程序

只接受到左BPCU发送数据,同时提示右BPCU节点数据接收失败,进行冗余管

理后,将有效数据发送至航电系统模拟机中,“AFDX接收数据Y”为[0x12, 0x

40 , 0x 1, 0x 40, 0x 21 , 0x 8 , 0x 8 , 0x 8],与接口程序发送有效数据一致,同时

根据接口程序发送的报警信息,提示右BPCU的AFDX通讯失败。由此验证了本

文提出的AFDX总线中基于采样模式的冗余管理方法能够解决多余度配电系统的

冗余通讯问题。

图9 接口程序接收数据及状态显示

7 结论

本文设计了基于AFDX通讯总线的大型民机配电系统模拟通讯网络,应用了数据

压缩和基于“位运算”的通讯数据处理方式,设计了LabVIEW软件与AFDX总线

之间的接口程序,优化了AFDX网络中端系统的数据处理能力。通过大型民机配

电系统AFDX模拟通讯网络的数据收发实验,验证了本文所构建的大型民机配电

系统AFDX通讯网络能够实现电网数据的收发,同时验证了本文所设计的接口程

序能够解决基于LabVIEW软件的端系统与AFDX通讯网络的兼容问题。为大型民

机电气系统的实验提供了通讯平台。

【相关文献】

[1] 宁新建. 航空机载计算机及其总线[J]. 计算机与网络, 2003(24):54-55,58.

[2] Rejeb N, Mhadhbi I, Salem A K B, et al. Modeling of a heterogeneous AFDX-CAN

network gateway[A]. Computer Applications & Research[C]. IEEE, 2014:1-6.

[3] Li J, Guan H, Yao J, et al. Performance Enhancement and Optimized Analysis of the

Worst Case End-to-End Delay for AFDX Networks[A].IEEE International Conference on

Green Computing and Communications[C]. IEEE Computer Society, 2012:301-310.

[4] Li inism Enhancement of AFDX Networks via Frame Insertion and Sub-

Virtual Link AggregationIndustrial Informatics IEEE Transactions on[J].,2014 , 10 ( 3 ) :

1684-1695 .

[5] 赵永库,李 贞,唐来胜. AFDX网络协议研究[J]. 计算机测量与控制,2012,20(1):8-10,30.

[6] 钟 杰,何 民,王怀胜,等. AFDX构架及协议分析[J]. 电讯技术,2010,50(1):65-71.

[7] 严仰光,秦海鸿,龚春英,等. 多电飞机与电力电子[J]. 南京航空航天大学学报,2014,46(1):11-18.

[8] 李大鹏,赵明莉,田 园. AFDX端系统中冗余管理的研究和实现[J]. 电子技术,2012,39(12):10-13.

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

[10] Wang H C,Niu W S. Design and Analysis of AFDX Network Based High-Speed

Avionics System of Civil Aircraft[J]. Advanced Materials Research,2012,1655(462).

[11] Wheeler P. Technology for the more and all electric aircraft of the future[A]. IEEE

International Conference on Automatica[C]. IEEE, 2016.

[12] Li J, Guan H, Yao J, et al. Performance Enhancement and Optimized Analysis of the

Worst Case End-to-End Delay for AFDX Networks[A]. IEEE International Conference on

Green Computing and Communications[C]. IEEE Computer Society, 2012:301-310.

[13] Chen X, Xiang X, Wan J. A software implementation of AFDX end system[M]. A

Software Implementation of AFDX End System. 2009:558-563.