首页> 中国专利> 一种基于数字电路的FC网络帧头数据错误注入方法

一种基于数字电路的FC网络帧头数据错误注入方法

摘要

本发明属于计算机通信领域,提出了一种基于数字电路的FC网络帧头数据错误注入方法,包括配置寄存器组、错误注入模块、发送缓存模块和发送模块;其中,配置寄存器组用来存储控制信息和需要注入的帧头字段的值,由主机进行配置;错误注入模块使用注入值寄存器中的值替换传输数据中相应字段,并将最终数据填入相应的发送缓冲单元中;发送缓冲由M个Nbits的缓冲单元构成,采用环形队列方式管理。本发明通过在底层对发送数据进行处理,实现对帧头数据的错误注入,进而达到实现简单,使用灵活,降低成本的目的。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-03-30

    授权

    授权

  • 2016-06-01

    实质审查的生效 IPC(主分类):G06F11/26 申请日:20151207

    实质审查的生效

  • 2016-05-04

    公开

    公开

说明书

技术领域

本发明涉及一种FC网络帧头数据错误注入方法,特别涉及一种基于 数字电路的FC网络帧头数据错误注入方法。

背景技术

在计算机通信领域,FC网络因其高速、高可靠性、低延时、抗干扰 能力强而得到广泛应用,而能够正确的处理故障数据是网络健壮性的基 本要求,因此注入故障数据就成为FC网络必不可少的一种检验手段,在 FC网络的测试验证阶段必不可少。现有的FC网络专用测试设备提供此种 功能,不过价格昂贵,而且使用较为繁琐。

发明内容

本发明的目的是提供一种基于数字电路的FC网络帧头数据错误注入 方法,通过在底层对发送数据进行处理,直接发送包含错误FC帧头的数 据,进而达到实现简单,使用灵活,降低成本的目的。

为达到以上目的,本发明是采取如下技术方案予以实现的:

一种基于数字电路的FC网络帧头数据错误注入方法,包括以下步骤

1)主机写配置寄存器组;

2)主机启动错误注入模块,错误注入模块包括错误注入控制状态机、 计算单元、帧头组织单元和多路选择单元;

3)错误注入控制状态机检测发送缓冲是否未满,当发送缓冲未满时, 则启动主机数据传输;

4)错误注入控制状态机启动计算单元和帧头组织单元,并控制多路 选择单元选择帧头输出到发送缓冲中、或选择主机数据输出到发送缓冲 中;

5)计算单元在数据输出完成后更新发送缓冲尾指针;

6)发送模块根据发送缓冲头尾指针的值判断是否有数据需要发送, 若有则将发送缓冲中的数据读出并发送;

7)发送模块在发送完成后更新发送缓冲头指针的值,等待下一次发 送。

上述配置寄存器组包括传输启动寄存器、主机数据长度寄存器、FC 帧头模式选择寄存器、DID注入值寄存器、SID注入值寄存器、TYPE注入 值寄存器、OXID注入值寄存器、RXID注入值寄存器、RCTL注入值寄存器 和FCTL注入值寄存器。

上述传输启动寄存器主机写有效,每写一次表示启动一帧传输;主 机数据长度寄存器主机可读可写,存储主机发送数据的长度值;FC帧头 模式选择寄存器主机可读可写,最低位有效,0表示主机数据中无FC帧 头,1表示主机数据中有FC帧头;DID注入值寄存器主机可读可写,存 储要注入到FC帧头中的DID值;SID注入值寄存器主机可读可写,存储 要注入到FC帧头中的SID值;TYPE注入值寄存器主机可读可写,存储要 注入到FC帧头中的TYPE值;OXID注入值寄存器主机可读可写,存储要 注入到FC帧头中的OXID值;RXID注入值寄存器主机可读可写,存储要 注入到FC帧头中的RXID值;RCTL注入值寄存器主机可读可写,存储要 注入到FC帧头中的RCTL值;FCTL注入值寄存器主机可读可写,存储要 注入到FC帧头中的FCTL值。

上述错误注入控制状态机控制计算单元和多路选择单元的工作时 序,包括5种状态:空状态S0、主机数据传输状态S1、帧头传输状态S2、 帧尾传输状态S3和传输完成状态S4;

错误注入控制状态机最初处于空状态S0,主机启动传输后就转移到 主机数据传输状态S1,主机数据传输完毕后转移到帧头传输状态S2,帧 头传输完毕后转移到帧尾传输状态S3,传输结束后转移到完成状态S4, 最后回到空状态S0。

