一种示波记录仪的多通道数据存储方法与流程

文档序号:11386119阅读:347来源:国知局
一种示波记录仪的多通道数据存储方法与流程

本发明属于示波记录仪的数据存储技术领域,更为具体地讲,涉及一种示波记录仪的多通道数据存储方法。



背景技术:

示波记录仪作为功能强大的便携式数据采集记录仪,可以捕捉与分析瞬态时间,显示长达200天的趋势波形,通过插拔模块。可以灵活组合电信号和物理信号的测量,被广泛的应用在各个行业中,因此需要示波记录仪具有多种功能以满足各种测试场合的需求。在当前市场上的示波记录仪中,实时功率运算、实时记录、双捕获,深存储功能是一台示波记录仪必备的功能,要实现这些功能,需要将采集到的数据进行存储;同时,面对不同的被测参数,示波记录所需的存储长度也应可动态配置,以满足各个行业的测试需求。经过研究发现,国内现有多通道采集系统中的存储主要有以下缺陷,

(1)、硬件存储资源浪费,比如4通道的采集系统同用一个存储长度为l的存储器,则每个通道存储长度为当用户选择观察单通道数据时,存储器中有存储资源存储用户不关心数据,导致存储资源浪费。

(2)、多数多通道采集系统设计完成之后,采集通道个数不可以更改,这样用户想观察额外的采集数据时候,只能用多个采集系统进行比较,但这样并不方便。



技术实现要素:

本发明的目的在于克服现有技术的不足,提供一种示波记录仪的多通道数据存储方法,通过对多个通道的数据进行选择和位宽转换,来实现多通道数据的存储。

为实现上述发明目的,本发明一种示波记录仪的多通道数据存储方法,其特征在于,包括以下步骤:

(1)、用户通过采集板卡的插拔状态获得n个通道的数据流;

(2)、通过示波记录仪的人机交互界面设置数据选择模块、数据位宽转换模块和存储数据恢复fifo阵列的对应参数;

(3)、将n通道的数据流输入到数据选择模块,数据选择模块任意选取其中2t(2t≤n,t=0,1,2…)个通道的数据,并将其作为输出数据流发送给数据位宽转换模块;

(4)、数据位宽转换模块按时钟周期接收输出数据流,且每个时钟周期接收到的有效输出数据流的位宽为2tmbit,再通过数据位宽转换模块将位宽为2tmbit的有效输出数据流转换为位宽为m/2bit的数据,m为每个通道的数据位宽,m为大容量存储器的数据位宽;

(5)、当输出数据流有效信号置为1时,前端数据缓存模块的写使能有效,将位宽为m/2bit的数据写入前端数据缓存模块中;

(6)、当存储器控制器接收到用户的写大容量动态存储指令时,在存储器控制器的写使能信号控制下,将前端数据缓存模块中的数据写入到大容量动态存储器;

(7)、当存储器控制器接收到用户的读大容量动态存储指令时,在存储器控制器读使能信号控制下,将大容量动态存储器中的数据读出送给存储数据恢复fifo阵列;

(8)、存储数据恢复fifo阵列按照时钟周期接收大容量动态存储器读出数据,并将每个时钟周期接收的数据转换为位宽为2tmbit的数据,再发送给抽点模块;

(9)、抽点模块将收到的数据进行抽点,降低数据的采样率,再送到后端数据缓存,后端数据缓存采用兼容统一控制的方法将收到的2t个通道的数据进行缓存,当后端数据缓存存储满后,上位机从后端数据缓存中读取数据,并在上位机缓存区显示。

本发明的发明目的是这样实现的:

本发明一种示波记录仪的多通道数据存储方法,数据选择模块对经过模数转换的输入信号进行选择,之后经过数据位宽转换模块将不同通道数的数据位宽转换为合适的输出位宽,经过前端数据缓存模块后输入大容量动态存储器,在存储器控制器的读的指令下,数据被读出大容量动态存储器,输入至存储数据恢复fifo阵列,存储数据恢复fifo阵列将大容量动态存储器的输出位宽转换为大容量动态存储器中存储的多通道数据对应的的数据位宽,经过存储数据恢复fifo阵列之后,数据送给抽点模块进行抽点,降低数据的采样率,之后送给后端数据数据缓存模块进行缓存,最终传给上位机。

