本发明涉及数据搜索技术领域,更具体的说,是涉及一种数据搜索方法及系统。
背景技术:
示波器是利用电子示波管的特性,将人眼无法直接观测的交变电信号转换成图像,显示在荧光屏上以便测量的电子测量仪器,其中波形搜索是示波器的一个重要功能,主要是对采样到的波形数据进行搜索,查找出用户想要看到的异常数据,一般用户会根据对待搜波形的分析需求,通过示波器对待搜波形设置多种需要搜索的数据类型,目前,示波器的波形搜索采用多种数据类型依次搜索的方式,即搜索完一种类型的波形数据之后,才能搜索下一种类型的波形数据。
发明人经过研究发现,采用多种数据类型逐一搜索的方式,搜索速度比较慢,用户的体验效果差。
技术实现要素:
本发明所要解决的技术问题是提供一种数据搜索方法,能够对待搜波形中需要搜索的多种数据类型同时进行搜索,有效提高了搜索速度及用户的体验效果。
本发明还提供一种数据搜索系统,用以保证上述方法在实际中的实现及应用。
一种数据搜索方法,包括:
确定待搜波形中需要搜索的各个数据类型;
为每一个所述数据类型建立与其对应的搜索程序;
获取每一个所述搜索程序各自需要进行搜索的待搜波形数据;
触发每一个所述搜索程序,按照预设的搜索条件,同时对其各自所需搜索的待搜波形数据进行搜索。
上述的方法,优选的,还包括:
输出每一个所述搜索程序的搜索结果,并对每一个所述搜索结果以环形存储的方式进行存储。
上述的方法,优选的,所述为每一个所述数据类型建立与其对应的搜索程序包括:
确定每一个所述数据类型各自对应的搜索模式;
依据预先存储的搜索模式与搜索程序的对应关系,获取所述搜索模式对应的搜索程序;
将所述搜索程序分配给与其对应的数据类型。
上述的方法,优选的,所述获取每一个所述搜索程序各自需要进行搜索的待搜波形数据包括:
确定每一个所述搜索程序进行搜索时各自对应的数据类型;
对每一个所述数据类型进行解析;
获取每一个数据类型各自对应的需要进行搜索的待搜波形数据。
上述的方法,优选的,所述触发每一个所述搜索程序,按照预设的搜索条件,同时对其各自所需搜索的待搜波形数据进行搜索包括:
确定每一个所述搜索程序各自对应的搜索条件;
向每一个所述搜索程序发送触发指令;
触发每一个所述搜索程序依据所述触发指令,按照其各自对应的搜索条件,以流水线的方式,同时对其各自所需搜索的待搜波形数据进行搜索。
一种数据搜索系统,包括:
确定单元,用于确定待搜波形中需要搜索的各个数据类型;
建立单元,用于为每一个所述数据类型建立与其对应的搜索程序;
获取单元,用于获取每一个所述搜索程序各自需要进行搜索的待搜波形数据;
搜索单元,用于触发每一个所述搜索程序,按照预设的搜索条件,同时对其各自所需搜索的待搜波形数据进行搜索。
上述的系统,优选的,还包括:
存储单元,用于输出每一个所述搜索程序的搜索结果,并对每一个所述搜索结果以环形存储的方式进行存储。
上述的系统,优选的,所述建立单元包括:
第一确定子单元,用于确定每一个所述数据类型各自对应的搜索模式;
第一获取子单元,用于依据预先存储的搜索模式与搜索程序的对应关系,获取所述搜索模式对应的搜索程序;
分配子单元,用于将所述搜索程序分配给与其对应的数据类型。
上述的系统,优选的,所述获取单元包括:
第二确定子单元,用于确定每一个所述搜索程序进行搜索时各自对应的数据类型;
解析子单元,用于对每一个所述数据类型进行解析;
第二获取子单元,用于获取每一个数据类型各自对应的需要进行搜索的待搜波形数据。
上述的系统,优选的,所述搜索单元包括:
第三确定子单元,用于确定每一个所述搜索程序各自对应的搜索条件;
发送子单元,用于向每一个所述搜索程序发送触发指令;
触发子单元,用于触发每一个所述搜索程序依据所述触发指令,按照其各自对应的搜索条件,以流水线的方式,同时对其各自所需搜索的待搜波形数据进行搜索。
与现有技术相比,本发明包括以下优点:
本发明提供一种数据搜索方法,包括:确定待搜波形中需要搜索的各个数据类型;为每一个所述数据类型建立与其对应的搜索程序;获取每一个所述搜索程序各自需要进行搜索的待搜波形数据;触发每一个所述搜索程序,按照预设的搜索条件,同时对其各自所需搜索的待搜波形数据进行搜索。本发明提供的搜索方法,通过为每一个所述数据类型建立与其对应的搜索程序;获取每一个所述搜索程序各自需要进行搜索的待搜波形数据;触发每一个所述搜索程序,按照预设的搜索条件,可以实现同时对其各自所需搜索的待搜波形数据进行搜索,从而有效提高了波形搜索速度及用户的体验效果。
当然,实施本发明的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明提供的一种数据搜索方法的方法流程图;
图2为本发明提供的一种数据搜索方法的又一方法流程图;
图3为本发明提供的一种数据搜索方法的又一方法流程图;
图4为本发明提供的一种数据搜索方法的又一方法流程图;
图5为本发明提供的一种数据搜索系统的结构示意图;
图6为本发明提供的一种数据搜索系统的又一结构示意图;
图7为本发明提供的一种数据搜索系统的又一结构示意图;
图8为本发明提供的一种环形存储结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参考图1,示出了本发明实施例提供的一种数据搜索方法的方法流程图,本方法的执行主体可以为搜索系统中的处理器,本发明提供的方法,包括:
步骤S101:确定待搜波形中需要搜索的各个数据类型;
在本发明提供的方法中,对于任意一个输入的待搜波形,确定待搜波形中需要搜索的各个数据类型,其中,所述数据类型可以为周期/频率、上升/下降时间、正/负占空比、边沿数据类型等。
步骤S102:为每一个所述数据类型建立与其对应的搜索程序;
在本发明中,对于确定的各个数据类型,分别为每一个所述数据类型建立与其对应的搜索程序。
步骤S103:获取每一个所述搜索程序各自需要进行搜索的待搜波形数据;
在本发明中,对于任意一个搜索程序,分别获取其各自需要进行搜索的待搜波形数据。
步骤S104:触发每一个所述搜索程序,按照预设的搜索条件,同时对其各自所需搜索的待搜波形数据进行搜索。
在本发明中,通过触发每一个搜索程序,按照其各自对应的搜索条件,同时对其各自需要搜索的待搜波形数据进行搜索。
通过应用本发明提供的数据搜索方法,确定待搜波形中需要搜索的各个数据类型;为每一个所述数据类型建立与其对应的搜索程序;获取每一个所述搜索程序各自需要进行搜索的待搜波形数据;触发每一个所述搜索程序,按照预设的搜索条件,可以实现同时对其各自所需搜索的待搜波形数据进行搜索,从而有效提高了波形搜索速度及用户的体验效果。
在本发明提供的方法中,所述确定待搜波形中需要搜索的各个数据类型可以包括:
依据用户输入的数据类型选取指令,确定待搜波形中需要搜索的各个数据类型。
参考图2,示出了本发明提供的一种数据搜索方法的又一方法流程图,所述为每一个所述数据类型建立与其对应的搜索程序包括:
步骤S201:确定每一个所述数据类型各自对应的搜索模式;
在本发明提供的方法中,可以依次确定每一个数据类型对应的搜索模式;也可以同时确定所有数据类型分别对应的搜索模式;其中,所述确定每一个所述数据类型各自对应的搜索模式,可以通过将各个数据类型批量导入搜索模式查询模块,以同时确定每一个所述数据类型各自对应的搜索模式,即搜索类型。
步骤S202:依据预先存储的搜索模式与搜索程序的对应关系,获取所述搜索模式对应的搜索程序;
在本发明中,依据每一个数据类型各自对应的搜索模式,通过查询数据库中预先存储的搜索模式与搜索程序的对应关系,获取与每一个搜索模式对应的搜索程序,其中所述搜索程序可以为不同的FPGA硬件电路程序,用于执行各种数据搜索任务。
步骤S203:将所述搜索程序分配给与其对应的数据类型。
在本发明中,所述将所述搜索程序分配给与其对应的数据类型,可以通过将所述搜索程序分别加载到与每一个数据类型相对应的存储单元,以将所述搜索程序分配给所述数据类型;其中每一个存储单元对应一个基本逻辑单元,存储在存储单元的数据,决定了逻辑单元的逻辑功能。
通过应用本发明提供的数据搜索方法,为每一个所述数据类型建立与其对应的搜索程序,可以实现对待搜波形中需要搜索的多个数据类型的并行搜索。
参考图3,示出了本发明提供的一种数据搜索方法的又一方法流程图,所述获取每一个所述搜索程序各自需要进行搜索的待搜波形数据包括:
步骤S301:确定每一个所述搜索程序进行搜索时各自对应的数据类型;
在本发明提供的方法中,依据搜索程序与数据类型的对应关系,确定每一个所述搜索程序进行搜索时各自对应的数据类型。
步骤S302:对每一个所述数据类型进行解析;
在本发明中,对每一个所述数据类型进行解析,其中所述数据类型可以为周期/频率、上升/下降时间、正/负占空比、边沿数据类型等,以确定该数据类型对应的需要搜索的波形数据是待搜波形的源数据,还是经过测量模块测量的测量数据。
步骤S303:获取每一个数据类型各自对应的需要进行搜索的待搜波形数据。
在本发明中,对于任意一个数据类型,若该数据类型对应的是源数据,则获取对待搜波形经过二值化处理的波形数据;若该数据类型对应的是测量数据,则将经过二值化处理的波形数据发送到与该数据类型对应的测量模块进行测量,获取该测量模块输出的测量数据。
参考图4,示出了本发明提供的一种数据搜索方法的又一方法流程图,所述触发每一个所述搜索程序,按照预设的搜索条件,同时对其各自所需搜索的待搜波形数据进行搜索包括:
步骤S401:确定每一个所述搜索程序各自对应的搜索条件;
在本发明提供的方法中,依据用户对每一个数据类型所预设的上限值和下限值,从而确定每一个所述搜索程序各自对应的搜索条件,其中依据预设的上限值和下限值对待搜波形数据进行比较,得到满足在阀值范围内的波形数据所对应的位置信息。
步骤S402:向每一个所述搜索程序发送触发指令;
在本发明中,所述向每一个所述搜索程序发送触发指令,可以通过微处理器向每一个所述搜索程序发送触发指令,其中,可以根据用户的需求,预先设置时间节点,当到达所述时间节点时,通过微处理器向每一个所述搜索程序发送触发指令;也可以当用户输入搜索开始指令时,微处理器通过FPGA内部总线向每一个搜索程序发送触发指令。
步骤S403:触发每一个所述搜索程序依据所述触发指令,按照其各自对应的搜索条件,以流水线的方式,同时对其各自所需搜索的待搜波形数据进行搜索。
在本发明中,通过触发每一个所述搜索程序依据所述触发指令,按照其各自对应的搜索条件,采用流水线的方式,同时对其各自所需搜索的待搜波形数据进行搜索,其中,所述流水线基于FPGA硬件电路程序实现,每个所述搜索线程在进行搜索时,通过流水线的处理方式,分别对其对应的待搜波形数据进行搜索。
其中流水线的处理过程为:
获取波形数据流中的第一数据;
将所述第一数据和预设的搜索条件进行比较,得到第一比较结果,同时,读取所述波形数据流中的第二数据;
标记并缓存所述第一比较结果,同时将所述第二数据和预设的搜索条件进行比较,得到第二比较结果;同时读取所述波形数据流中的第三数据。
通过应用本发明提供的数据搜索方法,采用流水线的处理方式,在相同的时间可以完成更多的搜索操作,进一步提高了数据搜索速度;由于FPGA的并行特性,搜索时对系统的其它操作不会产生影响,进而不会出现系统卡顿的情况。
在本发明提供的搜索方法中,该方法还包括:
输出每一个所述搜索程序的搜索结果,并对每一个所述搜索结果以环形存储的方式进行存储。
在本发明中,所述输出每一个所述搜索程序的搜索结果,可以实时输出每一个搜索程序对应的搜索结果,即对于任意一个所述搜索程序,当其搜索出一个异常数据时,将该异常数据对应的位置信息进行输出;也可以将每一个搜索程序搜索的异常数据进行标记,当搜索完成时,将所有标记的异常数据所对应的位置信息同时输出。
在本发明中,对于每一个搜索程序输出的搜索结果,采用环形存储的方式进行存储。
参考图8,示出了本发明提供的环形存储的结构示意图,其中环形存储是将图8中的直条缓存进行环绕,头尾相接成环形,假设搜索结果从P0开始存储,环形RAM起始地址为A,那么当存储到Y一部分数据时,存储区会被填满,这时如果停止存储,就会出现左边的数据较多。右边只有Y的一部分数据,即搜索结果不是集中在中间附近。解决的方法是,写地址绕回去从A地址继续存储右边的数据,当右边的数据长度超过了Y则停止。最终左边从P0开始的部分数据被Y数据覆盖,剩下X长度保留下来。即此时缓存中保留着X+Y的搜索结果。
其中,环形存储搜索结果的实现方式可以为将采样数据按50%搜索数据分为两部分,每部分搜索到满足条件的结果都进行标记,允许总的标记数为N。前半段最大标记数为N/2,后半段最大标记数为N/2。前半段实际标记数为x,后半段实际标记数为y。
具体的存储过程为从起始地址0开始存储所述标记结果中的数据,判断前半部分波形数据流中实际标记数x是否大于前半部分允许的最大标记数N/2;其中,N为所述波形数据流中总的允许最大标记数;
如果是,判断后半部分波形数据流中实际标记数y是否大于后半部分允许的最大标记数N/2,如果是,则存储完前半部分波形数据流中标记的x个数据后,存储后半部分波形数据流中标记的数据中的前N/2个标记的数据;如果否,则存储完前半部分波形数据流中标记的x个数据后,存储后半部分波形数据流中标记的y个数据;
如果否,判断后半部分波形数据流中实际标记数y是否大于N-x,如果是,则在存储完前半部分波形数据流中标记的x个数据后,继续存储后半部分波形数据流中标记的数据中的前N-x个标记的数据;如果否,则存储前半部分波形数据流中标记的x个数据后,存储后半部分波形数据流中标记的y个数据。
判断x+y是否大于N;如果是,则从停止存储标记数据的存储地址的下一存储地址开始读取存储的标记数据;如果否,则从所述起始地址0开始读取存储的标记数据。
通过应用本发明提供的数据搜索方法,将每一个搜索程序对应的搜索结果进行输出,并对所述搜索结果以环形存储的方式进行存储,可以方便测试人员查询波形中的异常数据,以提高波形分析的准确性。
与图1所述方法相对应的,本发明还提供了一种数据搜索系统,其结构示意图如图5所示,该系统包括:
确定单元501,用于确定待搜波形中需要搜索的各个数据类型;
建立单元502,用于为每一个所述数据类型建立与其对应的搜索程序;
获取单元503,用于获取每一个所述搜索程序各自需要进行搜索的待搜波形数据;
搜索单元504,用于触发每一个所述搜索程序,按照预设的搜索条件,同时对其各自所需搜索的待搜波形数据进行搜索。
通过应用本发明提供的数据搜索系统,确定待搜波形中需要搜索的各个数据类型;为每一个所述数据类型建立与其对应的搜索程序;获取每一个所述搜索程序各自需要进行搜索的待搜波形数据;触发每一个所述搜索程序,按照预设的搜索条件,可以实现同时对其各自所需搜索的待搜波形数据进行搜索,从而有效提高了波形搜索速度及用户的体验效果。
图6示出了本发明提供的数据搜索系统的又一结构示意图,该系统还包括:
存储单元505,用于输出每一个所述搜索程序的搜索结果,并对每一个所述搜索结果以环形存储的方式进行存储。
在本发明提供的系统中,所述建立单元502包括:
第一确定子单元5021,用于确定每一个所述数据类型各自对应的搜索模式;
第一获取子单元5022,用于依据预先存储的搜索模式与搜索程序的对应关系,获取所述搜索模式对应的搜索程序;
分配子单元5023,用于将所述搜索程序分配给与其对应的数据类型。
在本发明提供的系统中,所述获取单元503包括:
第二确定子单元5031,用于确定每一个所述搜索程序进行搜索时各自对应的数据类型;
解析子单元5032,用于对每一个所述数据类型进行解析;
第二获取子单元5033,用于获取每一个数据类型各自对应的需要进行搜索的待搜波形数据。
在本发明提供的系统中,所述搜索单元504包括:
第三确定子单元5041,用于确定每一个所述搜索程序各自对应的搜索条件;
发送子单元5042,用于向每一个所述搜索程序发送触发指令;
触发子单元5043,用于触发每一个所述搜索程序依据所述触发指令,按照其各自对应的搜索条件,以流水线的方式,同时对其各自所需搜索的待搜波形数据进行搜索。
图7示出了本发明提供的一种数据搜索系统的又一结构示意图,该系统包括:区间检测模块、二值化处理模块、多个测量模块、多个搜索模块、匹配模块和存储模块;
所述区间检测模块,用于对输入的待搜波形的数据进行筛选,得到搜索目标数据;
所述二值化处理模块,用于对所述搜索目标数据进行二值化,得到二值化搜索目标数据;
所述多个测量模块,用于分别根据预定的测量参数对所述二值化搜索目标数据进行参数测量,分别得到对应的测量数据,并发送给所述匹配模块;
所述匹配模块,用于根据预设上限值和预设下限值对接收到的所述测量数据进行比较,确定满足阈值条件的数据在数据流中的位置;
所述多个搜索模块,用于分别根据预设的搜索条件同时对其各自接收的所述二值化搜索目标数据进行搜索,分别得到对应的搜索结果;
所述存储模块,用于存储所述匹配结果和所述搜索结果,得到波形搜索结果。
本发明提出的数据搜索系统采用全新搜索结构,既可对原始数据进行搜索,也可将测量模块的输出作为搜索源进行搜索,并采用流水线操作,在测量模块进行测量的同时也可以同步进行搜索,提高了搜索效率;同时采用优化的存储策略,确保当搜索结果数量超出了存储器的长度时,实现保留搜索中心附近的结果;采用全硬件进行并行运算,解决软件存在的顺序处理的短板,保证了搜索速度。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本发明时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
以上对本发明所提供的一种数据搜索方法及系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。