一种总线测试数据注入方法及装置与流程

文档序号:18101397发布日期:2019-07-06 11:22阅读:235来源:国知局
一种总线测试数据注入方法及装置与流程

本发明属于计算机技术领域,尤其涉及一种总线测试数据注入方法及装置。



背景技术:

1394b总线是基于1394b传输协议搭建的数据传输总线,自诞生以来,因其高带宽、低延时、即插即用等诸多优点而广泛应用于航空航天、工业测控以及军事通讯等领域。

作为一种极为重要且应用广泛的数据传输总线,1394b总线在搭建完成后,需要对总线进行鲁棒性测试,保证在实际使用过程中数据传输的可靠性。在实际测试过程中,需要向总线中注入大量的测试数据,充分模拟总线在使用过程中可能出现的问题。

因此,如何提供一种总线测试数据注入方法及装置,以向待测总线中注入所需的测试数据,确保测试过程有效开展,成为本领域技术人员亟待解决的技术问题。



技术实现要素:

有鉴于此,本发明的目的在于提供一种总线测试数据注入方法及装置,向待测总线中注入测试数据,确保测试过程有效开展,具体方案如下:

第一方面,本发明提供的总线测试数据注入方法,包括:

获取待测总线的信号发送端的总线信号;

识别所述总线信号的信号类型;

若所述总线信号为数据信号,获取所述待测总线的传输速度;

按照目标编辑规则编辑数据信号,得到测试数据;

以所述传输速度向所述待测总线中注入所述测试数据;

其中,不同时间接收的所述总线信号所对应所述目标编辑规则相同或不同,且整个注入过程中所述目标编辑规则能够覆盖总线测试所需的各种异常工况,以完成各种异常工况下的模拟测试。

可选的,所述按照目标编辑规则编辑数据信号,得到测试数据,包括:

基于所述待测总线的编码规则以及所述传输速度确定解码规则;

根据所述解码规则对数据信号进行解码,得到传输数据;

按所述目标编辑规则编辑所述传输数据,得到编辑数据;

基于所述编码规则以及所述传输速度对所述编辑数据进行编码,得到所述测试数据。

可选的,若所述总线信号为初始化信号,本发明第一方面提供的总线测试数据注入方法,还包括:

解析所述初始化信号,得到速度协商码;

根据所述速度协商码,确定所述待测总线的传输速度。

可选的,本发明第一方面提供的总线测试数据注入方法,还包括:

发送所述速度协商码至所述待测总线的信号接收端。

第二方面,本发明提供一种总线测试数据注入装置,基于现场可编程门阵列fpga实现,所述装置包括:信号接收模块、测试数据生成模块,以及端口发送模块,其中,

所述信号接收模块用于接收待测总线的信号发送端发送的总线信号,并将所述总线信号发送至所述测试数据生成模块;

所述测试数据生成模块用于识别所述总线信号的信号类型,若所述总线信号为数据信号,获取所述待测总线的传输速度,按照目标编辑规则编辑数据信号,得到测试数据,并将所述测试数据发送至所述端口发送模块;

所述端口发送模块用于以所述传输速度向所述待测总线中注入所述测试数据;

其中,不同时间接收的所述总线信号所对应所述目标编辑规则相同或不同,且整个注入过程中所述目标编辑规则能够覆盖总线测试所需的各种异常工况,以完成各种异常工况下的模拟测试。

可选的,所述测试数据生成模块包括:gtx接收子模块、数据编辑子模块和gtx发送子模块,其中,

所述gtx接收子模块用于识别所述总线信号的信号类型,若所述总线信号为数据信号,获取所述待测总线的传输速度,基于所述待测总线的编码规则以及所述传输速度确定解码规则,根据所述解码规则对所述数据信号进行解码,得到传输数据,并将所得传输数据发送至所述数据编辑子模块;

所述数据编辑子模块用于按所述目标编辑规则编辑所述传输数据,得到编辑数据,并将所述编辑数据发送至所述gtx发送子模块;

所述gtx发送子模块用于获取所述待测总线的传输速度,基于所述编码规则以及所述传输速度对所述编辑数据进行编码,得到测试数据,并将所述测试数据发送至所述端口发送模块。

可选的,本发明第一方面提供的总线测试数据注入装置,还包括:端口控制模块,所述端口控制模块用于识别所述总线信号,若所述总线信号为初始化信号,解析所述初始化信号,得到速度协商码,根据所述速度协商码,确定所述待测总线的传输速度,并将所述传输速度发送至所述测试数据生成模块。

可选的,在所述总线信号为所述初始信号情况下,所述端口控制模块还用于向所述端口发送模块发送控制信息,以使所述端口发送模块发送所述速度协商码至信号接收端。

