基于FPGA的示波功率分析仪同步采集系统


基于fpga的示波功率分析仪同步采集系统
技术领域
1.本发明属于示波功率分析仪技术领域,更为具体地讲,涉及一种基于fpga的示波功率分析仪同步采集系统。


背景技术:



2.示波功率分析仪在功能上同时具有了示波记录仪和功率仪的效果。相比于功率仪能捕获波形,实现用户的观测需求;而相比于传统示波器,示波功率分析仪又可以准确地、可视化地测量各种电子设备中的功率信号,还能实现功率运算的需求。它将示波器的特性集成到了功率仪中,可以满足功率测试中动态测量的需求,是复杂测试环境中极为高效且可靠的测试仪器。
3.就示波功率分析仪的采集系统而言,在非同步采样的情况下,由于采样率与信号频率不是整数倍关系,导致难以确定采集到多少个数据点时刚好是原始信号的一个整周期,对非整周期的信号进行fft分析时,会出现频谱泄露和混叠的情况,从而影响功率参数的测量精度。因此示波功率分析仪的采集系统需要采用同步采样,使得采集到的固定的点数内包含整数个周期。
4.目前同步采样的方法有硬件同步和软件同步,硬件同步成本较大且精确度难以控制,目前主流的软件同步采样方法是先获取信号频率,然后根据信号频率f0和采样率fs算出当前一个周期包含的n个数据点,最后通过抽点的使得信号周期t等于采样间隔t与采样点数n的乘积。在测试仪器中需要保证信号的实时性,若是采用此种方式在软件上进行同步,需要先将采集到的波形以文件的方式进行缓存,算出频率然后取出来进行同步抽取,这很难保证信号的实时性。目前基于fpga的同步采样方式是先将前一段波形的频率值计算出来,然后用前一段波形的计数值对后面采集到的波形进行同步抽取,虽然国标的工频信号为50hz,但是在机械运行过程中难免会造成频率变化,若是用50hz的信号去同步40hz的信号,将会对示波功率分析仪的分析结果造成一定量的误差,需要进行改进。


技术实现要素:



5.本发明的目的在于克服现有技术的不足,提供一种基于fpga的示波功率分析仪同步采集系统,在对采集到的功率数据进行基频测量的同时将对应的波形数据进行缓存,然后利用测得的基波频率等实时信息对同步抽点系数进行实时更新,使得频率信息与功率数据一一对应,更加适应于对变频信号的采集,能够提高同步采样的精度,从而提高示波功率分析仪的整体测量、分析精度。
6.为了实现上述发明目的,本发明基于fpga的示波功率分析仪同步采集系统包括数据采集模块、数据接收模块、数字比较模块、基频测量模块、数据缓存模块、ddr模块、小数抽点系数运算模块、数据读取模块、小数抽点模块、数据输出模块和上位机,其中数据接收模块、数字比较模块、基频测量模块、数据缓存模块、小数抽点系数运算模块、数据读取模块、小数抽点模块、数据输出模块在fpga中实现;
7.数据采集模块用于对待分析信号进行采集得到功率数据;数据采集模块包含β张功率采集板卡,其中每张数据采集卡包含γ个模拟通道,每个模拟通道采用分辨率为δ的adc进行模数转换,且每个模拟通道的adc工作在同频同相的固定频率fs下;数据采集模块中每个功率采集板卡将γ个模拟通道采集的功率数据依次经过校准、滤波、跨时钟域处理后传输至数据接收模块;
8.数据接收模块包含β个接收端口,用于接收对应功率采集板卡的γ个模拟通道功率数据,在接收完成后数据接收模块对β*γ个模拟通道功率数据进行跨时钟域处理后分为两路进行输出:
9.一路将β*γ个模拟通道功率数据datai传输至数字比较模块,i=1,2,

,β*γ;
10.另一路根据实际情况将β*γ个模拟通道功率数据datai中需要同步处理的数据划分为同一个系统,将数据以系统的形式绑定得到k个系统数据datak并输出到数据缓存模块,k=1,2,

,k,k的值根据实际需要确定;
11.数字比较模块用于根据上位机发送的比较电平将β*γ个模拟通道功率数据datai转换为方波信号,其中每个系统的比较电平相同,从而得到与输入信号同频同相的β*γ个方波信号card_cnvi,i=1,2,

