一种等精度测频装置及方法
技术领域
本发明的实施方式涉及频率测量技术领域,更具体地,本发明的实施方式涉及一种等精度测频装置及方法。
背景技术
本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
频率计又称为频率计数器,是一种专门对被测信号的频率进行测量的电子测量仪器。传统测量频率的方法主要有直接测量法、分频测量法、测周法等,这些方法往往只适用于测量一段频率,当被测信号的频率发生变化时,测量的精度就会下降。现有技术中有一种等精度测频方法,可以实现在整个频率测量过程中都能达到相同的测量精度,而与被测信号的频率变化无关。等精度测频方法的原理框图如图1所示,测量原理的波形如图2所示。
测量时,触发器1以待测信号(设频率为fx)为时钟,采样预置闸门脉冲,输出实际闸门脉冲给计数器1;计数器1以待测信号为时钟、以实际闸门脉冲为计数使能信号计数,第一计数结果Nx送给运算单元。
触发器2以参考时钟(频率为fc)为时钟,采样实际闸门脉冲,输出参考闸门脉冲给计数器2;计数器2以参考时钟为时钟、以参考闸门脉冲为计数使能信号计数,第二计数结果Nc送给运算单元。
运算单元根据公式1计算待测信号的频率:
fx=Nx/(Nc/fc) (公式1)
发明内容
1、现有技术存在较大误差
根据图2所示的测频原理波形图,对现有等精度测频方法进行误差分析可知:实际闸门脉冲与待测信号同步(即有确定的相位关系),二者上升沿对齐;但待测信号与参考时钟是异步的(即没有确定的相位关系),那么触发器2以参考时钟采样实际闸门脉冲时,实际闸门脉冲的上升沿与参考时钟上升沿之间的时间间隔Δt1(前端时差)、以及实际闸门脉冲的下沿与参考时钟上沿之间的时间间隔Δt2(后端时差),便构成了测量误差。因此,实际的fx应为:
fx=Nx/(Nc/fc+Δt1-Δt2) (公式2)
公式2中,Δt1、Δt2的取值范围是0~Tc,Tc=1/fc,为参考时钟周期。也就是说,现有等精度测频方法的误差为-Tc~+Tc。这一误差与待测信号的频率无关,取决于预置闸门脉冲时间和参考时钟频率。预置闸门脉冲时间越长,Nx就越大,±Tc被Nx平均后就越小,相对误差也就愈小;提高参考时钟频率就是减小Tc,也能减小误差。
但是实际测试表明,增加预置闸门脉冲时间会降低测频速度,影响用户体验。而参考时钟频率也不能无限提高,即使在高性能FPGA芯片中,大位宽的计数器时钟频率一般也很难超过200MHz。对于现有技术,如果要求测量误差减小至-1nS~+1nS,则要求计数器时钟频率为1GHz,现有的FPGA芯片无法实现这么高的工作频率。
2、现有技术的误差来源
等精度测频方法中,参考时钟的有效边沿可以是上升沿,也可以是下降沿;实际闸门脉冲的有效电平可以是高电平,也可以是低电平。根据图2所示的测频原理波形图可知,现有等精度测频方法的误差源于触发器2的参考时钟与实际闸门脉冲是异步的,即参考时钟的有效边沿(图2中是上升沿)与实际闸门脉冲的有效电平的正边沿(图2中是上升沿)、负边沿(图2中是下降沿)的相位关系不确定,从而导致了最大为±Tc的测量误差。由此可知,如果能计算出前端时差Δt1和后端时差Δt2,就可以根据公式2计算出更为准确的待测信号的频率fx。
3、计算前端时差Δt1和后端时差Δt2
基于以上考虑,本发明对实际闸门脉冲进行一组细小、等间隔的延时,然后根据这些延时结果计算出前端时差Δt1、后端时差Δt2。
具体实施时,如果是高性能FPGA芯片,则可以使用其内部丰富的进位链资源实现延时功能。进位链是FPGA实现加法功能的基本单元,其输入、输出之间存在一定的延时;每个型号的FPGA芯片都会对该延时给出标称值。若以Tap表示延时时长,进位链的Tap的标称值非常小,目前主流FPGA中进位链的Tap的标称值在100pS左右。进位链的Tap值受FPGA芯片工作温度、工作电压影响,需要对其校准,以获得准确的Tap值。
如果是早期没有进位链资源的FPGA芯片,则可以使用其查找表来实现延时功能,与进位链类似,查找表也有延时标称值,也需要对其校准。
如果是CPLD芯片,则可以使用其逻辑宏单元来实现延时功能,与进位链类似,逻辑宏单元也有延时标称值,也需要对其校准。
本发明以进位链为例说明对实际闸门脉冲进行的延时处理,需要说明的是,由于查找表和逻辑宏单元与进位链具有类似的延时功能及校准需求,因此,以下说明中利用进位链进行的延时处理及对进位链实施的校准方法均适用于查找表和逻辑宏单元。
本发明利用级联的进位链对实际闸门脉冲进行延时,如图3所示,实际闸门脉冲经过各级进位链延时处理之后的延时信号分别为MSB1、MSB2、MSB3……MSBk,其中,后一级进位链的延时处理是在前一级进位链处理结果的基础上进行的,经过所有进位链延时处理之后的延时结果包括MSB1、MSB2、MSB3……MSBk这些延时信号。
下面举例说明实际闸门脉冲经过多级级联进位链的延时结果。
以图4为例,其中,级联进位链的级数为7级,参考时钟的有效边沿是上升沿,实际闸门脉冲的有效电平是高电平,前端时差Δt1是实际闸门脉冲的有效电平的正边沿(对应于虚线①)与其之后最近的参考时钟的有效边沿(对应于虚线②)之间的时间差,后端时差Δt2是实际闸门脉冲的有效电平的负边沿(对应于虚线③)与其之后最近的参考时钟的有效边沿(对应于虚线④)之间的时间差。
若以H表示有效电平、L表示无效电平,则在t1时刻(对应于虚线②),采样对实际闸门脉冲7级延时后的一组延时结果,得到7个电平“HHHLLLLL”,这7个电平分别为t1时刻该组延时结果中7个延时信号的电平,以NUM(H)表示该延时结果中高位连续的H,则NUM(H)=3;在t2时刻,采样这样的一组延时结果,得到“LLLLLLHH”,以NUM(L)表示该延时结果中高位连续的L,则NUM(L)=5。
基于以上延时结果,可按照如下公式3、公式4计算出前端时差Δt1、后端时差Δt2:
Δt1=Tap*NUM(H) (公式3)
Δt2=Tap*NUM(L) (公式4)
公式3的物理意义是:在前端时差Δt1中,实际闸门脉冲经历了NUM(H)次延时,其从有效电平过渡到无效电平,因此,Δt1可由Tap*NUM(H)得到。
公式4的物理意义是:在后端时差Δt2中,实际闸门脉冲经历了NUM(L)次延时,其从无效电平过渡到有效电平,因此,Δt2可由Tap*NUM(L)得到。
4、校准Tap值
如前所述,Tap值受FPGA芯片工作温度、工作电压影响,需要对其校准,以获得准确的Tap值。
本发明中校准Tap值的原理是让一周期已知的校准信号代替图3中实际闸门脉冲进入级联进位链,然后从延时结果计算出准确的Tap值。
图5举例说明本发明的校准原理。
校准信号的周期为CalibPeriod、占空比为CalibDuty。级联进位链有k级,其输入信号为校准信号,输出信号有k个,分别是校准信号_1、校准信号_2、……校准信号_n、……校准信号_m、……校准信号_k。前后2级的时间间隔长度均为Tap。
在某一时刻,例如图5例子中t3虚线处,校准信号_1、校准信号_2、……校准信号_k的电平分别是L、L、……H、H、L……。从高位开始,先是连续的L码,然后是连续的H码,然后又是连续的L码……,两段连续L码中间的连续H码的个数num(H)所对应的就是校准信号有效电平所持续的时间段。因此,根据如下公式计算Tap值:
Tap=CalibPeriod*CalibDuty/num(H) (公式5)
公式5的物理意义是:在校准信号的有效电平的持续时间CalibPeriod*CalibDuty中,经过了num(H)次延时,校准信号从有效电平过渡到无效电平,由于每次延时的时长就是一个Tap值,因此Tap值可以由CalibPeriod*CalibDuty/num(H)得到。
另一种情况是在图5中t4虚线处,校准信号_1、校准信号_2、……校准信号_k的电平分别是H、H、……L、L、H、H……。从高位开始,先是连续的H码,然后是连续的L码,然后又是连续的H码……,两段连续H码中间的连续L码的个数num(L)所对应的就是校准信号无效电平所持续的时间段。因此,也根据如下公式计算Tap值:
Tap=CalibPeriod*(1-CalibDuty)/num(L) (公式6)
公式6的物理意义是:在校准信号的无效电平的持续时间CalibPeriod*(1-CalibDuty)中,经过了num(L)次延时,校准信号从无效电平过渡到有效电平,由于每次延时的时长就是一个Tap值,因此Tap值可以由CalibPeriod*(1-CalibDuty)/num(L)得到。
在本上下文中,本发明的实施方式期望提供一种等精度测频装置及方法,以显著提高测频精度。
在本发明实施方式的一个方面,提供了一种等精度测频装置,包括:控制单元、第一选择器、第一触发器、第二触发器、第一计数器、第二选择器、第二计数器、延时单元、第三触发器、运算单元、第一寄存器组、第二寄存器组;
控制单元,用于产生参考时钟、校准使能信号、校准信号、预置闸门脉冲;
第一选择器,其输入端接收待测信号,以及接收控制单元发送的校准使能信号、校准信号;当校准使能信号为有效电平时,输出校准信号;当校准使能信号为无效电平时,输出待测信号;
第一触发器,其输入端接收控制单元输出的预置闸门脉冲,以及接收第一选择器发送的待测信号或校准信号;当接收待测信号时,在待测信号的有效边沿处采样预置闸门脉冲,输出第一实际闸门脉冲;当接收校准信号时,在校准信号的有效边沿处采样预置闸门脉冲,输出第二实际闸门脉冲;
第一计数器,其输入端接收第一选择器输出的待测信号、第一触发器输出的第一实际闸门脉冲时,在待测信号的有效边沿处以第一实际闸门脉冲为使能进行计数,输出第一计数结果;
第二触发器,其输入端接收控制单元输出的参考时钟,以及接收第一触发器发送的第一实际闸门脉冲或第二实际闸门脉冲;当接收第一实际闸门脉冲时,在参考时钟的有效边沿采样第一实际闸门脉冲,输出参考闸门脉冲;
第二计数器,其输入端接收控制单元输出的参考时钟,以及接收第二触发器输出的参考闸门脉冲;在参考时钟的有效边沿处以参考闸门脉冲为使能进行计数,输出第二计数结果;
第二选择器,其输入端接收控制单元输出的校准使能信号、校准信号,以及接收第一触发器输出的第一实际闸门脉冲或第二实际闸门脉冲;当校准使能信号为有效电平时,输出校准信号;当校准使能信号为无效电平时,输出第一实际闸门脉冲。
延时单元,由k个延时子单元级联构成,其输入端接收第二选择器输出的校准信号或第一实际闸门脉冲;当接收第一实际闸门脉冲时,利用k个延时子单元对接收的第一实际闸门脉冲进行延时处理,得到并输出第一延时结果;当接收校准信号时,利用k个延时子单元对接收的校准信号进行延时处理,得到并输出第二延时结果;其中,所述第一延时结果包括每个延时子单元对第一实际闸门脉冲进行延时处理得到的各个信号,所述第二延时结果包括每个延时子单元对校准信号进行延时处理得到的各个信号;
第三触发器,其输入端接收控制单元输出的参考时钟,以及接收第一触发器输出的第一实际闸门脉冲或第二实际闸门脉冲;当接收第一实际闸门脉冲时,在参考时钟的有效边沿处采样第一实际闸门脉冲,得到并输出第一锁存时钟;当接收第二实际闸门脉冲时,在参考时钟的有效边沿处采样第二实际闸门脉冲,得到并输出第二锁存时钟;
第一寄存器组,其输入端接收延时单元输出的第一延时结果或第二延时结果,以及接收第三触发器输出的第一锁存时钟或第二锁存时钟;当接收第一延时结果和第一锁存时钟时,在第一锁存时钟的正边沿处锁存第一延时结果,得到第一正边沿延时数据并发送给运算单元,该第一正边沿延时数据为在第一锁存时钟的正边沿处,该第一延时结果的k个信号的k个电平中,高位连续的有效电平的数量;当接收第二延时结果和第二锁存时钟时,在第二锁存时钟的正边沿处锁存第二延时结果,得到第二正边沿延时数据并发送给运算单元,该第二正边沿延时数据为在第二锁存时钟的正边沿处,该第二延时结果的k个信号的k个电平中,处于两段连续的有效电平之间的连续无效电平的数量或处于两段连续的无效电平之间的连续有效电平的数量;
第二寄存器组,其输入端接收延时单元输出的第一延时结果或第二延时结果,以及接收第三触发器输出的第一锁存时钟或第二锁存时钟;当接收第一延时结果和第一锁存时钟时,在第一锁存时钟的负边沿处锁存第一延时结果,得到第一负边沿延时数据并发送给运算单元,该第一负边沿延时数据为在第一锁存时钟的负边沿处,该第一延时结果的k个信号的k个电平中,高位连续的无效电平的数量;当接收第二延时结果和第二锁存时钟时,在第二锁存时钟的负边沿处锁存第二延时结果,得到第二负边沿延时数据并发送给运算单元,该第二负边沿延时数据为在第二锁存时钟的负边沿处,该第二延时结果的k个信号的k个电平中,处于两段连续的有效电平之间的连续无效电平的数量或处于两段连续的无效电平之间的连续有效电平的数量;
运算单元,其输入端接收第一寄存器组输出的第一正边沿延时数据或第二正边沿延时数据,以及接收第二寄存器组输出的第一负边沿延时数据或第二负边沿延时数据;当接收第一正边沿延时数据、第一负边沿延时数据时,根据公式Δt1=Tap*NUM(H)计算前端时差,根据公式Δt2=Tap*NUM(L)计算后端时差,并利用前端时差、后端时差、参考时钟的频率、第一计数结果、第二计数结果计算待测信号的频率;当接收第一负边沿延时数据、第二负边沿延时数据时,根据如下公式Tap=CalibPeriod*CalibDuty/num(H)或Tap=CalibPeriod*(1-CalibDuty)/num(L)计算延时子单元的延时时长;
其中,Δt1为前端时差;Δt2为后端时差;Tap为延时子单元的延时时长;NUM(H)为在第一锁存时钟的正边沿处,第一延时结果的k个信号的k个电平中高位连续的有效电平的数量;NUM(L)为在第一锁存时钟的负边沿处,第一延时结果的k个信号的k个电平中高位连续的无效电平的数量;num(L)为在第二锁存时钟的正边沿处,第二延时结果的k个信号的k个电平中处于两段连续的有效电平之间的连续无效电平的数量,或在第二锁存时钟的负边沿处,该第二延时结果的k个信号的k个电平中处于两段连续的有效电平之间的连续无效电平的数量;num(H)为在第二锁存时钟的正边沿处,第二延时结果的k个信号的k个电平中处于两段连续的无效电平之间的连续有效电平的数量,或在第二锁存时钟的负边沿处,该第二延时结果的k个信号的k个电平中处于两段连续的无效电平之间的连续有效电平的数量;CalibPeriod为校准信号的周期;CalibDuty为校准信号的占空比。
在本发明实施方式的另一个方面,提供了一种等精度测频方法,包括:
通过一控制单元产生参考时钟、校准使能信号、校准信号、预置闸门脉冲;
通过一第一选择器接收待测信号,以及接收控制单元发送的校准使能信号、校准信号;当校准使能信号为有效电平时,第一选择器输出校准信号;当校准使能信号为无效电平时,第一选择器输出待测信号;
通过一第一触发器接收控制单元输出的预置闸门脉冲,以及接收第一选择器发送的待测信号或校准信号;当接收待测信号时,第一触发器在待测信号的有效边沿处采样预置闸门脉冲,输出第一实际闸门脉冲;当接收校准信号时,第一触发器在校准信号的有效边沿处采样预置闸门脉冲,输出第二实际闸门脉冲;
通过一第一计数器接收第一选择器输出的待测信号、第一触发器输出的第一实际闸门脉冲时,第一计数器在待测信号的有效边沿处以第一实际闸门脉冲为使能进行计数,输出第一计数结果;
通过一第二触发器接收控制单元输出的参考时钟,以及接收第一触发器发送的第一实际闸门脉冲或第二实际闸门脉冲;当接收第一实际闸门脉冲时,第二触发器在参考时钟的有效边沿采样第一实际闸门脉冲,输出参考闸门脉冲;
通过一第二计数器接收控制单元输出的参考时钟,以及接收第二触发器输出的参考闸门脉冲;第二计数器在参考时钟的有效边沿处以参考闸门脉冲为使能进行计数,输出第二计数结果;
通过一第二选择器接收控制单元输出的校准使能信号、校准信号,以及接收第一触发器输出的第一实际闸门脉冲或第二实际闸门脉冲;当校准使能信号为有效电平时,第二选择器输出校准信号;当校准使能信号为无效电平时,第二选择器输出第一实际闸门脉冲。
通过一由k个延时子单元级联构成的延时单元,接收第二选择器输出的校准信号或第一实际闸门脉冲;当接收第一实际闸门脉冲时,延时单元利用k个延时子单元对接收的第一实际闸门脉冲进行延时处理,得到并输出第一延时结果;当接收校准信号时,延时单元利用k个延时子单元对接收的校准信号进行延时处理,得到并输出第二延时结果;其中,所述第一延时结果包括每个延时子单元对第一实际闸门脉冲进行延时处理得到的各个信号,所述第二延时结果包括每个延时子单元对校准信号进行延时处理得到的各个信号;
通过一第三触发器接收控制单元输出的参考时钟,以及接收第一触发器输出的第一实际闸门脉冲或第二实际闸门脉冲;当接收第一实际闸门脉冲时,第三触发器在参考时钟的有效边沿处采样第一实际闸门脉冲,得到并输出第一锁存时钟;当接收第二实际闸门脉冲时,第三触发器在参考时钟的有效边沿处采样第二实际闸门脉冲,得到并输出第二锁存时钟;
通过一第一寄存器组接收延时单元输出的第一延时结果或第二延时结果,以及接收第三触发器输出的第一锁存时钟或第二锁存时钟;当接收第一延时结果和第一锁存时钟时,第一寄存器组在第一锁存时钟的正边沿处锁存第一延时结果,得到第一正边沿延时数据并发送给运算单元,该第一正边沿延时数据为在第一锁存时钟的正边沿处该第一延时结果的k个信号的k个电平中,高位连续的有效电平的数量;当接收第二延时结果和第二锁存时钟时,第一寄存器组在第二锁存时钟的正边沿处锁存第二延时结果,得到第二正边沿延时数据并发送给运算单元,该第二正边沿延时数据为在第二锁存时钟的正边沿处该第二延时结果的k个信号的k个电平中,处于两段连续的有效电平之间的连续无效电平的数量或处于两段连续的无效电平之间的连续有效电平的数量;
通过一第二寄存器组接收延时单元输出的第一延时结果或第二延时结果,以及接收第三触发器输出的第一锁存时钟或第二锁存时钟;当接收第一延时结果和第一锁存时钟时,第二寄存器组在第一锁存时钟的负边沿处锁存第一延时结果,得到第一负边沿延时数据并发送给运算单元,该第一负边沿延时数据为在第一锁存时钟的负边沿处该第一延时结果的k个信号的k个电平中,高位连续的无效电平的数量;当接收第二延时结果和第二锁存时钟时,第二寄存器组在第二锁存时钟的负边沿处锁存第二延时结果,得到第二负边沿延时数据并发送给运算单元,该第二负边沿延时数据为在第二锁存时钟的负边沿处该第二延时结果的k个信号的k个电平中,处于两段连续的有效电平之间的连续无效电平的数量或处于两段连续的无效电平之间的连续有效电平的数量;
通过一运算单元接收第一寄存器组输出的第一正边沿延时数据或第二正边沿延时数据,以及接收第二寄存器组输出的第一负边沿延时数据或第二负边沿延时数据;当接收第一正边沿延时数据、第一负边沿延时数据时,运算单元根据公式Δt1=Tap*NUM(H)计算前端时差,根据公式Δt2=Tap*NUM(L)计算后端时差,并利用前端时差、后端时差、参考时钟的频率、第一计数结果、第二计数结果计算待测信号的频率;当接收第一负边沿延时数据、第二负边沿延时数据时,运算单元根据如下公式Tap=CalibPeriod*CalibDuty/num(H)或Tap=CalibPeriod*(1-CalibDuty)/num(L)计算延时子单元的延时时长;
其中,Δt1为前端时差;Δt2为后端时差;Tap为延时子单元的延时时长;NUM(H)为在第一锁存时钟的正边沿处,第一延时结果的k个信号的k个电平中高位连续的有效电平的数量;NUM(L)为在第一锁存时钟的负边沿处,第一延时结果的k个信号的k个电平中高位连续的无效电平的数量;num(L)为在第二锁存时钟的正边沿处,第二延时结果的k个信号的k个电平中处于两段连续的有效电平之间的连续无效电平的数量,或在第二锁存时钟的负边沿处,该第二延时结果的k个信号的k个电平中处于两段连续的有效电平之间的连续无效电平的数量;num(H)为在第二锁存时钟的正边沿处,第二延时结果的k个信号的k个电平中处于两段连续的无效电平之间的连续有效电平的数量,或在第二锁存时钟的负边沿处,该第二延时结果的k个信号的k个电平中处于两段连续的无效电平之间的连续有效电平的数量;CalibPeriod为校准信号的周期;CalibDuty为校准信号的占空比。
本发明提供的等精度测频装置,其测频误差为±1个Tap值,远小于现有技术的±1个参考时钟的周期,能够有效提高测频精度;本发明能够以较低频率的参考时钟实现高精度测频;本发明在测频开始前对Tap值做了校准,这样工作温度、工作电压的变化不会影响本发明的测频精度,并且本发明的校准过程是一种自校准方案,校准信号由控制单元产生,无需外部送入校准信号,便于工厂生产和客户使用。
附图说明
通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:
图1是现有等精度测频方法的原理框图;
图2是现有等精度测频方法的测频波形图;
图3是利用级联进位链对实际闸门脉冲进行延时处理的示意图;
图4是利用级联进位链对实际闸门脉冲进行延时处理的结果示意图;
图5是利用级联进位链对校准信号进行延时的结果示意图;
图6是本发明提供的等精度测频装置的结构框图;
图7是利用级联延时子单元进行延时处理的示意图;
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
根据本发明的实施方式,提出了一种等精度测频装置及方法。
在本文中,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
示例性装置
本实施例提供一种等精度测频装置,如图6所示,该等精度测频装置包括:控制单元CU、选择器S1、触发器T1、触发器T2、计数器C1、选择器S2、计数器C2、延时单元DU、触发器T3、运算单元AU、寄存器组R1、寄存器组R2。
控制单元CU,用于产生参考时钟给触发器T2、计数器C2、触发器T3,产生校准使能信号、校准信号给选择器S1和选择器S2,并输出预置闸门脉冲给触发器T1。
选择器S1,其输入端接收待测信号,以及接收控制单元CU发送的校准使能信号、校准信号;当校准使能信号为有效电平时,将校准信号发送给触发器T1、计数器C1,当校准使能信号为无效电平时,将待测信号发送给触发器T1、计数器C1。
触发器T1,其输入端接收控制单元CU输出的预置闸门脉冲,以及接收选择器S1发送的待测信号或校准信号;当接收选择器S1发送的待测信号时,在待测信号的有效边沿处采样预置闸门脉冲,输出实际闸门脉冲A给计数器C1、触发器T2、触发器T3;当接收选择器S1发送的校准信号时,在校准信号的有效边沿处采样预置闸门脉冲,输出实际闸门脉冲B给计数器C1、触发器T2、触发器T3。
计数器C1,其输入端接收选择器S1输出的待测信号、触发器T1发送的实际闸门脉冲A时,在待测信号的有效边沿处以实际闸门脉冲A为使能进行计数,将第一计数结果Nx发送给运算单元AU。
触发器T2,其输入端接收控制单元CU输出的参考时钟,以及接收触发器T1发送的实际闸门脉冲A或实际闸门脉冲B;当接收触发器T1发送的实际闸门脉冲A时,在参考时钟的有效边沿采样实际闸门脉冲A,输出参考闸门脉冲给计数器C2。
计数器C2,其输入端接收控制单元CU输出的参考时钟,以及触发器T2输出的参考闸门脉冲;在参考时钟的有效边沿处以参考闸门脉冲为使能进行计数,将第二计数结果Nc发送给运算单元AU。
选择器S2,其输入端接收控制单元CU输出的校准使能信号、校准信号,以及接收触发器T1输出的实际闸门脉冲A或实际闸门脉冲B;当校准使能信号为有效电平时,将校准信号发送给延时单元DU;当校准使能信号为无效电平时将实际闸门脉冲A发送给延时单元DU。
延时单元DU,由k个延时子单元级联构成,其输入端接收选择器S2输出的校准信号或实际闸门脉冲A;当接收实际闸门脉冲信号A时,利用k个延时子单元对接收的实际闸门脉冲信号A进行延时处理,得到延时结果A,将延时结果A发送给寄存器组R1、寄存器组R2,当接收校准信号时,利用k个延时子单元对接收的校准信号进行延时处理,得到延时结果B,将延时结果B发送给寄存器组R1、寄存器组R2。
其中,延时结果A包括每个延时子单元对实际闸门脉冲信号A进行延时处理得到的各个延时信号,例如图7所示,各个延时子单元对实际闸门脉冲信号A进行延时处理得到的各个延时信号分别是MSB1、MSB2、MSB3……MSBk,这些延时信号依次排列组成延时结果A;延时结果B包括每个延时子单元对校准信号进行延时处理得到的各个延时信号,具体情况与延时结果A类似,此处不再赘述。
触发器T3,其输入端接收控制单元CU输出的参考时钟,以及接收触发器T1输出的实际闸门脉冲A或实际闸门脉冲B;当接收实际闸门脉冲A时,在参考时钟的有效边沿处采样实际闸门脉冲A,所得锁存时钟A发送给寄存器组R1、寄存器组R2;当接收实际闸门脉冲B时,在参考时钟的有效边沿处采样实际闸门脉冲B,所得锁存时钟B发送给寄存器组R1、寄存器组R2。
寄存器组R1,其输入端接收延时单元DU输出的延时结果A或延时结果B,以及接收触发器T3输出的锁存时钟A或锁存时钟B;当接收延时结果A和锁存时钟A时,在锁存时钟A的正边沿处锁存延时结果A,得到延时数据A1发送给运算单元AU,该延时数据A1为在锁存时钟A的正边沿处该延时结果A的k个电平(分别对应于k个延时信号)中高位连续的有效电平的数量NUM(H);当接收延时结果B和锁存时钟B时,在锁存时钟B的正边沿处锁存延时结果B,得到延时数据B1发送给运算单元AU,该延时数据B1为在锁存时钟B的正边沿处该延时结果B的k个电平(分别对应于k个延时信号)中,处于两段连续的有效电平之间的连续无效电平的数量num(L)或处于两段连续的无效电平之间的连续有效电平的数量num(H)。
寄存器组R2,其输入端接收延时单元DU输出的延时结果A或延时结果B,以及接收触发器T3输出的锁存时钟A或锁存时钟B;当接收延时结果A和锁存时钟A时,在锁存时钟A的负边沿处锁存延时结果A,得到延时数据A2发送给运算单元AU,该延时数据A2为在锁存时钟A的负边沿处该延时结果A的k个电平(分别对应于k个延时信号)中高位连续的无效电平的数量NUM(L);当接收延时结果B和锁存时钟B时,在锁存时钟B的负边沿处锁存延时结果B,得到延时数据B2发送给运算单元AU,该延时数据B2为在锁存时钟B的负边沿处该延时结果B的k个电平(分别对应于k个延时信号)中,处于两段连续的有效电平之间的连续无效电平的数量num(L)或处于两段连续的无效电平之间的连续有效电平的数量num(H)。
运算单元AU,其输入端接收寄存器组R1输出的延时数据A1或延时数据B1,以及接收寄存器组R2输出的延时数据A2或延时数据B2;当接收延时数据A1、延时数据A2时,根据公式3计算得到Δt1,根据公式4计算得到Δt2,并根据公式2计算待测信号的频率fx;当接收延时数据A2、延时数据B2时,根据公式5或者根据公式6计算延时子单元的延时时长Tap值。
fx=Nx/(Nc/fc+Δt1-Δt2) (公式2)
Δt1=Tap*NUM(H) (公式3)
Δt2=Tap*NUM(L) (公式4)
Tap=CalibPeriod*CalibDuty/num(H) (公式5)
Tap=CalibPeriod*(1-CalibDuty)/num(L) (公式6)
fx为待测信号的频率;
Nx为第一计算结果;
Nc为第二计算结果;
fc为参考时钟的频率;
Δt1为前端时差;
Δt2为后端时差;
Tap为延时子单元的延时时长;
NUM(H)、num(H)为有效电平的数量;
NUM(L)、num(L)为无效电平的数量;
CalibPeriod为校准信号的周期;
CalibDuty为校准信号的占空比。
可选地,具体实施时,根据该等精度测频装置的芯片的类型及型号,选择采用进位链、查找表或逻辑宏单元中的任意一种作为延时子单元,并以其级联形式构成延时单元DU。
较佳地,本发明的延时子单元采用进位链,这是因为进位链的延时时长Tap比较小,可以有效提高测频精度。
但某些早期FPGA芯片或者CPLD芯片是没有进位链的,可以利用FPGA芯片内的查找表、或者CPLD的逻辑宏单元来代替进位链实现延时。它们的延时标称值稍大一些,通常在几百pS。相对于现有技术,也能达到提高测频精度的目的,只是没有进位链的效果好。
具体实施时,由于FPGA芯片内部所有的走线都是有时延的,例如,触发器T1输出的实际闸门脉冲A\B到触发器T2的输入端与其到选择器S2输入端所需的布线时延是不一致的,而且,实际闸门脉冲A\B从某个模块(比如选择器S2)的输入端到期输出端也存在时延。这些时延对计算待测信号的频率都有影响,而且这些时延是可以通过FPGA或CPLD的集成开发工具获得的。因此为了进一步提高计算结果的准确程度,可以在公式2中引入相关时延。
可选地,运算单元AU还可以根据公式7计算待测信号的频率fx。
fx=Nx/(Nc/fc+Δt1-Δt2+Td_data-Td_clk) (公式7)
Td_data是指布线时延1、布线时延2的差值,其中,布线时延1是从触发器T1输出端开始,经过选择器S2,再到寄存器组R1的输入端之间的布线时延,布线时延2是从触发器T1的输出端开始,到触发器T2的数据输入端(即接收触发器T1输出的实际闸门脉冲A或实际闸门脉冲B的端口)之间的布线时延。
Td_clk是指布线时延3、布线时延4的差值,其中,布线时延3是从控制单元CU的参考时钟输出端(即输出参考时钟的端口)开始,经过触发器T3、再到寄存器组R1的时钟输入端(即接收触发器T3输出的锁存时钟A或锁存时钟B)之间的布线时延,线时延4是从控制单元CU的参考时钟输出端(即输出参考时钟的端口)开始,到触发器T2的时钟输入端(即接收参考时钟的输入端)之间的布线时延。
在FPGA实现时,可将图6所有模块、布线的位置固定住,通过FPGA集成开发工具查询上述布线时延1、2、3、4,并将计算出的Td-data、Td-clk值预存到运算单元AU中。
具体实施时,参考时钟的频率不能过高,因为FPGA芯片或者CPLD芯片无法工作于过高的频率;参考时钟的频率也不能太小,根据图4、公式3和公式4,Δt1或者Δt2要小于参考时钟的周期Tc,Tc越大,要求延时单元DU内级联的延时子单元的个数就越多,会增加芯片内资源(如进位链资源)的占用。较佳的,参考时钟的频率可选为200MHz,延时子单元的个数为60个。
具体实施时,校准信号的周期必须小于延时单元DU的延时窗口长度(即所有延时子单元的Tap值总和)。这是因为如果校准信号的周期大于或等于延时单元DU的延时窗口长度,则在锁存时钟B的正\负边沿处延时结果B的k个信号的k个电平就可能是(1)全部连续有效电平,或(2)全部连续无效电平,或(3)一段连续有效电平+一段连续无效电平,或(4)一段连续无效电平+一段连续有效电平,而不可能是两段连续有效电平之间包含一段连续无效电平或两段连续无效电平之间包含一段连续有效电平的情况,因此也就无法计算出处于两段连续的有效电平之间的连续无效电平的数量num(L)或处于两段连续的无效电平之间的连续有效电平的数量num(H),继而导致校准失败。
具体实施时,是否执行Tap值的校准过程完全依据校准使能信号是否为有效电平来触发,例如,每当执行测频过程之前,控制单元CU可以先令校准使能信号为有效电平,完成校准过程之后,再令校准使能信号为无效电平,执行测频过程。
本发明的有益效果:
本发明提供的等精度测频装置中,在寄存器组R1的输入端,锁存时钟A的正边沿与参考时钟的正边沿是同步的(即二者具有确定的相位关系);而延时结果A来自于触发器T1输出的实际闸门脉冲A,它和触发器T1的待测信号是同步的。所以锁存时钟A与延时结果A是异步关系。根据图4的椭圆框可以看出,本发明的测频误差为±1个Tap。
由于Tap值很小,100pS左右,远小于现有技术的±1个参考时钟周期Tc,所以本发明能够有效提高测频精度。
本发明提供的等精度测频装置能够以较低频率的参考时钟实现高精度测频。
现有技术中,等精度测频方法的误差是±1个参考时钟周期,比如参考时钟频率为200MHz,则误差为±5nS,并且不能大幅提高参考时钟频率来降低误差。本发明的测频误差为±1个Tap,Tap值很小,100pS左右。相对于现有技术,本发明能够将测频误差减小50倍,也就是提高了测频精度。
目前FPGA规模都很大,拥有丰富的进位链资源,只要增加延时单元DU中级联进位链的个数,就可以降低参考时钟频率。而降低参考时钟频率不会影响本发明的测频误差,因为测频误差只与Tap值有关。这样即使使用低性能的、工作频率较低的FPGA,也能获得较高的测频精度。
本发明在测频开始前对Tap值做了校准,这样工作温度、工作电压的变化不会影响本发明的测频精度,并且本发明的校准过程是一种自校准方案,校准信号由控制单元CU产生,无需外部送入校准信号,便于工厂生产和客户使用。
实施例一
本实施例介绍一等精度测频装置的校准过程及测频过程。
本实施例中,延时单元DU包括60个级联的进位链,每个进位链的Tap的标称值为100pS;考虑到进位链实际的Tap值会小于标称值,为了有一定的裕量,将校准信号的周期设置为4nS;为了便于产生,设置校准信号的占空比为50%;参考时钟的频率为200MHz;校准使能信号为比特1时为有效电平,为比特0时为无效电平。
1、校准过程
步骤S101,控制单元CU,产生参考时钟。
步骤S102,控制单元CU,输出校准使能信号,为比特1。
步骤S103,控制单元CU,输出预置闸门脉冲。
步骤S104,选择器S1,根据校准使能信号选择校准信号作为输出。
步骤S105,触发器T1,以校准信号为时钟,采样预置闸门脉冲,输出实际闸门脉冲B。
步骤S106,选择器S2,选择校准信号送入延时单元DU。
步骤S107,延时单元DU,对校准信号进行60级延时,得到60比特位宽的延时结果B。
步骤S108,触发器T3,以参考时钟为时钟,采样实际闸门脉冲B,得到锁存时钟B。
步骤S109,寄存器组R1,在锁存时钟B的正边沿锁存延时结果B,得到延时数据B1(公式5中的num(H)或公式6中的num(L))送给运算单元AU。
步骤S110,运算单元AU,按照公式5或公式6计算Tap值。
因为校准的目的是计算Tap值,所以不需要处理计数器C2输出的Nc、计数器C1输出的Nx。运算单元AU也可以根据寄存器组R2输出的延时数据B2(公式5中的num(H)或公式6中的num(L))计算Tap值,即校准过程中,运算单元AU可任选延时数据B1、延时数据B2来计算Tap值。
2、测频过程
步骤S201,控制单元CU,产生参考时钟。
步骤S202,控制单元CU,输出校准使能信号,为比特0。
步骤S203,控制单元CU,输出预置闸门脉冲。
步骤S204,选择器S1,根据校准使能信号选择待测信号作为输出。
步骤S205,触发器T1,以待测信号为时钟,采样预置闸门脉冲,输出实际闸门脉冲A。
步骤S206,计数器C1,以待测信号为时钟,以实际闸门脉冲A为使能进行计数,第一计数结果Nx送给运算单元AU。
步骤S207,触发器T2,以参考时钟为时钟,采样实际闸门脉冲A,输出参考闸门脉冲。
步骤S208,计数器C2,以参考时钟为时钟,以参考闸门脉冲为使能进行计数,第二计数结果Nc送给运算单元AU。
步骤S209,选择器S2,选择实际闸门脉冲A送入延时单元DU。
步骤S210,延时单元DU,对实际闸门脉冲A进行60级延时,得到60比特位宽的延时结果A。
步骤S211,触发器T3,以参考时钟为时钟,采样实际闸门脉冲A,得到锁存时钟A。
步骤S212,寄存器组R1,在锁存时钟A的正边沿锁存延时结果A,得到延时数据A1(公式3中的NUM(H))送给运算单元AU。
步骤S213,寄存器组R2,在锁存时钟A的负边沿锁存延时结果A,得到延时数据A2(公式4中的NUM(L))送给运算单元AU。
步骤S214,运算单元AU利用校准过程所得到的Tap值,按照公式3和延时数据A1可以计算出Δt1;按照公式4和延时数据A2计算出Δt2;然后按照公式2或公式7计算待测信号的频率。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
示例性方法
本发明还提供一种等精度测频方法,包括:
步骤S301,通过一控制单元CU产生参考时钟、校准使能信号、校准信号、预置闸门脉冲;
步骤S302,通过一选择器S1接收待测信号,以及接收控制单元CU发送的校准使能信号、校准信号;当校准使能信号为有效电平时,选择器S1输出校准信号;当校准使能信号为无效电平时,选择器S1输出待测信号;
步骤S303,通过一触发器T1接收控制单元CU输出的预置闸门脉冲,以及接收选择器S1发送的待测信号或校准信号;当接收待测信号时,触发器T1在待测信号的有效边沿处采样预置闸门脉冲,输出实际闸门脉冲A;当接收校准信号时,触发器T1在校准信号的有效边沿处采样预置闸门脉冲,输出实际闸门脉冲B;
步骤S304,通过一计数器C1接收选择器S1输出的待测信号、触发器T1输出的实际闸门脉冲A时,计数器C1在待测信号的有效边沿处以实际闸门脉冲A为使能进行计数,输出第一计数结果Nx;
步骤S305,通过一触发器T2接收控制单元CU输出的参考时钟,以及接收触发器T1发送的实际闸门脉冲A或实际闸门脉冲B;当接收实际闸门脉冲A时,触发器T2在参考时钟的有效边沿采样实际闸门脉冲A,输出参考闸门脉冲;
步骤S306,通过一计数器C2接收控制单元CU输出的参考时钟,以及接收触发器T2输出的参考闸门脉冲;计数器C2在参考时钟的有效边沿处以参考闸门脉冲为使能进行计数,输出第二计数结果Nc;
步骤S307,通过一选择器S2接收控制单元CU输出的校准使能信号、校准信号,以及接收触发器T1输出的实际闸门脉冲A或实际闸门脉冲B;当校准使能信号为有效电平时,选择器S2输出校准信号;当校准使能信号为无效电平时,选择器S2输出实际闸门脉冲A。
步骤S308,通过一由k个延时子单元级联构成的延时单元DU,接收选择器S2输出的校准信号或实际闸门脉冲A;当接收实际闸门脉冲信号A时,延时单元DU利用k个延时子单元对接收的实际闸门脉冲信号A进行延时处理,得到并输出延时结果A;当接收校准信号时,延时单元DU利用k个延时子单元对接收的校准信号进行延时处理,得到并输出延时结果B;其中,所述延时结果A包括每个延时子单元对实际闸门脉冲信号A进行延时处理得到的各个信号,所述延时结果B包括每个延时子单元对校准信号进行延时处理得到的各个信号;
步骤S309,通过一触发器T3接收控制单元CU输出的参考时钟,以及接收触发器T1输出的实际闸门脉冲A或实际闸门脉冲B;当接收实际闸门脉冲A时,触发器T3在参考时钟的有效边沿处采样实际闸门脉冲A得到锁存时钟A,输出锁存时钟A;当接收实际闸门脉冲B时,触发器T3在参考时钟的有效边沿处采样实际闸门脉冲B得到锁存时钟B,输出锁存时钟B;
步骤S310,通过一寄存器组R1接收延时单元DU输出的延时结果A或延时结果B,以及接收触发器T3输出的锁存时钟A或锁存时钟B;当接收延时结果A和锁存时钟A时,寄存器组R1在锁存时钟A的正边沿处锁存延时结果A,得到延时数据A1发送给运算单元AU,该延时数据A1为在锁存时钟A的正边沿处该延时结果A的k个信号的k个电平中,高位连续的有效电平的数量NUM(H);当接收延时结果B和锁存时钟B时,寄存器组R1在锁存时钟B的正边沿处锁存延时结果B,得到延时数据B1发送给运算单元AU,该延时数据B1为在锁存时钟B的正边沿处该延时结果B的k个信号的k个电平中,处于两段连续的有效电平之间的连续无效电平的数量num(L)或处于两段连续的无效电平之间的连续有效电平的数量num(H)。
步骤S311,通过一寄存器组R2接收延时单元DU输出的延时结果A或延时结果B,以及接收触发器T3输出的锁存时钟A或锁存时钟B;当接收延时结果A和锁存时钟A时,寄存器组R2在锁存时钟A的负边沿处锁存延时结果A,得到延时数据A2发送给运算单元AU,该延时数据A2为在锁存时钟A的负边沿处该延时结果A的k个信号的k个电平中,高位连续的无效电平的数量NUM(L);当接收延时结果B和锁存时钟B时,寄存器组R2在锁存时钟B的负边沿处锁存延时结果B,得到延时数据B2发送给运算单元AU,该延时数据B2为在锁存时钟B的负边沿处该延时结果B的k个信号的k个电平中,处于两段连续的有效电平之间的连续无效电平的数量num(L)或处于两段连续的无效电平之间的连续有效电平的数量num(H);
步骤S312,通过一运算单元AU接收寄存器组R1输出的延时数据A1或延时数据B1,以及接收寄存器组R2输出的延时数据A2或延时数据B2;当接收延时数据A1、延时数据A2时,运算单元AU根据公式Δt1=Tap*NUM(H)计算得到前端时差Δt1,根据公式Δt2=Tap*NUM(L)计算得到后端时差Δt2,并利用前端时差Δt1、后端时差Δt2、参考时钟的频率fc、第一计数结果Nx、第二计数结果Nc计算待测信号的频率;当接收延时数据A2、延时数据B2时,运算单元AU根据如下公式Tap=CalibPeriod*CalibDuty/num(H)或Tap=CalibPeriod*(1-CalibDuty)/num(L)计算延时子单元的延时时长Tap值;
其中,CalibPeriod为校准信号的周期;CalibDuty为校准信号的占空比。
可选地,该等精度测频方法中,运算单元AU按照如下公式计算待测信号的频率fx:
fx=Nx/(Nc/fc+Δt1-Δt2)。
可选地,该等精度测频方法中,运算单元AU按照如下公式计算待测信号的频率fx:
fx=Nx/(Nc/fc+Δt1-Δt2+Td_data-Td_clk)
其中,Td_data为布线时延1、布线时延2的差值,其中,布线时延1是从触发器T1输出端开始,经过选择器S2,再到寄存器组R1的输入端之间的布线时延,布线时延2是从触发器T1的输出端开始,到触发器T2的数据输入端之间的布线时延;
Td_clk为布线时延3、布线时延4的差值,其中,布线时延3是从控制单元CU的参考时钟输出端开始,经过触发器T3、再到寄存器组R1的时钟输入端之间的布线时延,线时延4是从控制单元CU的参考时钟输出端开始,到触发器T2的时钟输入端之间的布线时延。
可选地,该等精度测频方法中,延时子单元DU为进位链、查找表或逻辑宏单元。
可选地,该等精度测频方法中,延时单元DU包括60个延时子单元。
本发明提供的等精度测频方法与等精度测频装置基于相同的发明思想实现,其具体实施方式可参照前述对等精度测频装置的介绍,此处不再赘述。
本领域技术人员可以了解到本发明实施例列出的各种说明性逻辑块(illustrative logical block),单元,和步骤可以通过电子硬件、电脑软件,或两者的结合进行实现。为清楚展示硬件和软件的可替换性(interchangeability),上述的各种说明性部件(illustrative components),单元和步骤已经通用地描述了它们的功能。这样的功能是通过硬件还是软件来实现取决于特定的应用和整个系统的设计要求。本领域技术人员可以对于每种特定的应用,可以使用各种方法实现所述的功能,但这种实现不应被理解为超出本发明实施例保护的范围。
本发明实施例中所描述的各种说明性的逻辑块,或单元,或装置都可以通过通用处理器,数字信号处理器,专用集成电路(ASIC),现场可编程门阵列或其它可编程逻辑装置,离散门或晶体管逻辑,离散硬件部件,或上述任何组合的设计来实现或操作所描述的功能。通用处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微控制器或状态机。处理器也可以通过计算装置的组合来实现,例如数字信号处理器和微处理器,多个微处理器,一个或多个微处理器联合一个数字信号处理器核,或任何其它类似的配置来实现。
本发明实施例中所描述的方法或算法的步骤可以直接嵌入硬件、处理器执行的软件模块、或者这两者的结合。软件模块可以存储于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动磁盘、CD-ROM或本领域中其它任意形式的存储媒介中。示例性地,存储媒介可以与处理器连接,以使得处理器可以从存储媒介中读取信息,并可以向存储媒介存写信息。可选地,存储媒介还可以集成到处理器中。处理器和存储媒介可以设置于ASIC中,ASIC可以设置于用户终端中。可选地,处理器和存储媒介也可以设置于用户终端中的不同的部件中。
在一个或多个示例性的设计中,本发明实施例所描述的上述功能可以在硬件、软件、固件或这三者的任意组合来实现。如果在软件中实现,这些功能可以存储与电脑可读的媒介上,或以一个或多个指令或代码形式传输于电脑可读的媒介上。电脑可读媒介包括电脑存储媒介和便于使得让电脑程序从一个地方转移到其它地方的通信媒介。存储媒介可以是任何通用或特殊电脑可以接入访问的可用媒体。例如,这样的电脑可读媒体可以包括但不限于RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁性存储装置,或其它任何可以用于承载或存储以指令或数据结构和其它可被通用或特殊电脑、或通用或特殊处理器读取形式的程序代码的媒介。此外,任何连接都可以被适当地定义为电脑可读媒介,例如,如果软件是从一个网站站点、服务器或其它远程资源通过一个同轴电缆、光纤电缆、双绞线、数字用户线(DSL)或以例如红外、无线和微波等无线方式传输的也被包含在所定义的电脑可读媒介中。所述的碟片(disk)和磁盘(disc)包括压缩磁盘、镭射盘、光盘、DVD、软盘和蓝光光盘,磁盘通常以磁性复制数据,而碟片通常以激光进行光学复制数据。上述的组合也可以包含在电脑可读媒介中。