可选的,所述gtx接收子模块还用于将所述传输速度保存至第一本地存储器,所述gtx发送子模块还用于将所述传输速度保存至第二本地存储器。

基于上述本发明提供的技术方案,首先获取信号发送端的总线信号,并对总线信号的信号类型进行识别,若总线信号为数据信号,则获取待测总线的传输速度,并按照目标编辑规则对数据信号进行编辑,得到测试数据,最后以传输速度向待测总线中注入所述测试数据。本发明提供的技术方案,能够实现向待测总线中注入测试数据,测试数据基于数据发送端发送的总线信号得到,测试数据的数据量十分充足,且不同时间接收的总线信号所对应的目标编辑规则相同或不同,且整个注入过程中目标编辑规则能够覆盖总线测试所需的各种异常工况,完成各种异常工况下的模拟测试,因此,可以对待测总线进行有效的鲁棒性测试,确保测试过程有效开展。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种总线测试数据注入方法的流程图;

图2是本发明实施例提供的一种总线测试数据注入装置的结构框图;

图3是本发明实施例提供的另一种总线测试数据注入装置的结构框图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图1为本发明实施例提供的总线测试数据注入方法的流程图,该方法可应用于电子设备,该电子设备可选如笔记本电脑、智能手机、pc(个人计算机)等具有数据处理能力的电子设备,也可应用于fpga(field-programmablegatearray,现场可编程门阵列)等电子控制器;参照图1,本发明实施例提供的总线测试数据注入方法可以包括:

步骤s100,获取待测总线的信号发送端的总线信号。

待测总线构建完毕后,即可利用本发明实施例提供的总线测试数据注入方法对待测总线进行测试。为获取待测总线的总线信号,需要将应用本方法的电子设备或电子控制器与待测总线的信号发送端相连,直接获取待测总线的信号发送端的总线信号,即将应用本方法的电子设备或电子控制器接入待测总线的网络中,使得总线信号在进入总线进行传递前,首先经过应用本方法的电子设备或电子控制器。

步骤s110,识别总线信号的信号类型,若总线信号为数据信号,执行步骤s120,若总线信号为初始化信号,执行步骤s150。

在获取待测总线的总线信号之后,需要对总线信号的信号类型进行识别。根据1394b总线协议的相关规定,待测总线中至少可能传输两种不同类型的总线信号,分别是待测总线初始化阶段的初始化信号,以及初始化完毕、待测总线进入正式数据传输阶段时的数据信号。如果获取得到的总线信号是数据信号,则执行步骤s120,获取待测总线的传输速度,如果获取得到的总线信号是初始化信号,则执行步骤s150,解析初始化信号,得到速度协商码。

可选的,信号类型的识别可以根据总线信号的编码格式,或总线信号中预设的标识位进行,此处不再赘述。任何可以识别待测总线中传输的总线信号的信号类型的方法都是可选的,同样都属于本发明实施例保护的范围。

步骤s120,获取待测总线的传输速度。

如果获取得到的总线信号为数据信号,说明待测总线已经完成初始化,进入数据传输阶段,为实现对数据信号的处理以及处理完成得到测试数据后对测试数据的注入,需要获取待测总线的传输速度。

具体的,每次1394b总线上电,首先都需要经历初始化过程,对总线的传输速度进行沟通确定(步骤s150处详述),在传输速度确定后,即可按照确定的传输速度进行数据信号的传输,直至总线下电,都会使用本次初始化阶段确定的传输速度,并且,为保证初始化完成后数据信号的可靠传输,会将本次确定的传输速度保存至预设存储区中。因此,待测总线的传输速度的获取,可以分为两种情况,在初始化完成后立即开始的数据信号传输过程,可以直接获取初始化完成后确定的传输速度,而在后续的数据信号传输过程中,则可以访问本地的预设存储区,利用本地预设存储区中存储的传输速度进行数据信号的传输。

可以想到的是,对于初始化完成后立即开展数据信号传输的情况,同样可以先将传输速度保存至预设存储区,然后在每次数据信号的传输过程中,都访问该预设存储区,进而获取得到相应的传输速度信息。

步骤s130,按照目标编辑规则编辑数据信号,得到测试数据。

在得到数据信号后,需要根据目标编辑规则编辑数据信号,进而得到测试数据。具体的,根据1394b总线协议的规定,传输速度中包含有对数据信号进行解码、编码所需的部分配置信息,因此,在对数据信号进行编辑时,首先需要根据待测总线的编码规则(1394b总线对于数据信号采用8b/10b编码规则)以及获取得到的传输速度中包含的配置信息确定解码规则,并在得到解码规则之后,根据解码规则对数据信号进行解码,得到数据信号中实际进行传输的传输数据。得到传输数据之后,按目标编辑规则编辑传输数据,得到编辑数据。可以想到的是,所得编辑数据实际是对实际传输的传输数据进行处理后得到的,并不符合总线定义的传输规则,因此,还需要基于待测总线的编码规则以及传输速度对编辑数据进行编码,最终得到测试数据。