,β*γ,并将β*γ个方波信号card_cnvi传输至基频测量模块;
12.基频测量模块用于采用测周法在标准频率f0下对接收到的β*γ个方波信号card_cnvi进行基波频率测量;基频测量模块存在两种工作模式:普通测频模式和同步测频模式,其中普通测频模式为默认工作模式,在普通测频模式下基频测量模块采用测周法对各个方波信号card_cnvi进行不间断测频,根据上位机设置的固定周期数cyc_num,将连续cyc_num个周期的测频结果进行平均作为这cyc_num个周期的基波频率,每当测频完成一次后,将测频结果反馈至上位机,并将测频完成信号freq_done信号拉高一个时钟周期,然后进入下一轮测量;当基频测量模块检测到上位机的同步测频使能信号和测频完成信号freq_done均为高时转入同频测频模式,对方波信号card_cnvi进行同步测频,同步测频的具体方法如下:
13.基频测量模块采用测周法对方波信号card_cnvi的一个周期进行测量得到基波频率根据预先设置的基波频率与一帧波形的缓存周期数的映射关系确定基波频率对应的缓存周期数cyc
cache,i
,令测频周期数cyc
fre,i
=cyc
cache,i-δ,δ是用于将测频过程和缓存过程同步的延时周期数,根据实际情况设置;然后基频测量模块采用测周法对方波信号card_cnvi后续cyc
fre,i-1个周期进行测量得到基波频率,将cyc
fre,i
个周期测得的基波频率进行平均,得到本轮数据缓存时的基波频率f
1,i
;每当测频完成一次后,将基波频率f
1,i
发送至小数抽点模块和上位机,并将对应通道的测频完成信号freq_donei信号拉高一个时钟周期,然后进入下一轮测量;
14.数据缓存模块包括k个数据缓存单元,每个数据缓存单元用于在检测到同步测频使能信号和对应系统中代表通道的测频完成信号均为高时,将对应系统中各个模拟通道功率数据datai缓存至ddr模块,其中各个系统数据中的代表通道根据实际需要选择;
15.ddr模块用于对k个系统数据进行缓存;
16.小数抽点系数运算模块用于根据接收到的各个模拟通道功率数据datai的基波频
率f
1,i
计算对应的小数抽点系数ni,具体方法为:
17.计算定频模式下一个周期的采样点数n
i,1

[0018][0019]
记从上位机接收的一个周期的固定采样点数为n2,采用如下公式计算得到抽点系数ni:
[0020][0021]
计算完成后拉高对应模拟通道的小数抽点系数运算完成标志信号,将采样点数n
i,1
发送给小数抽点模块,并将每个系统中代表通道的小数抽点系数作为该系统的小数抽点系数nk发送给数据读取模块;
[0022]
数据读取模块包括用于k个数据读取单元,每个数据读取单元在检测到小数抽点系数运算完成标志信号拉高后,根据接收到的对应系统的小数抽点系数nk对同步测频模式下该系统中各个通道缓存在ddr模块中的一帧波形数据进行打包读取,并将读取的数据依次经跨时钟域转换和位宽还原后发送给小数抽点模块;打包读取的具体方法如下:
[0023]
对于第k个系统,采用如下公式计算该系统在同步一帧波形需要缓存的数据点数zk:
[0024]
zk=n2*nk*mk[0025]
采用如下公式计算其突发传输大小burst_lengthk:
[0026][0027]
其中,max_burst表示ddr模块和数据读取模块之间的突发传输数据量上限,signal_widthk表示第k个系统中所有模拟通道的总数据位宽;
[0028]
采用如下公式计算得到按突发传输大小burst_lengthk的传输次数ak:
[0029][0030]
其中,表示向下取整;
[0031]
采用如下公式计算剩余数据点数ck:
[0032]ck
=z
k-ak*burst_lengthk[0033]
第k个数据读取单元在对第k个系统的缓存数据进行数据读取时,先按照突发传输大小burst_lengthk的方式从ddr模块进行ak次数据读取,然后再按照突发传输大小为1的方式进行从ddr模块进行ck次数据传输,完成一帧波形数据读取;
[0034]
小数抽点模块根据从小数抽点运算模块接收到的采样点数n
i,1
和从上位机接收的固定采样点数n2对从数据读取模块接收到的各个模拟通道功率数据datai进行小数抽点,将抽点后的数据data
′i发送给数据输出模块,小数抽点的具体方法如下:
[0035]
1)初始化计数器的初始值cnt=n2;将抽点后数据有效信号valid置为低;
[0036]
2)当模拟通道功率数据datai的数据有效信号为高时,判断是否cnt>n
i,1
,如果
是,进入步骤3),否则进入步骤4);
[0037]
3)令cnt=cnt+n
2-n
i,1
,同时将抽点后数据有效信号valid置为高;
[0038]
4)令cnt=cnt+n2,同时将抽点后数据有效信号valid置为低;
[0039]
5)判断抽取数据点数是否达到n2,如果未达到,则返回步骤2),否则结束抽点;
[0040]
数据输出模块用于将接收到的小数抽点后的数据data
′i输出至上位机模块;
[0041]
上位机用于对其他模块进行参数设置和控制,包括设置数据比较模块中各个系统的比较电平,基频测量模块中普通测频模式下的固定测频周期数cyc_num,和同步测频模式下基波频率与测频周期数的映射关系;小数抽点系数运算模块、数据读取模块和小数抽点模块中的固定采样点数n2;根据用户指令设置同步测频使能信号,控制基频测量模块的工作模式;接收其他模块上传的数据并进行后续分析处理,包括基频测量模块测得的信号基波频率和数据输出模块上传的小数抽点后的数据data
′i。
[0042]
本发明基于fpga的示波功率分析仪同步采集系统,对于数据采集模块采集得到的功率数据分为两路,一路由基频测量模块进行基波频率测量,另一路由数据缓存模块同步缓存至ddr模块,基波频率测量完毕后,小数抽点系数运算模块根据测得的基波频率计算小数抽点系数,数据读取模块从ddr模块中读取缓存数据,小数抽点模块根据小数抽点系数对读取的数据进行小数抽点,然后经数据输出模块输出至上位机。
[0043]
本发明具有以下有益效果:
[0044]
1)本发明以对采集到的功率数据进行基波频率测量的同时,对功率数据进行缓存,利用当前功率数据的基波频率对当前功率数据进行抽点,从而保证基波频率数据的实时性,避免基波频率和功率数据不同步导致的分析误差;
[0045]
2)本发明在对缓存的功率数据进行读取时,采用了变突发传输大小,从而保证了读取的准确性,避免读取造成的分析误差。
附图说明
[0046]
图1是本发明基于fpga的示波功率分析仪同步采集系统的具体实施方式流程图;
[0047]
图2是本发明中数据缓存与取出示意图;
[0048]
图3是本实施例中数据缓存模块的工作时序图;
[0049]
图4是本发明中数据读取的流程图;
[0050]
图5是本发明中小数抽点的流程图。
具体实施方式
[0051]
下面结合附图对本发明的具体实施方式进行描述,以便本领域的技术人员更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。
[0052]
实施例
[0053]
图1是本发明基于fpga的示波功率分析仪同步采集系统的具体实施方式流程图。如图1所示,本发明基于fpga的示波功率分析仪同步采集系统包括数据采集模块1、数据接收模块2、数字比较模块3、基频测量模块4、数据缓存模块5、ddr模块6、小数抽点系数运算模块7、数据读取模块8、小数抽点模块9、数据输出模块10和上位机11,其中数据接收模块2、数
字比较模块3、基频测量模块4、数据缓存模块5、小数抽点系数运算模块7、数据读取模块8、小数抽点模块9、数据输出模块10在fpga中实现。接下来分别对各个模块进行详细说明。
[0054]
数据采集模块1用于对待分析信号进行采集得到功率数据。数据采集模块1包含β张功率采集板卡,其中每张数据采集卡包含γ个模拟通道,每个模拟通道采用分辨率为δ的adc进行模数转换,且每个模拟通道的adc工作在同频同相的固定频率fs下,如此β张功率采集板卡的固定数据带宽write_max_bandwidth为:
[0055]
write_max_bandwidth=β*γ*δ*fs[0056]
本实施例中数据采集模块1中包含7张数据采集卡,每张数据采集卡包括2个模拟通道,单个adc输出的数据带宽为32bit*2m,其中2m为采样频率,32bit为单个adc的数据位宽,因此7张数据采集卡的固定数据带宽write_max_bandwidth=896m。
[0057]
数据采集模块1中每个功率采集板卡将γ个模拟通道采集的功率数据依次经过校准、滤波、跨时钟域处理后传输至数据接收模块2。本实施例中数据采集模块1和数据接收模块2采用gtx_aurora协议进行通信。
[0058]
数据接收模块2包含β个接收端口,用于接收对应功率采集板卡的γ个模拟通道功率数据,在接收完成后数据接收模块2对β*γ个模拟通道功率数据进行跨时钟域处理后分为两路进行输出:
[0059]
一路将β*γ个模拟通道功率数据datai传输至数字比较模块3,i=1,2,

