AFDX总线协议规范
1、概述
2、 AFDX简介
3、AFDX的在数据传输性能的改进
3.1 AFDX以太网帧格式
3.2 AFDX以太网冗余备份
3.3 虚拟连接
3.4 数据交换处理
4、航空计算机网络系统组成设计
4.1 航空子系统
4.2 AFDX终端系统
4.3 AFDX互联网
5、 基于AFDX航空计算机网络的性能分析
6、总结
1、概述
针对大型客机飞行关键项目和乘客娱乐等设施的复杂航空电子系统的不断增加,需要大量增加飞机上的航空总线的带宽、提高服务质量等问题,介绍了一种采用航空电子全双工通信以太网交换(AFDX)的解决方案。该方案是基于商业以太网标准,采用目前已被广泛接受的IEEE802.3/IP/UDP协议,并增加了特殊的功能来保证带宽和服务质量,实现了低成本的快速开发。该方案还可以简化布线,减轻飞机重量,易于航空电子子系统的维护升级等。
随着飞行关键项目和乘客娱乐等设施的复杂航空电子系统的不断增加,需要大量增加飞机上的数据总线的带宽,传统的航空总线如ARINC429等传输带宽只有100KHZ,远远不能满足要求,而ARINC629因价格昂贵,使飞机制造商的难以接受;因此需要以最小的代价和实现成本进行快速开发。
虽然IEEE802.3以太网提供高速和低成本的总线,并具有广泛商业的用途;但是它不能提供航空电子系统所需的鲁棒性,主要原因是IEEE802.3以太网是半双工模式的以太网,这种以太网存在的问题是:当多台主机被同时连接到同一个通讯媒介(如同轴电缆等),并且没有中心协调机制,这就有可能出现两台主机同时传输数据的情况,这时就会出现传输“冲突”,因此需要主机能检测到冲突,当冲突发生时,每个主机要对它们的数据进行重传。很明显,仍然可能再次出现在同一时间传输的情况,因此又会再次出现“冲突”。由于没有中央控制的以太网,理论上可能出现数据包不断重复的传输“冲突”,这就意味着在试图传输单个数据包时,有可能出现无限制的冲突链,从而使这个包可能永远无法成功传输。由此可见,在半双工模式,很可能出现因为冲突而导致了大量的数据包传输延迟。因此,无法作为应用于要求实时性高、可靠性高和带宽大的新一代航空总线。新一代航空总线需要一个这样的体系结构:这个结构就是让最大量的时间被用来把一系列数据包传递到一个已知的目的地,这意味着要摆脱系统的冲突。
为此,波音和空客公司通过已经实现商业用途的以太网技术来建立下一代航空数据总线,这项研究促使航空电子全双工通信以太网(AFDX)交换机的诞生。AFDX是基于IEEE802.3以太网通讯技术来实现的,但是增加了特殊的功能来保证带宽和服务质量。
2、 AFDX简介
航空电子全双工通信以太网交换(AFDX) 是一个基于标准定义的电子和协议规范(IEEE802.3和ARINC 664 Part7)用来航空子系统之间进行数据交换。空客公司开始致力于定义一个具有鲁棒性的下一代航空数据交换网络(ADN)用于A380,AFDX应用于这种特殊的网络,适用于ARINC664总线。它提供一个高达24个终端系统的星形拓扑来连接从一个交换机桥接到其它的交换机内部网络。这个稳定性的网络允许连接冗余(双物理连接)来保证带宽和服务质量。AFDX还允许连接到其它的标准总线如ARINC429或者MIL-STD-1553等到网络,并且允许通过网关和路由与其他的适应ARINC-664但非确定的网络进行通讯。AFDX地址没有采用IEEE802.3以太网标准,而是采用电信标准的异步传输模式的概念,这种对以太网标准的扩展使得在确定的网络中保证带宽和服务质量成为可能。
3、AFDX的在数据传输性能的改进
13.1 AFDX以太网帧格式:
AFDX数据包帧格式与IEEE802.3以太网的帧格式基本相同,AFDX帧格式如图所示,目标地址和源端地址包含着终端的MAC地址,事实上IP地址信息包含在IP结构模块中。UCP结构区别应用端口,AFDX信息有效载荷为17到1471数据。虚拟路径是通过1字节的序列号接来提供,它在以太网帧协议的校验和之前,范围可以是从1到255,当到达255后翻转到1,序列号0是保留对终端系统的复位。
AFDX网络地址是基于终端的MAC地址,ARINC664没有特别的规则来分配MAC地址,这个任务留给系统管理者来完成,但必须遵从IEEE802.3说明的本地管理规范。例如:在波音飞机的应用中,16位全部都可以用来设置的;而在空客的应用中,只有低12位被用到,而高4位均被置零。源端地址必须唯一,源端地址包含用来区别两个连接的冗余网络的MAC地址,目标地址是一个多播地址,包含16位的虚拟连接标识符。
图2 AFDX以太网帧协议格式
23.2 AFDX以太网冗余备份:
为避免可能因交换机某一网络出现故障而无法正常通讯,在AFDX系统中有两个独立的交换网络(如图所示)——A网络和B网络,每个包通过终端系统同时发送到这两个网络,因此正常情况下每个终端系统将会收到两个包,终端系统通过数据包的序列号来区别数据包来自A网络还是B网络,并检查数据包的帧校验序列来决定是否采用还是丢弃该帧。通过对数据进行冗余管理,就可以很好的保证数据包安全准确地传输到目的地,也就是提高了服务质量。
图3 AFDX网络冗余连接
33.3 虚拟连接
AFDX网络的核心是虚拟连接(virtual link)。每个虚拟连接建立了一个从源终端系统到多个目标终端系统的无方向的逻辑部分,每一个虚拟连接都分配一定的带宽配额,虚拟连接的数量是由一个完整的系统来定义的。创建虚拟连接的总带宽不能超过网络最大的可用带宽。对于不太重要的通讯网络,AFDX允许建立子虚拟连接(sub-VLs),虽然带宽对虚拟连接是有保证的,但对子虚拟连接是没有保证的。
如图所示:当源端系统(1)把一个(VLID)= 100的虚拟连接识别码的以太网帧发送到以太网中,AFDX交换机把这个以太网帧转发到指定目标终端系统(2和3),终端系统(2和3)能同时收到来自终端系统1的以太网帧。也就是说多个虚拟连接能同时接收来自同一个终端系统的信息,并且每个虚拟连接也可以从一个或多个通信端口获取信息。
43.4 数据交换处理
通过AFDX可以确定数据包发送和接收的时间,从而消除半双工可能出现的传输冲突。如下图1所示:每个航空子系统如自动驾驶、抬头显示等直接连接到由两组双绞线组成的全双工交换机。其中一组双绞线是用来传输,另一组双绞线是用来接收,交换机能够同时对发送和接收的数据包进行缓冲。
图1、
AFDX交换机的接收和发送缓冲区里面都能够根据先入先出的原则存储大量的对输入/输出数据包。I/O处理单元(CPU)把数据报从输入的接收缓冲区转移到输出传输缓冲区,通过检查下一行接收缓冲区到达的数据包,来决定他的目标地址(虚拟连接标志),并查找转发列表来决定从哪个发送缓冲区来接收这个数据包。通过存储总线和传输(FIFO)顺序,将数据包拷贝到该发送缓冲区,通过发送缓冲区把数据发送到航空子系统或其它交换机中。这种涉及到存储转发体系结构的全双工交换机排除了半双工以太网遇到的问题,简单的说就是消除了冲突。
4、航空计算机网络系统组成设计:
如图1所示,一个AFDX系统由以下部分组成
图4、AFDX系统组成
54.1 航空子系统
传统飞机上的航空子系统如飞行控制计算机、全球定位系统、压力疲劳监视系统等等,航空电子计算机系统为航空子系统提供一个计算环境,每个航空计算机系统包含嵌入式终端系统,并把航空子系统连接到一个AFDX互联网。
64.2 AFDX终端系统
在航空子系统和AFDX互联网之间提供一个“接口”。每个航空子系统的终端系统接口保证与其他航空子系统进行安全可靠的数据交换。这个接口为各种航空子系统提供了应用编程接口(API),使他们能够通过一个简单的接口进行会话。
74.3 AFDX互联网
一个全双工交换以太网,通常由一个以太网交换机把以太网帧数据传输到合适的目的地。AFDX互联网的以太网交换技术是一个有别于传统的单工的ARINC429 、点到点的技术和MIL—STD—1553总线技术。在AFDX的航空网络系统中(如图4)所示,两个终端系统提供分别为3个航空子系统一个通讯接口,第三个终端系统为应用网关提供了接口;同时它也为其他航空子系统之间提供通讯通道和扩展IP网络,专门用来进行数据的下载和登陆。
5、 基于AFDX航空计算机网络的性能分析
首先我们简单通过带宽、通信模式、终端数量等,对各种不同类型的总线进行对比如下表所示:
总线技术
|
ARINC 429
|
1553B
|
ARINC 629
|
Ethernet
|
AFDX
|
带宽(HZ)
|
100KB
|
1MB
|
2MB
|
1GB
|
100MB
|
通信模式
|
单工
|
半双工
|
半双工
|
半双工
|
全双工
|
终端数量
|
20个
|
32个
|
120个
|
不限
|
不限(理论上)
|
走线难度
|
复杂
|
中等
|
中等
|
简单
|
简单
|
价格成本
|
较低
|
较高
|
高
|
低
|
较低
|
可靠性
|
较高
|
较高
|
较高
|
低
|
高
|
通过我们可以通过框图对各种总线的价格进行比较,我们可以看到,与传统的总线相比,AFDX由以下优势:
(1)有保证的服务质量:与传统的以太网相比,AFDX的延时时间短,服务质量更高。
(2)AFDX的传输速率高:带宽100MHZ,远远高于其他的类型的航空总线。
(3)AFDX网络的鲁棒性高:AFDX的双冗余备份网络可以在某一个网络出现故障时,仍能正常通讯。
(4)简化走线难度:以往的航空总线系统中所有的设备之间必须通过双绞线相连,才能正常通讯;而使用AFDX,如图4所示,每个端点不需要单独连接到内部平台,每个终端只要与交换机直接相连,而不管网络内部平台有多少个端点,这样就在很大程度上减少走线,因此也可以减轻飞机的重量。
(5)终端子系统数量不受限制:如在ARINC429,一个发送源端最多只能有20个接收者,在MIL-STD-1553总线,一个BC最多只能连接32个RT;而AFDX,从网络内部平台连接的航空子系统的数量只跟交换机端口的数量有关,很容易满足增加子系统的需求。
(6)成本低:它通过已经实现商业用途的以太网技术进行开发,在很大程度上缩短了开发周期,和生产成本。
6、总结:
通过对AFDX的协议进行分析和比较,证明采用AFDX的航空计算机网络,可以提供更大更稳定的传输带宽,改善数据传输的服务质量(QoS)。同时使用AFDX还可以减少航空计算机网络间的布线,从而减轻了飞机的重量;此外,基于AFDX的网络拓扑非常灵活,可以很容易对飞机的子系统进行更新和增加,这样就可以很方便对飞机进行升级和维护,对我国大飞机的计算机网络的设计具有一定的参考价值
- FC总线技术简介
FC是由美国标准化委员会(ANSI)的X3T11小组于1988年提出的高速串行传输总线,解决了并行总线SCSI遇到的技术瓶颈,并在同一大的协议平台框架下可以映射更多FC-4上层协议.FC具备通道和网络 ...
- linux PMBus总线及设备驱动分析
PMBus协议规范介绍 PMBus是一套对电源进行配置.控制和监控的通讯协议标准.其最新版本为1.3,该规范还在不断演进中,比如新标准中新增的zone PMBus.AVSBus等特性.在其官网上有详细 ...
- FPGA实战操作(2) -- PCIe总线(协议简述)
目录 1. PCIe基础知识 2. 事务层协议 2.1 数据包结构 2.2 帧头含义详述 3. 报文举例 3.1 寄存器读报文 3.2 完成报文 4. 机制简述 4.1 Non-Posted和Post ...
- Openstack 中的消息总线 & AMQP
目录 目录 消息总线 消息总线的原理 AMQP 消息总线 Openstack 采用了面向服务的开发模式(有别于面向对象和面向过程),需要我们去考虑各个服务之间和各项目之间是如何传递消息的. Restf ...
- 存储系列之 硬盘接口与SCSI总线协议
本文主要介绍硬盘的接口.总线和协议,SSD与SATA硬盘一般是兼容的,NVmeSSD除外. 一.磁盘控制器 上一章介绍了存储系统的主要介质硬盘,而硬盘的读写通过磁头臂,磁头臂是由磁盘驱动器来控制的.磁 ...
- Linux设备管理(三)_总线设备的挂接
扒完了字符设备,我们来看看平台总线设备,平台总线是Linux中的一种虚拟总线,我们知道,总线+设备+驱动是Linux驱动模型的三大组件,设计这样的模型就是将驱动代码和设备信息相分离,对于稍微复杂一点的 ...
- C# Azure 消息队列ServiceBus (服务总线队列)
1. 前言 在阅读本文之前,可以查看微软官方的说明. https://www.azure.cn/documentation/articles/service-bus-create-queues/ 2. ...
- EventBus总线讲解
在我们公司经常用到总线,具体的总线是什么让我理解我也不清楚,但是在这几个月下来,我已经知道总线如何使用,现在加上示例讲解总线如何使用. 1. 首先我们的新建一个类,这个类其实是用于总线传递的模型 us ...
- Android事件总线
Android中Activity.Service.Fragment之间的相互通信比较麻烦,主要有以下一些方法: (1)使用广播,发送者发出广播,接收者接收广播后进行处理: (2)使用Handler和M ...
随机推荐
- _beginthread和CreatThread的区别
转自:http://www.jb51.net/article/41459.htm 我们知道在Windows下创建一个线程的方法有两种,一种就是调用Windows API CreateThread()来 ...
- 动态库Link error 一种可能
一般出现link error都是链接时找不到对应函数. 前些天出现这种错误,我反复地检查,都发现动态库里明确的是有对应函数的. 代码里有这样一句#pragma comment(lib,"li ...
- windows程序设计获取文本框(窗口、对话框)文本
就是这样一个简单的界面,窗口上重绘的对话框(这种写法参考我之前博文): 需要做到的就是点击确定,获取文本框中内容. // 处理对话框消息 INT_PTR CALLBACK NewDlgProc(HWN ...
- Django的CBV和FBV
一.FBV FBV(function base views) 就是在视图里使用函数处理请求,也是我们最开始接触和使用的方式,普通项目中最常见的方式. urls.py 1 2 3 4 urlpatter ...
- HTML中的表单
1.HTML中表单元素的基本概念 HTML表单是HTML元素中较为复杂的部分,表单往往和脚本,动态页面,数据处理等功能相结合,因此是制作动态网站很重要的内容. 表单一般用来收集用户的输入信息 2.表单 ...
- 利用GUID唯一标识符并设置它的过期时间
项目中遇到一个小问题,就是把服务器创建的GUID发送给客户端,客户端接收后,下次访问时带上这个GUID, 服务端这边就进行验证,并做相应的处理. 问题是:项目中还需要这个GUID带过期时间,那是如何设 ...
- SqlSugar ORM 入门到精通【一】入门篇
背景 SqlSugar是一款国产ORM,除了拥有媲美原生的性能 另外还有满足各种需求的功能,简单好用一分钟就能够轻松上手. 2.x版本正式在自已公司内部项目使用 3.x版本得到了更多公司的喜欢不过也会 ...
- arm 异常处理结构
概念:正常的程序执行过程中发生暂时的停止称为异常,如果发现异常情况,将会进行异常处理 作用:快速响应用户的行为,提高cpu的响应能力 异常类型: 异常处理的三个步骤: 1.保护现场: 工作模式保存:C ...
- 使用Nginx实现灰度发布
灰度发布是指在黑与白之间,能够平滑过渡的一种发布方式.AB test就是一种灰度发布方式,让一部分用户继续用A,一部分用户开始用B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B ...
- kindeditor编辑器修改文本后保存时发现获取到的内容还是修改前的文本内容
定义kindeditor的时候要加上一下几个属性设置: KindEditor.ready(function(K) { var editor = K.create("textarea[name ...