航空电子体系的开展已成为现代飞机功用不断进步的重要要素。以ARINC429和1553B为代表的现役机载总线已不能满意现代航空电子体系对通讯速度和带宽的要求。美国航空电子技能委员会(AEEC)提出了航空电子全双工交换式以太网AFDX(Avionics Full Duplex Switched Ethernet),它是在商用交换式以太网的基础上,经过实时性和可靠性等方面的改善树立起来的,契合IEEE802.3和ARINC664标准。
AFDX是一种全双工、高数据率、双冗余的总线,具有传输速度快、易扩展、可维护性好等长处,能够有用削减体系布线,减轻飞机分量。不仅能满意航空电子体系数据通讯对带宽的需求,并已成功运用于A380和B787,也是我国新研发大型客机的抱负挑选[1]。作为AFDX的重要组成部分,终端接口卡功用的好坏直接影响到AFDX网络的全体功用。因而,规划可靠性高、实时性好、满意实践运用需求的AFDX终端接口卡具有宽广的运用远景和杰出的经济、军事效益。
1 AFDX终端接口卡总体规划
依据ARINC664标准对终端体系的要求,在参阅了参阅文献[2]对终端协议芯片的规划和相关老练产品的基础上,提出一种AFDX终端接口卡的规划计划。该接口卡功用特色为:选用Stratix II系列FPGA芯片完结协议栈首要功用,能够完结256个传输虚链路(最多2 048个接纳虚链路);独立的MAC核简化了规划,确保了体系的稳定性和100 Mb/s的传输速率;PCI总线可完结132~264 Mb/s的高速数据传输,最大极限地满意接口卡对时延的功用要求;2个100/10 Mb/s端口,完结全双工的双冗余通道。AFDX终端接口硬件框图如图1所示。
FPGA模块是体系的中心协议芯片,完结AFDX协议栈的首要功用,包含流量整形、虚链路调度、完整性查看、冗余办理等。MAC模块衔接物理层和FPGA,为数据的发送和接纳供给数据接口和操控接口,操控PHY进行发送和接纳。PHY模块完结以太网的物理层接口功用。PCI接口电路是主机衔接AFDX终端接口卡的桥梁,供给主机和接口卡间高速、双向交互数据的接口。CPU模块是体系的中心操控模块,和谐各模块之间的作业,完结AFDX协议栈UDP、IP层的功用。
2 AFDX终端接口卡的要害模块规划
2.1 FPGA芯片规划
航空电子体系的运转环境特别,对AFDX终端接口卡芯片的功用参数、作业温度和稳定性的要求高,因而,应选用集成度高、逻辑资源和存储器资源丰富、速度快、能够完结杂乱的时序与组合逻辑电路功用的芯片。一般商业级的FPGA无法担任,必需求选用工业级FPGA。归纳考虑各方面要素,本接口卡选用Altera公司Stratix II EP2S180系列FPGA。FPGA芯片的内部功用结构如图2所示。
装备数据存储器在片内操控器的效果下完结终端接口卡的初始化,对有关硬件进行装备。初始化完结后,即可进行数据的发送和接纳作业。发送数据时,CPU模块经PCI接口经过DMA办法,将航空电子体系中的数据帧传送到发送数据缓存器中;发送模块依照调度算法将数据帧调度到相应VL中,为数据帧增加序列号(SN)后,一起发往MAC A和MAC B;接纳数据时,PHY模块将数据帧发送至MAC模块(MAC A和MAC B),经MAC模块CRC校验后发送至接纳模块。接纳模块将MAC模块传来的数据存入本身缓存中,并进行完整性查看和冗余办理;CPU检测到已收到新数据帧后发动DMA,将数据帧送至航空电子体系。数据缓存器用于存储发送和接纳进程中的数据。
2.1.1 接纳模块
数据接纳模块担任接纳从MAC送来的数据,完结完整性查看,消除从冗余通道接纳的重复有用帧。该模块包含完整性查看模块、冗余查看模块、SN表和包分栋器。
完整性查看模块校验每个从MAC模块传来的接纳帧是否具有该VL所等候的SN。冗余查看模块接纳一切经过完整性查看的合法帧,若接纳到两个具有相同SN号的帧时,将转发先接纳到的,然后丢掉第二个。SN表存储接口卡各接纳虚链路最终收到帧的SN,用于完整性查看[2]。VL号映射表存储各接纳VL的逻辑VL号与物理VL号的对应联系。查询该映射表,可得到VL的逻辑VL号所对应的物理VL号。包分拣器依据VL号判别到来的帧归于哪条虚链路,并将该帧存入该虚链路对应的数据接纳缓存中[3]。
2.1.2 发送模块
发送模块完结流量整形、多路复用及传输端冗余操控(TRC)功用。该模块包含:寄存器模块、虚链路调度模块、传输端冗余操控。
寄存器模块存储发送模块所用到的信息,如VL的BAG值(带宽分配距离)、Lmax值(最大帧长度)等。虚链路调度模块由整形模块和多路复用模块组成。为消除虚链路相互竞争引进的颤动,本规划的虚链路调度计划运用周期为125 μs的静态调度办法。整形模块担任确保每一条VL都恪守它所分配的带宽约束,操控并监督BAG和Jitter定时器,使数据流以比较均匀的速度向外发送,约束VL上的突发流量。经过多路复用技能将整形后的虚链路的帧合并到一条物理链路上,并确保多路复用后输出的颤动在可接受的范围内。传输端冗余操控(TRC)模块的首要效果是依据调度模块的输入决议即将传送帧的意图地,能够只传送给MAC A和MAC B中的一个,也能够一起传送给MAC A和MAC B。
2.2 MAC模块
为简化规划,本体系选用ACTEL公司的两个Core10/100 Ethernet IP核树立两个独立的通道。该IP核具有100 Mb/s的传输速率,已经在试验和实践运用中屡次验证契合IEEE802.3标准和ARINC664标准,可较好地完结MAC功用,其首要组成模块及联系如图3所示[4]。
操控、状况寄存器及操控逻辑(CSR)模块向外部模块供给操控接口和MII办理接口,包含操控寄存器、状况寄存器及操控逻辑。主机经过CSR模块完结对Core10/100的中止操控和电源办理,然后到达操控IP核的意图。数据操控模块将外部模块需求发送的数据存入内部的发送FIFO中,等候发送,并主动运用CPU空隙将接纳FIFO中收到的数据发往外部模块。发送、接纳FIFO别离用于暂存待发送的数据和接纳到的数据,为外部存储器作业于FIFO形式供给接口。发送及接纳操控模块作为发送及接纳的MII接口,操控PHY芯片进行数据的发送与接纳。发送操控模块从发送FIFO中读取待发送数据,构成帧,并经过MII接口发送数据帧;接纳操控模块经过接纳MII把数据从外部PHY设备传送到接纳数据存储器中,并完结地址过滤。
主机与IP核之间的数据交换是经过FIFO缓存器进行的。数据交换包含发送和接纳两个独立的进程,这两个进程都存在三种状况:运转、停止和暂停。发送和接纳进程各有一个描述符列表,方位由CSR中的寄存器来界说。Core10/100履行载波监听多路拜访/抵触检测(CSMA/CD)算法来处理抵触[4]。其算法流程如图4所示。
2.3 PCI接口模块
2.3.1 硬件规划
为防止规划一切PCI总线协议需求的接口逻辑,减轻作业难度,本规划选用PLX公司的64 bit总线操控器PCI9656。PCI9656与FPGA衔接如图5所示。
PCI9656契合PCI V2.2协议,支撑32/64 bit、33/66 MHz时钟,选用流水线架构技能能够支撑7个外部主控器,支撑多路复用,可直接生成一切的操控、地址和数据信号以驱动PCI总线,而不需求额定驱动电路。
依据需求,将PCI地址空间划分为用户装备空间、发送缓冲空间和接纳缓冲空间。EEPROM作为装备信息存储器,在操控器的效果下完结对PCI设备的初始化装备。本规划选用0类装备空间,需装备的信息包含设备的厂商、类别、设备所请求的存储器和I/O空间、设备的中止信息及作业办法等。
请求部分总线操控权时,PCI9656使LHOLD变高;FPGA检测到LHOLD变高后,当即回应LHOLDA,总线请求成功。读数据时,PCI9656先使LW/R变低,下一个周期使ADS变低,并依据地址高两位进行译码,挑选要拜访的SDRAM操控器模块,使能SDRAM;当FPGA宣布REDAY信号有用后,从SDRAM中读数据。写数据时,PCI9656使LW/R变高,下一个周期使ADS变低,此刻地址有用,并依据地址高两位进行译码,挑选要拜访的SDRAM操控器模块,使能SDRAM;当FPGA宣布REDAY信号有用后,把数据写到SDRAM中。当数据传输完毕时,PCI9656使REDAY信号无效、LW/R变高,下一个时钟周期吊销LHOLD,再下一个周期FPGA会吊销LHOLDA信号,至此撤销总线成功。
2.3.2 驱动程序
本规划设备驱动程序选用微软的WDM驱动程序形式,完结即插即用。驱动程序的开发和调试选用DriverStudio开发东西包中的DriverWorks和SoftICE作为首要的东西。
规划驱动程序首要需求考虑四方面要素:PCI设备的硬件拜访;中止处理;DMA数据传输和安全性、稳定性、可靠性。为完结AFDX对数据传输实时性的要求,设备驱动程序选用中止办法。为满意快速传送数据、I/O呼应时刻短和CPU额定开支小的需求,选用DMA的块传输办法进行数据传输。为确保驱动程序的可靠性和稳定性,规划选用Windows 98/2000/XP内核形式的标准驱动程序例程。
驱动程序可分为两部分,一部分用于PCI9656各个装备寄存器赋值并初始化;另一部分用于主程序,用来完结PCI9656与主机CPU之间的数据交互。运用DriverStudio中的DriverWizard创立PCI驱动程序结构,选用VC++6.0的面向目标规划思维创立了接口芯片抽象类C_PCI9656,将PCI9656芯片的特点和需完结的操作封装起来。在头文件Register_PCI9656.h中界说PCI9656供给的内部寄存器,包含PCI装备寄存器、DMA寄存器、运转时刻寄存器和音讯行列寄存器等。资源分配经过IRP(I/O Request Packe)例程完结。DMA传输流程如图6所示[5]。
首先在运用程序中创立一个事情目标,将该事情传递给驱动程序并发生中止,中止例程判读中止来历。若是Local中止,则运用程序发送DMA读写指令,该操作将IRP传递给驱动调用SerialRead()或SerialWrite()例程,运转回调例程OnDmaReady()断定是否契合DMA传输条件并敞开StartDMA()例程完结DMA传输,发生DMA中止;若是DMA中止,则调用OnDmaReady()例程断定DMA传输是否完毕,未完毕则再一次敞开StartDMA()例程持续DMA传输并发生中止。如此循环一直到完结一切的DMA传输,运用程序完毕线程。为进步设备驱动程序的安全性和可靠性,在规划中选用自旋锁来维护同享数据和设备寄存器,编写程序时严厉遵从编程标准和C++言语标准语法格局。
3 仿真与测验
依据本文的规划计划,凭借Altera公司的Quartus II软件对AFDX接口卡的要害模块进行了功用和时序仿真。发送模块时序仿真如图7所示。当主机需求发送数据时,经过给发送模块发送一个脉冲信号TxStartFrm来指示数据帧发送的开端,发送模块检测到这个脉冲后使发送使能MTxEn有用,开端数据的发送。由图7可知,发送模块发送的数据与待发送数据共同,较好地完结了发送模块的功用。
接纳模块时序仿真如图8所示。当接纳开端信号RxStartFrm有用时,RxValid信号被置为可用状况,开端数据的接纳进程。接纳MRxD标明从MAC发送过来的数据。由图8可知,接纳模块作业正常,较好地完结了接纳模块的功用,满意规划的要求。
在对体系的功用和时序进行仿真并确保仿真正确的基础上,将协议芯片的规划下载到Altera公司出产的Stratix II系列的EP2S180F1020C5中,并运用Sniffer协议剖析软件进行在线体系验证。验证标明,该协议芯片最高作业频率可达152.64 MHz,满意AFDX协议对时延和颤动的要求,且能正确、完整地完结发送和接纳功用,通讯正常。运用Soft%&&&&&%E调试了PCI驱动程序,结果标明,驱动程序能正确加载,能完结对硬件的正确驱动和操控办理,中止正常,当PCI传输很多的数据时,数据传输也正确。
本文依据ARINC664标准和AFDX协议对接口卡时延和颤动的功用要求,提出了一种依据FPGA和PCI的AFDX终端接口卡规划计划,给出了要害模块的具体规划,编写了总线接口驱动程序。运用Quartus II软件对各功用模块进行了功用和时序仿真,并建立测验渠道进行开始测验验证。结果标明,本文提出的规划计划可行性好,稳定性高,传输速度快,时延小,颤动一直小于最大颤动,契合要求,为下一步的研讨开发供给了可学习经历。