错误注入控制状态机的启动条件为传输启动寄存器的写操作。

上述计算单元在错误注入控制状态机的控制下计算发送缓冲的写入 地址和产生写信号,同时计算传输的数据长度。

计算单元的工作流程如下:

①当错误注入控制状态机处于S0状态时,初始化主机数据长度计数 器和帧头长度计数器为0;

②当错误注入控制状态机处于S1状态时,每个时钟周期将主机数据 长度计数器的值自增1,并将发送缓冲尾指针的值、加主机数据长度计数 器的值、再加6的结果作为发送缓冲写地址输出,同时产生写信号;

③当主机数据长度计数器的值等于主机长度寄存器的值时,产生主 机数据传输完成信号;

④当错误注入控制状态机处于S2状态时,每个时钟周期将帧头数据 长度计数器的值自增1,并将发送缓冲尾指针加帧头数据长度计数器的值 作为发送缓冲写地址输出,同时产生写信号;

⑤当帧头数据长度计数器的值等于7时,产生帧头数据传输完成信 号;

⑥当错误注入控制状态机处于S3状态时,将发送缓冲尾指针的值、 加主机数据长度寄存器的值、再加7的结果作为发送缓冲写地址输出, 同时产生写信号;

⑦当错误注入控制状态机处于S4状态时,将发送缓冲尾指针的值加 1,跳回步骤①。

帧头组织单元根据配置寄存器组中、各字段注入值寄存器的值组织 帧头,并在错误注入控制状态机转移到S2状态前完成,将组织的帧头保 存在第一寄存器、第二寄存器、第三寄存器、第四寄存器、第五寄存器、 第六寄存器中。

多路选择单元根据错误注入控制状态机所处的状态选择输出相应的 数据,具体如下:

①当错误注入控制状态机处于S0或S4状态时,多路选择单元输出 全为0;

②当错误注入控制状态机处于S1状态时,多路选择单元选择输出主 机数据;

③当错误注入控制状态机处于S2状态且计算单元中帧头长度计数器 的值为1时选择输出主机数据;

④当错误注入控制状态机处于S2状态且计算单元中帧头长度计数器 的值为2时选择输出第一寄存器的值;

⑤当错误注入控制状态机处于S2状态且计算单元中帧头长度计数器 的值为3时选择输出第二寄存器的值;

⑥当错误注入控制状态机处于S2状态且计算单元中帧头长度计数器 的值为4时选择输出第三寄存器的值;

⑦当错误注入控制状态机处于S2状态且计算单元中帧头长度计数器 的值为5时选择输出第四寄存器的值;

⑧当错误注入控制状态机处于S2状态且计算单元中帧头长度计数器 的值为6时选择输出第五寄存器的值;

⑨当错误注入控制状态机处于S2状态且计算单元中帧头长度计数器 的值为7时选择输出第六寄存器的值;

⑩当错误注入控制状态机处于S3状态时选择输出主机数据。

与现有方法相比,本发明的有益效果是:

a)支持FPGA等集成电路的使用,易于实现;

b)简单易行,使用方便;

c)操作灵活,成本较低。

附图说明

图1是本发明的技术方案示意图;

图2是本发明技术方案工作流程图;

图3是错误注入控制状态机状态转移示意图;

图4是错误注入模块计算单元工作流程图;

图5是错误注入模块多路选择单元工作流程图;

图6是发送模块工作流程图。

具体实施方式

本发明提出了一种基于数字电路的FC网络帧头数据错误注入方法, 能够根据主机的配置,控制每一个发送FC帧的帧头字段的填充值,从而 直接产生并发送包含错误FC帧头的数据。与现有方法相比,本发明在实 现相同功能的情况下,具有成本低,使用灵活,易于实现的特点。

如图1所示,本发明包括配置寄存器组、错误注入模块、发送缓冲 和发送模块。其中,配置寄存器组用来储存控制信息和需要注入的帧头 字段的值,由主机进行配置;错误注入模块使用注入值寄存器中的值替 换传输数据中相应字段,并将最终数据填入相应的发送缓冲单元中;发 送缓冲由M个Nbits的缓冲单元构成,采用环形队列方式管理。

下面结合附图及具体实例对本发明做进一步的详细说明。