,β*γ;
[0060]
另一路根据实际情况将β*γ个模拟通道功率数据datai中需要同步处理的数据划分为同一个系统,将数据以系统的形式绑定得到k个系统数据datak并输出到数据缓存模块5,k=1,2,

,k,k的值根据实际需要确定。显然,单个系统可以包含1个模拟通道,也可以是β*γ个模拟通道。本实施例中示波功率分析仪采集系统用于对电力系统信号进行测量分析,包含7张数据采集卡,采用3(三相系统)+3(三相系统)+1(单相系统)的配置,每个功率采集板卡包含2个模拟通道,其中前两组的3个功率采集板卡用于采集三相电压信号和三相电流信号,剩下1个功率采集板卡用于采集单相电压信号和单相电流信号,因此数据划分时也是按照3+3+1的形式划分为3个系统数据。
[0061]
数字比较模块3用于根据上位机11发送的比较电平,将β*γ个模拟通道功率数据datai转换为方波信号,其中每个系统的比较电平相同,从而得到与功率数据datai同频同相的β*γ个方波信号card_cnvi,并将β*γ个方波信号card_cnvi传输至基频测量模块4。为了使基频测量和数据缓存尽可能同步,在对每个系统进行比较电平设置时,最好按照该系统中功率数据的过0点来进行设置。
[0062]
基频测量模块4用于采用测周法在标准频率f0下对接收到的β*γ个方波信号card_cnvi分别进行基波频率测量。基频测量模块4存在两种工作模式:普通测频模式和同步测频模式,其中普通测频模式为默认工作模式,在普通测频模式下基频测量模块4采用测周法对各个方波信号card_cnvi进行不间断测频,根据上位机11设置的固定周期数cyc_num(一般cyc_num≥4),将连续cyc_num个周期的测频结果进行平均作为这cyc_num个周期的基波频率,每当测频完成一次后,将测频结果反馈至上位机11,并将测频完成信号freq_done信号拉高一个时钟周期,然后进入下一轮测量。当基频测量模块4检测到上位机11的同步测频使能信号和测频完成信号freq_done均为高时转入同步测频模式,对方波信号card_cnvi进行同步测频,同步测频的具体方法如下:
[0063]
基频测量模块4采用测周法对方波信号card_cnvi的一个周期进行测量得到基波频率根据预先设置的基波频率与一帧波形的缓存周期数的映射关系确定基波频率对应的缓存周期数cyc
cache,i
。在本发明中,为了得到更加准确的抽点数据,应尽量使测频过程和缓存过程进行同步,因此令测频周期数cyc
fre,i
=cyc
cache,i-δ,δ是用于将测频过程和缓存过程同步的延时周期数,根据实际情况设置。这是因为当测频完成后进入数据缓存需要一定的处理延时,该处理延时一般是由示波功率分析仪的硬件延时确定。本实施例中,延时周期数δ=1,即cyc
fre,i
=cyc
cache,i-1。然后基频测量模块4采用测周法对方波信号card_cnvi后续cyc
fre,i-1个周期进行测量得到基波频率,将cyc
fre,i
个周期测得的基波频率进行平均,得到方波信号card_cnvi在本轮数据缓存时的基波频率f
1,i
。由于这里需要至少进行cyc_num个周期数的测量,所以需要待测信号一直存在,当待测信号只有有限个周期时,无法进行同步模式测频。每当测频完成一次后,将基波频率f
1,i
发送至小数抽点模块9和上位机11,并将对应通道的测频完成信号freq_donei信号拉高一个时钟周期,然后进入下一轮测量。
[0064]
由于本发明采用测周法对频率进行测量,由测周法与测频法的量化误差相等时可确定中界频率f
xm
,当信号频率高于中界频率时采用测频法测量频率量化误差相对测周法较小,当信号频率小于中界频率时采用测周法量化误差小于测频法。假设本实施例中采用的标准频率f0为100mhz,当测频法标准门限f
freq
为1hz时,则根据公式可知此时中界频率为10khz,所以适用于信号频率低于10khz的情况,可以采用这种方式来确定本发明示波功率分析仪采集系统的适应场景。
[0065]
在示波功率分析仪中,同步采样一帧波形为固定的点数,对这些固定的数据点往往需要进行fft、电压有效值等运算,因此为了提高精度需要对这些数据点在不同频率下进行不同缓存周期数的划分。本实施例中基波频率与缓存周期数的映射关系采用经验值确定,由于缓存数据需要小数抽点得到抽点数据,而抽点数据点数是固定的。因此为了使得最终的抽点数据更加能够体现输入信号的特征,基波频率小的缓存周期数小,即一个周期包含的点数多,反之基波频率大的缓存周期数大。本实施例根据经验整理得到不同标准频率下基波频率与缓存周期数的映射表,在测得基波频率后,结合当前使用的标准频率查询该映射表,得到对应的缓存周期数。表1是本实施例中基波频率与缓存周期数的映射表。
[0066][0067]
表1
[0068]
如表1所示,本实施例中将基波频率划分为4个范围,在采样率fs下,每个范围对应不同的抽点后固定采样点数和缓存周期数。由于一帧波形的固定采样点数为,因此单周期采样点数*缓存周期数=n2。
[0069]
由于本实施例中cyc
fre,i
=cyc
cache,i-1,因此根据基波频率与缓存周期数的映射关系就可以得到基波频率与测频周期数的映射关系。表2是本实施例中基波频率与测频周期数的映射表。
[0070][0071]
表2
[0072]
数据缓存模块5包括k个数据缓存单元,每个数据缓存单元用于在检测到同步测频使能信号和对应系统中代表通道的测频完成信号均为高时,将对应系统中各个模拟通道功率数据datai缓存至ddr模块6,其中各个系统数据中的代表通道根据实际需要选择。如此可令缓存过程与测频过程同步,保证测频过程中数据不会丢失。由于fpga内部片上ram资源紧张,对于精度较高、通道数较多、采集信号频率小的采集系统,往往数据量都比较大,难于在fpga内部对波形数据进行缓存,所以需要采用ddr模块6进行外部存储。
[0073]
ddr模块6用于对k个系统数据进行缓存。
[0074]
对于示波功率分析仪来说,为保证实时性,需要缓存设备的带宽满足测试仪器的缓存与快速取出。图2是本发明中数据缓存与取出示意图。为了保证示波功率分析仪的整体精度以及同步采样功能的正确性,数据缓存设备需要具有足够大的数据通信带宽和足够大的内存空间。
[0075]
就数据通信带宽而言,本实施例中采用xilinx的mig核(memory interface generator)来建立数据缓存模块5和ddr模块6(本实施例中采用ddr3)之间的数据连接,由于mig核ip与ddr3间的数据通信带宽能达到64gb/s,能够保证大带宽数据吞吐,保证示波功率分析仪的实时性。由于ddr3是双边沿传输,且采用8bit预取技术,即i/o时钟与ddr3工作时钟的比例为1:4,传输时钟需与i/0时钟保持一致。本实施例中设定ddr3核心频率为500mhz,即整个传输系统的系统时钟频率system_clk为125mhz。由于本发明中需要对所有模拟通道数据同时进行缓存,即最大数据带宽为write_max_bandwidth。另外本发明需要同时进行数据缓存和数据读取,且数据读取需要比数据缓存快,考虑到带宽利用率不可能达到100%,所以数据缓存带宽不宜超过mig核ip与ddr3交互总带宽的25%,从而可以确定示波功率分析仪采集系统的适应场景,如本示例就适用于write_max_bandwidth小于16gb/s的情况。此外,本实施例中采用axi4总线建立数据缓存模块5和mig核之间的数据通信,利用axi4总线具有互联仲裁、outstanding传输、突发传输等特点,可以更好地支持本发明中多系统数据同时缓存,提高带宽利用率。
[0076]
图3是本实施例中数据缓存模块的工作时序图。如图3所示,当数据缓存模块5检测到同步测频使能信号和测频完成信号均为高时,进入数据缓存,其工作状态从idle变为write。axi4总线按照突发传输大小为1的方式将数据写入mig核,然后经mig核与ddr3建立数据交互,将数据缓存至ddr3中。
[0077]
就内存空间而言,ddr模块6的最小内存为缓存功率分析所需要的一帧波形数据。在数据缓存时,当所有信号的基波频率为最小值f
1,min
时,需要缓存的数据量最大,记基波频率为f
1,min
时缓存周期数为则缓存一帧波形数据最少需要的内存空间min_mem为:
[0078][0079]
其中,write_max_bandwidth表示β*γ个模拟通道功率数据的数据位宽。
[0080]
在本实施例中,数据位宽write_max_bandwidth为896mbps,假设三个系统的最小基波频率f
1,min
都为1hz时缓存周期数为8,此时需要缓存空间最大,为896mb。
[0081]
根据图2所示,当数据缓存进入ddr模块6中的同时,会对对应的数据进行频率测量以及小数抽点系数运算,记小数抽点系数运算完成到数据读取会延后测频结果的系统时钟周期数为α,记系统时钟频率system_clk与采样率fs的比例τ为:
[0082][0083]
所以在这α个系统时钟周期内,需要最大额外缓存的数据量time_mem为:
[0084]
time_mem=τ*α*write_max_bandwidth
[0085]
综上所述,本方法所需的最大缓存数据量sync_mem为:
[0086]
sync_mem=time_mem+min_mem
[0087]
因此,ddr模块6的内存应大于等于最大缓存数据量sync_mem。
[0088]
小数抽点系数运算模块7用于根据接收到的各个模拟通道功率数据datai的基波频率f
1,i
计算小数抽点系数ni。本发明中,为了使得采样频率与输入信号频率保持固定比例的关系,抽点系数必须随着输入信号频率改变而改变,因此小数抽点系数ni的计算方法如下:
[0089]
计算定频模式下一个周期的采样点数n
i,1

