尹路;王勇;郭利锋
【摘 要】Avionics Full Duplex Switched Ethernet(AFDX) is the best choice of next-generation avionics data networks.The AFDX end system can ensure the safety and reliability of the data which exchange along the aircraft-borne networks.This paper is based on the analysis of ARINC664 specification part 7 and provides a solution of AFDX protocol process chip based on FPGA.lt also gives the design and simulation of key modules of AFDX protocol process chip.%航空电子全双工交换式以太网(AFDX)是下一代航空数字网络的首选.AFDX的端系统可以保证数据在航电系统网络之间交换的安全性和可靠性,基于ARINC664规范的第7部分,提出了符合该规范的AFDX协议处理芯片的设计方案,对AFDX协议处理芯片中的关键模块进行了设计和仿真.
【期刊名称】《计算机工程与应用》
【年(卷),期】2011(047)021
【总页数】4页(P64-67)
【关键词】航空电子全双工交换式以太网;端系统;协议处理芯片;仿真
【作 者】尹路;王勇;郭利锋
【作者单位】空军工程大学工程学院,西安710038;空军工程大学工程学院,西安710038;空军工程大学工程学院,西安710038
【正文语种】中 文
【中图分类】TP39
航空电子全双工交换式以太网(Avionics Full Duplex Switched Ethernet,AFDX)由工业标准以太网(IEEE802.3)经过适用性改进(ARINC664-Part7)形成的,不仅满足航空电子系统对数据通信带宽的需求,而且满足航空电子领域应用的高可靠性、高实时性要求,当前已应用于先进大型客机项目(A380和B787)中,成为了一种新的航空电子数据网络标准。按照AFDX分层模型[1]的设计思想,AFDX协议处理芯片将完成物理层、链路层和传输层的功能,AFDX的主要功能是完成AFDX网络协议的解析,同时还需要实时管理AFDX虚拟链和数据流。
本文介绍了符合ARINC664规范的AFDX端系统协议芯片的设计方案,并且对AFDX协议处理芯片中的关键模块进行了设计和仿真。端系统芯片使用单片FPGA设计。FPGA凭借其灵活、规模大、开发周期短的优势已成为电子系统设计与实现的一种重要手段。
1 AFDX端系统概述
AFDX端系统嵌入在每个航空电子子系统中,将子系统与AFDX网络连接起来,负责消息的发送和接收,其链路传输速率为10 Mb/s或100 Mb/s。AFDX“确定性网络”[2]特性主要由端系统实现,AFDX的端系统主要包括:
1.1 虚拟链路
AFDX引进了虚拟链路(Virtual Link,VL)对带宽资源进行有效的分隔。VL是从数据源通过多播地址发布的一路数据包流量,物理上很多路VL共用一条以太网链路,并通过交换机进行交换与多播。在发送端采用流量整形机制通过对每条VL定义最大帧长度Lmax(Maximum Frame Size)[3]和带宽分配间隔BAG(Bandwidth Allocation Gap)在VL间分配通信资源。流量整形功能应该能够在1~128 ms内控制BAG的值。这些值应该满足BAG=2kms(0≤k≤7)。端系统输出端口的每个VL的max.jitter(最大允许抖动)应该服从下列两个联立的公式[3]:
其中:max_jitter单位是μs,Lmax(虚链路的最大允许帧)单位为字节,40 μs是典型的最小固定技术抖动。
1.2 冗余路径
AFDX通过冗余路径[4]来提高网络的可用性。在冗余配置下,每个端系统将要发送帧编号,并将它复制成两份,分别通过物理上相互独立的交换设备向目的端系统发送。端系统具有冗余管理(redundancy management)功能,目的端系统根据编号按顺序接收。如果两个复本都被正常接收,则后到的被丢弃;如果其中一个出现传输故障,则可以用另
一个进行替代。
1.3 AFDX端系统的组成
本文设计的AFDX端系统硬件架构如图1所示。各模块的功能如下:
PCI接口模块:实现PCI总线的接口协议。
CPU模块:实现AFDX协议栈UDP、IP层的功能。
DPRAM模块:存储发送虚链路和接收虚链路的数据、端系统的配置数据和端系统运行需用到的其他数据。
FPGA模块:实现AFDX协议栈特有的全部虚链路层功能如流量整形、虚链路调度、完整性检查、冗余管理等。
PHY模块:PHY芯片实现以太网的物理层接口功能。
图1 AFDX端系统硬件架构图
2 AFDX协议处理芯片结构设计
作为端系统核心协议处理芯片,FPGA实现了AFDX协议栈特有的全部虚链路层功能[5],如流量整形、虚链路调度、完整性检查、冗余管理等。端系统协议处理芯片的组成
如图2所示。
2.1 协议处理芯片硬件结构
硬件分区结构如图2上半部分所示,包括媒体访问控制器(MAC)、终端系统传输模块、发送/接收冗余管理模块、NIOS II处理器、虚拟链数据存储器及相关辅助电路组成。
(1)媒体访问控制器:发送数据时,通过NIOS II处理器的调度程序和调度器的控制,负责从发送虚拟链数据缓存中读取数据,并按照AFDX协议的数据格式发送给物理层接口;接收数据时,通过物理层接口从物理层获取数据,然后按照AFDX协议进行数据解析,并通过接收冗余管理模块的处理,最终存入接收虚拟链数据缓存中。
(2)终端系统传输模块:包括调度器、抖动时间、各虚拟链时间和虚拟链指针等模块,各个模块通过NIOS II处理器的调度程序完成AFDX传输过程中的流量整形。按照定义好的配置表将数据流整形成各个虚拟链路中定义的参数:最小带宽分配间隙和最大帧长。在满足虚拟链最大抖动范围的前提下,经过调度器叠合后发送到交换机中。
(3)冗余管理模块:冗余管理包括发送冗余管理和接收冗余管理。发送冗余管理对逐个虚拟链进行配置,经过调度器整形的虚拟链可选择从媒体访问控制器A或B发送帧数据,或同时发送。接收冗余管理对接收到的帧数据进行完整性检查,并判断是否有效,以及删除冗余通道中重复收到的有效帧。
(4)NIOS II处理器:是系统的核心控制模块,负责协调各个模块之间的工作。主要功能包括:启动时配置系统、调度传输帧以及接收帧的多路分解。当开机或重启时,
CPU读取配置存储器,确定虚拟链的数目、各个虚拟链所需的带宽和终端系统的媒体访问控制。
2.2 协议处理芯片软件结构
软件结构如图2下部分所示,包括主控模块、初始化模块、AFDX协议控制模块、中断管理模块、存储管理模块和错误管理模块。
初始化模块负责初始控制信息,对主控模块进行初始化,并通过AFDX协议控制模块对各个硬件模块进行初始化。
主控模块是软件运行的核心模块,是程序运行的主线程,负责对系统其他软件模块进行管理。通过AFDX协议控制模块实现对硬件部分的管理,以此控制AFDX数据帧编解码速度及各硬件模块之间的交互;通过存储管理模块实现对片上系统各个存储器的访问与控制;通过调用中断管理模块实现系统软硬件中断的处理;另外,通过错误管理模块监视系统的错误信息,并据此对主控模块进行相应的调整及处理。
AFDX协议控制模块是软件控制硬件模块的接口,按照软硬件接口规范将信息以命令的方式发送给相关硬件模块。为了使软件与硬件模块之间能够正常工作,它与每个硬件模块之间通过一个命令缓冲区队列(FIFO)进行信息交互,并把命令FIFO的状态传递给主控模块,主控模块据此判断AFDX协议的帧数据传输是否可以继续下去,若命令FIFO不可用(已满),则暂停数据传输,一直等待到可用为止。
存储管理模块负责对系统各个存储器进行管理,包括发送/接收虚拟链数据存储器、
NIOS II软件运行时的SDRAM、SRAM及掉电时用于保存程序的FLASH。
3 协议处理芯片中关键模块设计
3.1 调度器的设计
调度器[5]是端系统虚拟链路中对虚拟链路进行整型的关键,每个虚拟链路的带宽分配需要考虑到最小带宽分配间隙(BAG)、虚拟链路可以传递的最大帧长度(Lmax)以及虚拟链路的最大抖动边界(Max.Jitter)3个条件的限制。BAG是以两个相继帧的起始位之间的间隔来确定的,范围为BAG=2kms(0≤k≤7)。抖动是指从开始的BAG到第一个虚拟链路分配的最大分配带宽传输的帧之间的间隔。两者关系[4]如图3所示。
图3 BAG与Jitter之间的关系图
其中最大抖动边界必须符合公式(1)。
通过对调度器功能的了解,调度器可以分为同步调度器和异步调度器,其中同步调度器中虚拟链的数据应该在不同的传输周期给媒体访问控制器,异步调度器中虚拟链的数据可以在相同的传输周期给媒体访问控制器。
3.1.1 同步调度器设计
为了简化控制逻辑和定时时间,该方法要求各虚拟链同步且传输在最小周期为T(T>=1 ms)的范围内发生,具体设计如下:(1)每个虚拟链拥有独立的BAG定时器,
即使两个虚拟链的BAG值相同,也不能使用同一个BAG定时器。(2)不同虚拟链的数据应该在不同的传输周期给媒体访问控制器。(3)拥有一个抖动定时器,各BAG定时器仅在抖动定时器溢出时才复位,最大抖动边界计算由公式(1)确定。(4)每个虚拟链传输控制逻辑应设定一个可传输标志(FTT)[6]来通知调度器传输该虚拟链的帧数据。下面通过虚拟链A(BAGA=1 ms)和虚拟链B(BAGB=2 ms)之间的传输过程来对本方法进行说明,该调度器分配如图4所示,该调度器的仿真结果如图5所示。
图5 同步调度器仿真图
在图4中,将时间t ms到(t+1)ms定义为周期t,具体调度过程如下:
周期0:调度器启动,检测到虚拟链A有数据,且FTTA为1,经过一定抖动延时后调度帧A0,并复位FTTA。
周期1:BAGA时间到,设置FTTA,检测到虚拟链B有数据,不经过抖动延时调度帧B0,并复位FTTB,设置Reset BAGA,重新开始新的BAGA定时。
周期2:BAGA时间到,设置FTTA,检测到虚拟链A有数据,经过一定抖动延时后调度帧A1,并复位FTTA。
周期3:BAGA时间到,设置FTTA,BAGB时间到,设置FTTB,没有数据传输操作,保持原状态,设置Reset BAGA,重新开始新的BAGA定时。
周期4:BAGA时间到,设置FTTA,检测到虚拟链B有数据,经过一定抖动延时后
调度帧B1,并复位FTTB;虚拟链A在超过最大抖动延时后没有帧数据传输,设置Reset BAGA,重新开始新的BAGA定时。
周期5:BAGA时间到,设置FTTA,BAGB时间到,设置FTTB,在新的BAGA周期检测到虚拟链A有数据且FTTA为1,经过一定抖动延时后调度帧A0,并复位FTTA。
周期6:BAGA时间到,设置FTTA,BAGB时间到,设置FTTB,没有数据传输操作,保持原状态。
3.1.2 异步调度器
异步调度器就是在一个最小BAG时间内同时传输多个虚拟链路中的数据,不同虚拟链的数据可以在不同的传输周期给媒体访问控制器。具体设计如下:(1)每个虚拟链拥有独立的BAG定时器。(2)不同虚拟链路的数据可以在同一个传输周期内被调度器调度,但是一旦某虚拟链路开始传输,那么只有等该虚拟链路完全传输完后,才释放空闲时间。(3)每个BAG定时器是独立运行的,且拥有独立的抖动定时器,每个虚拟链的最大抖动边界由公式(2)确定。
(4)每个虚拟链传输控制逻辑应设定一个可传输标志(FTT)来通知调度器传输该虚拟链的帧数据。下面通过虚拟链A(BAGA=1 ms)和虚拟链B(BAGB=1 ms)之间的传输过程对本方法进行说明,该调度器运行的结果如图6所示。
图6 Tn=250 μs时的异步调度方案图
从图6中可以看出,虚拟链A和B各自定义了独立的最大抖动边界Amj和Bmj,并且将1 ms时间周期划分为n个小周期(每个小周期Tn=1 000/n μs)。调度时,每个帧传输应该在一个小周期内完成,当某个小周期被某帧占用后,则只有等到下个小周期,才能用于传输其他帧。
3.2 媒体访问控制器的设计
媒体访问控制器[5-6](MAC)的设计必须要遵守IEEE 802.3标准和ARINC 664标准。
媒体访问控制器的设计主要分为以下几个部分:控制/状态寄存器组(CSR);负责数据调度的内部状态机(TLSM和RLSM);负责数据缓存的发送/接收先进先出存储器(TFIFO和RFIFO);发送/接收控制逻辑(TC和RC);存储管理逻辑;外部接口控制逻辑(DMA控制、数据及CSR访问接口),其总体设计如图7所示。
图7 媒体访问控制器的总体设计方案图
其中控制/状态寄存器(CSR)位于IP核内,CPU可以通过CSR专用访问接口来读写CSR,从而达到控制IP核的目的。所有CSR的长度都为32位。
内部状态机包括发送状态机和接收状态机。发送状态机主要负责发送数据的控制,接收状态机主要负责接收数据的控制。
FIFO主要包括发送FIFO和接收FIFO。FIFO主要用于发送/接收数据的缓存,通过
DMA与外部CPU直接相连。
DMA为CPU和IP核内的数据提供数据交换。CPU可以通过数据访问接口与IP核内的DMA控制器建立数据传输通道,从而达到控制内部发送状态机和接收状态机的目的。
发送/接收控制逻辑按照IEEE 802.3标准和ARINC664标准通过MII接口与外部物理层进行通信。
存储管理主要包括发送数据、接收数据及地址的存储。
4 系统仿真
本文通过QuartusII软件对AFDX协议处理芯片的各个子模块进行了详细的测试,主要包括:CSMA/CD测试,发送过程测试(包括发送FIFO测试、发送状态机测试、发送中断测试),接收过程测试(包括接收操作测试、接收FIFO测试、接收状态机测试、接收中断测试),外部接口测试(包括DMA控制测试、数据访问接口测试、CSR访问接口测试)。在实际测试中,测得发送过程的典型时序如图8所示,接收过程的典型时序如图9所示。
图8 发送过程的典型时序图
图9 接收过程的典型时序图
测试结果表明,该AFDX协议处理芯片的设计方案能很好地实现AFDX协议功能。
5 结束语
设计了基于FPGA的AFDX协议处理芯片,并在Altera公司的EP1S40芯片上进行了相关的仿真与验证,结果表明该方案能很好地实现AFDX协议,可以实时地对虚拟链路进行调度,完成数据帧的编解码,具有双冗余通道的功能。该设计方案兼备了硬件的强大并行处理能力及软件的灵活性和可编程性,具有方便、快捷、高效的优点,为基于FPGA的AFDX协议处理芯片以及端系统的设计提供了一个很好的参考。
【相关文献】
[1] 王勇,于宏坤.机载计算机系统[M].北京:国防工业出版社,2008.
[2] 周拥军.AFDX端系统关键技术的研究与实现[J].计算机工程,2009(5).
[3] 钟杰.AFDX构架及协议分析[J].电讯技术,2010(1).
[4] AEEC ARINC664 aircraft data networks,Part7:Avionics Full Duplex Switched Ethernet(AFDX)network[S].Airlines Electronic Engineering Committee,2005.
[5] Li Qiao,Ge Peng,Xiong Huagang.Effective bandwidth over AFDX[C]//25th IEEE Digital Avionics Systems Conference,2006.
[6] Courtney R.Aircarft data network,Part 7:Avionics Full Duplex Switched
Ethernet(AFDX)network[M].Stockholm,Sweden:Airlines Electronic Engineering Committee,2004.
因篇幅问题不能全部显示,请点此查看更多更全内容