需要说明的是,为了充分模拟待测总线在实际使用中可能出现的各种异常工况,在不同时间接收的总线信号所对应目标编辑规则可以相同,也可以不同,且整个注入过程中目标编辑规则能够覆盖总线测试所需的各种异常工况,能够提供符合待测总线规则的测试数据,同样也能提供不符合待测总线规则的测试数据。具体的,对传输数据的编辑方式,可以是增加、删除、修改以及数据替换等多种方式,而编辑规则可以选择不同的编辑方式进行组合,排序,可以选择各种编辑方式中的一种或多种,不同的组合排序,可以得到不同的编辑规则,而目标编辑规则可以是不同的编辑规则中的一种或多种,并且,对于编辑规则的不同使用顺序,同样会产生不同的异常模拟工况。

步骤s140,以传输速度向待测总线中注入测试数据。

在得到测试数据之后,即可按照获取的传输速度向待测总线中注入测试数据,注入测试数据之后,即可观察待测总线的运行状态,或者获取待测总线的运行状态参数,验证待测总线的鲁棒性。

步骤s150,解析初始化信号,得到速度协商码。

1394b总线在初始化阶段需要进行传输端口的速度协商,速度协商的过程需要通过速度协商码实现,不同的速度协商码对应不同的传输速度。如果获取得到的总线信号为初始化信号,需要按照总线协议的相关规则,解析初始化信号,并获得初始化信号中的速度协商码。

步骤s160,根据速度协商码,确定待测总线的传输速度。

由于不同的速度协商码对应不同的传输速度,因此,在获取得到初始化信号中包含的速度协商码之后,即可唯一的确定待测总线的传输速度。

可选的,在获取得到传输速度之后,可以直接应用该传输速度进行数据注入,或者将传输速度存储至前述预设存储区中,以便在后续测试数据注入过程中使用。

步骤s170,发送速度协商码至待测总线的信号接收端。

可选的,为保证测试数据在待测总线中顺利传输,还需要将速度协商码发送给连接于待测总线另一端的信号接收端,以使该信号接收端可以根据速度协商码确定待测总线当前采用的传输速度,并以该传输速度接收待测总线中传输的测试数据。

综上所述,本发明提供的总线测试数据注入方法,能够实现向待测总线中注入测试数据,测试数据的数据量十分充足,且不同时间接收的总线信号所对应的目标编辑规则相同或不同,且整个注入过程中目标编辑规则能够覆盖总线测试所需的各种异常工况,完成各种异常工况下的模拟测试,因此,可以对待测总线进行有效的鲁棒性测试,确保测试过程有效开展。

需要说明的是,在步骤s110识别总线信号的信号类型时,会根据不同的识别结果,即不同的信号类型,跳转至不同的处理步骤,实现对数据信号的处理(步骤s120-步骤s150),或,实现对初始化信号的处理(步骤s150-步骤s170),上述实施例中将初始化信号的处理过程置于数据信号的处理过程之后,但这种记载方式并非对于步骤执行顺序的限定,仅仅是为了便于描述技术方案的具体内容。

下面对本发明实施例提供的总线测试数据注入装置进行介绍,本发明实施例提供的总线测试数据注入装置是基于fpga实现的。

参见图2,图2是本发明实施例提供的一种总线测试数据注入装置的结构框图,该装置包括:信号接收模块10、测试数据生成模块20,以及端口发送模块30,其中,

信号接收模块10用于接收待测总线的信号发送端(图中未示出)发送的总线信号,并将总线信号发送至测试数据生成模块20。

测试数据生成模块20接收信号接收模块10发送的总线信号,并识别总线信号的信号类型,若总线信号为数据信号,获取待测总线的传输速度,按照目标编辑规则编辑数据信号,得到测试数据,并将测试数据发送至端口发送模块30。

端口发送模块30用于接收测试数据生成模块20发送的测试数据,并以传输速度向待测总线中注入测试数据。

其中,不同时间接收的总线信号所对应目标编辑规则相同或不同,且整个注入过程中目标编辑规则能够覆盖总线测试所需的各种异常工况,以完成各种异常工况下的模拟测试。