[0090][0091]
根据采样点数n
i,1
的计算公式可知,若是信号频率改变,则一个周期内的点数就不固定,那么做fft运算时就不能清楚的知道所运算的点数内包含了多少个周期。因此记从上位机接收的一个周期的固定采样点数为n2,将固定采样点数n2对应的采样频率记为f
s1
,则此时存在以下表达式:
[0092][0093]
因此采用如下公式计算得到抽点系数ni:
[0094][0095]
计算完成后拉高小数抽点系数运算完成标志信号,将采样点数n
i,1
发送给小数抽点模块9,并将每个系统中代表通道的小数抽点系数作为该系统的小数抽点系数nk发送给
数据读取模块8。
[0096]
数据读取模块8包括用于k个数据读取单元,每个数据读取单元在检测到小数抽点系数运算完成标志信号拉高后,根据接收到的对应系统的小数抽点系数nk对同步测频模式下该系统中各个通道缓存在ddr模块6中的一帧波形数据进行打包读取,并将读取的数据依次经跨时钟域转换和位宽还原后发送给小数抽点模块9。本实施例中数据读取模块8和ddr模块6之间也采用mig核建立数据连接,数据读取模块8和mig核之间采用axi总线连接。
[0097]
在本发明中,每个数据读取单元最好能够快速将缓存的一帧波形数据全部取出,以便ddr模块6中当前帧波形数据的地址能够用于下一帧波形数据缓存,以提高ddr模块6内存的利用率。因此本发明设计了一种自适应突发传输大小的数据读取方法,具体方法如下:
[0098]
限于数据采集模块1中adc的工作频率,所以数据缓存模块5的最大带宽为write_max_bandwidth。对于数据读取模块8,在不考虑带宽利用率的情况下,以系统时钟system_clk将数据读取,其读取数据带宽为:
[0099]
read_max_bandwidth=β*δ*γ*system_clk
[0100]
所以数据读取模块8与数据缓存模块5理论带宽比θ为:
[0101][0102]
本实施例中数据读取模块8采用突发传输,带宽利用率大幅度提高,又由于system_clk远大于采样频率fs,所以带宽比θ远远大于1,即满足数据读取速率高于数据缓存速率,所以ddr模块中缓存的数据不会被覆盖。因此可以先缓存一帧波形数据,缓存到cyc
cache,i-δ个周期后,测频完成,接着进行小数抽点系数运算,计算完成后,开始以大带宽吞吐将ddr模块中缓存数据取出,那么数据被取出的部分空间就可以缓存新的数据。
[0103]
在数据读取过程中,由于ddr模块6刷新等操作,若每次只向ddr模块6读取一个数据,每一个数据都需要刷新等操作,导致实际的带宽利用率降低,所以本实施例中采用突发传输的方式对ddr模块6中的数据进行读取,即每次多传输几个数据,对于ddr模块6来说就只需要进行一次数据准备,突发传输的个数越大则带宽利用率越高。由于数据读取单元和ddr模块6之间存在硬件限制,因此突发传输大小存在上限,记ddr模块6和数据读取单元之间突发传输数据量上限为max_burst(例如axi总线的突发传输数据量上限为4kb),第k个系统中所有模拟通道的总数据位宽为signal_widthk,则第k个系统数据突发传输大小burst_lengthk为:
[0104][0105]
根据同步采样的原理,由于本发明中每个通道一帧波形的点数为n2,第k个系统中抽点系数为nk(nk不为整数),第k个系统中模拟通道数量为mk,那么第k个系统在同步一帧波形需要缓存的数据点数zk为:
[0106]
zk=n2*nk*mk[0107]
按固定突发传输大小burst_lengthk第k个系统数据进行传输需要传输的次数bk为:
[0108][0109]
显然根据信号频率的不同,传输次数bk不可能总为整数,假设最后一次突发传输中,同步一帧数据的最后一个点为burst_lengthk个点中的第j个点,那么-burst_length-j个点为下一帧波形的数据,对于fpga流水处理,若不对这-burst_length-j个数据进行缓存,这些点则会丢失从而导致帧与帧之间的数据不连续。通过以上分析,本发明中采用变突发传输大小的数据读取方法,即对小数抽点系数nk进行向下取整得到进行向下取整得到表示向下取整,使得按突发传输大小burst_lengthk的传输次数ak为:
[0110][0111]
可以在系统设置时令和burst_lengthk为固定比例关系,以保证传输次数ak为整数。
[0112]
由于小数抽点前一帧波形数据因此对于一帧波形需要的zk个数据点来说,剩余数据点数ck为:
[0113]ck
=z
k-ak*burst_lengthk[0114]
显然剩余数据点数ck≤burst_lengthk。
[0115]
所以本发明中,第k个数据读取单元在对第k个系统的缓存数据进行数据读取时,先按照突发传输大小burst_lengthk的方式从ddr模块6进行ak次数据读取,然后再按照突发传输大小为1的方式进行从ddr模块6进行ck次数据传输,完成一帧波形数据读取。等到一帧波形输出完成过后,突发传输大小恢复为burst_lengthk,以此往复便能够实现带宽利用率提升的同时又能保证数据的准确性。
[0116]
对于数据读取模块会存在一个临界条件,由于测频周期只进行cyc
cache,i-δ个周期数,测频完成后进行小数抽点系数运算,然后即可开始数据读取。假设信号基波频率为1hz,那么这里数据缓存一帧数据需要8秒时间,而测频只花了7秒,加上几十个系统时钟周期,最多1毫秒小数抽点系数运算完成,这个时候数据读取模块进入工作状态,由于读取带宽远大于缓存带宽,有可能数据读取地址超过缓存地址,那么此时由于数据还没缓存到该地址,此时读取到的数据就是空数据。因此为了保证当前帧的数据读取地址不超过数据缓存地址,数据读取模块获取当前缓存地址并与读取地址进行比较,当读取地址小于缓存地址时,读数据正常工作,否则将等待缓存地址大于读取地址时才正常工作。
[0117]
图4是本发明中数据读取的流程图。如图4所示,当小数抽点系数运算完成标志拉高后,数据读取模块8与mig核建立数据连接,此时数据读取模块8的工作状态从idle跳到workin,开始将ddr模块6中缓存的数据按照axi总线协议突发传输的方式取出,并将读取的数据和数据有效信号传输到小数抽点模块9进行小数抽点,当检测到同步测频模式结束标志后,断开数据读取模块8与mig核的数据连接,数据读取模块8工作状态恢复到idle状态。
[0118]
小数抽点模块9根据从小数抽点运算模块接收到的采样点数n
i,1
和从上位机接收的固定采样点数n2对从数据读取模块8接收到的各个模拟通道功率数据datai进行小数抽点,将抽点后的数据data
′i发送给数据输出模块10。图5是本发明中小数抽点的流程图。如
图5所示,小数抽点的具体方法为:
[0119]
1)初始化计数器的初始值cnt=n2。将抽点后数据有效信号valid置为低。
[0120]
2)当模拟通道功率数据datai的数据有效信号为高时,判断是否cnt>n
i,1
,如果是,进入步骤3),否则进入步骤4)。
[0121]
3)令cnt=cnt+n
2-n
i,1
,同时将抽点后数据有效信号valid拉高一个系统时钟周期。
[0122]
4)令cnt=cnt+n2,同时将抽点后数据有效信号valid置为低。
[0123]
5)判断抽取数据点数是否达到n2,如果未达到,则返回步骤2),否则结束抽点。
[0124]
数据输出模块10用于将接收到的小数抽点后的数据data
′i输出至上位机11模块。本实施例中数据输出模块10包括同步输出模块和pcie模块,其中同步输出模块用于对各个模拟通道的小数抽点后的数据data
′i进行同步,然后由pcie模块对fpga和上位机11模块之间的数据通信进行适配,将同步后的各个数据data
′i输出至上位机11模块。
[0125]
上位机11模块用于对其他模块进行参数设置和控制,包括设置数据比较模块3中各个系统的比较电平,基频测量模块4中普通测频模式下的固定测频周期数cyc_num,和同步测频模式下基波频率与测频周期数的映射关系;小数抽点系数运算模块7、数据读取模块8和小数抽点模块9中的固定采样点数n2。上位机需要根据用户指令设置同步测频使能信号,控制基频测量模块4的工作模式。上位机11模块还用于接收其他模块上传的数据并进行后续分析处理,包括基频测量模块4测得的信号基波频率和数据输出模块10上传的小数抽点后的数据data
′i。
[0126]
尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。