如图1所示,一种基于数字电路的FC网络帧头数据错误注入方法, 包括

1)配置寄存器组

配置寄存器组的定义和说明如表1所示。

表1配置寄存器组说明

2)错误注入模块

错误注入模块包括错误注入控制状态机、计算单元、帧头组织单元 和多路选择单元四部分,其实现方式分别如下所述。

a)错误注入控制状态机

错误注入控制状态机控制计算单元、多路选择单元的工作时序,确 保两个单元能够协调工作。状态转移关系如图3所示,设计了5种状态: 空状态S0、主机数据传输状态S1、帧头传输状态S2、帧尾传输状态S3 和传输完成状态S4。状态机最初处于空状态,一旦主机启动传输就转移 到主机数据传输状态,主机数据传输完毕后转移到帧头传输状态,帧头 传输完毕后转移到帧尾传输状态,传输结束后转移到完成状态,最后回 到空状态。

错误注入控制状态机启动条件为fc_trans_en_reg的写操作。

b)计算单元

计算单元在错误注入控制状态机的控制下计算发送缓冲的写入地址 和产生写信号,同时计算传输的数据长度,并在传输完成后更新发送缓 冲尾指针。工作流程如图4所示,具体说明如下:

①当错误注入控制状态机处于S0状态时,初始化主机数据长度计数 器和帧头长度计数器为0;

②当错误注入控制状态机处于S1状态时,每个时钟周期将主机数据 长度计数器的值自增1,并将发送缓冲尾指针加主机数据长度计数器加6 的值作为发送缓冲写地址输出,同时产生写信号;

③当主机数据长度计数器的值等于主机长度寄存器的值时,产生主 机数据传输完成信号;

④当错误注入控制状态机处于S2状态时,每个时钟周期将帧头数据 长度计数器的值自增1,并将发送缓冲尾指针加帧头数据长度计数器的值 作为发送缓冲写地址输出,同时产生写信号;

⑤当帧头数据长度计数器的值等于7时,产生帧头数据传输完成信 号;

⑥当错误注入控制状态机处于S3状态时,将发送缓冲尾指针加主机 数据长度寄存器加7的值作为发送缓冲写地址输出,同时产生写信号;

⑦当错误注入控制状态机处于S4状态时,将发送缓冲尾指针的值加 1,跳回步骤①。

c)帧头组织单元

帧头组织单元根据配置寄存器组中各字段注入值寄存器的值组织帧 头,并在错误注入控制状态机转移到S2状态前完成,保存在第一寄存器、 第二寄存器、第三寄存器、第四寄存器、第五寄存器、第六寄存器中。

d)多路选择单元

多路选择单元根据错误注入控制状态机所处的状态选择输出相应的 数据。工作流程如图5所示,具体说明如下:

①当错误注入控制状态机处于S0或S4状态时,多路选择单元输出 全为0;

②当错误注入控制状态机处于S1状态时,多路选择单元选择输出主 机数据;

③当错误注入控制状态机处于S2状态且计算单元中帧头长度计数器 的值为1时选择输出主机数据;

④当错误注入控制状态机处于S2状态且计算单元中帧头长度计数器 的值为2时选择输出第一寄存器的值;

⑤当错误注入控制状态机处于S2状态且计算单元中帧头长度计数器 的值为3时选择输出第二寄存器的值;

⑥当错误注入控制状态机处于S2状态且计算单元中帧头长度计数器 的值为4时选择输出第三寄存器的值;

⑦当错误注入控制状态机处于S2状态且计算单元中帧头长度计数器 的值为5时选择输出第四寄存器的值;

⑧当错误注入控制状态机处于S2状态且计算单元中帧头长度计数器 的值为6时选择输出第五寄存器的值;

⑨当错误注入控制状态机处于S2状态且计算单元中帧头长度计数器 的值为7时选择输出第六寄存器的值;

⑩当错误注入控制状态机处于S3状态时选择输出主机数据。

3)发送缓冲

发送缓冲由9个4KB的缓冲单元构成,采用环形队列的方式进行管 理。

4)发送模块

发送模块负责将发送缓冲中的数据发送出去,工作流程如图6所示, 具体说明如下:

a)检查发送缓冲头尾指针的值,判断是否有数据需要发送;

b)若有数据需要发送,则将其发送到FC接口;

c)发送完成后将发送缓冲头指针的值加1;

d)跳回步骤a)。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号