APP下载

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

2018-05-23,,,

计算机测量与控制 2018年5期
关键词:民机链路总线

,,,

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

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通讯链路规划表

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 M.Determinism 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.

猜你喜欢

民机链路总线
一种移动感知的混合FSO/RF 下行链路方案*
基于凸优化的FSO/RF 自动请求重传协议方案
天空地一体化网络多中继链路自适应调度技术
基于Stateflow的民机液压控制逻辑仿真与验证
民机环控系统压力传感器测试台的设计
DCOM在混合总线自动测试系统的应用
基于AVR单片机的RS485工业总线开发设计
仿真型总线控制实训室设计与建设
中俄民机标准专题组第三次会议在上海召开
基于数字虚拟飞行的民机复飞爬升梯度评估