技术特征:


1.一种基于fpga的示波功率分析仪同步采集系统,其特征在于,包括数据采集模块、数据接收模块、数字比较模块、基频测量模块、数据缓存模块、ddr模块、小数抽点系数运算模块、数据读取模块、小数抽点模块、数据输出模块和上位机,其中数据接收模块、数字比较模块、基频测量模块、数据缓存模块、小数抽点系数运算模块、数据读取模块、小数抽点模块、数据输出模块在fpga中实现;数据采集模块用于对待分析信号进行采集得到功率数据;数据采集模块包含β张功率采集板卡,其中每张数据采集卡包含γ个模拟通道,每个模拟通道采用分辨率为δ的adc进行模数转换,且每个模拟通道的adc工作在同频同相的固定频率f
s
下;数据采集模块中每个功率采集板卡将γ个模拟通道采集的功率数据依次经过校准、滤波、跨时钟域处理后传输至数据接收模块;数据接收模块包含β个接收端口,用于接收对应功率采集板卡的γ个模拟通道功率数据,在接收完成后数据接收模块对β*γ个模拟通道功率数据进行跨时钟域处理后分为两路进行输出:一路将β*γ个模拟通道功率数据data
i
传输至数字比较模块,i=1,2,

,β*γ;另一路根据实际情况将β*γ个模拟通道功率数据data
i
中需要同步处理的数据划分为同一个系统,将数据以系统的形式绑定得到k个系统数据data
k
并输出到数据缓存模块,k=1,2,

