一种数据采集系统的数据处理方法与流程

文档序号:11405593阅读:328来源:国知局

本发明属于测量仪器采集技术领域,更为具体地讲,涉及一种数字存储示波器采集系统的数据处理方法。



背景技术:

测量仪器作为工程领域的重要组成部分,已经被广泛用于各个领域。随着技术的不断发展,测量仪器也向着带宽越来越宽,采样率越来越高,采样精度越来越大的方向大力发展。随着adc性能的显著提升,限制测量仪器整体性能的瓶颈便出现在对采集数据进行处理上。

直接对adc采集的数据进行运算分析及存储,由于数据量过于庞大,会直接导致运算效率低下,并且庞大的数据不容易找到合适的存储空间。随着模拟通道技术的不断发展,数据量还会不断增加,因此必须在数据处理方法上进行改进。

分析国内外仪器现状,常用的方法是对数据进行抽点。根据用户设置的时基不同,对采样的数据进行不同程度的抽点,假设抽点系数为n,则表示每n个数据中只取一个数据,其它数据全部丢弃,这样便可以减小数据量,提高运算效率,降低存储空间。抽点系数的不同,对原始数据的影响也不相同,抽点系数越大,会导致对原始数据信息丢失就越多。为了提高分析数据的准确性,常采用箱式平均的方法,针对不同的抽点系数,对不同数量的数据进行取平均,(s1+s2+...+sn)/n,其中sn表示数据,n表示抽点系数。这样处理对于想要看到波形轮廓滤掉随机噪声的用户提高了数据的可靠性。

经实践发现,采用现有的方法,随着测量通道数的加多,adc采样精度的增加,数据位宽加大,在fpga中要用更多的资源来处理,特别是除法想要在fpga中实现,会消耗特别多的资源。但为了实现测量仪器的实时性,这些处理都必须要在fpga中进行,fpga中硬件资源有限,因此研究一种既可以保证数据可靠性又节省fpga资源的方法势在必行。



技术实现要素:

本发明的目的在于克服现有技术的不足,提供一种数据采集系统的数据处理方法,在数据抽点时使用箱式平均滤掉随机噪声,尽量保证数据的可靠性,让用户看到更为准确的轮廓信息,又不消耗更多的fpga资源。

为实现上述发明目的,本发明一种数据采集系统的数据处理方法,其特征在于,包括以下步骤:

(1)、系统初始化

上位机通过控制器向数据采集系统发送复位信号,执行复位操作,复位完成后,上位机向控制器发送初始化信号,控制adc配置模块通过adc信号传输接口协议配置adc的各项参数,完成初始化操作;

(2)、adc采集数据并转换为数字信号输入至fpga的数据接收模块;

(3)、数据接收模块根据adc的数据传输协议接收、解析出数字信号,再输入至箱式平均模块;

(4)、箱式平均模块将利用乘累加器和位宽截位操作对数据进行箱式平均运算,即:其中,sn表示并行数据,k表示放大系数,y表示要截去的位宽,n表示抽点系数;

(5)、取箱式平均运算后的有效数据存入存储器供上位机读取

利用箱式平均模块中计数器模块产生的flag信号控制存储器的写使能,将flag信号为高电平时钟时对应的箱式平均模块的输出即n个数据取箱式平均的结果作为有效数据存入存储器供上位机读取。

其中,所述的抽点系数n由上位机计算再发给fpga;其中,抽点系数n的具体计算方法为:

设用户选择时基为o秒,则数字存储示波器的屏幕一格表示点数x,那么点间的间隔为秒,若数据采样率为p个每秒,则采样间隔为1/p秒,那么抽点系数为

进一步的,所述的放大系数k的计算方法为:

(3.1)、将将抽点系数n放大a倍,得到an,其中a与平均结果精度相关;

(3.2)、令乘累加器的乘累加系数为放大系数取整前值的x,取与an最为接近的常数2y-1,则根据计算出x值;

(3.3)、对x值取整,得到放大系数k。

更进一步的,所述的乘累加器采用流水线乘累加操作,其输入端口包括输入乘数a、b,同步复位信号sclr,控制信号subtract,旁路控制信号bypass,时钟使能ce,时钟信号clk;

通过计数次数可变的计数器控制bypass信号来实现乘累加器流水线乘累加操作;