本发明实施例提供的总线测试数据注入装置,以待测总线的数据信号为基础,生成得到测试数据,数据量充足,且不同时间接收的总线信号所对应的目标编辑规则相同或不同,且整个注入过程中目标编辑规则能够覆盖总线测试所需的各种异常工况,可以对待测总线进行有效的鲁棒性测试,确保测试过程有效开展。

可选的,参见图3,图3为本发明实施例提供另一种总线测试数据注入装置的结构框图,该装置中测试数据生成模块20具体包括gtx接收子模块201、数据编辑子模块202和gtx发送子模块203。同时,在图2所示实施例基础上,还增设端口控制模块40,其中,

在本实施例中,信号接收模块10分别与测试数据生成模块20中的gtx接收子模块201和端口控制模块40相连,在接收到待测总线的信号发送端发送的总线信号后,将所得总线信号复制成两路相同的信号,并分别发送至gtx接收子模块201和端口控制模块40。另外,本实施例中将所得总线信号复制成两路相同的信号目的是在于使gtx接收子模块和端口控制模块分别获得总线信号。在实际应用中,信号接收模块10也可以不复制总线信号,而使用gtx接收子模块和端口控制模块同时通过信号接收模块10接收总线信号。

端口控制模块40的输出端(图中未示出)分别与gtx接收子模块201、gtx发送子模块203,以及端口发送模块30相连。端口控制模块40主要用于完成待测总线的初始化过程,初始化时,待测总线中传输是由速度协商码组成的初始化信号。因此,在接收到信号接收模块10的总线信号后,端口控制模块40识别总线信号的信号类型,如果为初始化信号,端口控制模块40采用高速的时钟采样初始化信号中的速度协商码,并将采样所得信息量化成数字信号,进一步根据速度协商码的格式解析得到待测总线的传输速度,并将传输速度分别发送至gtx接收子模块201和gtx发送子模块203。如果为数据信号,则端口控制模块40不需进行处理。

进一步的,端口控制模块40还用于向端口发送模块40发送控制信息,以使端口发送模块40发送速度协商码至信号接收端(图中未示出),以使得信号接收端根据速度协商码确定待测总线的传输速度。

gtx接收子模块201在接收到信号接收模块10发送的总线信号后,识别所得总线信号的类型,如果为数据信号,即遵循8b/10b编码格式的信号,获取待测总线的传输速度,基于待测总线的编码规则以及传输速度确定解码规则,根据解码规则对所述数据信号进行解码,得到传输数据,并将所得传输数据发送至所述数据编辑子模块。

具体的,gtx接收子模块201需要完成数据信号的串并转换、时钟提取和8b/10b解码。其中,串并转换和时钟提取可以直接调用fpga平台中gtx原语实现,而8b/10b解码则根据1394b总线遵循的8b/10b编码规则解析即可,因为1394b总线中还加入一些特殊的编码方式,因此,8b/10b解码不能直接调用gtx原语中的模块,需要根据总线的编码规则定制相应的解码规则,在得到解码规则后,即可对8b/10b格式的数据信号进行解码,得到待测总线中的传输数据。

可选的,gtx接收子模块201在接收到端口控制模块40在待测总线初始化阶段确定的传输速度后,还用于将传输速度保存至第一本地存储器(图中未示出),以便在后续信号处理过程中,随时调用该传输速度。

数据编辑子模块202用于按目标编辑规则编辑传输数据,得到编辑数据,并将编辑数据发送至gtx发送子模块203。由于经过gtx接收子模块201的处理,装置已经完全获知待测总线的数据内容,因此,可以对传输数据中的任何一个字节,甚至一个比特进行故障的模拟,包括对传输数据进行增加、删除、修改和替换等,并且不会出现数据校验失败的情形。

gtx发送子模块203用于获取待测总线的传输速度,基于1394b总线的8b/10b编码规则以及传输速度对编辑数据进行编码,得到测试数据,并将测试数据发送至端口发送模块30。

具体的,gtx发送子模块203在得到编辑数据之后,将编辑数据进行编码,在对编辑数据进行8b/10b编码时,也需要按照1394b的编码格式进行定制实现,不能调用gtx原语中的8b/10b编码模块,而并串转换则可以直接调用gtx原语中的相关组件实现即可。

可选的,gtx发送子模块203在接收到端口控制模块40在待测总线初始化阶段确定的传输速度后,还用于将传输速度保存至第二本地存储器(图中未示出),以便在后续信号处理过程中,随时调用该传输速度。

本发明实施例提供的总线测试数据注入装置,能够实现向待测总线中注入测试数据,且测试数据的数据量十分充足,且不同时间接收的总线信号所对应的目标编辑规则相同或不同,且整个注入过程中目标编辑规则能够覆盖总线测试所需的各种异常工况,完成各种异常工况下的模拟测试。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的核心思想或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1