FC-AE-1553B,fc-ae-1553标准
本作品内容为FC-AE-1553B,格式为 docx ,大小 2712303 KB ,页数为 66页
('光纤通道(FC)协议分析光纤通道协议(简称FC协议)是美国国际信息技术标准委员会(INCITS)于1998年开始制定一种高速串行通信协议。该协议将快速可靠的通道技术和灵活的、可扩展的网络技术有机融合在一起。FC协议发展至今,已经能够支持很多上层协议和指令集,例如:MIL-STD-1553B、IP、ATM等协议以及HIPPI、IPI、SCSI等指令集。支持光纤和铜缆等多种物理介质。FC协议能够很好地实现全双工、半双工和单工的通信模式。FC协议的基本特点是:灵活的拓扑结构、高带宽、高可靠性、低迟延、开放性。\uf06e光纤通道分层结构类似于OSI的七层模型结构和TCP/IP的四层模型结构,FC协议具有五层模型结构。FC-0:接口与媒体层,用来定义物理链路及特性;FC-1:传输协议层,定义了编码/解码方案、字节同步和有序集;FC-2:链路控制层,定义了传送成块数据的规则和机制;FC-3:通用服务层;FC-4:协议映射层,定义高层协议映射到低层协议的方法。\uf06eFC-0接口与媒体层研究FC-0接口与媒体层即为光纤通道协议的物理层。该部分主要涉及的是传输介质以及使用的收发器等,即从物理组成方面来定义光纤通道协议的要素。1.光纤通信原理光纤通信采用光纤作为传输介质,光作为信息的载体。它首先要在信号发射端将需要发送的电话、电报、图像和数据等电信号进行光电转换,即将电信号变成光信号,再通过光纤传输到接收方的端口,接收端将接收到的光信号转变成电信号,继而还原成原信号。图3-1为光纤通信系统,可将其分为三个基本组成单元:光发射器、光纤和光接收器。光发射器由将传输信号进行电光变换的转换装置和将光信号送入光纤的传输装置组成。光源是其核心部件,由半导体发光二极管LED或者激光二极管LD组成。光纤在使用系统中一般以光缆的形式存在。光接收器由光检测器、放大电路和具有信号恢复功能的解调电路组成。光发射器和光接收器也称为光端机。在光纤通信系统中还包括大量的有源、无源光器件。2.光收发一体模块的选择所谓的光收发一体模块即是能实现光电、电光转换,具有独立发射驱动和接收放大电路,符合电信传输标准的光电子系统。光收发一体模块从九十年代开始应用以来,各类光通信的系统接口部分都采用其作为核心器件。光收发一体模块(OpticalTransceiverModule)具有结构小、成本低、可靠性高、性能好等优点。图3-2为光收发模块的原理框图。光发射部分使用偏置控制电路给激光源提供偏置电流,数据信号进入高速缓冲器整形后,形成调制电流,激光器输出光信号,完成电光转换和数据发送。调节调制电流和偏置电流可以起到控制光收发模块的消光比和稳定输出功率的作用,此调节电路称之为APC自动控制功率电路。而温度控制电路ATC由制冷器和热敏电阻双向控温,用以稳定模块工作时的光源中心波长。光接收部分主要由PD探测管,前置放大器,主放大器,均衡电路和时钟提取电路组成。PD探测管将接收到的光信号转为电信号,完成光电转换,前置放大器用于降低噪声干扰,提高接收灵敏度。主放大器对信号进行整形放大后,再由判决再生电路和时钟电路将信号还原。光收发一体模块包括的种类有:(1)1x9双工SC,ST连接器光模块(2)RJ45电口小型可插拔模块(3)点对点双向光模块(4)千兆以太网接口转换器(GBIC)模块(5)无源光网PON(G-PON,GE-PON)光模块(6)小型可插拔收发光模块(SFP)(7)10Gb/s光模块(XFP,SFP+)目前应用最为广泛且有着巨大发展潜力的是支持热插拔的SFP模块。故从通用性和升级性考虑,本设计采用SFP封装的光纤收发模块。SFP光模块是一种小封装、可热插拔的光纤收发一体模块。小封装能够提高线路接口模块的端口密度,可插拔性则为用户更换模块提供方便,有利于升级和维护设备。SFP光收发模块采用LC光接口,SFP光收发模块有多模和单模之分,多模SFP主要应用于短距离的数据传输,单模SFP则主要用于中、长传输距离。SFP代表了收发模块发展的方向。而智能SFP光模块,即带有数字诊断功能的SFP光模块,则是各厂商技术升级换代的标志性产品,通过光模块自带的数字诊断功能,可以得到光模块的相关状态,从而为我们对光通信产品的调试、使用以及整个网络的维护提供检测手段和方法。SFP提供的性能检测手段,可以帮助系统管理预测光模块的寿命、隔离系统故障并在现场安装中验证模块的兼容性等等。本课题综合多方面考虑采用多模传输的智能SFP模块,选定AVAGO公司的HFBR-57L5AP,该收发模块兼容光纤通道协议,高速串行信号传输速率可达1.0625Gb/s,工作温度为-10℃~+85℃,传输距离可达550m,且具有能够实时检测功能的数字诊断功能。图3-3为所选用的光纤收发一体模块原理图。TD±与RD±为高速串行信号线,设计时要将其与SERDES芯片相连,由于该信号线上传输的信号为高速差分信号,因此在具体PCB设计的走线上要满足阻抗匹配。FPGA部分连接光纤模块的如下引脚,用于监测和控制光纤模块。TX_FAULT:激光出现错误时,激活该信号,使其被锁为高电平。该信号一旦被激活,激光将停止发射。该信号由TX_DISABLE或电源清零。通过FPGA观察该信号。TX_DISABLE:光学输出无效使能,高电平有效。RX_LOS:输入信号电源不足时,该信号被激活。高电平有效,表示调制信号缺失或硬件连接错误(如光件已坏或远程收发器不好使)。MOD_DEF0:高电平用于指示光模块的存在。MOD_DEF1,MOD_DEF2:I2C总线控制信号。3.光模块的物理连接方案光纤通道物理连接界面要求将并行结构的数字系统连接至一个高速串行通信链路,且数据格式为8b/10b编码。当数据从多比特并行字转换成8位的字节,继而编码成10位的字节,并再将其转换成高速串行数据时,相位噪声(AKA抖动)的影响将随着时钟频率的提高和字节周期的缩短变得更加明显。为使10比特宽的编码字节串行化,设置在串并行转换器(SERDES)发送端的锁相环(PLL)会将并行数据传输时的钟频率提高10或20倍,在编码过程将并行数据复用,产生高速串行数据。嵌入在SERDES芯片接收器内的另一个PLL可提取将串行数据转换成并行数据所需的时钟。在光纤收发器模块中也集成了一个复杂的电路,用来将SERDES的数据输出转换为调制激光器所需的模拟信号,并且将接收到的光脉冲转换回差分数据输出。安捷伦科技的(SERDES芯片)嵌入式PLL使用了完善的电荷泵误差信号放大器和位频率检测器,改进了对电源噪声的抗干扰性。同时在所选的光收发一体模块资料中也给出了较为适合光模块的SERDES芯片,以及其接口电路。本课题选择的是安捷伦科技的HDMP-1636A,该芯片满足光纤通道的1.0625Gb/s的传输速率,能将已编码的8b/10b码的10位数据转换为高速串行数据,也能完成将高速串行数据变为8b/10b码的10位数据。其工作主要是从发送和接收两方面来完成的。发送部分接收10位并行TTL电平数据,并将其串行化形成高速的串行数据流。接收的10位并行数据要求是8b/10b编码或是同等码制,这些并行数据在参考时钟(作为发送字节时钟)的上升沿被锁存至输入寄存器。光纤通道的参考时钟要求为106.25MHz。发送部分的锁相环将用户提供的参考时钟锁住,这个时钟然后被10倍频来产生用于输出高速串行数据流的时钟。这个高速数据流直接连至铜质电缆或光纤模块输出。接收部分接收1062.5M波特率的串行数据流并将其恢复成10位并行数据。接收部分的锁相环锁存住输入信号,并将其恢复成串行时钟和数据。串行数据被转换回10位并行数据,同时识别8b/10b编码特点来排列字节。恢复的并行数据对于用户来说都是TTL电平输出的。接收部分也恢复两个接收时钟,并且这两个时钟相位相差180度。对于光纤通道来说,该时钟则为53.125MHz。并行数据将被恰当的按照每个时钟的上升沿进行排列。ENBYTSYNC引脚控制的BYTSYNC信号是整个时序的关键,它用来完成数据字节的同步。当检测到二进制数据101111100(K28.5的RD-编码)时,BYTSYNC信号有效,同时恢复的时钟RBC0和RBC1对数据是严格的沿对齐。同时,方便于测试,芯片给出了一个外部输入引脚来控制本地数据自收自发。图3-4为SERDES芯片的原理框图。\uf06eFC-1传输协议层研究FC-1层定义了串行序列的物理传输编解码、有序集的组成以及端口状态机等。FC在该层定义了传输码制,即采用8b/10b数据编码传送信息。1.8b/10b编解码方案光纤通道中为了增加数据传输的可靠性,采用了传输带宽小、转换密度高以及码字游程长受限的8b/10b编解码方案。它将原8位数据编码成为10位的字符,增加了数据中的高低电平变换(即1/0变换),有利于实现编解码前后的时钟同步,此外还能帮助实现直流平衡,以便接收器的输入没有直流(DC)漂移。由于采用该码制的链路可以是交流(AC)耦合的形式,因此,设备厂商提供了更大的灵活性。而且这种编码有利于检测出传输过程中单个和多个比特的误码,同时编码方案中的一些特殊字符为比特流的码组定位和信息识别提供了有力的支持。将8b/10b编码划分为3个模块实现,较好地反映了8b/10b编码的特点,实现流程清楚,容易编写代码,图3-5为8b/10b编码框图。其具体实现步骤为:(1)判断是特殊字符还是数据;(2)若是特殊字符,根据RD极性直接取值;(3)若是数据,根据RD极性确定6bit的取值;(4)根据6bit编码值确定4bit的编码取值。图3-6给出了解码模块的基本结构框图。8b/10b解码的难点是将1024个数据当中的有效数据字、特殊字和错误字分辨清楚。在1024个数据当中,有24个特殊字、440个有效数据字和560个错误字。因此解码模块可以分成四个主要子模块,即为特殊字解码子模块、错误字检测子模块、有效数据字解码子模块和RD及RD错误计算子模块,用于完成解码、错误检测和RD计算等功能。2.光纤通道有序集研究光纤通道协议的有序集分为三种:帧界定符,原语信号和原语序列。其中帧界定符包含帧开始(SOF)和帧结束(EOF),指出帧的起始和终止,指出帧的服务类型,并给出帧在序列中的相对位置并说明帧内数据的有效性。原语信号是由特殊的K28.5编码开始的连续四字节的一组特殊信号,主要用于说明各端口的状态变化和通知事件的发生。主要的原语信号包括空闲信号(IDLE)和准备完毕信号(R_RDY),空闲信号的传送一方面是说明链路空闲,另一方面则保证链路之间的通畅,不让其他信号传递。R_RDY信号主要用于缓冲到缓冲的流控制,用于确认接收方有能力接收更多帧。表3-1为原语编码表。原语序列是不断发送的有序集,在原语序列协议中用来完成链路初始化和链路层校正。发送原语序列表明端口的状态在发生变化。原语序列包括不操作(NOS),离线(OLS),链路故障(LRR),链路复位(LR)等等。3.端口状态机原理设计在光纤通道中,端口是通信的基本单元。所有连接到光纤网络上的设备都必须有光纤端口,这些端口控制数据的传输。当端口上电或复位后,它必须经过一套严密的握手机制由非激活状态转换为正常工作状态;另外,在数据通信过程中,若发现链路故障、超时、缓冲区溢出、信号丢失或不同步等异常情况时,端口也要启动特定的协议来进行故障排查、链路恢复等处理。这就要需要通过端口的状态机工作机制来实现。端口状态机状态转换的关系如表3-2所示。注意事项:a表示依赖于激光安全要求,当检测到信号丢失时,发射器可能会进入“脉冲”操作传输模式;b表示在FC端口决定离开OL1状态之前,所有的事件被忽略;c表示检测到一个原语序列协议错误(在该状态下接收到一个不正确的原语序列),链路错误状态块中(LESB)的原语序列协议错误数目加1;d表示当不再识别NOS且没有其他能引起状态转换的事件发生时,超时周期开始计时;e表示当不再识别OLS且没有其他能引起状态转换的事件发生时,超时周期开始计时;f表示当FC端口试图上线发送OLS且没有其他能够引起状态转换的事件发生时,超时周期开始计时;g表示FC端口进入到AC状态时,在发送其他传输字之前,要连续发送至少6个IDLES。端口状态机共有三层链路恢复协议。即链路初始化协议,链路复位协议以及链路错误协议。其整个工作过程可以用图3-7表示。链路初始化协议起始于要求初始化的B端口的OL1状态,此时B端口发送OLS;A端口接收到OLS后进入到OL2状态,发送LR;B端口接收到LR后进入到LR2状态,发送LRR;A端口接收到LRR后进入到LR3状态,发送IDLE;B端口接收到IDLE后进入到AC状态,发送IDLE;A端口接收到IDLE后进入到AC状态。至此两个端口共同完成链路初始化。链路复位协议起始于要求链路复位的A端口的LR1状态,此时A端口发送LR;B端口接收到LR后进入到LR2状态,发送LRR;A端口接收到LRR后进入到LR3状态,发送IDLE;B端口接收到IDLE后进入到AC状态,发送IDLE;A端口接收到IDLE后进入到AC状态。至此两个端口共同完成链路复位。链路错误协议起始于发现链路错误的A端口,此时A端口进入LF2状态,发送NOS;B端口接收到NOS后进入到LF1状态,发送OLS;A端口接收到OLS后进入到OL2状态,发送LR;B端口接收到LR后进入到LR2状态,发送LRR;A端口接收到LRR后进入到LR3状态,发送IDLE;B端口接收到IDLE后进入到AC状态,发送IDLE;A端口接收到IDLE后进入到AC状态。至此两个端口共同完成链路错误协议。\uf06eFC-2链路控制层研究FC-2链路控制层这是光纤通道协议中最复杂的一层,在FC协议的五层架构中,FC-2层定义了进行端到端的数据块传输的规则和机制,它提供了可供上层协议方便使用的一系列功能,而不理会该协议是什么(SCSI、IP、1553B等等),对某个特定的协议而言它只需要使用FC-2提供的某一部分功能。FC-2提供的具体功能包括:不同类型的服务、帧格式的定义、序列的拆分与重组、交换的管理、地址分配、别名定义、并发传送管理、流量控制机制等。因此,对于这一层的理解要结合顶层协议来设计,根据所需要的部分恰当的进行设计。1.数据收发和流量控制方法数据收发部分主要有到两方面内容,一个是端口状态机工作时原语序列的收发,另一个是帧数据的收发。系统复位后,首先是端口状态机工作,它将按照其原理完成状态转移,并发送特定状态下的原语序列。目标端口将会有一个原语序列检测逻辑,用于实时的检测原语序列,检测到后,将结果传送到端口状态机,帮助其完成状态转移,直到端口上线处于AC激活状态。帧的收发首先要从SOF和EOF开始,发送逻辑接收到数据传输的开始信号后,将自动根据所传送的数据类型配置SOF和EOF。接收逻辑则通过检测SOF和EOF来控制解码工作的开始和停止。而核心内容帧的收发则要根据顶层协议来定义,流量控制方面采用的是缓冲到缓冲的流量控制。首先根据接收方缓冲的容量来确定一个配置寄存器,用于存放接收方的容量。发送控制逻辑设计给出一个计数器,其容量表示当前已发送但还未被确认的帧的数目,每当发送1帧的数据,计数器自动加1;而当接收到R_RDY原语信号时,计数器则要自动减1。如果这个值小于配置寄存器中设定的值,即未达到接收方的容量,则表示可以继续发送帧;否则,表明目标端口已经没有可用的接收缓冲区,发送控制逻辑将不再发送数据了。2.CRC校验思想光纤通道协议在FC-2层次定义了数据的校验方式,即采用CRC校验。CRC校验,全称为循环校验码(CyclicalRedundancyCheck,缩写为CRC),它广泛应用于数据通信和计算机通信中。光纤通道中采用的CRC校验原理,可实现大容量、高速度、高可靠性和高效的信息传输,可以有效地提高系统的检错能力。在帧的收发过程当中,帧的CRC值分别由发送控制逻辑和接收控制逻辑计算。在计算完数据的CRC后,发送控制逻辑将会把该值附到信息的末尾随帧一并传输出去。接收控制逻辑则在接收数据的同时计算其CRC值,并将计算的结果与收到的信息末尾处的CRC进行核对,来判断数据传输的正误。由于光纤通道协议中定义的帧是面向字节的,所以在对帧内的数据域进行并行CRC编解码时,一次要对8位数据进行处理。通过当前CRC值与读入数据的运算,得出新的CRC值。一个时钟周期处理8位数据的并行算法与串行算法处理8个时钟周期所得的CRC的值是相同的。通过递推的方法可由串行算法导出并行算法计算前后CRC之间的逻辑关系。CRC校验码的生成多项式如公式3-1:这样得到了计算8位数据前后CRC32值之间的逻辑关系。由此可知,计算后的CRC值可由当前CRC值与输入数据的异或组合来计算得出。课题利用了VerilogHDL的组合逻辑来实现32位并行CRC校验模块。其中输入为光纤的8位数据和32位的CRC初值。输出为计算出来的CRC32校验码。当新的8位数据到来时,输入的CRC换为上次CRC校验计算的结果,二者异或得出来的就是32位的CRC校验码。依次得到每个8位数据的CRC校验码。最后的输出即为最终的光纤通道协议中帧的CRC校验码。\uf06eFC-3通用服务层用于提供一个节点上的多个Nx端口进行操作管理的链路服务和其他服务。为所有通信终端提供一些通用的应用服务器,如时钟同步服务器、别名服务器等,规定了通常的服务类型。\uf06eFC-4协议映射层光纤通道体系结构的最高层,它定义了低层FC协议与ULP之间的映射规则。对于FC-AE-1553技术,该层定义了MIL-STD-1553B到FC-AE-1553的映射。\uf06e光纤通道拓扑结构光纤通道定义了3种拓扑结构。它们是点对点(Point-to-Point)、仲裁环(ArbitratedLoop)和交换型网络(Fabirc)。点对点连接是3种结构中最简单的,如图2-2所示,通过光缆直接连接两个设备的端口,能够提供最大带宽并可实现全双工连接,可用于连接有大量持续数据传输要求的结点,如在机载系统中雷达和雷达信号处理器之间进行数据传输。如图2-3为仲裁环连接,仲裁环可以进行126个设备的高速连接,数据在环路的一个方向上传送,在任一时刻仲裁环只有一对端口进行通信,环中的设备只有当环处于空闲状态,才能通过仲裁获得仲裁环的使用权,一个或多个仲裁环路的网状结构可以组成混合结构。仲裁环可以作为机载系统中外部存储设备间的连接或显示阵列间的连接。可以采用用集线器式的环模式提高环连接的可靠性,如果加入端口旁路功能,则可对故障结点进行旁路,进一步提高整个环的可靠性。图2-4所示为交换型连接。交换型网络在三种拓扑结构中功能最强大、可靠性最高、性能最好、带宽最大,可以连接多达1600万个设备,而且在同一时刻允许多个设备进行高速通信,但是价格昂贵些。在一条连接通道中,交换机可同时建立共享连接链路和多条直接连接通道,即可以同时进行分组交换和电路交换。各终端的端口通过点对点的双向连接与交换机端口互连,每个端口都可以最大速度与交换机的端口建立连接。光纤通道可以根据需要配置成以上三种方式的混合网络,从而提供最大限度的灵活性。\uf06e光纤通道端口类型在光纤通道协议中,端口是通信的基本单元。所谓端口是一个节点内部的硬件实体,通过光纤通道链路和相邻的端口进行数据通信。根据端口位置和拓扑结构的不同,光纤通道协议定义了以下类型的端口:(1)N端口。N端口是实现整个网络的起点和入口,它是光纤通道协议中最简单的端口,它的功能正确与否直接决定网络是否正常工作。(2)F端口在光纤通道交换机中实现,为N端口之间提供管理和连接服务,是光纤通道网络中数据的中转者。(3)L端口。L端口存在于光纤通道环网中,环状网络中的节点共享一个公用连接光纤通道环网,目的是为了降低光纤网络的带宽费用。(4)NL端口和FL端口。FL端口在交换机上实现,它作为一个特殊的节点加入到光纤环网中。NL端口位于环结构内,具有N端口和L端口的双重能力。\uf06e光纤通道服务类型光纤通道定义了6类服务。使用的类别很大程度上依赖所传输的数据类型。服务类别之间的主要区别是使用不同的流控制类型。如果两个N-Port之间进行通信或者一个N-Port要注册到交换式网络,则至少需要1类公共服务支持,因为序列和交换需要使用1类服务。在交换式网络注册和N-Port注册的过程中,信息进行了交换。(1)第1类服务:专用连接。第1类服务建立的专用连接要由交换机维持和保证。交换机将会按照源N端口的发送顺序将帧发送给目的N端口。(2)第2类服务:复用连接。第2类服务是无连接的服务,收到数据帧后需要发送链路控制帧进行确认。在一个给定的序列内部,发射器会以连续的顺序发送第2类数据帧,但是交换机可能不能保证按序传送。(3)第3类服务:数据报。第3类服务是无连接的服务,只支持无确认的传送,在接收到合法的数据帧后不发送任何链路控制帧进行确认。在一个给定的序列内部,发射器会以连续的顺序发送第3类数据帧。但是,交换机可能不能保证按顺序传送。(4)第4类服务:部分带宽。利用交换机管理部分带宽分配协议,第4类服务使用建立在交换机内部和两个正在通信的N端口之间的虚电路来彼此发送帧。在一个给定的序列内部,发射器会以连续的顺序发送第4类数据帧,交换机会以和源N端口发送顺序相同的顺序发送帧到目的N端口。(5)第5类服务:5类服务用于同步、即时服务。但到目前为止还没有被完整的定义,有可能会被废弃。(6)第6类服务:多点传送连接。第6类服务允许一个N端口和多个N端口建立同时的专用连接。一旦专用连接建立,它们就要由交换机维持和保证。第6类的数据流只能由源N端口到目的N端口。所有的目的N端口会发送适当的链路回应帧给一个多点传送服务器,多点传送服务器会收集这些链路回应帧并返回一个单独的链路回应帧给源N端口。帧由交换机以和源N端口发送顺序相同的顺序传送给目的N端口。\uf06e光纤通道数据单元光纤通道帧和信令协议定义了3种协议数据单元:帧(Frame)、序列(Sequence)和交换(Exchange),它们之间的层次关系如图2-5所示。帧都遵循通用的帧格式,帧格式如图2-6所示。每个帧包括开始分隔符,大小为24个字节的固定帧头,多种可操作服务头,从0到2112个字节的长度灵活的有效载荷,一个帧标准循环冗余码校验和一个结束分隔符。序列是从一个N端口向另一个N端口单向传送的一个或多个相关的帧,序列是单向传送的。交换由一个或多个非并发的序列组成。交换可以是单向的或双向的。FC-AE-1553B协议光纤通道的标准组织为研究光纤通道在航空电子领域的应用,成立了航空电子分委员会(ANSIFC-AE),并已制定了5种相应的协议规范,FC-AE-1553是其中之一,另外四个协议规范分别为FC-AE-ASM,FC-AE-RDMA,FC-AE-FCLP和FC-AE-VI。FC-AE-1553是FiberChannel-AvionicsEnvironment-UpperLayerProtocolMIL-STD-1553BNotice2的简称,是在光纤通道的FC-4层实现对传统MIL-STD-1553BNotice2总线协议的映射,以实现在实时的航空应用中,以命令/响应的模式进行具有确定性的通信。协议之所以在FC-4层实现对传统总线协议的映射,其目的在于使得现有的MIL-STD-1553B网络设计,软件和硬件进行平滑升级。FC-AE-1553网络既具有MIL-STD-1553B网络的基本特性,又具有光纤通道的良好网络性能,是对MIL-STD-1553B很好的传承。FC-AE-1553以光纤通道作为底层介质,上层映射MIL-STD-1553协议,利用光纤通道传输速率高、延迟低、传输距离远、可靠性高的特性,兼容原有MIL-STD-1553设备终端,达到扩展通信网络结构,提高网络通信能力,统一网络的目的。图2-1描述了FC-AE-1553、MIL-STD-1553、光纤通道协议间的关系,并给出了数据流走向。FC-AE-1553映射MIL-STD-1553字控制信息-并对其进行功能扩充,扩展帧头与数据一同封装在光纤通道帧数据域中,通过光纤通道网络发送。\uf06eFC-AE-1553的网络构成FC-AE-1553网络包括(1)网络控制器NC;(2)网络终端NT;(3)光纤通道网络本身;(4)FC-AE-1553协议桥;(5)MIL-STD-1553总线;(6)MIL-STD-1553远程终端RTEl8-19,30]。FC.AE.1553协议桥是FC.AE一1553的核心内容。同一FC-AE-1553网络可以桥接多个MIL-STD-1553B网络,多个桥接到FC-AE-1553网络的MIL-STD-1553B网络具有传统MIL-STD-1553B网络相同的功能。一个MIL-STD-1553B网络可以连接多个MIL-STD-1553B协议桥,但同一时刻只有一个桥是有效的。一个典型的能桥接至MIL-STD-1553B网络的FC-AE-1553网络如图2-12所示。FC-AE-1553协议中建议的参考配置如图2.5所示,图中部分英文缩写词含义:NC:网络控制器RT:远程终端NT:网络终端BC:总线控制器FC:光纤通道(一)网络控制器网络控制器(NetworkController,以下简称NC),在光纤通道网络中传输命令序列的节点,负责安排FC-AE-1553网络中的一切传输过程。功能类似MIL-STD-1553中的总线控制器。NC通过命令序列发起FC-AE-1553交换,安排网络中其余终端进行数据交换,并报告交换完成情况。(二)网络终端网络终端(NetworkTerminal,以下简称NT),对NC发起的命令序列作出响应的光纤通道节点。主要完成子系统和光纤通道网络之间的数据传输。功能类似MIL-STD-1553中的远程终端。(三)FC-AE-1553协议桥FC-AE-1553协议桥桥接FC-AE-1553网络与MIL-STD-1553总线,构成统一的数字网络。FC-AE-1553网络中可包含一个或多个桥,每个桥可桥接不同的MIL-STD-1553总线,但在同一时刻,只有一个桥起作用。通过FC-AE-1553协议桥,光纤通道网络在保持其高带宽,低延迟的优点下,能兼容原有的MIL-STD-1553低速终端,节约了更换设备的成本,使两种不同网络问能互联互通,进行信息交换。FC-AE-1553协议桥兼具3部分功能:(1)在不进行过桥传输时,作为NT使用,完成光纤通道网络中的数据传输;(2)协议转换功能:NC通过FC-AE-1553协议桥,控制与之相连总线上的远程终端,协议桥负责将光纤通道帧转换为MIL-STD-1553总线终端能识别的消息字,并且能将远程终端发送来的消息字转换为光纤通道帧格式,发送回光纤通道网络。充当2者间的“翻译”,使两方通信透明化;(3)部分总线控制器功能,协调总线上远程终端间的数据交换过程。FC-AE-1553协议桥是桥接MIL-STD-1553B网络与FC-AE-1553网络的设备,其作用是使FC-AE-1553网络中的NC能控制MIL-STD-1553B网络中的RT的信息传输。FC-AE-1553协议桥的操作是与传统MIL-STD-1553B网络和它的RT的具体特性无关的。其操作过程为:FC-AE-1553协议桥收到来自FC-AE-1553网络的命令序列,协议桥中的总线控制器将此命令序列转换成MIL-STD-1553的消息后将其通过MIL-STD-1553B总线传送给RT。在RT用MIL-STD-1553的状态字或者数据做出响应后,协议桥将此响应转换成FC-AE-1553的状态序列或者数据序列,并将其传送到光纤通道网络。(四)总线控制器总线控制器(BusController,以下简称BC),负责初始化所有总线事务,协调所有的终端通信,是总线上唯一的有能力发送指令的单元,其指令用来指挥数据传输,总线控制管理等。(五)远程终端远程终端(RemoteTerminal,以下简称RT),主要功能有:初始化数据;接收总线数据,解码数据,并响应BC;缓冲有价值的信息;检测传输错误;在数据接收后执行确认测试,并且报告消息传输状态等。\uf06eFC-AE-1553信息单元研究信息单元指的是一次交换中NC或NT发送的一个序列,根据其不同的使用条件和应用环境,可分为NC系列和NT系列。NC系列表示的是单独的命令序列,它是由NC发送或者是NT发送的;NT系列则是由NT发送的单独的状态序列。其中状态控制位表示接收到命令序列的NT是否需要返回状态序列。(1)NC1:作为NC-to-NT交换中NC发送的命令序列,由FC-AE-1553命令序列头和其内部的最多2048字节数据组成,后无数据序列跟随,且状态抑制位为0;作为NT-to-NC中的NC发送的命令序列;作为NT-to-NT或NT-to-NTs交换中NC发送的命令序列,且状态抑制位为0;作为方式代码(带数据和不带数据的)交换中的NC发送的命令序列;作为NT-to-NT交换中发送NT发送的命令序列,由FC-AE-1553命令序列头和其内部的最多2048字节数据组成,后无数据序列跟随,且状态抑制位为0。(2)NC2:作为NC-to-NT交换中NC发送的命令序列,由FC-AE-1553命令序列头和其内部的最多2048字节数据组成,后有一个或多个数据序列跟随;作为NT-to-NT或NT-to-NTs交换中发送NT发送的命令序列,由FC-AE-1553命令序列头和其内部的最多2048字节数据组成,后有一个或多个数据序列跟随;作为NC-to-NT交换中的NC发送的命令序列,后有一个数据序列跟随;作为NT-to-NT交换中发送NT发送的命令序列,由FC-AE-1553命令序列头和其内部的最多2048字节数据组成,后无数据序列跟随,且状态抑制位为1。(3)NC4:作为NC-to-NTs交换中NC发送的命令序列,由FC-AE-1553命令序列头和其内部的最多2048字节数据组成,后无数据序列跟随,且状态抑制位为1;作为NT-to-NT或NT-to-NTs交换中NC发送的命令序列,且状态抑制位为1;作为NT-to-NT或NT-to-NTs交换中发送NT发送的命令序列,且状态抑制位为1;作为对多NTs的方式代码(带数据和不带数据)交换中NC发送的方式代码命令序列;作为非广播模式代码(带数据和不带数据)中NC发送的命令序列,且状态抑制位为1。(4)NC3,NC5,NC6,NC7:数据序列。(5)NT1:作为响应NC-to-NT交换的状态序列,由FC-AE-1553不含数据的状态序列头组成,且状态抑制位为0;作为响应NT-to-NC交换的状态序列,由FC-AE-1553命令序列头和其内部的最多2048字节数据组成,后无数据序列跟随;作为接收NT在NT-to-NT交换中响应发送NT的状态序列,由FC-AE-1553不含数据的状态序列头组成;作为发送NT在NT-to-NT交换中响应NC的状态序列,由FC-AE-1553不含数据的状态序列头组成;作为响应方式代码(带数据和不带数据)交换的NT发送的状态序列;作为响应NT-to-NTs交换中发送NT发送的命令序列的状态序列,由FC-AE-1553不含数据的状态序列头组成。(6)NT2:用于响应NT-to-NC交换的状态序列,由FC-AE-1553命令序列头和其内部的最多2048字节数据组成,后有一个NT数据序列跟(7)NT3:在NT-to-NC交换中,跟随在状态序列后的NT发送的最后一个数据序列。(8)NT4:保留。(9)NT5:由单个序列组成的一次交换的状态序列。包括在NC-to-NTs传输中的接收NTs发送的响应交换,只在状态抑制位为0时发送。(10)NT6:作为响应NT-to-NT交换中的NC或发送NT的不带数据的状态序列。(11)NT7:作为NT-to-NC传输中的数据序列,但非最后一个数据序列。\uf06eFC-AE-1553的帧类型与MIL-STD-1553B的字格式相对应,FC-AE-1553有三类帧:命令帧、状态帧和数据帧。(1)FC-AE-1553命令帧FC-AE-1553的命令帧对应于MIL-STD-1553B的命令字,每次FC-AE-1553的数据交换都是由命令序列开始,决定了数据交换的格式。命令帧头在FC帧头基础上增加了24字节的扩展头,扩展头的作用是完成RDMA传输、可选状态抑制、模式命令、广播和组播数据传输等多种功能。(2)FC-AE-1553状态帧FC-AE-1553的状态帧对应于MIL-STD-1553B的状态字,状态序列是NT所发送的第一个序列,是对FC-AE-1553命令请求的回应。状态帧头在FC帧头基础上增加了8字节的扩展头,扩展头除映射了MIL-STD-1553状态字信息外,还增加了端口登录要求情况等状态位。(3)FC-AE-1553数据帧FC-AE-1553的数据帧对应于MIL-STD-1553B的数据字,用于进行数据的传输。数据帧头与FC帧头结构相同,只是某些字段的解释与FC帧头略有差别。\uf06eFC-AE-1553的帧格式FC-AE-1553协议定义了三种帧类型,分别为:命令帧、状态帧和数据帧,分别对应于MIL-STD-1553B的命令字、状态字和数据。以下将对三种帧类型进行详细的介绍。\uf06eFC-AE-1553的命令帧每个FC-AE-1553的数据交换都是由NC的命令序列发起的。FC-AE-1553的命令头可能出现在两种序列中:一是NC的命令序列,二是NT-NT模式中传送NT的状态响应序列。FC-AE-1553的命令头包括了FC帧的六个字(每个字为4字节)的帧头和六个字(每个字为4字节)的扩展帧头,此扩展帧头的位置在FC帧头之后,是前六个字的数据载荷。NC或者NT-NT模式中的传送NT发出的命令序列其最大可传送的数据为2048个字节。如果命令序列中包含数据,且数据小于2048字节,可无需数据序列,直接用命令序列进行传送;若所需传送的数据大于2048字节,则还需要在命令帧后传送一定数量的数据序列。如果在命令序列中不包含数据,则需要在命令序列后以一定数量的数据序列对数据进行传送。命令头的结构如图3-1所示,以下对命令头中的主要字段进行分析。(1)R_CTLR_CTL字段分为两部分:路由比特和信息类比特。①路由比特:0x0时表示为FC-4设备数据;0x2时表示扩展链路服务;0x8时表示基本链路服务;0xC时表示链路控制。②信息类比特:根据发起者的不同、包含内容不同及在序列中的位置不同等,分别表示不同类型的信息。(2)D_IDD_ID字段包含了接收端口的NT地址,多播地址或熟知地址。FC-AE-1553网络的NT端口都必须能够识别D_ID是本地N端口的序列和D_ID为0xFFFFFF(用于广播)的序列。除此之外,NC和NT必须能识别到进行多播的组ID。FC-AE-1553的广播和多播有几种情况如下:①所有NC和NT均须识别广播地址0xFFFFFF。②仲裁环中的NC和NT均须识别广播复制AL_PA地址0xFF。③为了支持桥接到FC-AE-1553网络的MIL-STD-1553B总线中的RT广播功能,NC须能识别命令序列中子地址字段的9-5比特的广播地址0x1F。④NT须能对多播地址进行响应。⑤NT须支持可选复制。图3-1FC-AE-1553命令头格式(3)CS_CTLCS_CTL字段表示帧的优先级。该优先级是一个7比特的数值,在命令帧头的字1的30-24比特。优先级的使用是可选的,在字2的F_CTL字段中第17比特,对优先级的使用进行设置,1表示使用优先级,0表示不使用优先级。使用优先级的情况下,帧的路由顺序须按优先级进行,高优先级优先。优先级有127-0共128个级别,并逐级降低,127级最高,0级最低。如果只实现两个优先级,则1级为高,0级为低。在优先级未使能的情况下,CS_CTL字段为0。(4)S_IDS_ID字段是源Nx端口的地址标识。每个NT或NT都有各自不同的S_ID。(5)TYPETYPE字段用于区分不同的上层协议,对于FC-AE-1553的序列,该字段为0x48。(6)参数对于FC-AE-1553的序列,该字段为相对偏移量。在命令序列和状态序列中,该字段的值为0x00000000(7)NTBurstSizeRequest在进行NC-NT模式的数据传输时,在NC命令序列中对该位进行设置,或者在NT-NT模式的数据传输时,在传输NT的命令序列中对该位进行设置。当NTBurstSizeRequest设置为1时,则DelayedNTBurstSizeRequest必须为0。若NC或NT发送的命令序列中NTBurstSizeRequest设置为1,则在其命令序列中不能包含任何的数据,并且不能在发送命令序列后立即发送数据序列。若NTBurstSizeRequest设置为1,NC即等待来自接收NT的状态响应。若在规定时间内收到此状态响应,且该状态响应的“忙”比特为0,BurstSizeAcknowledge比特为1,则表示状态响应的字7为NC能接收的一个数据序列的最大负载长度。(8)DelayedNTBurstSizeRequest在进行NC-NT模式的数据传输时,在NC命令序列中对该位进行设置,或者在NT-NT模式的数据传输时,在传输NT的命令序列中对该位进行设置。当DelayedNTBurstSizeRequest设置为1时,则NTBurstSizeRequest必须为0。若NC或NT发送的命令序列中DelayedNTBurstSizeRequest设置为1,则命令序列中可包含的一定大小的数据,且在发送命令序列之后,必须立即发送数据序列。在这种情况下,命令序列和数据序列所能传送的最大数据字节数由接收NT在显式或隐式登陆是确定。(9)接收RDMA接收RDMA比特被映射到FC-AE-1553命令序列中字6的第6比特,如图3-1所示。对于NC-NT、NT-NT和NT-多NT的数据交换,若NC发送的序列中此比特为为1,则接收NT会认为子地址字段的内容为接收数据内存的起始地址。在这种情况下,接收NT会将接收数据存放到以该地址为首地址的连续内存中。对于NT-NT模式的数据交换,若NC发送的序列中接收RDMA比特为1,则“其他子地址”字段表示接收NT的起始内存地址。在其后的发送NT所传送的命令序列中,会在子地址字段中填写该地址,以指示接收NT所接收数据的内存起始位置。对于NT-NC模式的数据交换,若NC发送的序列中接收RDMA比特为1,则“其他子地址”字段表示NC存放接收数据的起始内存地址。在这种情况下,这个地址只是作为一个建议提供给NT,而非强制NT必须使用该地址。若是其他的数据交换模式,或者NC发送的序列中接收RDMA比特为0的情况下,接收NT无须对“其他子地址”字段进行解读。在使用RDMA的数据交换中,子地址字段和“其他子地址”字段表示32位的地址,最低的两个比特为0。(10)发送RDMA发送RDMA比特被映射到FC-AE-1553命令序列中字6的第5比特,如图3-1所示。对于NT-NC、NT-NT和NT-多NT的数据交换,若NC发送的序列中此比特为为1,则发送NT会认为子地址字段的内容为需发送数据内存的起始地址。在这种情况下,NT需发送的数据将从以该地址为首地址的连续内存中读取。对于NT-NT模式的数据交换,若发送NT的命令序列中发送RDMA比特为1,则“其他子地址”字段表示发送NT的起始内存地址。在这种情况下,这个地址只是作为一个建议提供给接收NT,而非强制接收NT必须使用该地址。对于NC-NT模式的数据交换,若NC发送的序列中发送RDMA比特为1,则“其他子地址”字段表示NC存放需发送数据的起始内存地址。在这种情况下,这个地址只是作为一个建议提供给NT,而非强制NT必须使用该地址。若是其他的数据交换模式,或者NC发送的序列中发送RDMA比特为0的情况下,NT无须对“其他子地址”字段进行解读。在使用RDMA的数据交换中,子地址字段和“其他子地址”字段表示32位的地址,最低的两个比特为0。(11)状态抑制状态抑制比特被映射到FC-AE-1553命令序列中字6的第4比特。对于NC-NT模式数据交换和非广播模式码的交换,若NC发送的序列中状态抑制比特为1,接收NT不会作出状态响应。若NC发送的序列中状态抑制比特为0,或者是其他的数据交换模式,NT须进行状态响应。对于NT-NT数据交换模式,发送NT命令序列中状态抑制位的设置须与起始NC的命令序列中状态抑制位的设置一致。若NT-NT模式中状态抑制位为1,则发送NT和接收NT均不能发送状态序列。(12)NT-NT当发起NT-NT模式或NT-多NT模式数据交换时,该位为1,发起其他模式数据交换时该位为0。对于NT-NT模式数据交换,发送NT中该位的设置须与NC的命令序列中对该位的设置一致。(13)T/RT/R位用于指示数据传输的方向。当NT接收数据时该位设置为0,当NT发送数据时该位设置为1。(14)NT-NT模式的NC监控NT-NT模式的NC监控位用于NT-NT模式的数据交换,该位为0时NC不对数据传输进行监控,为1时NC对数据传输进行监控。在非NT-NT模式下该位均设置为0。关于NC监控的实现可参考3.2节NT-NT模式数据交换。(15)多播多播位用于指示数据交换是否为多播交换。该位为0时表示D_ID字段为单个端口地址,为1时表示D_ID字段为一个多播地址。广播交换时,该位应设置为0。(16)子地址/模式对于NT-NT或NT-多NT模式的数据交换,这一字段表示发送NT的子地址。在NT-NT模式发送NT所发送的命令序列中,这一字段表示接收NT的子地址。除此之外,该字段还可能用于RDMA形式数据传送中作为内存首地址字段,在进行MIL-STD-1553B总线桥接时,该字段中有22比特用于区分不同的MIL-STD-1553B总线网络,其余10个比特作为MIL-STD-1553B总线网络中的RT地址和子地址。对于特定NT,当不涉及与MIL-STD-1553B总线网络的桥接时,或者进行广播模式数据交换时,若子地址/模式字段为0x00000000或0xFFFFFFFF,则数据大小/模式码字段表示的是模式码,若子地址/模式字段为其他值,则数据大小/模式码字段表示的是数据的大小。与此类似,对于桥接到MIL-STD-1553B总线网络的NT,若表示MIL-STD-1553B总线网络中的RT地址的5个比特为全0或全1,则数据大小/模式码字段表示模式码,其他值则为数据大小。(17)数据大小/模式码该字段的解释与子地址/模式字段的值有关,若子地址/模式字段为二进制全0或全1,数据大小/模式码内容为模式码,否则为数据总的字节数。该字段占4个字节,最大能传输的数据字节数可达到4.3GB。FC-AE-1553模式码的含义由T/R位和数据字节数/模式码字段共同决定,其意义与传统MIL-STD-1553B的模式码功能类似,在此不一一介绍,相关模式码的解释可参见相关协议。这里需要注意的是,有两种模式码是只能在FC-AE-1553网络中使用,而不能用于MIL-STD-1553B总线网络。这两种模式码为“发送RT地址”和“发送NT_C-D/S_SURST_TOV”,因此FC-AE-1553网络的终端与桥接到该网络的MIL-STD-1553B的RT进行通信时,不能使用该模式码。(18)用于NT-NT模式的发送NT状态字该字段用于NT-NT模式的数据交换中,在发送NT的序列中存放状态信息。(19)多播地址或其他D_ID该字段的含义根据命令头中NT-NT、T/R、NT-NT模式的NC监控及多播位的不同而不同。其具体含义如表3-1。表3-1多播地址或其他D_ID字段的含义(20)其他子地址NT-NT模式中NC的命令序列中,该字段表示接收NT的子地址。NT-NT模式中发送NT的命令序列中,该字段表示发送NT的子地址,但并不要求接收NT必须使用该地址。在NC-NT模式数据传输中,若其命令序列的发送RDMA位为1,则该字段表示NC存放发送数据的内存首地址。在NT-NC模式数据传输中,若命令序列的接收RDMA位为1,则该字段表示NC存放要接收的数据的内存首地址。在以上两种情况下,地址都是作为参考给出,而并不要求NT必须使用该地址。\uf06eFC-AE-1553的状态帧FC-AE-1553状态序列头除FC帧头外,还包括了两个字的设备头。状态序列是NT发送的第一个序列,状态序列中可以包含数据字节。状态序列头如图3-2所示。图3-2FC-AE-1553状态头格式由图3-2可以看出,除传统FC帧头外,状态头还有两个字,分别为字6和字7。字6用于NT-NT模式的数据交换,发送NT发送给NC的状态序列中,表示发送NT的状态。字7可能用于表示NT可接收的下一个序列的最大字节数,或者用于表示NT状态。当进行对“忙”比特位为0,且BurstSizeAcknowledge位为1的状态序列或数据序列进行回应时,这个字表示的是NT可接收的下一个序列的最大字节数;当进行NT-NT模式的数据交换,发送NT向NC发送状态序列时,这个字表示的是接收NT的状态。状态头的字0到字5的各字段及其意义与命令头的对应字段相同,其字段的意义及用法可参考3.1.1节。以下对状态头中字7的各个字段进行分析。(1)MIL-STD-1553RT无响应对于NT与MIL-STD-1553RT通过桥接方式进行通信的情况,如果RT在指定时间内未作出相应,桥设备中的BC对NC进行的响应中,该位应为1,在这种情况下,NT不能再向其传送任何数据。若在指定时间内RT对NT作出响应,该位应为0。在不涉及以上的桥接通信情况时,该位填0。(2)MIL-STD-1553格式错误对于NT与MIL-STD-1553RT通过桥接方式进行通信的情况,如果RT在指定时间内作出响应,但该响应未符合MIL-STD-1553B的标准,则该位应为1,在这种情况下,NT不能再向其传送任何数据。若RT对NT作出的响应有效或者RT未在指定时间内作出响应,该位应为0。在不涉及以上的桥接通信情况时,该位填0。(3)BurstSizeAcknowledge该位由NC-NT模式数据交换中的NT进行设置,或者NT-NT模式数据交换中的接收NT进行设置。若NT接收到的NC命令序列中NTBurstSizeRequest位为1时,其响应的状态序列中当对BurstSizeAcknowledge位进行设置。若该位设置为1,则表示状态序列的字7表示的是NT所能接收的下一个序列的最大数据字节数。若需要交换的数据字节数大于NT所能接收的最大字节数,则NT或NC须对数据进行分段,分成多个数据序列,在NT接收到数据序列后,要对发送方进行下一个状态响应,且将BurstSizeAcknowledge位设置为1。若NT接收到的NC命令序列中DelayedNTBurstSizeRequest位为1时,在NT接收完命令序列之后的数据后,若已接收数据字节数小于要交换的数据总字节数,则接收NT须进行状态响应,将BurstSizeAcknowledge位置1,序列的字7表示,NT所能接收的下一个序列的最大数据字节数。在NT发送状态序列指示其能接收的下一个序列大小之后,NC或发送NT发送下一个数据序列,直到交换完指定大小的所有数据为止。在数据交换过程中,如果某一时刻接收NT不能再接收更多的数据,则接收NT须向NC或发送NT作出状态回应,将“忙”比特置1,BurstSizeAcknowledge比特置0,表示目前处于忙状态,终止数据交换。在接收完最后一个数据序列后,若命令序列的状态抑制位为0,则接收NT须作出状态回应,在该状态回应中将BurstSizeAcknowledge位置1。若命令序列的状态抑制位为1,则接收NT不再对NC或发送NT作出回应。若交换中NTBurstSizeRequest及DelayedNTBurstSizeRequest位均为0,则NT状态响应的BurstSizeAcknowledge位置0。(4)端口登录要求若NT-NT模式数据交换中,发送NT接收到NC的命令,使其必须与接收NT进行显式登录,则应对该位进行设置。在这种情况下,发送NT的响应中将该位置1,若在发送NT与接收NT完成显式登录之前,收到NC的重复命令,也应将要求端口登录位置1,对NC进行回应。在完成显式登录过程后,NC发送命令序列,发送NT才能进行与接收NT的数据交换。若不须与接收NT进行显式登录,或者登录已完成,则将该位设置为0,发送NT发送数据给接收NT。对于非NT-NT模式的数据交换,该位应设置为0。(5)消息错误若消息错误位为1,则可能有以下两种情况:①某些字段的设置不合法。②对要求发送状态模式码或发送最后一个命令模式码的交换进行响应时,上一次NC的交换不合法或者上一次交换中NC的数据部分出现错误。(6)仪器该位应始终被置为0。(7)服务请求服务请求位的使用是可选的。该位置为1时,表示NC须进行事先定义好的特定操作。若该位为0,表示不需要该服务请求。(8)广播命令接收只有在进行发送状态模式码或发送最后一个命令模式码的交换中,该位才可能置为1。该位被置为1时,表示最近接收到的来自BC的有效交换命令是一个广播交换。对于发送状态模式码或发送最后一个命令模式码的交换,若该位为0,则表示最近接收到的来自BC的有效命令不是广播交换。(9)忙该位的使用是可选的。若不使用该位,则应置0。若使用该位,当该位置1时,表示NT或子系统不能进行控制器命令序列所指定的数据交换。(10)子系统标志子系统标志位的使用是可选的。若不使用该位,则应置0。若使用该位,当该位置1时,表示有子系统故障,为0时表示子系统无故障。(11)动态网络控制动态网络控制位的使用是可选的。若不使用该位,则应置0。若使用该位,当该位置1时,表示NT接受了NC的动态网络控制模式命令,执行NC的功能。(12)终端标志终端标志位的使用是可选的。若不使用该位,则应置0。该位可用于指示是否存在NT故障。\uf06eFC-AE-1553的数据帧FC-AE-1553的数据帧与命令帧和状态帧不同,数据帧帧头长度共6个字,与FC帧头格式相同,没有扩展帧头部分。数据帧帧头各字段及其意义与命令头的对应字段相同。图3-3FC-AE-1553数据帧帧头格式\uf06eFC-AE-1553的交换模式MIL-STD-1553B的消息模式映射为FC-AE-1553网络的交换模式,与MIL-STD-1553B的十种消息模式对应,FC-AE-1553定义了十种数据交换模式,分别为:(1)NC-NT;(2)NT-NC;(3)NT-NT;(4)无数据字模式命令;(5)有数据字模式命令(发送数据);(6)有数据字模式命令(接收数据);(7)NC-多个NT(广播或多播);(8)NT-多个NT;(9)至多个NT的无数据字模式命令;(10)至多个NT的有数据字模式命令(接收数据)。以下将对NC-NT、NT-NC和NT-NT交换模式进行介绍,其他几种交换模式与所介绍的消息模式类似。对于NC-NT和NT-NT模式的数据交换模式,其交换过程还与NTBurstSizeRequest及DelayedNTBurstSizeRequest这两个字段的设置有关。对于NT-NT模式的数据交换,网络中的同一个节点可同时作为NC和NT使用,因此NT-NT模式数据交换可分为多种情况,在此只对最NTBurstSizeRequest及DelayedNTBurstSizeRequest这两个字段均设置为0且NC与发送NT、接收NT分别为单独的网络节点的情况进行介绍。(1)NC-NT,NTBurstSizeRequest置0,DelayedNTBurstSizeRequest置0图3-4普通NC-NT交换模式如图3-4所示,NC首先发送命令序列,该命令序列中可能包含最多2048字节的数据,若所需传送的数据字节数大于2048,则NC在命令序列后还需发送发送一个或多个数据序列。若命令序列中的状态抑制位为0,在接收完所有需要传送的数据之后NT_C/S_TOV时间内,NT须向NC发送一个状态序列。对于NC,其命令序列发送完成和开始发送第一个数据序列之间所间隔的最长时间为C/S_D_TX_TOV,前一个数据序列发送完成和开始发送下一个数据序列之所间隔的最长时间也为C/S_D_TX_TOV。若命令序列中的状态抑制位为1,则NT在接收完所有需要传送的数据之后即终止交换,而不向NC发送状态序列。(2)NC-NT,NTBurstSizeRequest置1,DelayedNTBurstSizeRequest置0如图3-5所示,NC首先发送命令序列,该命令序列中不能包含任何数据,NT接收到该命令序列,在NT_C-D/S_BURST_TOV时间内向NC回应一个状态序列,在这个序列中须对“忙”状态位进行设置。若NT尚未准备好接收数据,则“忙”状态位置1,以示NC终止交换。若“忙”状态位置0且BurstSizeAcknowledge位置1,则表示NT准备好接收数据,且下一个可接收数据的大小通过状态头中的字7(最大可接收字节数/NT状态)字段的值来通知给NC。NC在接收到该状态序列的NC_CD_BURST_TOV时间内,根据NT指示的字节数发送数据序列。重复以上的过程直到传输完所有数据。若命令序列中的状态抑制位为0,在接收完所有需要传送的数据之后NT_C/S_TOV时间内,NT须向NC发送一个状态序列,该状态序列中BurstSizeAcknowledge位置0。若命令序列中的状态抑制位为1,则NT在接收完所有需要传送的数据之后即终止交换,而不向NC发送状态序列。图3-5NC-NT模式(NTBurstSizeRequest置1)交换模式(3)NC-NT,NTBurstSizeRequest置0,DelayedNTBurstSizeRequest置1如图3-6所示,NC首先发送命令序列,该命令序列中最多可包含2048字节数据,并在命令序列发送完C/S_D_TX_TOV时间内发送一个数据序列,命令序列中的数据大小及数据序列中的数据长度由进行FC-AE-1553登录时由NT指定。NT接收到该命令序列,在NT_C-D/S_BURST_TOV时间内向NC回应一个状态序列,在这个序列中须对“忙”状态位进行设置。若NT尚未准备好接收数据,则“忙”状态位置1,以示NC终止交换,NT不对接收到的数据作任何处理。若“忙”状态位置0且BurstSizeAcknowledge位置1,则表示NT准备好接收数据,且下一个可接收数据的大小通过状态头中的字7(最大可接收字节数/NT状态)字段的值来通知给NC。NC在接收到该状态序列的NC_CD_BURST_TOV时间内,根据NT指示的字节数发送数据序列。重复以上的过程直到传输完所有数据。若命令序列中的状态抑制位为0,在接收完所有需要传送的数据之后NT_C/S_TOV时间内,NT须向NC发送一个状态序列,该状态序列中BurstSizeAcknowledge位置0。若命令序列中的状态抑制位为1,则NT在接收完所有需要传送的数据之后即终止交换,而不向NC发送状态序列。图3-6NC-NT模式(DelayedNTBurstSizeRequest置1)交换模式(4)NT-NC如图3-7所示,NC发送一个命令序列要求NT向NC传输数据。在接收到该命令进行验证正确后的NT_C/S_TOV时间内,NT向NC回应一个状态序列,该状态序列可包含数据。若NC所要求的数据字节数大于NT所回应状态中能包含的最大数据字节数,则在状态序列之后,还应发送一个或多个数据序列,直到传送完NC所要求的所有数据为止。对于NT,其状态序列发送完成和开始发送第一个数据序列之间所间隔的最长时间为C/S_D_TX_TOV,前一个数据序列发送完成和开始发送下一个数据序列之所间隔的最长时间也为C/S_D_TX_TOV。图3-7NT-NC交换模式(5)NT-NTNT-NT模式数据交换过程与NTBurstSizeRequest和DelayedNTBurstSizeRequest字段有关,且由于FC-AE-1553中一个节点可同时作为NC和NT,因此NT-NT模式数据交换在实际上可能只是在两个节点之间进行数据的交互。这里只介绍NTBurstSizeRequest置0、DelayedNTBurstSizeRequest置0,且NC、发送NT和接收NT分别为独立节点的情况。图3-8NT-NT交换模式如图3-8所示,首先NC向发送NT发送一个发送命令序列,通知发送NT接收NT的端口ID和子地址。在接收到发送命令的NT_C/S_TOV时间内,发送NT发起第二个交换,向接收NT发送一个接收命令,该发送命令中可以包含数据,若还有更多的数据,则需要发送NT以一个或多个数据序列进行发送。对于NT-NT交换模式,有一个NC监听的可选项,由NC控制。若选择NC监听,则发送NT会将数据序列同时发送给接收NT和NC。若发送和接收命令中状态抑制位为0,则接收NT在接收完所有数据后须在NT_C/S_TOV时间内向发送NT发送一个状态序列,发送NT在收到此状态序列后NT_C/S_TOV时间内向NC发送一个状态序列。若状态抑制位为1,则不进行这些状态序列的发送而直接终止交换。\uf06eFC-AE-1553网络的定时器FC-AE-1553协议共规定6种定时器,分别为NT_C-D/S_BURST_TOV、NT_C/S_TOV、NC_C/S_TOV、NC_C-D/S_BURST_TOV、C-S/D_TX_TOV和C-S/D_RX_TOV,其含义如表3-2所示。表3-2FC-AE-1553网络定时器\uf06eFC-AE-1553网络的扩展特性FC-AE-1553在光线通道的上层协议实现了对MIL-STD-1553B协议的映射,同时根据应用的环境和背景进行了一些功能的扩展主要体现在以下几个方面。(1)一个网络中支持多个NCFC-AE-1553网络中的NC对应于MIL-STD-1553B总线中的BC。在一个MIL-STD-1553B总线中,任一时刻只能有一个活跃的BC,而FC-AE-1553网络中则允许同一时刻有多个NC共存,其原因是MIL-STD-1553B的拓扑为总线结构,因此在总线中只能有一个BC在通信中起主导作用,安排通信任务,才不致产生混乱,而FC-AE-1553则可以充分利用其拓扑优势,多个NC可以发起多个数据交换,由于每个交换都有OX_ID与RX_ID进行标识,不会产生混乱。(2)可选的消息确认由于FC-AE-1553的命令头中增加了状态抑制位,因此NC可设置该位为1使得NT不对NC进行状态回应而直接终止交换过程。若状态抑制位为0,则NT须对NC进行状态回应。(3)支持RDMA传输在MIL-STD-1553B中,数据只能按照RT地址进行传输,数据到达目的节点后交由节点进行处理。而在RDMA传输中,读写操作要求源端和目的端均知道目的缓存区的地址及大小。若一个主机的内存以RDMA方式向对方主机的内存写数据,则必须提供目的主机存放接收数据的缓存区的虚拟地址,且保证该缓存区大小足够接收所有数据。同样,若要以RDMA方式从一个远端主机读数据,则必须知道该数据所存放的地址,还要在本有一个足够的缓存空间存放数据。RDMA可以解决零拷贝接收问题,提高效率。(4)支持大文件传输MIL-STD-1553B的一次消息交换最多可传输64个字节的数据,这是由其数据字节数字段5个比特的限制决定的,而FC-AE-1553的一次交换最大可传送的数据字节数可达到4.3GB。为了支持大文件传输,FC-AE-1553增加了BurstSizeRequest及BurstSizeAcknowledge等字段来调节发送速率,用于防止接收方缓存溢出。\uf06eFC-AE-1553网络总体方案设计FC-AE-1553技术解决了传统MIL-STD-1553B军用总线网络中低带宽,传输延时等问题,同时实现了MIL-STD-1553B到FC-AE-1553的映射,保留了传统军用总线的命令/响应的数据传输方式,并支持传统军用总线接入到FC-AE-1553网络。下面从搭建FC-AE-1553网络的实际出发,介绍网络的整体设计,并详细介绍软硬件层的各个部分。\uf06eFC-AE-1553总线接口实现FC-AE-1553接口电路设计主要是从光纤通道的分层结构开始分析,针对1553B总线的特点,将最终设计的光纤通道接口从FC-2层开始映射1553B总线上。最终实现将FC协议和1553B总线技术相融合后,完成FC-AE-1553总线网络控制器和网络终端的基本设计。设计中提到的PCI总线是与上位机的接口总线,FPGA为可编程逻辑器件。图4-2为FC-AE-1553接口电路设计图。\uf06eFC-AE-1553整体架构及模块划分1.软硬件平台FC-AE-1553设备卡选用Xilinx公司的PCI-Express接口ML555FPGA进行开发,该FPGA提供2个全双工的光纤接口,如图4-1所示。图4-1硬件平台2.整体架构FC-AE-1553节点的整体架构如图4-2所示。图4-2整体架构FC-AE-1553设备节点的设计从整体上可分为三个层次:硬件层、驱动层和应用层。硬件层主要实现数据的收发和处理,驱动层实现设备的管理及数据的传送,应用层实现FC-AE-1553相关的设备功能。以下列出了各模块的具体功能:1.FC-AE-1553底层硬件:(1)以DMA方式从主机内存中读数据,进行8B/10B编码后转换为串行数据进行发送;(2)接收通过光纤传送的数据,进行光电转换,将接收到的串行数据转换为并行数据并进行10B/8B解码;(3)进行帧解析,形成帧描述符;(4)将接收数据以DMA方式写到主机内存。2.FC-AE-1553驱动层:(1)硬件设备的识别和初始化;(2)数据的收发处理;(3)向上层提供相应的应用访问接口。3.FC-AE-1553上层应用程序(1)N端口的登录;(2)NC处理功能;(3)NT处理功能。3.FC-AE-1553设备硬件模块的实现硬件层又可分为两个模块:(1)FC帧处理模块,实现数据从光纤接口的收发过程;(2)PCI-Express接口的DMA传输模块,采用x4通道,完成数据在硬件卡与嵌入式系统间的传输。图4-3底层硬件结构图FC帧处理模块实现的接收方向上的功能主要包括将从链路上接收到的串行数据转换为并行数据、位同步及10B/8B解码后,进行帧解析并将数据提交给上层模块进行处理。在发送方向上,将发送数据进行8B/10B编码、将串行数据转换为并行数据后发送至光纤链路。DMA传输模块采用PCI-Express总线,这个总线相对PCI总线的优点主要有带宽提升潜力大、传输快、时延短和节省空间等。PCI-Express采用点对点的通信机制,由于各个插槽是通过各自独享的通道进行发送和接收数据,因此能避免出现不同的设备同时争抢系统和CPU资源的情况。PCI-Express具有x1、x2、x4、x8、x16等多种线宽,项目中所采用的x4通道传输带宽为10Gb/s。FC-AE-1553硬件模块涉及到光模块接口及PCI-Express接口,完成了FC协议的FC-0和FC-1层功能。底层硬件功能图如图4-3所示,开发使用的ML555FPGA具有两个光模块,因此硬件包括两条链路。\uf06eFC-AE-553协议总体设计与实现FC-AE-1553协议桥系统功能模块划分如图4—1所示。SEEDES接口主要功能是提供数据的高速物理接口,实现数据的高速收发功能。软硬件部分通过PowerPC接口实现信息交互。系统软件部分在PowerPC核内部实现,主要分FC2、FC4两大层次,FC2层由接收端、发送端、注册/注销模块组成,FC4层由NC模式管理、NT模式管理,协议格式转换模块构成。FC2数据传输层通过FC2服务接口向FC4映射层提供服务。FC4服务接口是系统与外部上层应用的服务接口,通过配置服务原语发起数据传输。\uf06e系统内外部接口定义与描述系统为上层应用提供数据传输服务,因此必须首先设计一个良好的服务接口。上层应用使用这些接口请求交换,系统通过服务接口响应上层应用,发起交换并报告交换完成情况。按照OSI标准模型中规定服务原语类型来定义服务接口,则外部接口提供的服务原语有:(1)FC-4_exchange.request(2)FC-4_exchange.reply1.FC-4_exchange.requestFC-4_exchange.request:请求发起交换。当上层应用有数据需传输时,使用该原语请求系统发起数据传输交换,按此格式填好相关信息即可。FC-4_exchange.request(flagNC-NTconversionoriginalflagTypeClass_of_ServiceRespond_IDSource_IDContinue_Sequence_ConditionExchange_ErrorPolicyDadaA_ddressData_LengthBroadcastModeBridgeNTBurstsizerequestandDelayedNTBurstsizerequestReceiveRDMAandTransmitRDMASuppressstatusNT-to-NTtransferandT/RNCmonitorforNT-to.NTTransferMulticastSubaddress_modeDatabyte_or_mode_codeOther_Port_IDOther_subaddress)FC-4_exchange.request原语给出了发起交换必需的信息,包括发起者、响应者端口地址,交换使用的错误策略、传输类型,抑制状态、突发状态、RDMA设置,是否过桥,是否为多播,多播地址,发送的数据块地址以及数据块大小等。设置在NC/NT模式下的软件根据交换请求原语申请资源,进行数据传输。2.FC-4_exchange.replyFC-4_exchange.reply是系统对FC-4_exchange.request原语作出的响应,当这个交换成功发送完毕或者异常终止的时候,使用该原语向上层应用报告交换完成情况。其格式如下:FC-4_exchange.reply(flagTypeRespond_IDSource_IDData_AddressData_LengthNC-NTconversionsuccess_exchangeNused_ULPSequenceinitiativeerrorSequencetransmitlostTransmissionconfigureconflictFc_header_errorNoresponsebyMIL-STD-1553RTMIL-STD-1553formaterrorPortloginrequiredBusyMessageerrorServicerequestBroadcastcmdreceivedSubsystemflagDynamicnetworkcontrolTeminalflag)节点在每次交换完成后,使用交换应答原语FC-4_exchange.reply对交换完成情况进行报告,报告包括为交换分配的交换号,交换中NT节点状态,交换是否正常完成,若交换非正常终止,其引起终止的错误原因,若有数据递交,还需包含数据块存放地址,和数据块大小等。\uf06e系统内部服务接口定义与描述系统内部为发送/接收序列定义了服务接口,使用接口原语可顺利向上层提交接收到的序列数据块,亦可通知底层读取上层待传输的数据块,提供良好的端到端数据传输服务。依旧按照OSI标准模型中规定服务原语类型来定义服务接口,FC-2提供的服务原语有:(1)FC-2_SEQUENCE.request(2)FC-2_SEQUENCE_TAG_indication(3)FC-2_SEQUENCE.indication1.FC-2_SEQUENCE.request这个服务接口向上层提供端到端的数据传输服务,当上层需要传输数据时,只需要按照这个接口规定的参数类型填好请求命令即可。该服务原语的格式如下:FC-2_SEQUENCE.request(TypeExchange_TagSequence_TagClass_of-ServiceR_CTLD_JDS_IDFirst_SequenceLast_SequencePrioritySequence_InitiativeContinue_Sequence_ConditionExchangeErrorPolicyDada_AddressData_Length)上面所示即这个服务请求的格式,当上层请求FC-2传送数据时必须提供上面列出的参数,因为这都与特定的上层应用有关,包括要发起的序列的服务类型,序列类型:是命令序列,状态序列还是数据序列,序列优先级,序列发送完毕后是否转让序列发起权,序列在交换中的位置等。FC2发送端模块根据FC_2SEQUENCE.request提供的信息,分割序列数据块,发送光纤通道帧。2.FC-2_SEQUENCE.indicationFC-2使用这个服务原语向上层交付接收到的序列,除了纯粹的数据之外,还包含一些附加的信息,格式如下:FC-2_SEQUENCE.indication(Exchange_TagClass_of_ServiceTypeR_CTLD_IDS_IDSequence_InitiativeData_AddressData_Length)FC2层接收端模块在完整接收一个序列数据块后,将序列类型,发送接收序列的端口地址,序列发起权,数据大小和存放地址放入序列递交原语,通知FC4层模块读取。3.FC-2_SEQUENCE_TAG.indication这个参数是用来响应前面上层发出的FC-2_SEQUENCE.request原语的,格式如下:FC-2_SEQUENCE_TAG_indication(Exchange_TagSequence_Tag)这个原语向上层返回两个标识符,用来标识当前这个序列,当这个序列成功发送完毕或者异常终止的时候,FC-2使用这两个标识符向上层报告这个序列发送是否成功。\uf06e软硬件接口定义与描述PowerPC接口与硬件和上层软件连接框图如图4.2所示。为了满足FC-AE-1553传输的实时性等要求,减少数据延迟。在该芯片设计中,采用PLB总线与底层硬件代码相连接。PLB总线是PowerPC的高带宽总线,64位数据总线宽度,分离的地址、读写数据总线,具备分别传输的能力。同时执行的读写传输能最有效利用总线,在单周期内可传输两个数据;此外,PLB总线地址通道能叠加一个新的写请求到一个正在执行的写操作上,以及最多3个读请求到正在执行的读操作上,从而减少总线反映时间。(一)控制寄存器设计43个控制寄存器主要完成产生底层硬件需要的一些控制信号,状态信息,以及软硬件握手等功能:1)发送/接收缓存信息。用来控制写入对应的空闲RAM或者读取对应的接收RAM。如帧长度,CRC正确与错误,等等信息,软件通过这些信息来进行帧处理,这些处理包括接收当前帧,解析当前帧信息,丢弃当前帧,发送特定原语进行端口控制等等。2)一些用于测试的控制寄存器,里面包括了发送原语测试,设定硬件初始状态寄存器等功能。3)读取错误统计信息。PPC通过软硬件接口读取硬件一些错误的统计信息,可以得到整个传输的整体信息。为上层软件中协议处理提供信息。(二)发送/接收缓存设计在FC-AE-1553协议桥设计中,接收和发送分别采用一个RAM作为缓存,在设计中,每一个FC帧长度为2148字节。数据总线宽度选择为32位。因此每个RAM的缓存深度为537。考虑到PowerPC的处理速度,每个发送和接收采用8个缓存。则每个大小为537X8,对应的地址总线为13位。在底层考虑方便读取数据,在RAM部分,设计采用双端口RAM的控制。在发送状态时,PowerPC将要发送的数据发送到发送缓存RAM中,并且更新发送数据控制寄存器之中的信息,底层发送模块通过读取软硬件接口中相应寄存器的信息来判断是否有数据需要发送,如果有数据发送,则读取发送缓存RAM之中数据,并将数据进行发送。接收状态时,底层接收数据并依次写入对应的RAM中。并更新对应的控制寄存器,PowerPC判断对应的寄存标志,读取RAM中的数据。PowerPC405IP核通过接口控制寄存器与发送接收缓存实现软硬件的数据交互。\uf06e软件模块划分与设计思路协议算法软件进行功能模块划分,主要包括以下几部分:(1)FC4层NC模式协议管理模块:完成NC协议管理功能(2)FC4层NT模式协议管理模块:完成NT协议管理功能(3)协议转换模块:完成过桥传输帧与消息字转换功能(4)FC2层接收端模块:完成交换管理、序列接收管理功能(5)FC2层发送端模块:完成交换管理、序列发送管理功能(6)FC2层注册、注销模块:实现服务参数的确立各层问通过内部服务接口原语进行信息交互。\uf0b2交换级FC4层软件模块划分与实现FC-AE-1553映射层实现FC-AE-1553协议功能,完成FC-AE-1553的10种传输类型。分为NC、NT2种模式工作,NC模式下安排整个网络中的传输过程,NT模式下响应各类数据传输。1.NC模式管理模块图4.3描述了NC模式管理模块的设计框图,上层应用通过FC-4接口原语FC-4_exchange.request请求FC-4层发起交换,NC分析该原语,协调发起交换所需的各类资源。TYPE上层应用分析,这里确定为0x48,FC-AE-1553应用,进入FC-AE-1553处理。广播/多播/单播判断分类;进程注册分析:判断交换2端口间是否已完成进程注册,若未完成,则首先进行进程注册,已完成,则继续判断;突发模式判断:普通模式,突发模式一,突发模式二共三种,不同模式下进行的传输类型相应的传输过程有所不同;传输类型判断:主要分为NC-NT(s),NT-NC,NT-NT(s)3大类,按各自特点分别进行;根据各类传输类型,填FC-2接口原语FC-2_SEQUENCE.request,请求发起序列;等待FC-2_SEQUENCE_TAG.indication,为新交换/新序列分配交换号与序列号;根据序列发送结果进行下一步骤:序列发送失败,则填FC.4接口原语FC-4_exchange.reply向上层应用报告交换失败原因;序列发送成功则根据传输类型和剩余数据大小判断是继续发起数据序列还是等待状态序列;继续发起数据序列则填FC-2_SEQUENCE.request序列请求;等待状态序列需开启计时器,在计时器时间内未收到相应的FC-2_SEQUENCE_indication则发生超时错误,错误信息报告给上层应用,并根据错误类型判断是否终止交换;若收到FC-2_SEQUENCE.indication,开始序列分析:检查状态序列并验证扩展头信息,扩展域正确则提取数据,归并于所属交换块中,扩展域信息错误则将错误信息以FC-4接口原语形式(FC-4_exchange.reply)报告给上层应用,并根据错误类型判断是否终止交换。在整个处理请求过程中,FC-4_exchange.request请求一直保存,作为交换发送的依据,提供交换信息查询。每发送或接收一个序列,剩余数据信息等同步记录,一旦发送错误,剩余数据信息填入FC-4_exchange.reply中,向应用层报告。3.NT模式管理模块图4-4描述了NT模式管理模块的设计框图,NT接收到命令序列后,进行分析,填写FC-4_exchange.request原语,申请发起交换所需的各类资源。NT接收到FC-2接口原语FC-2_SEQUENCE.indication分析该原语:TYPE上层应用分析,这里确定为0x48,FC-AE-1553应用,进入FC-AE-1553处理。判断R_CTL,确定序列类型:命令序列或数据序列;命令序列:收到命令序列即为新交换的第一个序列命令扩展帧头信息分析,确定传输类型,RDMA,突发模式,请求数据大小等具体信息;开辟FC-4_exchange.request请求原语和FC-4_exchange.reply应答原语,填入交换相应控制信息,如交换号,传输类型,RDMA,突发模式,请求数据大小等;若命令扩展头出现错误,则向上层应用提交接口原语(FC-4_exchange.reply),报告错误,若正确,则提取序列数据,归并与所属交换块中;数据序列:交换中间序列,分析FC-2_SEQUENCE.indication原语,提取序列数据归并于相关交换块中,并从FC-4_exchange.request请求原语中查询传输类型,突发模式等信息,由此判断下一步是继续等待数据序列还是发送状态序列/数据序列;组状态/数据序列请求原语FC-2_SEQUENCE.request,请求发起序列;等待FC-2_SEQUENCE_TAG.indication;为新序配分配序列号;根据序列发送结果进行下一步骤:序列发送失败,则填FC-4接口原语(FC-4_Exchange.reply)类型和剩余数据大小判断是开始等待数据序列还是结束交换向上层应用报告状态;等待数据序列需开启计时器,在计时器时间内未收到相应的FC-2_SEQUENCE.indication则发生超时错误,错误信息报告给上层应用,并根据错误类型判断是否终止交换;若收到FC-2_SEQUENCE.indication,开始序列分析;在整个处理请求过程中,FC-4_exchange.request请求一直保存,作为交换发送的依据,提供交换信息查询。每发送或接收一个序列,剩余数据信息等同步记录,一旦发送错误,剩余数据信息填入FC-4_exchange.reply中,向应用层报告。\uf0b2光纤通道序列级FC2层软件模块划分与实现FC-2层主要负责光纤通道序列级别的接收与发送,分为接收端与发送端2大部分。1.FC2层接收端设计FC-2层接收端要实现的功能主要包括:序YU/交换管理,注册注销,将单帧数据重组为完整序列,通过FC-2接口递交给FC-4层处理。图4.5给出了FC2层接收端设计框图,其具体流程如下:查询接收缓存寄存器,当寄存器帧接收请求标志置1时,说明此时该缓存中已接收到一帧数据待处理,PPC将数据读取到内存中,开始帧处理。同时寄存器信息包含该帧数据总数,以及帧是否有传输字错误等信息。一一进行判断,若帧没有发现传输字错误、帧溢出等错误,则进入序列/交换管理阶段,包括:SOF、EOF判断:确定帧服务类型和帧在序列中得位置,并设置相应FLAG标志;帧头提取:将光纤通道帧头部分单独提取出来进行帧头解析;帧头解析:判断目的地址是否为本端口,不是即丢弃该帧,若是继续判断;判断源地址与本端口是否已完成N端口注册,若未注册,需先注册,已注册,则继续判断;判断R_CTL交换类型,属于设备数据帧还是链路服务帧等,若为链路服务注册帧,则进入注册、注销进程,完成注册或注销。若为设备数据帧则进行TYPE判断;判断TYPE为何种上层应用,这里为FC-AE-1553协议;判断OX_ID交换号:该帧属于新交换,还是已有交换,新交换则建立新的交换状态块,填入交换信息;已有交换,则通过端口地址和交换号查找所属交换状态块,进行交换信息更新;判断RX_ID:FC-AE-1553该值均为0xFFFF;判断F_CTL控制信息,F_CTL确定该帧是属于交换发起者发送或交换响应者发送,序列发起权归属,采用得错误处理策略,在交换中的位置,优先级等重要信息,判断其正确性,并填充/更新交换状态块;判断SEQ_ID序列号:该帧属于新序列或已有序列,新序列开辟新序列状态块,已有序列则根据序列号查找到所属序列状态块进行信息更新;判读SEQ_CNT帧计数:序列重组必备信息,确定帧在序列中的位置;DF_CTL判断:FC-AE-1553中为OxO;参数域判断:包含相关偏移量信息,为序列重组提供相关信息。帧头解析完毕、序列/交换状态块更新完毕后,处理完成。将正确帧的数据按帧顺序重组为完整序列,填FC-2接口原语(FC-2_SEQUENCE.indication),完成序列递交。2.FC2层发送端设计FC-2层发送端要实现的功能主要包括:序YU/交换管理,注册分析,将FC-4请求的序列数据块划分为帧数据大小,将分配好的帧头与数据组成完整光纤通道帧放入发送缓存中。图4.6给出了FC2层发送端模块的主要设计流程框图。根据请求的FC-2接口原语信息(如FC-2_SEQUENCE.request)开始组帧程序,首先判断目的端口地址与本端口是否已完成N端口注册,若未注册,需先注册,已注册,则进行数据分割,将数据块分为帧数据大小,进入序列/交换管理阶段,包括:目的端口地址填充;源端口地址填充;TYPE上层应用类型填充,这里为FC-AE-1553协议:DF_CTL填充:FC-AE-1553中为OxO;F_CTL控制信息填充,FCTL确定该帧是属于交换发起者发送或交换响应者发送,序列发起权归属,采用的错误处理策略,在交换中的位置,优先级等重要信息,FC-2接口原语信息中包含,计算后填充;优先级填充:使用优先级,将优先级填入CS_CTL,F_CTL得17bit置1,不使用优先级,则CS_CTL为0x0;RX_ID填充:FC.AE.1553该值均为0xFFFF;R_CTL交换类型填充,与接口原语一致;分配OX_ID交换号:该帧属于新交换,则随机为交换分配一个未使用的交换号并建立新的交换状态块,填入交换信息;已有交换,则通过端口地址和交换号查找所属交换状态块,进行交换信息更新;分配SEQ_ID序列号:该帧属于新序列或已有序列,新序列则随机为交换分配一个未使用的序列号并开辟新序列状态块,已有序列则根据序列号查找到所属序列状态块进行信息更新;分配SEQ_CNT帧计数:序列重组必备信息,确定帧在序列中的位置;按重复计数或连续计数方式分配,同一序列的帧,后一帧比前一帧大l;参数域填充:包含相关偏移量信息,为序列重组提供相关信息。帧头分配完毕,于此同时建立/更新好序Yd/交换状态块,按正确帧的顺序将合适数据与帧头组合完毕,放入发送缓存,并将使用的服务类型信息通知硬件,由硬件添加SOF、EOF。为新交换、新序列分配的交换号与序列号通过FC2接口原语(FC-2_SEQUENCE_TAG.indication)通知FC-4层。当一个序列的所有数据均以帧的形式发送完毕,其发送结果:成功,失败及失败原因通知FC_4层。3.注册/注销模块(一)N端口注册请求N端口会在一个新的交换中发送一个PLOGI帧,端口名的数值大的N端口将发送一个PLOGI,在点对点连接中,只需一个N端口发送PLOGI即可。注册过程完成了以下内容:1、设置一个OX-ID。2、将D.ID设置为目标N端口D,S.ID设置为源N端口ID。3、净荷中根据需要设置相应的服务参数。4、指定发起注册的N端口的端口名,节点名。(二)N端口注册响应正常的N端口注册响应是返回一个LS-ACC链路服务响应帧,不存在交换机时,可能有以下几种响应类型:1、返回一个LS-ACC帧,帧的OX_ID等于PLOGI中的OX_ID,公共服务参数域中的N.PORT/F-PORT位置0,这是正常的N端口注册响应,说明注册成功。LS-ACC的D-ID即为PLOGI中的S-ID;LS-ACC中的S-ID即为PLOGI中的D_ID。LS-ACC帧内的净荷给出了服务参数设置,一个64位的N端口名,一个64位的节点名。注册成功后,N端口就可以与远程的N端口之间通信。2、返回一个P-BSY,说明目标N端口忙,稍后可重新发送PLOGI。3、返回P-RJT,说明N端口注册被目标N端口拒绝。P-RJT帧内净荷包含了拒绝原因码。若原因码为“不支持的服务类型”,则N端口将换一种服务类型,重新发送PLOGI。4、收到PLOGI,说明两个N端口注册时发生冲突,若接收到的PLOGI内的N端口名小于自身的N端口名,则发送一个LS—RJT拒绝帧,帧内拒绝原因码为“已经开始注册进程”;否则,直接处理接收到的PLOGI进行注册。5、若无响应,则表明表示链路出错,进行错误恢复。使用第三类服务,响应的N端口发送了LS-ACC后,注册结束。(三)注销注销过程是指移除所有地服务参数,释放N端口,交换机的资源,N端口注销时,删除了N端口ID。N端口可以发送LOGO-ELS帧向交换机请求注销。\uf0b2FC-AE-1553协议桥协议转换模块设计FC-AE-1553协议桥的主要实现光纤通道网络与传统的MIL-STD-1553总线间的桥接,兼容原有MIL-STD-1553低速终端设备,完成过桥数据交换。FC-AE-1553网络中允许存在多个桥,但同一时间只允许一个桥设备工作。所有过桥传输交换仍然由NC发起,通过协议桥,将NC命令帧转换发往RT的命令字、数据字,同样,当协议桥接收到RT响应的状态字、数据字时,将其映射为状态帧,发送回NC(NT)。从而实现2种不同网络间的实时信息交换。主要设计思想:过桥传输可分5种模式:(1)NC-RT(2)RT-NC(3)NT-RT(4)RT-NT(5)RT-RT,其中,NT-RT与RT-NT可分别合并至NC-RT和RT-NC中,根据过桥传输类型,分类完成协议映射。当协议算法软件配置在NT模式时,若接入MIL-STD-1553总线,也可作为协议桥使用,过桥传输主要步骤如下:(1)NT接收到NC命令序列时,首先检查命令帧子地址域,若子地址域高22位与本地桥地址相同,说明此次交换为过桥传输,调用协议转换模块。不同,则按普通NT运行;(2)通过与命令扩展帧头域中其他控制为联合判断何种过桥传输;(3)根据过桥传输类型选择映射类型,进行帧到字的“翻译”;(4)等待接收MIL-STD-1553RT消息字;(5)按过桥传输类型及命令帧抑制状态位值,进行字到帧的“翻译”,发送回光纤通道网络;过桥传输完成。表4.3映射类型表\uf06eFC2层软件流程图\uf0b2FC2层接收端软件流程图图4.7给出了FC2层接收端流程图读取接收缓存寄存器值,计算该接收帧长度,是否有传输字错误等,解析该光纤通道帧,建立或更新所属交换状态块,序列状态块,将帧数据重组为完整无错的序列数据递交到FC4层NC、NT中使用。\uf0b2FC2层发送端软件流程图根据FC4层的序列请求,按要求组光纤通道帧头,填充数据,发送完整光纤通道序列。将发送的每帧信息填入发送缓存寄存器,同时建立/更新交换、序列状态块。\uf0b2注册流程图注册过程是通过发起注册的端口发送一个扩展链路服务帧(ELS:注册时分为FLOGI和PLOGI)进行的,收到ELS的端口再返回一个链路服务应答帧(LS-ACC:分为FLOGILS-ACC和PLOGILS-ACC)之后,完成注册。ELS和LS-ACC的净荷中都包含了各种服务参数。图4.9给出了注册流程。\uf06eFC4主程序流程图\uf0b2NC模式代码流程图NC模式管理模块完成FC-AE-1553NC功能,控制安排FC-AE-1553网络的数据传输。按照交换请求提供的信息,按请求的传输模式,将发送或接收请求的数据块到相应的NT节点。传输模式包括:(1)NC-NT:NC-NT普通传输,NC-NT突发模式一传输,NC.NT突发模式二传输;NC.RT过桥传输(2)NT-NC:NT-NC普通传输,RT-NC过桥传输,RT-RT过桥传输(3)NT-NT"NT-NT普通传输,NT-NT突发模式一传输,NT-NT突发模式二传输;NT-RT过桥传输,RT-NT过桥传输。\uf0b2NT模式代码流程图完成FC-AE-1553NT功能,接收NC命令序列,完成FC-AE-1553网络的数据传输。按照命令解析出的交换请求,选定传输模式,将接收或发送请求的数据块到NC节点。此外,NT还具有FC-AE-1553协议桥功能,能完成过桥传输交换,实现光纤通道帧与MIL-STD-1553消息字的格式转换。传输模式包括:(1)NC-NT:NC-NT普通传输,NC-NT突发模式一传输,NC-NT突发模式二传输;NC、RT过桥传输(3)NT-NC:NT-NC普通传输,RT-NC过桥传输,RT-RT过桥传输(4)NT-NT:NT-NT普通传输,NT-NT突发模式一传输,NT-NT突发模式二传输:NT-RT过桥传输,RT-NT过桥传输。',)
提供FC-AE-1553B,fc-ae-1553标准会员下载,编号:1700877653,格式为 docx,文件大小为66页,请使用软件:wps,office word 进行编辑,PPT模板中文字,图片,动画效果均可修改,PPT模板下载后图片无水印,更多精品PPT素材下载尽在某某PPT网。所有作品均是用户自行上传分享并拥有版权或使用权,仅供网友学习交流,未经上传用户书面授权,请勿作他用。若您的权利被侵害,请联系963098962@qq.com进行删除处理。