多通道RocketIO协议与FC协议实时转换方法技术

技术编号:24130325 阅读:73 留言:0更新日期:2020-05-13 06:04
本发明专利技术提出了一种多通道RocketIO协议与FC协议实时转换的设计方法,该方法由FPGA作为主控芯片,内部由RocketIO协议接口模块,协议转换模块,多通道缓存模块,实时控制模块,FC协议接口模块组成。其中RocketIO协议接口模块、FC协议接口模块负责多路数据流输入输出,协议转换模块完成RocketIO协议与FC协议的格式转换,多通道缓存模块与实时控制模块配合完成多通道的总线占用切换。本发明专利技术在实现RocketIO协议与FC协议实时转换的基础上,通过实时反馈控制的办法,实现了多路RocketIO协议与FC协议的转换,解决了多通道数据需同时占用FC协议总线的冲突问题。

【技术实现步骤摘要】
多通道RocketIO协议与FC协议实时转换方法
本专利技术涉及通信

技术介绍
在现代雷达电子装备中,通信网络涉及信号处理机、数据处理机、显示计算机、预处理机与控制器等若干子系统,各子系统因硬件平台不同而采用了不同的通信总线协议,比如信号处理机采用了RapidIO接口;控制器使用了FC光纤通道;预处理机则使用了基于RocketIO的用户自定义协议等。如前所述,为保障各子系统之间的高效互联,协议间的桥接模块发挥着至关重要的作用。FC协议与RapidIO协议桥接方面,由天津芯海创科技有限公司在2018年提出了一种RapidIO协议到FC协议的转换方法,而在与RocketIO协议转换方面,浙江大学硕士论文《FC协议处理引擎优化及RocketIO桥接技术研究》一文中有所介绍,但该文的每个FC端口与每个RocketIO端口一一对应。而在实际使用时,RocketIO数据有可能只分时占用了很小带宽,如果为每一路数据分别配置一个FC端口,会造成FC总线带宽的极大浪费。为充分利用FC总线带宽,将多路RocketIO协议数据同时送入单个FC端口,需要设计一种多通道RocketIO协议与FC协议实时转换方法。
技术实现思路
本专利技术提供了一种多通道RocketIO协议与FC协议实时转换方法。本专利技术包含RocketIO协议接口模块,协议转换模块,多通道缓存模块,实时控制模块,FC协议接口模块。FPGA接收RocketIO协议数据后经过协议转换模块将多路RocketIO协议转换成多路FC协议数据包,然后FC协议的数据进入多通道缓存模块,该模块由实时控制模块控制轮流输出到单路FC协议接口模块,完成数据流的转换。多通道RocketIO协议与FC协议实时转换方法其硬件架构采用标准VPX后插卡形式,如图1所示,主要由1片XilinxKintex7FPGA,4个6.25Gbps速率4收4发MPO接口850nm多模光模块以及VPX接插件组成,本设计的RocketIO端口可以从面板光模块输入也可从后插VPX的RP6插座输入输出,FC协议从光模块2输入输出,可支持双冗余的2个FC节点。协议转换模块是基于一个长位宽的数据寄存器和控制状态机组成的,该数据寄存器包含了FC协议所需的:字节有效控制字、数据包包头标识、数据包包尾标识。该模块时钟采用RocketIO协议的恢复时钟,每个时钟接将收到RocketIO协议数据从高位依次向低位填入寄存器,填满四个周期达到FC协议所需的位宽后,将整个数据写入下一级缓存,若接收到数据结束但未填满数据寄存器,则也将数据寄存器写入下级缓存,由寄存器中的字节数据有效控制字指示数据是否有效。实时控制模块检测多通道缓存模块的状态,以此控制缓存输出,使得多通道数据依次进入FC协议接口模块。该模块主要分为3个状态,设初始状态也是状态1下读取通道K_Current的数据,然后依次检测通道1~N缓存是否存在将满状态是否为满,若检测到通道X将满,则进入状态2读通道X缓存数据直到读空返回状态1;若通道1~N缓存不存在将满状态,则检测当前通道K_Current是否读空,若检测到当前通道缓存为空,则进入状态3,首先检测通道1~N缓存是否全部为空,若全为空返回状态1,若存在缓存不为空设通道Y非空,则读取通道Y数据并固定每256个时钟检测一次通道1~Y是否有数据,若通道K_Next有数据则返回状态1将K_Next通道作为当前通道。以此实现了优先级为1至N的多通道互相切换,有效利用FC总线。通过实时检测,本专利技术各RocketIO通道速率控制每路在FC端口占用时间,将多路RocketIO协议数据同时送入单个FC端口,改进了FC总线利用率。附图说明图1是多通道RocketIO协议与FC协议实时转换方法硬件示意图;图2是多通道RocketIO协议与FC协议实时转换方法实现流程图;图3是协议转换模块寄存器设置;图4是实时控制模块实现流程图。具体实施方式本专利技术提供了一种用于多通道RocketIO协议与FC协议的实时转换方法。该方法使用协议转换模块先将多路RocketIO协议分别转换成FC协议数据格式,然后将数据送入多通道缓存模块,该模块由实时控制模块控制轮流输出到FC协议接口模块,完成数据流的转换,整体架构图如附图1所示,具体实施方法为:1、协议转换模块是RocketIO协议转换成FC协议的核心模块,本专利技术中,FPGA接收的2G线速率RocketIO协议数据,经过串并转换后,数据为16bit位宽,参考时钟100M。RocketIO协议数据流中包含了自定义的帧头、帧尾、空闲码,因此协议转换过程中须将解析帧头帧尾作为FC协议的帧标识,并将16bit位宽组合成64bit位宽。本专利技术中,采取数据寄存器和控制状态机实现协议转换,该数据寄存器排列如图2所示,前8位是字节有效控制字每一位分别代表8个字节的数据是否有效,第9位为包头标识,第10位为包尾标识,后64位为数据位依次缓存4个RocketIO协议数据。FPGA每个时钟接收到16位位宽RocketIO协议数据从高位依次向低位填入寄存器,填满四个周期的数据后,将整个74为数据写入下一级缓存,若接收到数据结束但未填满4个数据位置,则也将74位数据写入下级缓存,由前8位的数据有效控制字指示数据是否有效。2、实时控制模块控制多通道缓存模块的各个通道读使能rd_en,而多通道缓存模块上报各个通道的空标志fifo_empty和将满标准prog_full。实施流程如图3所示,初始状态以选取通道K_Current为当前通道,在初始状态下读取通道K_Current数据,即通道K_Current占用FC总线接口,在此同时检测通道1~N是否将满,若通道X检测到快满标识,则进入通道X的读取,FC总线切换到通道X直到通道X读空为止;若在初始状态下检测到通道K_Current缓存为空,则检测通道1~N缓存是否全部为空,若通道Y非空,则读取通道Y数据同时每间隔固定的256个时钟检测一次通道1~Y-1是否有数据,以确保组成完整的FC包,直到检测到通道K_Next缓存非空,则将K_Next设定为当前通道返回初始状态。以此循环,实现N个通道的自适应切换输出。本文档来自技高网...

【技术保护点】
1.多通道RocketIO协议与FC协议实时转换方法,其特征在于:包含RocketIO协议接口模块,协议转换模块,多通道缓存模块,实时控制模块,FC协议接口模块;FPGA接收RocketIO协议数据后经过协议转换模块将多路RocketIO协议转换成多路FC协议数据包,然后FC协议的数据进入多通道缓存模块,再由实时控制模块控制该模块将数据轮流输出到单路FC协议接口模块,完成数据流的转换。/n

【技术特征摘要】
1.多通道RocketIO协议与FC协议实时转换方法,其特征在于:包含RocketIO协议接口模块,协议转换模块,多通道缓存模块,实时控制模块,FC协议接口模块;FPGA接收RocketIO协议数据后经过协议转换模块将多路RocketIO协议转换成多路FC协议数据包,然后FC协议的数据进入多通道缓存模块,再由实时控制模块控制该模块将数据轮流输出到单路FC协议接口模块,完成数据流的转换。


2.根据权...

【专利技术属性】
技术研发人员:翟栋梁杨阳王志刚洪畅
申请(专利权)人:中国船舶重工集团公司第七二四研究所
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1