一种fc-ae交换机和交换方法

文档序号:8285162阅读:1187来源:国知局
一种fc-ae交换机和交换方法
【技术领域】
[0001]本发明涉及数据总线领域,尤其涉及一种FC-AE交换机和交换方法。
【背景技术】
[0002]随着航空航天电子数据总线的发展,MIL-STD-1553B因其速率只有IMbps,越来越不能满足高速率应用的场合,而FC是目前广泛应用于美国第四代战机的一种串行通信协议,集合了通道与网络两者的优点。FC是美国国家标准委员会(ANSI)的X3T11小组于1988年开始制定,目前已形成一个庞大的网络协议簇。FC凭借高带宽、低延迟、低误码率的优异性能应用到了 F-18E/F、AH-64Apche、B_1B、V22等众多航空航天任务中。FC是一种完全开放的商业标准,有专门针对航空电子应用环境的FC-AE协议子集,规范了在航空环境中光纤通道交换网络与环路拓扑连接设备的选择。
[0003]FC-AE网络主要包括节点卡和交换机,节点卡通过交换机相互传输数据;交换机用于实现管理链路连接状态;对数据帧进行接收和转发等功能,是FC-AE网络的核心设备。
[0004]但是,现有的FC交换机缺少针对FC-AE特殊环境要求的实现,如同时支持隐式登录和显式登录;对网络的扩展通过E端口实现,占用交换端口,并且带宽受限于端口速率,不能满足高速数据传输要求。

【发明内容】