其中,计数器的计数次数为抽点系数n,计数器模块产生一个flag信号,当计数到n时对flag信号拉高一个时钟周期,再利用d触发器将flag信号延迟一个时钟周期去控制乘累加器的bypass接口,则在flag为高电平时钟周期,乘累加器输出即是累加n次的输出结果。

所述的位宽截取操作是对乘累加器计算结果进行截取,从乘累加器输出的第y位开始取与adc采样数据位宽大小相同位宽的数据作为箱式平均的输出。

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

本发明一种数据采集系统的数据处理方法,通过利用上位机发送的抽点系数,计数器模块将产生标志信号,将它延迟一个时钟控制乘累加器核进行数据流水线乘累加操作,这样便可利用该信号标志输出数据中的有效数据。利用fpga具有对数据进行位操作的能力舍去乘累加器计算结果的部分低位替代除法操作达到节省硬件资源的目的。

同时,本发明一种数据采集系统的数据处理方法还具有以下有益效果:

(1)、该方法的箱式平均算法利用舍去低位的方法代替传统除法运算,在fpga中,实现除法运算会消耗很多的硬件资源,而舍去低位却不会消耗资源。当数据采集通道数越多,节省的资源就越多。该实施例包含了128个通道,便节省了fpga中128个dsp48核。对于紧张的fpga硬件资源是一笔不小的节省。

(2)、传统的箱式平均时基转换为抽点系数是在fpga中进行的,若时基档位很多,也会消耗很多的资源来存储抽点系数。该方法将抽点系数到直接由上位机发送,上位机将时基转换为抽点系数发给fpga,这样也为fpga节省了一定的资源。

(3)、利用将计数器产生的标志信号延迟一个时钟的方法去控制乘累加器,这样就可以直接利用该标志信号去标志输出数据中的有效数据,从而可节省利用其它方法产生数据有效标志所需要使用的硬件资源。

附图说明

图1是本发明一种数据采集系统的具体实施方式结构图;

具体实施方式

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

实施例

图1是本发明一种数据采集系统的具体实施方式结构图。

在本实施例中,如图1所示,首先需要对数据采集系统进行初始化,其次,通过上位机的控制,将外部信号通过外部的信号调理模块处理成满足adc量程的信号。

adc由fpga配置,调理后的信号经过adc,将模拟信号转换成数字信号,以一定的格式送往fpga中。

在fpga中主要包括adc配置模块,数据接收模块,箱式平均模块,和数据存储模块。数据接收模块接收adc送过来的数字信号,进行整理,然后送往箱式平均模块。

箱式平均模块包括乘累加器模块和位宽截取模块等。抽点数是由上位机计算出后发给箱式平均模块的。上位机将不同时基档位转换为对应的抽点系数存在上位机中,当用户选择不同时基时,上位机便通过控制器发送不同的抽点系数。

乘累加器模块有一个参数是乘累加器系数,利用该系数将数据放大k倍。当上位机发送不同的抽点系数,多路选择器便通过抽点系数选择相应的放大系数输出到乘累加器模块。

乘累加器是由xilinx的ip核例化生成,要利用乘累加器完成不间歇的数据处理操作,需要利用bypass信号。不同抽点系数对应不同的累加次数,因此bypass信号的控制由一个计数次数可变的计数器模块完成。乘累加器的输出位宽s为数据累加次数所需位宽、乘累加器系数所需位宽、数据位宽三者之和。为了对所有的抽点系数的乘累加计算兼容,乘累加器选择的输出位宽应该选择抽点系数最大时所需的位宽。

乘累加器计算出结果后送入位宽截取模块,位宽截取模块的输入数据位宽为s,输出数据位宽为q,即采样数据位宽。它由多路选择器和一个q位的寄存器组成。根据上位机发送的抽点系数,多路选择器会选择数据的[y+q-1,y]位存入q位的寄存器中,再由该寄存器传到后面的存储模块中。

箱式平均计算完成后,就要将处理的数据存入后端存储器中,当标志信号为高电平时钟时对应的箱式平均模块的输出数据为n个数据取箱式平均的结果,将此有效数据入存储器供上位机读取。

下面结合图1,对本发明一种数据采集系统的数据处理方法进行详细说明书,具体包括以下步骤:

