一种等精度频率解算装置及解算方法

文档序号:1920041 发布日期:2021-12-03 浏览:10次 >En<

阅读说明:本技术 一种等精度频率解算装置及解算方法 (Equal-precision frequency resolving device and method ) 是由 屈盼让 蔡晓乐 孙少华 呼明亮 肖鹏 张倩倩 于 2021-09-01 设计创作,主要内容包括:本发明公开一种等精度频率解算装置及解算方法,装置包括:频率采集单元和等精度解算单元;频率采集单元包括计周法采集模块和数据存储FIFO模块,用于采用计周法采集模块根据系统时钟对输入方波信号的每个周期进行计数,并将方波信号的每个周期的计数结果依次存储到数据存储FIFO模块;等精度解算单元中预先配置有固定的运行周期,用于从数据存储FIFO模块读取计数结果,并根据读取的计数结果、计数结果的数量和系统时钟,解算出一个运行周期内方波信号的平均频率。本发明的技术方案解决了现有计周测频法,由于采用单次计数数量进行解算,存在测量频率可能出现跳变,以及测量精度受被测信号的频率高低影响的问题。(The invention discloses an equal-precision frequency resolving device and a resolving method, wherein the device comprises: the device comprises a frequency acquisition unit and an equal-precision resolving unit; the frequency acquisition unit comprises a cycle counting method acquisition module and a data storage FIFO module, and is used for counting each period of the input square wave signals by the cycle counting method acquisition module according to a system clock and sequentially storing the counting result of each period of the square wave signals to the data storage FIFO module; the equal-precision calculating unit is pre-configured with a fixed running period and used for reading counting results from the data storage FIFO module and calculating the average frequency of square wave signals in one running period according to the read counting results, the number of the counting results and a system clock. The technical scheme of the invention solves the problems that the measurement frequency is likely to jump due to the fact that the single counting number is adopted for resolving in the existing frequency measuring method, and the measurement precision is influenced by the frequency of the measured signal.)

一种等精度频率解算装置及解算方法

技术领域

本发明涉及但不限于数字电路技术领域,尤其涉及一种等精度频率解算装置及解算方法。

背景技术

目前,工业测频领域常使用“计周测频法”对信号的频率进行精确测量,其原理是获取被采集信号单周期内系统时钟的计数数量,在通过系统时钟频率和计数数量解算被采集信号的频率。

上述“计周测频法”在一般情况下,由于系统时钟的频率远高于被采集信号的频率,所以“计周测频法”的采集精度很高。然而,常规的计周测频系统存在两个问题:(i)只有一个周期计数结果参与频率解算,解算结果平滑性较差,抗干扰能力较差,表现为测量频率出现跳变;(ii)测量精度不相等,被测信号的频率越高,其测量精度越低,尤其当被测信号的频率接近系统时钟时,其解算结果精度很低。

发明内容

本发明的目的为:为了解决背景技术中的问题,本发明实施例提出一种等精度频率解算装置及解算方法,以解决现有计周测频法,由于采用单次计数数量进行解算,存在测量频率可能出现跳变,以及测量精度受被测信号的频率高低影响的问题。

本发明的技术方案为:本发明实施例提出一种等精度频率解算装置,包括:频率采集单元和等精度解算单元;

所述频率采集单元包括:构建在FPGA上的计周法采集模块和数据存储FIFO模块,且所述FPGA内配置有系统时钟;

所述频率采集单元,用于采用计周法采集模块根据系统时钟对输入方波信号的每个周期进行计数,并将方波信号的每个周期的计数结果依次存储到数据存储FIFO模块;

所述等精度解算单元为配置在CPU上的解算程序,且所述解算程序预先配置有固定的运行周期;所述等精度解算单元,用于从数据存储FIFO模块读取计数结果,并根据读取的计数结果、计数结果的数量和系统时钟,解算出一个运行周期内方波信号的平均频率。

可选地,如上所述的等精度频率解算装置中,所述数据存储FIFO模块的深度为根据解算程序的运行周期Period和输入的方波信号的最大频率Fremax所配置的,深度为:

Depth=Period×Fremax

可选地,如上所述的等精度频率解算装置中,

所述数据存储FIFO模块中还配置有FIFO空标识,用于在数据存储FIFO模块中没有计数结果时,置为1,为0时表示非空。

