实用新型内容
有鉴于此,本实用新型公开了一种基于深度存储的示波器,不仅能够针对深度存储的海量数据进行快速存储,并且提高了数据处理的能力,进而确保示波器实时响应用户的操作,充分挖掘深度存储的价值。
本实用新型公开了一种基于深度存储的示波器,包括:
深存储器模块、参数测量模块、波形搜索模块和波形显示模块;
其中,所述深存储器模块包括多个子存储器模块,多个所述子存储器模块并行存储采样得到的原始波形数据;
所述参数测量模块与所述深存储器模块连接,所述参数测量模块包括多个基于多种参数并行处理的测量单元,所述参数测量模块对所述深存储器模块存储的全部采样数据进行并行处理,以同时获得多种参数测量结果;
所述波形搜索模块与所述参数测量模块连接,所述波形搜索模块包括多个并行的类型搜索单元,其中,所述类型搜索单元基于一种搜索类型进行搜索;所述波形搜索模块对所述参数测量模块获得的测量参数同时进行多种类型参数的搜索;
所述波形显示模块分别与所述深存储器模块、所述参数测量模块、和波形搜索模块连接,所述波形显示模块对所述深存储器模块存储的原始波形数据、所述波形搜索模块搜索到的波形数据和所述参数测量模块测量的参数数据进行显示。
优选的,所述子存储器模块,包括:
存储单元、第一现场可编程逻辑阵列FPGA单元;
其中,所述存储单元由多个动态存储器并行组成,通过总线与所述第一 FPGA单元进行数据传输;所述第一FPGA单元将输入的原始波形数据传输到所述存储单元进行存储。
优选的,所述深存储器模块,包括:
第一子存储器模块、第二子存储器模块、第三子存储器模块、第四子存储器模块和第二FPGA单元;
其中,所述第一子存储器模块的输入端和所述第三子存储器模块的输入端接收原始波形数据;
所述第一子存储器模块和第二子存储器模块级联连接,所述原始波形数据由所述第一子存储器模块输出到所述第二子存储器模块;所述第三子存储器模块和第四子存储器模块进行级联连接,所述原始波形数据由所述第三子存储器模块输出到所述第四子存储器模块;所述第二子存储模块和所述第四子存储器模块的输出端与所述第二FPGA单元连接,所述第二FPGA单元控制所述各子存储器模块存储的数据输出。
优选的,所述参数测量模块,包括:
数据加载单元和测量结果输出单元;
其中,所述数据加载单元分别与所述深存储器模块和所述各测量单元相连,所述数据加载单元读取所述深存储器模块的原始波形数据,并将读取到的原始波形数据输送到所述各测量单元中进行并行测量;
所述测量结果输出单元分别与所述各测量单元相连,所述测量结果输出单元将所述各测量单元同时获得的多种测量参数输出。
优选的,所述波形搜索模块,包括:
搜索结果选择单元和搜索结果缓存单元;
其中,所述搜索结果选择单元分别与所述多个并行的类型搜索单元连接,所述搜索结果选择单元根据设定的搜索类型从获取的各个所述类型搜索单元的搜索结果中选择对应的搜索类型数据;
所述搜索结果缓存单元对所述搜索结果选择单元得到的搜索类型数据进行环形缓存。
优选的,所述示波器,还包括:
运算模块;
其中,所述运算模块分别与所述深存储器模块、所述参数测量模块和所述波形显示模块连接,所述运算模块对所述深存储器模块存储的原始波形数据进行数学运算,并将运算结果输出给所述参数测量模块进行参数测量或者输送给所述波形显示模块进行显示。
优选的,所述运算模块,包括:
输入互联矩阵单元、多个子运算单元和输出互联矩阵单元;
其中,所述输入互联矩阵单元的输入量为所述深存储器模块存储的原始波形数据和所述子运算单元输出的中间运算结果,所述输入互联矩阵单元将所述深存储器模块存储的原始波形数据和所述子运算单元输出的中间运算结果输出给所述子运算单元进行数学运算;
所述各子运算单元与所述输入互联矩阵单元连接,各个所述子运算单元对接收的输入量进行数学运算;
所述输出互联矩阵单元与所述各子运算单元之间进行互联,所述输出互联矩阵单元将所述子运算单元的最终运算结果进行输出,以及将所述子运算单元的中间运算结果输入到所述输入互联矩阵单元,以作为所述子运算单元的输入量。
优选的,所述参数测量模块、所述波形搜索模块以及所述运算模块均采用流水线方式进行数据处理。
相对于现有技术,本实用新型的有益效果是:本实用新型通过深存储器模块并行存储采样得到原始波形数据,不仅增大了存储容量还提高了存储速率;并且基于全部原始波形数据通过参数测量模块进行参数测量,以便波形搜索模块对测量参数进行搜索,从而提高波形搜索的准确性;各模块采用并行处理方式进行数据操作,提高了数据处理的能力,进而确保示波器实时响应用户的操作,充分挖掘深度存储的价值。
具体实施方式
下面将结合本实用新型实施例中的附图,对本实用新型实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本实用新型一部分实施例,而不是全部的实施例。基于本实用新型中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本实用新型保护的范围。
本实用新型公开了一种基于深度存储的示波器,不仅能够针对深度存储的海量数据进行快速存储,并且提高了数据处理的能力,进而确保示波器实时响应用户的操作,充分挖掘深度存储的价值。
参见图1,本实用新型公开了一种基于深度存储的示波器,包括:
深存储器模块101、参数测量模块102、波形搜索模块103、波形显示模块104;
其中,所述深存储器模块101包括多个子存储器模块,并行存储采样得到的原始波形数据,能够提高存储器的存储容量,并且所述子存储器模块之间是独立的;其中,所述示波器的存储深度为512Mpts,即所述示波器的最大存储为512百万个采样点,也就是需要对512百万个原始波形数据进行存储;
所述参数测量模块102与所述深存储器模块连接,所述参数测量模块102 包括多个并行的测量单元,对所述深存储器模块101存储的512百万个采样数据进行并行处理,以同时获得多种参数测量结果,其中,所述测量单元基于一种参数进行测量,这样所述参数测量模块中的多个测量单元能够同时进行多种参数的测量,也就是说,针对N个参数的测量,需要时间T,本实用新型利用并行测量的方式,测量N个参数的时间缩短为N/T,从而提高数据处理的速率;并且所述参数测量模块102是针对512Mpts的原始波形数据进行参数测量的,从而保证参数测量的准确性。其中,需要测量的参数可以为电压参数/幅度参数:幅度、峰峰值、最大值、最小值、过冲、有效值等;时间参数:上升时间/下降时间、周期/频率、脉冲宽度、占空比、时间差、建立时间/保持时间等;计数参数:上升/下降沿计数、触发频率、统计样本数量等 51种参数类型。
所述波形搜索模块103与所述参数测量模块102连接,所述波形搜索模块103包括多个并行的类型搜索单元,对所述参数测量模块102获得的测量参数同时进行多种类型参数的搜索;其中,所述类型搜索单元基于一种搜索类型进行搜索;波形搜索可以为边沿、脉宽(正脉宽和负脉宽)、上升时间、下降时间、周期、频率和欠幅等条件的搜索。本实施例中通过所述模型搜索模块103内的每个类型搜索单元按照用户选择的一种搜索类型进行测量参数搜索处理,多个类型搜索单元高速并行处理,从而提高波形搜索效率。
所述波形显示模块104分别与所述深存储器模块101、所述参数测量模块 102、和波形搜索模块103连接,能够对原始采样波形、搜索到的异常波形和测量的参数数据进行显示。其中,波形显示模块可以对原始采样波形显示,波形显示可以将512Mpts海量波形从左至右(或从右至左)依次滚动显示,无需人工干预即可按顺序播放所有波形。由于512Mpts数据同时显示在屏幕上时是非常密集的,可以通过波形缩放功能查看局部放大的波形,而对于搜索到的异常波形的显示也通过缩放功能对异常波形进行分析,所述波形搜索模块103能够对搜索的异常波形的坐标位置进行标记,所述波形显示模块104 能够自动跳转到标记的异常波形的位置,从而实现对搜索到的异常波形的显示。另外,测量的参数数据以列表的形式显示,以便用户对测量的参数进行查看。
需要说明的是,本实施例公开的示波器采用了多片大规模FPGA全硬件进行并行数据处理,从而保证海量数据的实时处理能力。FPGA是一种现场可编程器件,通过软件编程方式来更改内部电路结构实现不同功能。
本实施例中,通过深存储模块101并行存储采样得到原始波形数据,不仅增大了存储容量还提高了存储速率;并且基于全部采样数据通过参数测量模块102进行参数测量,以便波形搜索模块103对测量参数进行分析,而且提高了波形搜索的准确性;并且各模块采用并行处理的方式,确保示波器实时响应用户的操作,从而充分挖掘深度存储的价值。
优选的,另一实施例中,参见图2,所述深存储器模块101,包括:
第一子存储器模块105、第二子存储器模块106、第三子存储器模块107、第四子存储器模块108和第二FPGA单元109;
其中,所述子存储器模块包括一个FPGA单元和与所述FPGA单元相连的存储单元,所述子存储器模块内的FPGA单元作为第一FPGA单元,所述存储单元由多个动态存储器DDR3并行组成,通过总线与所述FPGA单元进行数据传输。所述FPGA单元将输入的原始波形数据传输到所述存储单元进行存储。其中所述存储单元中动态存储器DDR3的个数可以根据FPGA硬件的处理能力的增强而增加。
所述第一子存储器模块105的输入端和所述第三子存储器模块107的输入端接收原始波形采样数据;所述第一子存储器模块105和第二子存储器模块106级联连接,所述原始波形采样数据由所述第一子存储器模块105输出到所述第二子存储器模块106;由于所述第一子存储器模块105和第二子存储器模块106级联连接,在处理同一个单位的数据时,可以分到两个FPGA单元同时进行数据处理,从而处理数据的总时间减少,存取速率增加;所述第三子存储器模块107和第四子存储器模块108进行级联连接,所述原始波形采样数据由所述第三子存储器模块107输出到所述第四子存储器模块108;所述第二子存储模块106和所述第四子存储器模块108的输出端分别与另一 FPGA单元连接,以此FPGA单元作为第二FPGA单元109,所述第二FPGA 单元109用于控制所述各子存储器模块存储的数据的输出,而第一FPGA单元的作用是控制与之连接的存储单元的数据传输。需要说明的是,每个子存储器模块都是独立的,能够独自处理输入到其内部的数据。
为方便理解,假设一个存储单元的存储容量为d,本实施例中提供的深存储器模块101的子存储器模块的个数为4,则本实施例中提供的深存储器的总存储容量D=4*d,可见,增加了存储单元的个数,能够增加深存储器的总存储容量。而通过级联两个子存储器模块,在处理同一个单位的数据时,可以分到两个FPGA单元中同时进行数据处理,从而处理数据的总时间减少,进而提高数据处理速度,从而提高了所述深存储器模块101的处理性能。
需要说明的是,本实施例中不限定子存储器模块的个数,具体根据所述深存储器模块101的存储容量需求而定。优选的,FPGA单元采用XC7K160T 型号的FPGA器件,其逻辑资源能够达到16万,处理速度能够进一步加快,且其数据处理架构相对于现有技术中的FPGA发生变化,进而提升了处理性能。
传统FPGA的数据处理架构:通常的数据流程为:数据经“存储单元控制器”控制从“存储单元”读取,经过“位宽转换”模块做降速处理,再经“数据抽样”模块进行处理后,再送到各“功能模块”。设“数据抽样”的总线位宽为L1(通常很小,如32),存储单元控制器的输出总线位宽为L2 (通常远大于L1,如512)。传统方案通常受限于资源或设计难度,通常的抽样模块和位宽转换模块是分开的。在较低的总线位宽(L1)下,处理资源少(通常为32或64位),容易现实,但是处理时间长。
假设需要处理的数据总量为M(bits),则传统的数据处理架构需要处理的时间为:
相对于传统的FPGA的数据处理架构,本实施例提供的数据处理架构,利用大规模FPGA资源多的优点,做了并行加速处理,在物理结构上将“位宽转换”和“数据抽样”模块结合组成“快速抽样模块”。则本实施例中提供的大规模FPGA的数据处理架构需要处理的时间为:
对比公式(1)和公式(2),可得本实用新型的高性能数据处理架构的处理性能是传统数据处理架构的L2/L1倍。而在实际应用中,L2为512,L1 为64,相比传统方案性能提升了8倍。传统方案中由于FPGA的资源较少,通常情况下,L1为32,相对于L1为32的情况,本实施例中的处理数据性能提高了16倍。所有的系统中,基本上都会有数据抽样处理的操作,包括峰值抽样、等间隔抽样等,抽样倍率通常为任意整数。因此,本实施例中的L2和 L1数据不仅限于此,在此不再进行赘述。
由此可以看出,本实施例提供的深存储器模块101,由于增加了子存储器模块的个数,随之增加了存储单元的个数,进而提高了深存储器的总存储容量和总带宽。由于增加的子存储器与现有的子存储器的之间为级联,从而提高了数据处理的速度,进而提高了深存储器模块101的处理性能。另外,在器件选择方面,FPGA单元优选逻辑资源能够高达16万的FPGA硬件,进一步提高了所述深存储器模块101的处理性能,由于FPGA单元为大规模的FPGA,存储单元中DDR3颗粒的个数能够随之增加,进一步增大了深存储器模块101的总存储容量和总带宽,从而解决了现有示波器存储方面容量小、带宽低和处理性能差的问题。
优选的,另一实施例中,参见图3,公开了一种基于深度存储的示波器,包括:深存储器模块101、参数测量模块102、波形搜索模块103、波形显示模块104;
其中,所述参数测量模块102包括:数据加载单元110、多个并行测量单元111和测量结果输出单元112;
所述波形搜索模块103包括:多个并行类型搜索单元113、搜索结果选择单元114、和搜索结果缓存单元115;
所述数据加载单元110分别与所述深存储器模块101和所述各测量单元相连,用于读取所述深存储器模块101的原始波形数据,并将读取到的原始波形数据输送到所述各测量单元中进行并行测量,需要说明的是,所述数据加载单元110的输入端与所述深存储器模块101的第二FPGA单元109的输出端相连,所述第二FPGA单元109控制将各子存储器模块中的数据输出到所述参数测量模块102的数据加载单元110,以便各测量单元中对接收到原始波形数据进行并行参数测量。
所述测量单元可以包括第一测量单元、第二测量单元、第三测量单元,但不限于本实施例中的测量单元,测量单元的个数根据实际需求设定,本实施例只是举例说明所述测量单元的功能。其中所述第一测量单元、第二测量单元、第三测量单元分别针对一种参数类型进行测量。待测参数类型可以为电压参数/幅度参数:幅度、峰峰值、最大值、最小值、过冲、有效值等;时间参数:上升时间/下降时间、周期/频率、脉冲宽度、占空比、时间差、建立时间/保持时间等;计数参数:上升/下降沿计数、触发频率、统计样本数量等 51种参数类型。所述第一测量单元、第二测量单元、第三测量单元的功能可以根据需求进行参数类型的选择,并通过软件编程方式来更改FPGA内部电路结构实现不同参数的测量功能;然后根据所述数据加载单元110获取的原始波形数据以及预先设定的待测参数类型,并行测量所述各待测参数类型的参数测量值。例如,所述第一测量单元对峰峰值进行测量,所述第二测量单元对最大值进行测量,所述第三测量单元对上升时间进行测量,通过所述第一测量单元、第二测量单元、第三测量单元并行处理的特点,可以同时获得峰峰值、最大值和上升时间三种参数类型的测量值。需要说明的是,所述测量单元中包含多个计算单元,所述计算单元能够实现但不限于加法、减法、除法、乘法、开方、指数、对数、三角函数、平方、微分、积分等功能,并且所述各计算单元之间采用流水线的方式并行计算,也就是说第M次运算不必等待第M-1次运算的完成后再运算,可以同时运算,这是FPGA并行处理数据的优势,进而提高数学运算速度。由于硬件FPGA的并行特性,运算时对系统的其它操作不会产生影响,进而不会出现系统卡顿的情况。
最后,与所述各测量单元相连的测量结果输出单元112将所述各测量单元同时获得的多种测量参数输出,以便所述波形搜索模块103根据所述测量结果输出单元112输出的测量参数进行波形搜索。
所述多个并行的类型搜索单元113与所述测量结果输出单元112连接,其中一个类型搜索单元基于一种搜索类型进行搜索,所述类型搜索单元的个数根据需求进行设定。多个类型搜索单元113对所述测量结果输出单元112 输出的测量参数进行并行搜索,其中,搜索类型可以为边沿、脉宽(正脉宽和负脉宽)、上升时间、下降时间、周期、频率和欠幅等异常波形类型的搜索。通过多个类型搜索单元113并行搜索,能够同时完成设定的所有搜索类型的搜索。所述搜索结果选择单元114根据选定的搜索类型从各个所述类型搜索单元获取的搜索结果中选择相应的搜索类型数。最后所述搜索结果缓存单元115对所述搜索结果选择单元114得到的搜索类型数据进行环形缓存,其中,为了能够在屏幕中指示出异常信号在正在整屏波形中的位置,搜索结果应返回满足条件的目标在波形库中的坐标值,所以通过环形缓存器对搜索到的选定类型的异常数据的坐标值进行缓存。当所述波形显示模块104对搜索到的异常波形进行显示时,只需调用所述环形缓存器存储的坐标值,并在所述坐标值的位置进行标记,当用户选定显示某种类型的异常波形时,示波器屏幕中显示的波形能够快速跳转到标记位置。
本实施例中,参数测量模块102能够针对所有原始波形数据进行参数测量,从而在512Mpts的存储深度下,基于原始采样率来计算,保证参数测量的准确性,并且能够支持多达51种参数测量项,实现真正意义上的参数测量。通过多个测量单元的并行处理,实现参数的快速测量和统计,保证实时响应用户的操作。波形搜索模块103能够并行搜索多种异常类型数据,提高了波形搜索的速度,并且基于参数测量模块102针对原始波形数据的参数测量,也保证了波形搜索的准确性。
优选的,另一实施例中,参见图4,公开一种基于深度存储的示波器,还包括:
运算模块116,所述运算模块116分别与所述深存储器模块101和参数测量模块102连接,能够对所述深存储器模块101中的原始波形数据进行数学运算,以便所述参数测量模块102进行参数测量;可以理解为参数测量模块102进行某些参数测量时,不能直接对原始波形数据进行参数测量,需要所述运算模块116对原始波形数据进行处理后才能进行相关参数的测量。
其中,所述运算模块116包括:输入互联矩阵单元117、多个并行的子运算单元118和输出互联矩阵单元119;
所述输入互联矩阵单元118的输入量为所述深存储器模块101存储的原始波形数据和所述子运算单元输出的中间运算结果,所述输入互联矩阵单元 118将所述深存储器模块101存储的原始波形数据和所述子运算单元输出的中间运算结果输出给所述子运算单元进行数学运算;
所述各子运算单元118与所述输入互联矩阵单元117连接,用于对接收的输入量进行数学运算;
所述输出互联矩阵单元119与所述各子运算单元118之间进行互联,用于将所述子运算单元的最终运算结果进行输出,以及将所述子运算单元的中间运算结果输入到所述输入互联矩阵单元117,以作为所述子运算单元的输入量。
需要说明的是,所述运算模块116并行进行数学运算,并且各个子运算单元118之间实现多级任意互联,使得数学运算的拆分次数变少,进而提高数学运算速度。并且由于FPGA的并行特性,运算时对系统的其它操作不会产生影响,进而不会出现系统卡顿的情况。
其中,所述输入互联矩阵单元117读取所述深存储器模块101的原始波形数据,并将获取的原始波形数据作为子运算单元的输入量,以及获取第一子运算单元输出的运算结果,并将第一运算单元输出的运算结果作为第二运算单元的输入量。当其中一个子运算单元输出的运算结果作为另一个子运算单元的输入量时,我们定义前者为第一子运算单元,后者为第二子运算单元,即第一子运算单元和第二子运算单元是针对在一个子运算单元输出的运算结果作为另一个子运算单元的输入量时的名称,同一个子运算单元,在不同的运算过程中既可以是第一子运算单元,也可以是第二子运算单元。
所述输出互联矩阵单元119将第一子运算单元输出的运算结果作为第二子运算单元的输入量,以及将第三子运算单元输出的运算结果作为最终运算输出(y),我们定义输出的运算结果作为最终运算输出的运算单元为第三子运算单元,同样的,同一个子运算单元,在不同的运算过程中可以是第一子运算单元、第二子运算单元或第三子运算单元。所述子运算单元包括但不限于加法单元、减法单元、除法单元、乘法单元、开方单元、指数单元、对数单元、三角函数单元、平方单元、微分单元、积分单元等。
另外,所述子运算单元采用流水线处理方式进行数学运算。为方便理解,假设FPGA运算结构完成一次数学运算需要时间L个系统时钟周期T,要进行M次数学运算。当采用非流水处理方式进行运算时,需要时间为M*L*T。当采用流水线处理方式进行运算时,由于第M次运算不必等待第M-1次运算的完成后再运算,可以同时运算,完成M次数学运算需要的时间为(M+L-1) *T。可见,采用流水线处理方式能够提高数学运算的速度。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本实用新型。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本实用新型的精神或范围的情况下,在其它实施例中实现。因此,本实用新型将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。