s1、系统初始化

上位机通过控制器向数据采集系统发送复位信号,执行复位操作,复位完成后,上位机向控制器发送初始化信号,控制adc配置模块通过adc信号传输接口协议配置adc的各项参数,完成初始化操作;

在本实施例中,所用adc型号为ad9265,采样位宽为16位,采样率为100m/s,选择spi接口协议模式配置adc,往adc中一些寄存器发送配置命令。如往adc的0x18地址发送数据0xc0则表示参考电压配置为2.0vp-p。

s2、adc采集数据并输入至fpga的数据接收模块;

adc采集的数据必须满足adc的量程,采集的数据通常为模拟信号,需要转换成数字信号后再发送给fpga。

s3、数据接收模块根据adc的数据传输协议接收、解析出数字信号,再输入至箱式平均模块;

s4、箱式平均模块将利用乘累加器和位宽截位操作对数据进行箱式平均运算,即:其中,sn表示并行数据,k表示放大系数,y表示要截去的位宽,n表示抽点系数;

在本实施例中,箱式平均模块根据上位机发的抽点系数对数据接收模块传过来的数据进行箱式平均处理,主要实现的式子是

以下计算均以假设用户选择时基为10us,数字存储示波器一格显示点数为100,adc的采样率为100m为示例,那么抽点系数由得到为10。由此法算出所有时基的抽点系数如表1第1列与第2列所示,将该抽点系数存在上位机中,用户选择不同时基,上位机则发送不同抽点系数到箱式平均模块中。

表1

放大系数k的计算方法为:

1)、a的选取。因为当放大倍数a选择越大时,对应的2y也就越大,1/2y的值就越小,即k中的最低有效位的权重越小,这样舍去k的小数位所造成的误差也越小,但a选择越大,位宽就要求越大,因此在满足误差条件下选择较小的a,这里选择a为10000。

1)、将抽点系数10放大10000倍,得到an为100000。如表1第3列所示,为所有时基档下的an计算结果;

2)、令乘累加器的乘累加系数为放大系数取整前值的x,取与100000最为接近的常数2y为217,则根据可计算出x值为13107.1。如表1第4、5列所示,为所有时基档下的2y和x的取值;

3)、在fpga中不存在小数,因此对x值取整,得到放大系数k为13107,表1第6列为所有时基档下的k的值。将k值存在箱式平均模块的寄存器中,多路选择器将根据上位机发送的抽点系数选择对应的k值发送给乘累加器。

在本实施例中,乘累加器采用流水线乘累加操作,其输入端口包括输入乘数a、b,同步复位信号sclr,控制信号subtract,旁路控制信号bypass,时钟使能ce,时钟信号clk;

a的输入为乘累加器系数k,b的输入为数据接收模块传过来的数据,控制信号subtract为低电平,时钟使能ce一直为高电平。通过计数次数可变的计数器控制bypass信号来实现乘累加器采用流水线乘累加操作;

其中,计数器的计数次数为抽点系数10,计数器产生一个flag信号,当计数到10时对flag信号拉高一个时钟周期,再利用d触发器将flag信号延迟一个时钟周期去控制乘累加器的bypass接口,则在flag为高电平时钟周期,乘累加器输出即是累加10次的输出结果。

对于乘累加器输出数据的位宽,因为它是累加次数所需位宽,乘累加器系数所需位宽和数据位宽三者的和。因此乘累加器输出所需要的最大位宽为累加次数最大时的位宽,如表2所示,累加次数最大为50000,由此可以确定乘累加器的输出位宽为46位。最后根据不同的抽点系数取s[y+q-1,y]便计算出了箱式平均的结果,表2第6列为所有时基下输出需要选取的对应位宽。当抽点系数为10时,因为y为17,因此应该选取s[33,17]作为箱式平均结果。

表2

s5、取箱式平均运算后的有效数据存入存储器供上位机读取

利用箱式平均模块中计数器产生的flag信号控制存储器的写使能,将flag信号为高电平时钟时对应的箱式平均模块的输出的n个数据取箱式平均的结果,并将其结果作为有效数据入存储器供上位机读取。这是因为乘累加器一直都会都数据输出,但只要当flag为高时,数据才为n个数据的乘累加结果。

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

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