[0005]本发明公开了一种FC-AE交换机,所述交换机包括一个或多个通过扩展端口互连的交换基本单元,所述基本交换单元包括端口管理模块、交叉矩阵模块、地址表模块、扩展端口模块、CPU模块等5种单元模块,其中,
[0006]所述端口管理模块包括串行器/解串器、8b/10b编解码、CRC校验、缓冲到缓冲信用管理、链路层状态机等,用于实现FC链路层和物理层协议;
[0007]所述交叉矩阵模块用于将数据帧发送到指定的端口号,对外接口均为AXI4Stream,交叉矩阵模块共10个端口,每个端口的端口号可动态分配,端口号范围为O?255,每个端口可以分配一个端口号,也可以分配多个端口号;
[0008]所述地址表模块用于存储地址表,实现数据帧的目的ID与端口号之间的映射关系,每个映射关系为一个表项,地址表模块中最多可存储1000个表项,可以由CPU模块添加、删除和查询表项,也可以由端口管理模块查询表项。
[0009]所述扩展端口模块用于根据CPU模块运行的扩展端口协议相互连接N个交换基本单元,扩展为8*N个FC端口的交换机。
[0010]所述CPU模块用于对其它模块进行初始化配置,通过配置端口管理模块和地址表模块实现隐式登录协议,通过扩展端口模块实现扩展端口协议。
[0011]进一步的,所述端口管理模块共8个,用于实现8个FC端口,所述FC端口遵循F端口的协议,可与标准的节点卡设备相连,支持l/2/4Gbps自适应数据速率。
[0012]进一步的,所述端口管理模块与交叉矩阵模块之间为AXMStream接口,端口管理模块接收到来自FC端口的数据帧后,会根据数据帧中的目的ID从地址表中查询需要转发的端口号,然后通过交叉矩阵转发给指定的端口 ;端口管理模块接收到从交叉矩阵模块发送过来的数据帧,按照链路层和物理层的协议要求重新组装后从FC端口发送出去
[0013]进一步的,所述数据帧的目的ID为知名ID或节点卡ID,当目的ID为知名ID时,对应的端口号为CPU的端口号。
[0014]进一步的,所述扩展端口模块将内部交叉矩阵模块的接口转换为4路高速串行接口,每路的数据速率为lOGbps,因此扩展端口最大可提供40Gbps的互联带宽。
[0015]本发明还公开了一种FC-AE交换机工作方法,包括以下步骤:
[0016]I)交换机加电后,CPU模块对其它模块进行初始化,并通过配置端口管理模块和地址表模块实现节点卡登录;
[0017]2)端口管理模块解析通过FC端口接收到的数据,生成内部格式的数据帧。根据数据帧中的目的ID,查询地址表模块中的表项,找到需要转发的端口号,将数据帧发送给交叉矩阵模块;
[0018]3)交叉矩阵模块根据需要转发的端口号将数据帧转发给对应的端口管理模块、CPU模块或端口扩展模块;
[0019]4)端口管理模块接收到从交叉矩阵模块发送过来的数据帧,按照链路层和物理层的协议要求重新组装后从FC端口发送出去;
[0020]5)当CPU模块检测到扩展端口模块与其它交换基本单元连接时,通过运行端口扩展协议实现多个交换基本单元之间的数据同步,以扩展FC端口的数量。
[0021]进一步的,步骤I)包括:
[0022]当节点卡连接到交换机的FC端口后,如果节点卡采用隐式登录协议,所述参数事先存储在交换机的Flash中,CPU从Flash中读取各个接口的配置参数,对端口管理模块进行配置,将上述参数写入CPU寄存器中,同时添加地址表模块表项,完成节点卡ID与端口号的映射关系;如果节点卡不支持隐式登陆协议,则采用显式登录协议,节点卡发送FLOGIELS帧给交换机,交换机清除对该端口的配置,重新按照显式登录的参数重新配置端口管理模块,并更新地址表模块的表项,回复ACC ELS帧,双方确定登录参数。
[0023]进一步的,步骤5)具体包括:
[0024]I)交换机加电后,所有的CPU模块端口号都为255,每个CPU有一个32位的唯一ID,8个端口管理模块的端口号分别为O?7,扩展端口模块的端口号为8?254 ;
[0025]2)当CPU模块检测到扩展端口模块与其它交换基本单元连接时,CPU模块发送组播帧,帧中包含自己的ID和端口号,CPU模块能够分配的端口号范围是224?255.组播的端口号为224?255,即所有的CPU模块为一个组播组。每个CPU模块通过组播发送的帧其它所有CPU模块都能接收到;
[0026]3)其它CPU模块在收到该帧后,如果自己的ID大于组播帧中的CPU ID,则将自己的ID和端口号通过组播发送出去,如果CPU模块发送组播帧后超出预定时间仍没有收到ID大于自己的回应帧,则该CPU模块被确定为主CPU模块,主CPU模块的端口号为255 ;
[0027]4)主CPU模块通过组播发送请求,要求其它所有交换基本单元回复自己的ID和对应的端口号,主CPU模块在收到这些应答后,如果其它CPU模块的端口号在224-254之间且没有与其它CPU模块的端口号相同,则该CPU的端口号保持不变;如果有两个CPU模块有相同的端口号,则ID较大的CPU模块的端口号保持不变,为ID较小的CPU模块重新分配一个224?255之间未用的端口号,并将该CPU ID和更新的端口号通过组播发送出去,该CPU模块收到组播帧之后,更新自己的端口号;
[0028]5)在确定端口号之后,每个CPU模块修改各个交换基本单元的其它模块的端口号,其中,端口管理模块O?7的端口号计算公式为:(255-CPU端口号)*8+ (O?7),扩展端口号为O?255中除了 CPU和8个端口号之外的端口号;
[0029]6) CPU模块通过组播协议将自己的地址表发送给其它交换基本单元,在地址表改变时通过组播通知其它交换基本单元进行更新,接收到其它交换基本单元发送的地址表更新时,更新地址表模块中的数据。
[0030]本发明有益效果如下:
[0031]同时支持隐式登录和显式登录,能够让支持隐式登录的设备快速建立拓扑连接,同时又可以允许只支持显式登录的设备接入该网络中。
[0032]通过扩展端口对交换机的端口数进行扩展,交换带宽得到了极大地提高;同时,在扩展过程中,原交换网络不需要断电或复位,对需要不间断工作的交换拓扑的扩容提供了完美支持。
【附图说明】
[0033]附图仅用于示出具体实施
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1