同时,本发明一种示波记录仪的多通道数据存储方法还具有以下有益效果:

(1)、根据用户的指令实现了对输入数据流中任意通道数据的选择,同时对不同通道数的数据灵活的进行存储,使存储器器中的数据都是用户选择的数据,而没有冗余数据。

(2)、本发明考虑到fifo消耗fpga内部资源的问题,在例化fifo的时候对fifo的输入输出位宽进行了最优的选择。通过多级fifo级联的方式将从大容量动态存储器输出的数据位宽需要转换为用户需要的多种数据位宽,相比于分别转换的方式,更加节约资源。

(3)、灵活的配置采集通道的个数,突破了传统意义示波器上采集通道数固定的模式。

附图说明

图1是示波记录仪的多通道数据存储装置原理框图;

图2是本发明一种示波记录仪的多通道数据存储方法流程图;

图3是数据选择模块中通道及对应数据选择示意图;

图4是位宽转换示意图;

图5是存储数据恢复fifo阵列对不同通道读出数据进行位宽转换示意图;

图6是抽点模块与后端数据缓存的存储示意图。

具体实施方式

下面结合附图对本发明的具体实施方式进行描述,以便本领域的技术人员更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。

实施例

图1是示波记录仪的多通道数据存储装置原理框图。

在本实施例中,如图1所示,示波记录仪的多通道数据存储装置包括一个数据选择模块,一个数据位宽转换模块、一个前端数据缓存模块、一个存储器控制器,一个存储数据恢复fifo阵列,一个抽点模块与后端数据缓存模块和一个大容量动态存储器。其中,数据选择模块、数据位宽转换模块、前端数据缓存模块、存储器控制器、存储数据恢复fifo阵列,抽点模块与后端数据缓存模块均在fpga中实现。

图2是本发明一种示波记录仪的多通道数据存储方法流程图。

下面结合图1对示波记录仪的多通道数据存储装置进行多通道数据存储进行详细说明。

如图2所示,本发明一种示波记录仪的多通道数据存储方法,包括以下步骤:

s1、用户通过配置采集板卡的插拔状态获得n个通道的数据流;

在本实施例中,人机交互界面配置采集板卡的数目为8块,每个板卡拥有16个通道且每个通道的数据位宽是16bit。

s2、通过示波记录仪的人机交互界面设置数据选择模块、数据位宽转换模块和存储数据恢复fifo阵列的对应参数;

在本实施例中,默认设置数据选择模块选择2t个通道数据;设置位宽转换模块对2t个通道数据进行位宽转换,同时设置每个通道的数据的存储深度为w2t,由于用户可以选择的通道数可变,对于容量w大小恒定的大容量动态存储器,每通道数据的存储深度也可变,但是每个通道的存储深度w2t和选择的通道数2t的乘积要小于等于大容量动态存储器的容量w;设置存储数据恢复fifo阵列将从大容量动态存储器输出数据的位宽转换为2t个通道所需的数据位宽,其中,2t≤n,t=0,1,2…。

s3、将n通道的数据流输入到数据选择模块,数据选择模块任意选取其中2t(2t≤n,t=0,1,2…)个通道的数据,并将其作为输出数据流发送给数据位宽转换模块;

在本实施例中,数据选择模块将128路100mhz数据流data作为采集的海量数据流作为输入,用户可以得到任意2t个通道(2t≤128)数据流,如图3所示,下面我们以20路、21路、22路、23路、24路通道,且每通道数据位宽为16bit为例进行说明。

当选择20个通道数据存储时,则可以在128路数据流任意选择20路,将其放在输出数据流data_a的[255:240]位,输出数据流data_a的[239:0]置为0,再发送给数据位宽转换模块;

当选择21个通道数据存储时,则可以在128路数据流任意选择21路,将其放在输出数据流data_a的[255:224]位,输出数据流data_a的[223:0]置为0,再发送给数据位宽转换模块;