可选地,如上所述的等精度频率解算装置中,所述等精度解算单元包括:数据驱动模块和频率解算模块;

所述数据驱动模块中配置有用于存储计数结果的数组和用于统计计数结果数量的计数量,用于通过读取FIFO空标识判断数据存储FIFO模块是否为空,并且在非空时,依次将数据存储FIFO模块中的计数结果读取出并存储在数组中,每存储一个计数结果,计数量加1;

所述频率解算模块,用于在计数量不为0时,根据数组中的各个计数结果、计数量和系统时钟,解算出一个运行周期内方波信号的平均频率。

可选地,如上所述的等精度频率解算装置中,所述频率解算模块解算一个运行周期内方波信号的平均频率,包括:

根据数组中的各个计数结果,计数结果的计数量,计算所有计数结果的平均值,并根据所有计数结果的平均值和系统时钟,解算出该运行周期内方波信号的平均频率。

可选地,如上所述的等精度频率解算装置中,

所述数据驱动模块,还用于在通过读取FIFO空标识判断数据存储FIFO模块为空时,其数组中的计数结果的计数量为0,使得频率解算模块输出上一个运行周期的频率解算结果。

本发明实施例还提供一种等精度频率解算方法,采用如上述任一项所述的等精度频率解算装置执行等精度频率解算方法,所述方法包括:对输入方波信号的周期进行计数,以及解算程序在其每个运行内对输入信号进行频率解算;

所述对输入方波信号的周期进行计数,包括:根据系统时钟对输入方波信号的每个周期进行计数,记录方波信号每个周期的计数结果并存储在数据存储FIFO模块中;

所述解算程序在其每个运行内对输入信号进行频率解算,包括:

从数据存储FIFO模块中读取计数结果,并根据所读取的计数结果、计数结果的计数量和系统时钟,解算出解算程序一个运行周期内方波信号的平均频率。

可选地,如上所述的等精度频率解算方法中,所述解算程序在其每个运行内对输入信号进行频率解算,包括:通过数据驱动模块运行的数据驱动流程,以及通过频率解算模块运行的频率解算流程;

其中,所述数据驱动流程,包括:

步骤11,初始化数据驱动模块中用于存储计数结果的数组,置计数结果数量为0;

步骤12,读取数据存储FIFO模块中的FIFO空标识,并判断数据存储FIFO模块是否为空;

步骤13,如果步骤12中判断出数据存储FIFO模块为非空,则读取计数结果,将计数结果存储在数组中,数组中的计数结果的计数量加1,转入步骤12;如果步骤12中判断出数据存储FIFO模块为空,则结束数据驱动流程,转入频率解算流程;

所述频率解算流程,包括:

步骤21,判断计数结果的计数量是否等于0;若判断出计数量为0,则输出上一个运行周期的频率解算结果,所述解算流程结束;若判断出计数量不为0,则转入步骤22;

步骤22,根据数组中的所有计数结果和计数量,求取所有计数结果的平均值;

步骤23,依据计数结果的平均值和FPGA的系统时钟,解算并输出方波信号的平均频率。

本发明的有益效果为:本发明实施例提出一种等精度频率解算装置及解算方法,有效解决了常规频率解算方法在满量程范围内频率精度不一致的问题;首先说明的是,导致频率解算误差的原因是由于输入方波信号到系统时钟域的同步误差,该同步误差小于等于一个系统时钟周期,常规方法仅依据输入方波信号的一次系统时钟计数结果解算频率,当输入方波信号的频率较高时,该同步误差占输入方波信号周期的比值较大,频率精度较低,当输入方波信号的频率较低时,该同步误差占输入方波信号周期的比值小,频率精度较高,上述即是常规频率解算方法中无法实现等精度解算的原因,其解算出的频率精度的高低受输入方波信号的频率高低影响,因此常规频率解算方法为不等精度频率解算。本发明实施例提供的等精度频率解算装置及解算方法,依据软件在一个运行周期内的输入方波信号的所有系统时钟计数结果的总和解算频率,当软件运行周期不变时,无论输入方波信号的频率如何变化,计数结果的总和大致相等,同步误差占计数结果总和的比值不变,进而保证了满量程范围内频率解算的等精度要求可适用于宽范围、等精度、高可靠应用场景。