,k,k的值根据实际需要确定;数字比较模块用于根据上位机发送的比较电平将β*γ个模拟通道功率数据data
i
转换为方波信号,其中每个系统的比较电平相同,从而得到与输入信号同频同相的β*γ个方波信号card_cnv
i
,i=1,2,

,β*γ,并将β*γ个方波信号card_cnv
i
传输至基频测量模块;基频测量模块用于采用测周法在标准频率f0下对接收到的β*γ个方波信号card_cnv
i
进行基波频率测量;基频测量模块存在两种工作模式:普通测频模式和同步测频模式,其中普通测频模式为默认工作模式,在普通测频模式下基频测量模块采用测周法对各个方波信号card_cnv
i
进行不间断测频,根据上位机设置的固定周期数cyc_num,将连续cyc_num个周期的测频结果进行平均作为这cyc_num个周期的基波频率,每当测频完成一次后,将测频结果反馈至上位机,并将测频完成信号freq_done信号拉高一个时钟周期,然后进入下一轮测量;当基频测量模块检测到上位机的同步测频使能信号和测频完成信号freq_done均为高时转入同频测频模式,对方波信号card_cnv
i
进行同步测频,同步测频的具体方法如下:基频测量模块采用测周法对方波信号card_cnv
i
的一个周期进行测量得到基波频率根据预先设置的基波频率与一帧波形的缓存周期数的映射关系确定基波频率对应的缓存周期数cyc
cache,i
,令测频周期数cyc
fre,i
=cyc
cache,i-δ,δ是用于将测频过程和缓存过程同步的延时周期数,根据实际情况设置;然后基频测量模块采用测周法对方波信号card_cnv
i
后续cyc
fre,i-1个周期进行测量得到基波频率,将cyc
fre,i
个周期测得的基波频率进行平均,得到本轮数据缓存时的基波频率f
1,i
;每当测频完成一次后,将基波频率f
1,i
发送至小数抽点模块和上位机,并将对应通道的测频完成信号freq_done
i
信号拉高一个时钟周期,然后进入下一轮测量;数据缓存模块包括k个数据缓存单元,每个数据缓存单元用于在检测到同步测频使能信号和对应系统中代表通道的测频完成信号均为高时,将对应系统中各个模拟通道功率数
据data
i
缓存至ddr模块,其中各个系统数据中的代表通道根据实际需要选择;ddr模块用于对k个系统数据进行缓存;小数抽点系数运算模块用于根据接收到的各个模拟通道功率数据data
i
的基波频率f
1,i
计算对应的小数抽点系数n
i
,具体方法为:计算定频模式下一个周期的采样点数n
i,1
:记从上位机接收的一个周期的固定采样点数为n2,采用如下公式计算得到抽点系数n
i
:计算完成后拉高对应模拟通道的小数抽点系数运算完成标志信号,将采样点数n
i,1
发送给小数抽点模块,并将每个系统中代表通道的小数抽点系数作为该系统的小数抽点系数n
k
发送给数据读取模块;数据读取模块包括用于k个数据读取单元,每个数据读取单元在检测到小数抽点系数运算完成标志信号拉高后,根据接收到的对应系统的小数抽点系数n
k
对同步测频模式下该系统中各个通道缓存在ddr模块中的一帧波形数据进行打包读取,并将读取的数据依次经跨时钟域转换和位宽还原后发送给小数抽点模块;打包读取的具体方法如下:对于第k个系统,采用如下公式计算该系统在同步一帧波形需要缓存的数据点数z
k
:z
k
=n2*n
k
*m
k
采用如下公式计算其突发传输大小burst_length
k
:其中,max_burst表示ddr模块和数据读取模块之间的突发传输数据量上限,signal_width
k
表示第k个系统中所有模拟通道的总数据位宽;采用如下公式计算得到按突发传输大小burst_length
k
的传输次数a
k
:其中,表示向下取整;采用如下公式计算剩余数据点数c
k
:c
k
=z
k-a
k
*burst_length
k
第k个数据读取单元在对第k个系统的缓存数据进行数据读取时,先按照突发传输大小burst_length
k
的方式从ddr模块进行a
k
次数据读取,然后再按照突发传输大小为1的方式进行从ddr模块进行c
k
次数据传输,完成一帧波形数据读取;小数抽点模块根据从小数抽点运算模块接收到的采样点数n
i,1
和从上位机接收的固定采样点数n2对从数据读取模块接收到的各个模拟通道功率数据data
i
进行小数抽点,将抽点后的数据data