当选择22个通道数据存储时,则可以在128路数据流任意选择22路,将其放在输出数据流data_a的[255:192]位,输出数据流data_a的[191:0]置为0,再发送给数据位宽转换模块;

当选择23个通道数据存储时,则可以在128路数据流任意选择23路,将其放在输出数据流data_a的[255:128],输出数据流data_a的[127:0]置为0,再发送给数据位宽转换模块;

当选择24个通道数据存储时,则可以在128路数据流任意选择24路,将其放在输出数据流data_a的[255:0],再发送给数据位宽转换模块;

s4、数据位宽转换模块按时钟周期接收输出数据流,且每个时钟周期接收到的有效输出数据流的位宽为2tmbit,再通过数据位宽转换模块将位宽为2tmbit的有效输出数据流转换为位宽为m/2bit的数据,m为每个通道的数据位宽,m为大容量存储器的数据位宽;

其中,转换的具体过程为:

当2tm≤m/2时,每m/2t+1m个时钟周期拼接成m/2bit,m为大容量存储器的数据位宽,有效输出数据流每m/2t+1m个时钟有效一次,第一个时钟周期的输出数据流拼在数据位宽转换模块的输出数据流的[m/2-1:m/2-2tm]位,第二个时钟周期的输出数据流拼在数据位宽转换模块的输出数据流的[m/2-2tm-1:m/2-2t+1m]位,依次类推,将m/2t+1m个时钟周期的输出数据流拼成大小为m/2bit的数据,该数据在第m/2t+1m+1个时钟有效,输出数据流有效信号在第m/2t+1m+1个时钟有效,且置为1;

当2tm>m/2时,将接收到的输出数据流从高位开始截取m/2bit大小的数据,输出数据流有效信号每个时钟有效一次,且置为1。

在本实施例中,如图4所示,我们对20路、21路、22路、23路、24路的数据流进行位宽转换:

当选择了20通道时,每个时钟周期接收到的有效输出数据流的位宽为16bit。位宽转换计数器cnt0[2:0]在每个时钟周期有效时进行计数,当cnt0为0时,16bit数据放在输出数据流data_b[127:112],当cnt0为1时,16bit数据放在输出数据流data_b[111:96],当cnt0为2时,16bit数据放在输出数据流data_b[95:90],当cnt0为3时,16bit数据放在输出数据流data_b[79:64],当cnt0为4时,16bit数据放在输出数据流data_b[63:48],当cnt0为5时,16bit数据放在输出数据流data_b[47:32],当cnt0为6时,16bit数据放在输出数据流data_b[31:16],当cnt0为7时,16bit数据放在输出数据流data_b[15:0]。且输出数据流有效信号在cnt0=7的下一个时钟周期置1,其它时候置0。

当选择了21通道时,每个时钟周期接收到的有效输出数据流的位宽为32bit。位宽转换计数器cnt1[1:0]在每个时钟周期有效时进行计数,当cnt1为0时,32bit数据放在输出数据流data_b[127:96],当cnt1为1时,32bit数据放在输出数据流data_b[95:64],当cnt1为2时,32bit数据放在输出数据流data_b[63:32],当cnt1为3时,32bit数据放在输出数据流data_b[31:0],且输出数据流有效信号在cnt1=3的下一个时钟周期置1,其它时候置0。

当选择了22通道时,每个时钟周期接收到的有效输出数据流的位宽为64bit。位宽转换计数器cnt2在每个时钟周期有效时进行计数,当cnt2为0时,64bit数据放在输出数据流data_b[127:64],当cnt2为1时,64bit数据放在输出数据流data_b[63:0],且输出数据流有效信号在cnt2=1的下一个时钟周期置1,其它时候置0。

当选择了23通道时,每个时钟周期接收到的有效输出数据流的位宽为128bit。位宽转换计数器cnt3在每个时钟周期进行计数,128bit数据放在输出数据流data_b[127:0],且输出数据流有效信号每个时钟有效一次,置为1。