附图说明

图1为本发明实施例提供的一种等精度频率解算装置的结构示意图;

图2所示,为本发明实施例提供的等精度频率解算装置中等精度解算单元的工作流程示意图;

图3为常规频率解算方法所采用的传统“计周测频法”引起同步误差的原理示意图;

图4为采用本发明实施例提供的等精度频率解算装置及解算方法进行频率解算的原理示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。

上述背景技术中已经说明,“计周测频法”通过系统时钟频率和计数数量解算被采集信号的频率,该方法由于只有一个周期的计数数量参与频率解算,存在测量频率可能出现跳变,以及测量精度受被测信号的频率高低影响的问题。

在航空航天等具有宽范围、等精度和高可靠频率测量要求的应用场景中,设计一种鲁棒性高的等精度频率解算的实现方式具有重要的应用价值。针对上述要求,本发明实施例提出一种等精度频率解算装置及解算方法,特别适用于宽范围等精度频率测量场景。

本发明提供以下几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。

图1为本发明实施例提供的一种等精度频率解算装置的结构示意图。如图1所示,本发明实施例中的等精度频率解算装置可以包括:频率采集单元和等精度解算单元。

如图1所示等精度频率解算装置的结构中,频率采集单元可以包括:构建在FPGA上的计周法采集模块和数据存储FIFO模块,且FPGA内配置有系统时钟。

基于本发明实施例中频率采集单元的结构,该频率采集单元的功能为:采用计周法采集模块根据系统时钟对输入方波信号的每个周期进行计数,并将方波信号的每个周期的计数结果依次存储到数据存储FIFO模块。

本发明实施例中的等精度解算单元为配置在CPU上的解算程序,且该解算程序预先配置有固定的运行周期;基于等精度解算单元的配置形式和内容,该等精度解算单元的功能为:从数据存储FIFO模块读取计数结果,并根据读取的计数结果、计数结果的数量和系统时钟,解算出一个运行周期内方波信号的平均频率。

需要说明的是,本发明实施例的频率采集单元中的计周法采集模块和数据存储FIFO模块是基于FPGA实现的。

在本发明实施例中,频率采集单元中数据存储FIFO模块的深度(Depth)为根据解算程序的运行周期Period和输入的方波信号的最大频率Fremax所配置的。在具体实施中,该数据存储FIFO模块的深度可以为:

Depth=Period×Fremax

在本发明实施例中,频率采集单元中数据存储FIFO模块中还配置有FIFO空标识。具体地,该FIFO空标识在数据存储FIFO模块中没有计数结果时,置为1,其为0时表示数据存储FIFO模块的计数结果为非空。

如图1所示等精度频率解算装置的结构中,等精度解算单元中可以包括:数据驱动模块和频率解算模块,且需要说明的是,数据驱动模块和频率解算模块是基于CPU实现的。如图2所示,为本发明实施例提供的等精度频率解算装置中等精度解算单元的工作流程示意图;其中,数据驱动模块执行数据驱动流程,频率解算模块执行频率解算流程。

在本发明实施例中,数据驱动模块中配置有用于存储计数结果的数组和用于统计计数结果数量的计数量,该数据驱动模块,用于通过读取FIFO空标识判断数据存储FIFO模块是否为空,并且在非空时,依次将数据存储FIFO模块中的计数结果读取出并存储在数组中,每存储一个计数结果,计数量加1。

本发明实施例中的频率解算模块,用于在计数量不为0时,根据数组中的各个计数结果、计数量和系统时钟,解算出一个运行周期内方波信号的平均频率。

通过上述等精度解算单元的工作流程可以看出,本发明实施例中的数据存储FIFO模块除过向数据驱动模块提供计数结果(即输入方波信号一个周期内系统时钟的计数值)以外,还要提供指示FIFO模块为空的FIFO空标识,用于等精度解算单元的数据驱动和频率解算。

在本发明实施例的一种实现方式中,频率解算模块解算一个运行周期内方波信号的平均频率的具体实施方式,可以包括:

根据数组中的各个计数结果,计数结果的计数量,计算所有计数结果的平均值,并根据所有计数结果的平均值和系统时钟,解算出该运行周期内方波信号的平均频率。