i
发送给数据输出模块,小数抽点的具体方法如下:1)初始化计数器的初始值cnt=n2;将抽点后数据有效信号valid置为低;
2)当模拟通道功率数据data
i
的数据有效信号为高时,判断是否cnt>n
i,1
,如果是,进入步骤3),否则进入步骤4);3)令cnt=cnt+n
2-n
i,1
,同时将抽点后数据有效信号valid置为高;4)令cnt=cnt+n2,同时将抽点后数据有效信号valid置为低;5)判断抽取数据点数是否达到n2,如果未达到,则返回步骤2),否则结束抽点;数据输出模块用于将接收到的小数抽点后的数据data

i
输出至上位机模块;上位机用于对其他模块进行参数设置和控制,包括设置数据比较模块中各个系统的比较电平,基频测量模块中普通测频模式下的固定测频周期数cyc_num,和同步测频模式下基波频率与测频周期数的映射关系;小数抽点系数运算模块、数据读取模块和小数抽点模块中的固定采样点数n2;根据用户指令设置同步测频使能信号,控制基频测量模块的工作模式;接收其他模块上传的数据并进行后续分析处理,包括基频测量模块测得的信号基波频率和数据输出模块上传的小数抽点后的数据data

i
。2.根据权利要求1所述的示波功率分析仪采集系统,其特征在于,所述数据缓存模块和ddr模块之间采用mig核建立数据连接,数据缓存模块和mig核之间采用axi总线连接;数据读取模块和ddr模块之间采用mig核建立数据连接,数据读取模块和mig核之间采用axi总线连接。3.根据权利要求1所述的示波功率分析仪采集系统,其特征在于,所述ddr模块的内存应大于等于最大缓存数据量sync_mem,最大缓存数据量sync_mem的计算方法为:计算缓存一帧波形数据最少需要的内存空间min_mem:其中,write_max_bandwidth表示β*γ个模拟通道功率数据的数据位宽,f
1,min
表示信号的基波频率最小值,表示基波频率f
1,min
对应的缓存周期数;计算最大额外缓存的数据量time_mem:time_mem=τ*α*write_max_bandwidth其中,α表示小数抽点系数运算完成到数据读取会延后测频结果的系统时钟周期数,τ表示系统时钟频率system_clk与采样率f
s
的比例;最大缓存数据量sync_mem为:sync_mem=time_mem+min_mem。4.根据权利要求1所述的示波功率分析仪采集系统,其特征在于,所述数据输出模块包括同步输出模块和pcie模块,其中同步输出模块用于对各个模拟通道的小数抽点后的数据data

i
进行同步,然后由pcie模块对fpga和上位机模块之间的数据通信进行适配,将同步后的各个数据data

i
输出至上位机模块。

技术总结


本发明公开了一种基于FPGA的示波功率分析仪同步采集系统,对于数据采集模块采集得到的功率数据分为两路,一路由基频测量模块进行基波频率测量,另一路由数据缓存模块同步缓存至DDR模块,基波频率测量完毕后,小数抽点系数运算模块根据测得的基波频率计算小数抽点系数,数据读取模块从DDR模块中读取缓存数据,小数抽点模块根据小数抽点系数对读取的数据进行小数抽点,然后经数据输出模块输出至上位机。本发明更加适应于对变频信号的采集,能够提高同步采样的精度,从而提高示波功率分析仪的整体测量、分析精度。分析精度。分析精度。


技术研发人员:

许波 陈凯 毛为聪 邹松庭 颜雁军

受保护的技术使用者:

电子科技大学

技术研发日:

2022.10.26

技术公布日:

2023/2/27

本文发布于:2024-09-25 16:38:09,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/60728.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据   模块   缓存   基波
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议