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.


发布评论