本发明实施例在具体实施中,数据驱动模块,还用于在通过读取FIFO空标识判断数据存储FIFO模块为空时,由于其数组中的计数结果的计数量为0,此时,频率解算模块输出上一个运行周期的频率解算结果。

基于本发明上述各实施例提供的等精度频率解算装置,本发明实施例还提供一种等精度频率解算方法,该方法为采用本发明上述各实施例提供的等精度频率解算装置执行的,该方法主要包括两部分内容:一部分为:对输入方波信号的周期进行计数;另一部分为:解算程序在其每个运行内对输入信号进行频率解算。

在本发明实施例提供的等精度频率解算方法中,上述对输入方波信号的周期进行计数的具体实现方式,可以包括:根据系统时钟对输入方波信号的每个周期进行计数,记录方波信号每个周期的计数结果并存储在数据存储FIFO模块中。

在本发明实施例提供的等精度频率解算方法中,上述解算程序在其每个运行内对输入信号进行频率解算的具体实现方式,可以包括:

从数据存储FIFO模块中读取计数结果,并根据所读取的计数结果、计数结果的计数量和系统时钟,解算出解算程序一个运行周期内方波信号的平均频率。

进一步地,本发明实施例中由解算程序在其每个运行内对输入信号进行频率解算,具体包括数据驱动和频率解算两部分内容,即包括:通过数据驱动模块运行的数据驱动流程,以及通过频率解算模块运行的频率解算流程;

参考上述图2所示等精度解算单元的工作流程,其中的数据驱动流程,可以包括如下具体步骤:

步骤11,初始化数据驱动模块中用于存储计数结果的数组,置计数结果数量为0,即count=0;

步骤12,读取数据存储FIFO模块中的FIFO空标识,并判断数据存储FIFO模块是否为空;

步骤13,如果步骤12中判断出数据存储FIFO模块为非空,则读取计数结果,将计数结果存储在数组中,数组中的计数结果的计数量加1,转入步骤12;如果步骤12中判断出数据存储FIFO模块为空,则结束数据驱动流程,转入频率解算流程。此时,输入方波信号的频率小于软件运行频率,可能存在以下情况:由于方波信号周期大于CPU运行周期,CPU上次采集FIFO中计数结果后,计周法采集模块尚未向FIFO中存入新的计数结果,从而FIFO中的数据量为0。

参考上述图2所示等精度解算单元的工作流程,其中的频率解算流程,可以包括如下具体步骤:

步骤21,判断计数结果的计数量是否等于0,如果为0,则说明方波信息的周期大,此时未更新FIFO模块中的计数结果,则输出上一个运行周期的频率解算结果,该解算流程结束;否则转入步骤22;

步骤22,根据数组中的所有计数结果和计数量,求取所有计数结果的平均值;

步骤23,依据计数结果的平均值和FPGA的系统时钟,解算并输出方波信号的平均频率。

本发明实施例提供的等精度频率解算装置及解算方法,有效解决了常规频率解算方法在满量程范围内频率精度不一致的问题;首先说明的是,导致频率解算误差的原因是由于输入方波信号到系统时钟域的同步误差,该同步误差小于等于一个系统时钟周期,常规方法仅依据输入方波信号的一次系统时钟计数结果解算频率,当输入方波信号的频率较高时,该同步误差占输入方波信号周期的比值较大,频率精度较低,当输入方波信号的频率较低时,该同步误差占输入方波信号周期的比值小,频率精度较高,上述即是常规频率解算方法中无法实现等精度解算的原因,其解算出的频率精度的高低受输入方波信号的频率高低影响,因此常规频率解算方法为不等精度频率解算。本发明实施例提供的等精度频率解算装置及解算方法,依据软件在一个运行周期内的输入方波信号的所有系统时钟计数结果的总和解算频率,当软件运行周期不变时,无论输入方波信号的频率如何变化,计数结果的总和大致相等,同步误差占计数结果总和的比值不变,进而保证了满量程范围内频率解算的等精度要求可适用于宽范围、等精度、高可靠应用场景。

以下具体对常规频率解算方法所采用的传统“计周测频法”的同步误差进行详细说明,包括以下两种情况:

