您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 酒店餐饮 > 基于FPGA的AFDX协议处理芯片设计
ComputerEngineeringandApplications计算机工程与应用2011,47(21)航空电子全双工交换式以太网(AvionicsFullDuplexSwitchedEthernet,AFDX)由工业标准以太网(IEEE802.3)经过适用性改进(ARINC664-Part7)形成的,不仅满足航空电子系统对数据通信带宽的需求,而且满足航空电子领域应用的高可靠性、高实时性要求,当前已应用于先进大型客机项目(A380和B787)中,成为了一种新的航空电子数据网络标准。按照AFDX分层模型[1]的设计思想,AFDX协议处理芯片将完成物理层、链路层和传输层的功能,AFDX的主要功能是完成AFDX网络协议的解析,同时还需要实时管理AFDX虚拟链和数据流。本文介绍了符合ARINC664规范的AFDX端系统协议芯片的设计方案,并且对AFDX协议处理芯片中的关键模块进行了设计和仿真。端系统芯片使用单片FPGA设计。FPGA凭借其灵活、规模大、开发周期短的优势已成为电子系统设计与实现的一种重要手段。1AFDX端系统概述AFDX端系统嵌入在每个航空电子子系统中,将子系统与AFDX网络连接起来,负责消息的发送和接收,其链路传输速率为10Mb/s或100Mb/s。AFDX“确定性网络”[2]特性主要由端系统实现,AFDX的端系统主要包括:1.1虚拟链路AFDX引进了虚拟链路(VirtualLink,VL)对带宽资源进行有效的分隔。VL是从数据源通过多播地址发布的一路数据包流量,物理上很多路VL共用一条以太网链路,并通过交换机进行交换与多播。在发送端采用流量整形机制通过对每条VL定义最大帧长度Lmax(MaximumFrameSize)[3]和带宽分配间隔BAG(BandwidthAllocationGap)在VL间分配通信资源。流量整形功能应该能够在1~128ms内控制BAG的值。这些值应该满足BAG=2kms(0≤k≤7)。端系统输出端口的每个VL的max.jitter(最大允许抖动)应该服从下列两个联立的公式[3]:ìíîïïïïMax.jitter£40+åiÎ{}VLset(20+Lmax)´8NWBMax.jitter£500(1)其中:max_jitter单位是μs,Lmax(虚链路的最大允许帧)单位为字节,40μs是典型的最小固定技术抖动。1.2冗余路径AFDX通过冗余路径[4]来提高网络的可用性。在冗余配置下,每个端系统将要发送帧编号,并将它复制成两份,分别通过物理上相互独立的交换设备向目的端系统发送。端系统具有冗余管理(redundancymanagement)功能,目的端系统根据编号按顺序接收。如果两个复本都被正常接收,则后到的被丢弃;如果其中一个出现传输故障,则可以用另一个进行替代。基于FPGA的AFDX协议处理芯片设计尹路,王勇,郭利锋YINLu,WANGYong,GUOLifeng空军工程大学工程学院,西安710038EngineeringCollege,AirForceEngineeringUniversity,Xi’an710038,ChinaYINLu,WANGYong,GUOLifeng.DesignofAFDXprotocolprocesschipbasedonFPGA.ComputerEngineeringandApplications,2011,47(21):64-67.Abstract:AvionicsFullDuplexSwitchedEthernet(AFDX)isthebestchoiceofnext-generationavionicsdatanetworks.TheAFDXendsystemcanensurethesafetyandreliabilityofthedatawhichexchangealongtheaircraft-bornenetworks.Thispa-perisbasedontheanalysisofARINC664specificationpart7andprovidesasolutionofAFDXprotocolprocesschipbasedonFPGA.ItalsogivesthedesignandsimulationofkeymodulesofAFDXprotocolprocesschip.Keywords:AvionicsFullDuplexSwitchedEthernet;endsystem;protocolprocesschip;simulation摘要:航空电子全双工交换式以太网(AFDX)是下一代航空数字网络的首选。AFDX的端系统可以保证数据在航电系统网络之间交换的安全性和可靠性,基于ARINC664规范的第7部分,提出了符合该规范的AFDX协议处理芯片的设计方案,对AFDX协议处理芯片中的关键模块进行了设计和仿真。关键词:航空电子全双工交换式以太网;端系统;协议处理芯片;仿真DOI:10.3778/j.issn.1002-8331.2011.21.017文章编号:1002-8331(2011)21-0064-04文献标识码:A中图分类号:TP39⦾研发、设计、测试⦾作者简介:尹路(1987—),男,硕士研究生,研究方向为机载计算机技术;王勇(1963—),男,副教授,硕士研究生导师;郭利锋(1985—),男,硕士研究生。E-mail:yinlu7669025@163.com收稿日期:2011-02-25;修回日期:2011-04-25642011,47(21)1.3AFDX端系统的组成本文设计的AFDX端系统硬件架构如图1所示。各模块的功能如下:PCI接口模块:实现PCI总线的接口协议。CPU模块:实现AFDX协议栈UDP、IP层的功能。DPRAM模块:存储发送虚链路和接收虚链路的数据、端系统的配置数据和端系统运行需用到的其他数据。FPGA模块:实现AFDX协议栈特有的全部虚链路层功能如流量整形、虚链路调度、完整性检查、冗余管理等。PHY模块:PHY芯片实现以太网的物理层接口功能。2AFDX协议处理芯片结构设计作为端系统核心协议处理芯片,FPGA实现了AFDX协议栈特有的全部虚链路层功能[5],如流量整形、虚链路调度、完整性检查、冗余管理等。端系统协议处理芯片的组成如图2所示。2.1协议处理芯片硬件结构硬件分区结构如图2上半部分所示,包括媒体访问控制器(MAC)、终端系统传输模块、发送/接收冗余管理模块、NIOSII处理器、虚拟链数据存储器及相关辅助电路组成。(1)媒体访问控制器:发送数据时,通过NIOSII处理器的调度程序和调度器的控制,负责从发送虚拟链数据缓存中读取数据,并按照AFDX协议的数据格式发送给物理层接口;接收数据时,通过物理层接口从物理层获取数据,然后按照AFDX协议进行数据解析,并通过接收冗余管理模块的处理,最终存入接收虚拟链数据缓存中。(2)终端系统传输模块:包括调度器、抖动时间、各虚拟链时间和虚拟链指针等模块,各个模块通过NIOSII处理器的调度程序完成AFDX传输过程中的流量整形。按照定义好的配置表将数据流整形成各个虚拟链路中定义的参数:最小带宽分配间隙和最大帧长。在满足虚拟链最大抖动范围的前提下,经过调度器叠合后发送到交换机中。(3)冗余管理模块:冗余管理包括发送冗余管理和接收冗余管理。发送冗余管理对逐个虚拟链进行配置,经过调度器整形的虚拟链可选择从媒体访问控制器A或B发送帧数据,或同时发送。接收冗余管理对接收到的帧数据进行完整性检查,并判断是否有效,以及删除冗余通道中重复收到的有效帧。(4)NIOSII处理器:是系统的核心控制模块,负责协调各个模块之间的工作。主要功能包括:启动时配置系统、调度传输帧以及接收帧的多路分解。当开机或重启时,CPU读取配置存储器,确定虚拟链的数目、各个虚拟链所需的带宽和终端系统的媒体访问控制。2.2协议处理芯片软件结构软件结构如图2下部分所示,包括主控模块、初始化模块、AFDX协议控制模块、中断管理模块、存储管理模块和错误管理模块。初始化模块负责初始控制信息,对主控模块进行初始化,并通过AFDX协议控制模块对各个硬件模块进行初始化。主控模块是软件运行的核心模块,是程序运行的主线程,负责对系统其他软件模块进行管理。通过AFDX协议控制模块实现对硬件部分的管理,以此控制AFDX数据帧编解码速DPRAMPHYBPHYAFPGACPUPCI接口图1AFDX端系统硬件架构图输入数据虚拟链发送数据存储器FPGA下一帧指针虚拟链1时间虚拟链n时间调度器发送冗余控制媒体访问控制器A物理层A抖动时间终端系统传输虚拟链接收数据存储器输出数据NIOSII处理器接收冗余管理媒体访问控制器B物理层B硬件部分SDRAMFLASH外部RAM错误处理模块初始化模块软件部分主控模块中断管理模块存储管理模块AFDX协议控制模块…图2端系统协议芯片的组成图尹路,王勇,郭利锋:基于FPGA的AFDX协议处理芯片设计65ComputerEngineeringandApplications计算机工程与应用2011,47(21)度及各硬件模块之间的交互;通过存储管理模块实现对片上系统各个存储器的访问与控制;通过调用中断管理模块实现系统软硬件中断的处理;另外,通过错误管理模块监视系统的错误信息,并据此对主控模块进行相应的调整及处理。AFDX协议控制模块是软件控制硬件模块的接口,按照软硬件接口规范将信息以命令的方式发送给相关硬件模块。为了使软件与硬件模块之间能够正常工作,它与每个硬件模块之间通过一个命令缓冲区队列(FIFO)进行信息交互,并把命令FIFO的状态传递给主控模块,主控模块据此判断AFDX协议的帧数据传输是否可以继续下去,若命令FIFO不可用(已满),则暂停数据传输,一直等待到可用为止。存储管理模块负责对系统各个存储器进行管理,包括发送/接收虚拟链数据存储器、NIOSII软件运行时的SDRAM、SRAM及掉电时用于保存程序的FLASH。3协议处理芯片中关键模块设计3.1调度器的设计调度器[5]是端系统虚拟链路中对虚拟链路进行整型的关键,每个虚拟链路的带宽分配需要考虑到最小带宽分配间隙(BAG)、虚拟链路可以传递的最大帧长度(Lmax)以及虚拟链路的最大抖动边界(Max.Jitter)3个条件的限制。BAG是以两个相继帧的起始位之间的间隔来确定的,范围为BAG=2kms(0≤k≤7)。抖动是指从开始的BAG到第一个虚拟链路分配的最大分配带宽传输的帧之间的间隔。两者关系[4]如图3所示。其中最大抖动边界必须符合公式(1)。通过对调度器功能的了解,调度器可以分为同步调度器和异步调度器,其中同步调度器中虚拟链的数据应该在不同的传输周期给媒体访问控制器,异步调度器中虚拟链的数据可以在相同的传输周期给媒体访问控制器。3.1.1同步调度器设计为了简化控制逻辑和定时时间,该方法要求各虚拟链同步且传输在最小周期为T(T=1ms)的范围内发生,具体设计如下:(1)每个虚拟链拥有独立的BAG定时器,即使两个虚拟链的BAG值相同,也不能使用同一个BAG定时器。(2)不同虚拟链的数据应该在不同的传输周期给媒体访问控制器。(3)拥有一个抖动定时器,各BAG定时器仅在抖动定时器溢出时才复位,最大抖动边界计算由公式(1)确定。(4)每个虚拟链传输控制逻辑应设定一个可传输标志(FTT)[6]来通知调度器传输该虚拟链的帧数据。下面通过虚拟链A(BAGA=1ms)和虚拟链B(BAGB=2ms)之间的传输过程来对本方法进行说明,该调度器分配如图4所示,该调度器的仿真结果如图5所示。在图4中,将时间tms到(t+1)ms定义为周期t,具体调度过程如下:周期0:调度器启动,检测到虚拟链A有数据,且FTTA为1,经过一定抖动延时后调度帧A0,并复位FTTA。周期1:BAGA时间到,设置FTTA,检测到虚拟链B有数据,不经过抖动延时调度帧B0,并复位FTTB,设置ResetBAGA,重新开始新的BAGA定时。周期2:BAGA时间到,设置FTTA,
本文标题:基于FPGA的AFDX协议处理芯片设计
链接地址:https://www.777doc.com/doc-3237149 .html