当选择了24通道时,每个时钟周期接收到的有效输出数据流的位宽为256bit。位宽转换计数器cnt4在每个时钟周期进行计数,当cnt4为0时,高128bit数据放在输出数据流data_b[127:0];当cnt4为1时,低128bit数据放在输出数据流data_b[127:0];且输出数据流有效信号每个时钟有效一次,置为1。

s5、当输出数据流有效信号置为1时,前端数据缓存模块的写使能有效,将有效信号为1周期下,位宽为128bit的数据写入前端数据缓存模块中;

s6、当存储器控制器接收到用户的写大容量动态存储器指令时,在存储器控制器的写使能信号控制下,将前端数据缓存模块中的数据写入到大容量动态存储器;

在本实施例中,大容量动态存储器的输入输出位宽为256bit,而数据位宽转换模块的输出位宽为128bit,这是因为使用了输入位宽为128bit输出为256bit的前端数据缓存模块的资源消耗是输入位宽为256bit输出为256bit的一半。

对于容量一定的大容量动态存储器,当用户选择的存储数据的通道数是1时,则该大容量动态存储器存储的全部是1个通道的数据;当用户选择的存储数据的通道数是2,则每个通道的数据的最大存储深度是整个大容量动态存储器容量的1/2;当用户选择的存储数据的通道数是4,则每个通道的数据的最大存储深度是整个大容量动态存储器容量的1/4;当用户选择的存储数据的通道数是8,则每个通道的数据的最大存储深度是整个大容量动态存储器容量的1/8;当用户选择的存储数据的通道数是16,则每个通道的数据的最大存储深度是整个大容量动态存储器容量的1/16。

s7、当存储器控制器接收到用户的读大容量动态存储指令时,在存储器控制器读使能信号控制下,将大容量动态存储器中的数据读出送给存储数据恢复fifo阵列;

s8、存储数据恢复fifo阵列按照时钟周期接收大容量动态存储器读出数据,并将每个时钟周期接收的数据转换为位宽为2tmbit的数据,再发送给抽点模块;

在本实施例中,如图5所示,存储数据恢复fifo阵列可以将位宽256bit的数据data_d转换为位宽为2t*16bit(t=0,1,2,3,4)的数据。

当大容量动态存储器当中存储的是24个通道的数据时,由于读出的数据位宽是256bit,恰好是24个通道数据的位宽,则可以直接发送给抽点模块。

当大容量动态存储器当中存储的是23个通道的数据时,则需要存储数据恢复fifo阵列将从大容量动态存储器输出的位宽是256bit的数据经过第一级fifo转换成23通道对应的数据位宽23*16bit,再发送给抽点模块。

当大容量动态存储器当中存储的是22通道的数据时,则需要存储数据恢复fifo阵列将从大容量动态存储器输出的位宽是256bit的数据转换成22通道对应的数据位宽22*16bit,此时第一级fifo的输出数据流需要再经过第二级fifo将128bit转换成转换成22*16bit,再发送给抽点模块。

当大容量动态存储器当中存储的是21通道的数据,则需要存储数据恢复fifo阵列将从大容量动态存储器输出的位宽是256bit的数据转换成21通道对应的数据位宽21*16bit,此时第二级fifo的输出数据流需要再经过第三级fifo将64bit转换成成21*16bit,再发送给抽点模块。

当大容量动态存储器当中存储的是20通道的数据的话,则需要存储数据恢复fifo阵列将从大容量动态存储器输出的位宽是256bit的数据转换成20通道对应的数据位宽20*16bit,即需要经过四级串联的fifo将256bit转换成23*16bit,然后23*16bit转换成22*16bit,之后22*16bit转换成21*16bit,之后21*16bit转换成20*16bit,再发送给抽点模块。

s9、抽点模块将收到的数据进行抽点,降低数据的采样率,再送到后端数据缓存,如图6所示,后端数据缓存采用兼容统一控制的方法将收到的2t个通道的数据整体送入256bit*2k的fifo进行缓存,当后端数据缓存存储满后,上位机从后端数据缓存中读取数据,并在上位机缓存区。

尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。

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