图3为常规频率解算方法所采用的传统“计周测频法”引起同步误差的原理示意图。如图3所示,传统“计周测频法”依据系统时钟对输入方波信号的周期进行计数,其同步误差Δ1和Δ2是导致频率采集误差的主要因素,当系统时钟频率为fsystem,则依据单周期计数结果解算得到的频率值为:其中N为计数结果,而实际输入方波信号的频率可表示为:式中|Δ12|小于一个系统时钟周期Psystem,所以频率误差为:可见频率误差与周期计数结果N相关,当N越大时,频率误差越小,当N越小时,频率误差越大。

图4为采用本发明实施例提供的等精度频率解算装置及解算方法进行频率解算的原理示意图。如图4所示,本发明实施例中依据软件在一个运行周期Period内输入方波信号中的所有计数结果和计数结果的计数量count解算频率,得到的频率解算值为其中,Ni为第i个计数结果,fsystem为系统时钟频率,而实际的频率值为:其中,Δ为输入方波信号在对应计数结果的采集误差,式中|Δ1count|小于一个系统时钟周期Psystem,所以频率误差为:可见频率误差与输入方波信号的频率无关,仅与闸门时间和标准信号频率有关,即本发明实施例中实现了整个测试频段的等精度测量。

基于上述分析,如图4所示,输入方波信号的第一次计数结果的采集误差为Δ12,第二次计数结果的采集误差为Δ23,第三次计数结果的采集误差为Δ34,则三次计数结果的累积误差为(Δ12)+(Δ23)+(Δ34)=Δ14,可以看出,采用本发明实施例提供的装置和方法进行频率解算,连续多次计数的同步误差同样小于一个系统时钟周期Psystem,即实现了等精度频率解算。

在本发明实施例的一个可选的实施方式中,基于计周法采集模块实现对调理电路输出方波信号的计周法计数,将计数结果存储在指定大小的数据存储FIFO模块中,CPU周期地读空数据存储FIFO模块,对计数结果进行排序,剔除最大值和最小值后,求取计数结果的平均值,并依据计数结果的平均值解算频率。

以下通过一个具体实施示例对本发明实施例提供的等精度频率解算装置及解算方法的具体实施方式进行说明。

如图1所示,该具体实施例提供的等精度频率解算装置具体包括:频率采集单元和等精度解算单元;其中,频率采集单元具体包括:计周法采集模块和数据存储FIFO模块,频率采集单元具体包括:数据驱动模块和频率解算模块。

在具体实施中,计周法采集模块和数据存储FIFO模块基于FPGA实现;数据驱动模块和频率解算模块基于CPU实现。

被测信号经过调理和迟滞比较,生成频率保持的方波信号,经FPGA引脚输入到计周法采集模块,该计周法采集模块将输入的方波信号经过两级D触发器同步在系统时钟域下,并经过运算产生指示输入方波信号上升沿的单脉冲信号,该单脉冲信号作为使能信号触发频率输入信号单周期的系统时钟计数,并作为使能信号触发计数结果的存储过程;数据存储FIFO模块用于存储输入的方法信号单周期系统时钟的计数结果,其宽度等于计周法采集模块的计数器宽度,其深度Depth可依据数据驱动模块和频率解算模块的软件运行周期Period以及被测信号的最大频率Fremax配置,具体为Depth=Period×Fremax,另外,数据存储FIFO模块还包含指示其是否为空的FIFO空标识empty。

该具体实施例中的数据驱动模块维护一个数组和计数量count,在软件周期开始时将数组和count清0,读取数据存储FIFO模块的空标识empty,如果empty等于1,表示数据存储FIFO模块为空,则结束数据驱动流程,转入频率解算流程,否则,循环读取计数结果,并且计数量count加1,直至empty为1位置。该具体实施例中的数据解算模块判断计数量count是否为0,如果为0表示频率没有更新,则直接输出上一个软件周期的频率解算结果,如果不为0,则将计数结果作均值滤波,再解算并输出频率,如果计数结果的平均值为Codeavg,系统时钟频率为Fresystem,则频率解算结果Freresult=Fresystem/Codeavg

虽然本发明所揭露的实施方式如上,但所述的内容仅为便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。

12页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种高抗中性点避雷器动作判别方法、装置、设备及介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!