专利名称:一种测量脉冲宽度的方法、装置和频率计的制作方法
技术领域:
本发明是关于信号测量领域,尤其涉及一种测量脉冲宽度的方法、装置和频率计。
背景技术:
目前,在电子应用领域经常需要对数字信号的脉冲宽度进行测量。这种测量通常采用脉冲计数法,即在待测信号的高电平或低电平用一高频时钟脉冲进行计数,然后根据脉冲的个数计算待测信号宽度,如图1所示。但是,待测信号相对于计数时钟通常是独立的,其上升、下降沿不可能正好落在时钟的边沿上,因此这种方法测得的脉冲宽度会有误差,比如图1中的前端误差Afl和后端误差Λ f2,这种测量方法的最大测量误差为一个时钟周期。例如采用80MHz的高频时钟,最大误差为12.5ns。可见,提高脉冲计数法的精度通常可以有两个思路:提高计数时钟频率和使用时幅转换技术。钟频率越高,测量误差越小,但是频率越高对芯片的性能要求也越高。例如要求Ins的测量误差时,时钟频率就需要提高到1GHz,此时一般计数器芯片很难正常工作,同时也会带来电路板的布线、材料选择、加工等诸多问题。时幅转换技术虽然对时钟频率不要求,但由于采用模拟电路,在待测信号频率比较高的情况下容易受噪声干扰,而且当要求连续测量信号的脉宽时,电路反应的快速性方面就存在一定问题。另外,现有技术还提供了一种利用数字移相的方法来等效提高计数时钟频率,进而降低测量的脉冲宽度的误差。该方法具体可以参见图2,如图2所示,原始计数时钟信号CLKO通过移相后得到CLK90、CLK180、CLK270三路计数时钟信号,这思路计数时钟信号相位依次相差90°,然后用这四路时钟信号同时驱动四个相同的计数器对待测信号进行计数。假设时钟频率为f,周期为T,四个计数器的计数个数分别为ml、m2、m3和m4,则最后脉宽测量值w为:w = [ (ml+m2+m3+m4) /4] XT ;在上述方法中,由于计数的时钟频率都很高,普通的延时线芯片无法达到精度要求;同时为了避免电路板内芯片间传送延时的影响,保证测量系统的精度、稳定性,其采用的是FPGA来实现的。但是,上述方法还存在着如下缺陷:1、如果想得到较好的测量结果必须使用多个移相时钟以及多个计数器,而在FPGA这些硬核资源都是很有限的。2、由于FPGA本身存在的布线延时的影响,很难保证送入各个计数器的时钟相对延时的精度,也就是无法保证移相时钟之间相位关系,影响最终的测量结果。3、待测信号进入到FPGA,经过内部逻辑必要的处理,由于布线延时到达不同计数器的时间会有一些差别,也会影响最终的测量结果。4、移相时钟是通过FPGA中所带的DCM得到的,因此不同的移相时钟之间本身存在相位偏移。5、上述方法虽然可以通过提高计数时钟的频率来提高测量精度,但只能减少测量误差值,而不能避免误差值。
发明内容
本发明提供了一种测量脉冲宽度的方法、装置和频率计,用于实现高精度的脉冲宽度测量。一方面,本发明实施例提供了一种测量脉冲宽度的方法,该方法包括:利用经过本地标准时钟延时后的待测信号来采样原始待测信号和所述经过本地标准时钟延时后的待测信号之间的前端误差和后端误差;利用本地标准时钟记录所述原始待测信号高电平的时间值;利用所述时间值和所述前端误差之和来减去所述后端误差得到所述原始待测信号的脉冲宽度。优选地,本发明实施例中利用经过本地标准时钟延时后的待测信号来采样原始待测信号和所述经过本地标准时钟延时后的待测信号之间的前端误差和后端误差包括:将原始待测信号输入至进位链;利用经过本地标准时钟延时后的待测信号去采样由所述进位链输出的待测信号以得到所述前端误差和所述后端误差。优选地,本发明实施例中将原始待测信号输入至进位链包括:将原始待测信号输入至由多个进位链级联而成的级联进位链。优选地,本发明实施例中利用经过本地标准时钟延时后的待测信号去采样由所述进位链输出的待测信号以得到所述前端误差和所述后端误差包括:利用经过本地标准时钟延时后的待测信号的上沿去采样由所述进位链输出的待测信号以得到前端误差;利用经过本地标准时钟延时后的待测信号的下沿去采样由所述进位链输出的待测信号以得到后端误差。优选地,本发明实施例中利用本地标准时钟记录所述原始待测信号高电平的时间值包括:利用本地标准时钟延时所述原始待测信号得到第一延时信号;利用本地标准时钟延时所述第一延时信号得到第二延时信号;检测所述第一延时信号和所述第二延时信号;根据检测结果控制脉宽计数器进行计数以得到所述原始待测信号高电平的时间值。另一方面,本发明实施例还提供了一种测量脉冲宽度的装置,该装置包括:误差测量装置,用于利用经过本地标准时钟延时后的待测信号来采样原始待测信号和所述经过本地标准时钟延时后的待测信号之间的前端误差和后端误差;脉宽测量装置,用于利用本地标准时钟记录所述原始待测信号高电平的时间值;脉宽计算装置,用于利用所述时间值和所述前端误差之和来减去所述后端误差得到所述原始待测信号的脉冲宽度。优选地,本发明实施例中误差测量装置包括:进位链单元,用于输入原始待测信号;误差测量单元,用于利用经过本地标准时钟延时后的待测信号去采样由所述进位链输出的待测信号以得到所述前端误差和所述后端误差。 优选地,本发明实施例中进位链单元由现场可编程门阵列FPGA中多个进位链级联而成。优选地,本发明实施例中误差测量单元包括:前端误差测量模块,用于利用经过本地标准时钟延时后的待测信号的上沿去采样由所述进位链输出的待测信号以得到前端误差;后端误差测量模块,用于利用经过本地标准时钟延时后的待测信号的下沿去采样由所述进位链输出的待测信号以得到后端误差。
优选地,本发明实施例中脉宽测量装置包括:第一延时单元,用于利用本地标准时钟延时所述原始待测信号得到第一延时信号;第二延时单元,用于利用本地标准时钟延时所述第一延时信号得到第二延时信号;检测单元,用于检测所述第一延时信号和所述第二延时信号;计数控制单元,用于根据检测结果控制脉宽计数器进行计数以得到所述原始待测信号高电平的时间值。另一方面,本发明实施例还提供了一种频率计,包括如上所述的测量脉冲宽度的
>J-U ρ α装直。本发明实施例直接获得了脉冲宽度测量过程中的前端误差和后端误差,而且利用了 FPGA内部的进位链资源,避免了布线延时带来的测量误差,实现了精确的脉冲宽度测量。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例提供的一种测量脉冲宽度的方法流程示意图;图2为本发明实施例的提供的一种原理图;图3为本发明 实施例提供的另一种测量脉冲宽度的方法流程示意图;图4为本发明实施例提供的一种脉宽测量具体实现图;图5为本发明实施例提供的一种测量脉冲宽度的装置结构示意图;图6为本发明实施例提供的一种误差测量装置的结构示意图;图7为本发明实施例提供的一种误差测量单元的结构示意图;图8为本发明实施例提供的一种脉宽测量装置的结构示意图。
具体实施例方式为了使本发明的目的、技术方案和优点更加清楚明白,下面结合具体实施方式
和附图,对本发明做进一步详细说明。在此,本发明的示意性实施方式及其说明用于解释本发明,但并不作为对本发明的限定。如图1所示为本发明实施例提供的一种测量脉冲宽度的方法流程示意图,该方法包括如下步骤:SlOl:利用经过本地标准时钟延时后的待测信号来采样原始待测信号和经过本地标准时钟延时后的待测信号之间的前端误差和后端误差。如图2所示为本发明实施例的原理图,如图2所示,本发明实施例利用本地校准时钟对原始待测信号进行一次延时,然后以该延时后的待测信号来采样原始待测信号和经过本地标准时钟延时后的待测信号之间的前端误差Λ Π和后端误差Af2。S102:利用本地标准时钟记录原始待测信号高电平的时间值。如背景技术中所描述的,以该本地标准时钟所记录的原始待测信号高电平的时间值会存在前端误差和后端误差,其测得的时间值为图2中经过延时后的待测信号的高电平的时间值t。S103:利用上述时间值和前端误差之和来减去后端误差得到原始待测信号的脉冲宽度。该步骤可以由专用的数字信号处理器(Digital Signal Proc essing,DSP)来完成,当然也可以由微控制单兀(Micro Control Unit, MC U)、ARM (Advanced RISC Machines)、个人计算机(PC)等具有处理功能的器件来完成。由图2可知,最后原始待测信号的脉冲宽度PW_RSLT即为:Pff_RSLT = t+ Λ fl - Λ f2。本发明实施例直接获得了脉冲宽度测量过程中的前端误差和后端误差,实现了精确的脉冲宽度测量。如图3所示为本发明实施例提供的另一种测量脉冲宽度的方法流程示意图,该方法包括:S301:将原始待测信号输入至进位链。进位链是FPGA中一种专用资源,可以认为一定长度进位链中延时是固定的,也就是说,信号在进位链中的延时是线性增加的。因此,如果使用进位链这种专用的布线资源,那么就会使得布线延时对整个信号传输延时影响最小。作为本发明的一个实施例,可以将几条进位链级联起来,延长进位链的长度,因此,可以级联很多个进位链,来确定测频开始时刻、测频结束时刻。从而求出前端误差Λ fl,后端误差的准确值。S302:利用经过本地标准时钟延时后的待测信号去采样由所述进位链输出的待测信号以得到前端误差Afl和后端误差Af2。作为本发明的一个实施例,该步骤具体可以包括如下两个子步骤:1、利用经过本地标准时钟延时后的待测信号的上沿去采样由所述进位链输出的待测信号以得到前端误差ΛΠ。2、利用经过本地标准时钟延时后的待测信号的下沿去采样由所述进位链输出的待测信号以得到后端误差Af2。这里得到的前端误差ΛΠ和后端误差Af2实际上是待测信号的上升、下降沿到来时,待测信号和本地标准时钟的相位关系。在本实施例中,待测信号在低电平期间经过进位链,采样得到值为0,而高电平期间经过进位链,采样得到的值为1,将采样得到的值保存至寄存器组,因此可以通过统计前端误差保存寄存器组以及后端误差保存寄存器组中连续0、1的个数来计算出前端误差值及后端误差,具体的公式可以参见后续步骤S308的描述。S303:将前端误差Λ fl保存至前端误差保存寄存器组中,将后端误差Λ f2保存至后端误差保存寄存器组中,供DSP读取。这里寄存器组中所保存的实际上就是待测信号上升、下降沿和本地时钟上升沿之间的相位关系。步骤S301-S303为得到前端误差和后端误差的过程,其具体实现时可以采用图4中的级联的进位链401、后端误差采样寄存器组402、前端误差采样寄存器组403、后端误差保存寄存器组404、前端误差保存寄存器组405以及延时寄存器406来实现。具体来说,级联的进位链401而和后端误差采样寄存器组402及前端误差采样寄存器组403相连,延时寄存器406也分别和后端误差采样寄存器组402及前端误差采样寄存器组403相连,原始待测信号分别输入级联的进位链401及延时寄存器406,其中经过延时寄存器406输入至后端误差采样寄存器组402及前端误差采样寄存器组403的信号反相,这样,每次采样信号一到,就可以将该采样时刻级联的进位链401中的待测信号状态采样至后端误差采样寄存器组402或前端误差采样寄存器组403之中,从而实现了步骤S302的操作。最后将得到的前端误差Λ fl和后端误差Λ f2保存至前端误差采样寄存器组403及后端误差采样寄存器组402。S304:利用本地标准时钟延时所述原始待测信号得到第一延时信号。S305:利用本地标准时钟延时所述第一延时信号得到第二延时信号。S306:检测所述第一延时信号和所述第二延时信号。S307:根据检测结果控制脉宽计数器进行计数以得到所述原始待测信号高电平的时间值t,将该时间值提供给DSP读取。在本实施例中为了得到原始待测信号高电平的时间值t,需要用本地标准时钟去延时待测信号,延时两次,第一次得到第一延时信号,第二次得到第二延时信号,当对第一延时信号和第二延时信号进行检测时,如果发现第一延时信号为I且第二延时信号为0,则认为原始待测信号的上升沿已经到来,此时将脉宽计数器使能,脉宽计数器开始计数;如果发现第一延时信号为O且第二延时信号为I时,则认为原始待测信号的下降沿已经到来,此时就无效脉宽计数器,使其停止计数,保证了脉宽计数器只在脉冲宽度的高电平期间计数。步骤S304-S307为得到原始待测信号高电平的时间值的过程,其具体实现时可以采用图4中的延时寄存器406、延时寄存器407、控制器408、脉宽计数器409来实现。具体来说,将待测信号延时寄存器406,由延时寄存器406输出后分别输入至延时寄存器407和控制器408,而由延时寄存器407输出后也输入至控制器408,控制器408检测两路输入信号,根据检测结果驱动脉宽计数器409,从而得到原始待测信号高电平的时间值t。S308:DSP读取前端误差Af1、后端误差Λ f2和高电平时间值t,并计算出脉冲宽度。假设前端误差保存寄存器组中保存的有效数值中连续O或者I的个数为NI,而后端误差保存寄存器组中保存的有效数值中连续O或者I的个数为N2,前、后端误差中每一比特代表的最小时间精度为Ts,脉宽计数器的计数值为cnt_num,且本地标志时钟周期值为T,则:最终的前端误差Afl = Nl*Ts,需要指出的是,当出现特例,即当前端误差保存寄存器组中的数值全部为O时,则前端误差值为O ;当前端误差保存寄存器组中的数值全部为I时,则前端误差值为T。后端误差Af2 = N2*Ts,需要指出的是,当出现特例,即当后端误差保存寄存器组中的数值全部为0,则后端误差值为T ;当后端误差保存寄存器组中的数值全部为I时,则后端误差值为O。 最终脉冲宽度PW_RSLT计算公式为:PW_RSLT = cnt—num*T+ Δ f 1- Δ f2。
本发明实施例直接获得了脉冲宽度测量过程中的前端误差和后端误差,而且利用了 FPGA内部的进位链资源,避免了布线延时带来的测量误差,实现了精确的脉冲宽度测量。如图5所示为本发明实施例提供的一种测量脉冲宽度的装置结构示意图,该装置包括:误差测量装置100、脉宽测量装置200和脉宽计算装置300,其中脉宽计算装置300分别和误差测量装置100、脉宽测量装置200相连。误差测量装置100用于利用经过本地标准时钟延时后的待测信号来采样原始待测信号和经过本地标准时钟延时后的待测信号之间的前端误差和后端误差。作为本发明的一个实施例,如图6所示,误差测量装置100可以包括进位链单元110和误差测量单元120,其中:进位链单元110用于输入原始待测信号,进位链是FPGA中一种专用资源,可以认为一定长度进位链中延时是固定的,也就是说,信号在进位链中的延时是线性增加的。因此,如果使用进位链这种专用的布线资源,那么就会使得布线延时对整个信号传输延时影响最小。作为本发明的一个实施例,进位链单元110可以是由几条进位链级联而成的。误差测量单元120用于利用经过本地标准时钟延时后的待测信号去采样由进位链输出的待测信号以得到前端误差Afl和后端误差Af2。作为本发明的一个实施例,如图7所示,该误差测量单元120还可以包括:前端误差测量模块121,其用于利用经过本地标准时钟延时后的待测信号的上沿去采样由进位链单元110输出的待测信号以得到前端误差。后端误差测量模块122,其用于利用经过本地标准时钟延时后的待测信号的下沿去采样由进位链单元110输出的待测信号以得到后端误差。这里得到的前端误差ΛΠ和后端误差Af2实际上是待测信号的上升、下降沿到来时,待测信号和本地标准时钟的相位关系。在本实施例中,待测信号在低电平期间经过进位链单元110,采样得到值为0,而高电平期间经过进位链,采样得到的值为1,在本实施例中还可以包括专用的寄存器组,用来保存采样得到的值,然后通过统计前端误差保存寄存器组以及后端误差保存寄存器组中连续0、1的个数来计算出前端误差值及后端误差。脉宽测量装置200用于利用本地标准时钟记录所述原始待测信号高电平的时间值。作为本发明的一个实施例,如图8所示,脉宽测量装置200还包括第一延时单元210、第二延时单元220、检测单元230、计数控制单元240和脉宽计数器250。第一延时单元210用于利用本地标准时钟延时原始待测信号得到第一延时信号.
第二延时单兀220用于利用本地标准时钟延时第一延时信号得到第二延时信号。检测单元230用于检测所述第一延时信号和所述第二延时信号。计数控制单元240用于根据检测结果控制脉宽计数器250进行计数以得到原始待测信号高电平的时间值。在本实施例中检测单元230如果发现第一延时信号为I且第二延时信号为0,则认为原始待测信号的上升沿已经到来,此时计数控制单元240将脉宽计数器250使能,脉宽计数器250开始计数;如果发现第一延时信号为O且第二延时信号为I时,则认为原始待测信号的下降沿已经到来,此时计数控制单元240就无效脉宽计数器250,使其停止计数,保证了脉宽计数器250只在脉冲宽度的高电平期间计数。脉宽计算装置300用于利用脉宽测量装置200测得的时间值和前端误差之和来减去后端误差得到原始待测信号的脉冲宽度。具体的计算公式可以参见图3所对应实施例的描述,在此不再赘述。本发明实施例直接获得了脉冲宽度测量过程中的前端误差和后端误差,而且利用了 FPGA内部的进位链资源,避免了布线延时带来的测量误差,实现了精确的脉冲宽度测量。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是⑶-R0M,U盘,移动硬盘等)中。以上所述的具体实施方式
,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式
而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种测量脉冲宽度的方法,其特征在于,所述方法包括: 利用经过本地标准时钟延时后的待测信号来采样原始待测信号和所述经过本地标准时钟延时后的待测信号之间的前端误差和后端误差; 利用本地标准时钟记录所述原始待测信号高电平的时间值; 利用所述时间值和所述前端误差之和来减去所述后端误差得到所述原始待测信号的脉冲宽度。
2.如权利要求1所述的测量脉冲宽度的方法,其特征在于,所述利用经过本地标准时钟延时后的待测信号来采样原始待测信号和所述经过本地标准时钟延时后的待测信号之间的前端误差和后端误差包括: 将原始待测信号输入至进位链; 利用经过本地标准时钟延时后的待测信号去采样由所述进位链输出的待测信号以得到所述前端误差和所述后端误差。
3.如权利要求2所述的测量脉冲宽度的方法,其特征在于,所述将原始待测信号输入至进位链包括: 将原始待测信号输入至由多个进位链级联而成的级联进位链。
4.如权利要求2所述的测量脉冲宽度的方法,其特征在于,所述利用经过本地标准时钟延时后的待测信号去采样由所述进位链输出的待测信号以得到所述前端误差和所述后端误差包括: 利用经过本地标准时钟延时后的待测信号的上沿去采样由所述进位链输出的待测信号以得到前端误差; 利用经过本地标准时钟延时后的待测信号的下沿去采样由所述进位链输出的待测信号以得到后端误差。
5.如权利要求1所述的测量脉冲宽度的方法,其特征在于,所述利用利用本地标准时钟记录所述原始待测信号高电平的时间值包括: 利用本地标准时钟延时所述原始待测信号得到第一延时信号; 利用本地标准时钟延时所述第一延时信号得到第二延时信号; 检测所述第一延时信号和所述第二延时信号; 根据检测结果控制脉宽计数器进行计数以得到所述原始待测信号高电平的时间值。
6.一种测量脉冲宽度的装置,其特征在于,所述装置包括: 误差测量装置,用于利用经过本地标准时钟延时后的待测信号来采样原始待测信号和所述经过本地标准时钟延时后的待测信号之间的前端误差和后端误差; 脉宽测量装置,用于利用本地标准时钟记录所述原始待测信号高电平的时间值; 脉宽计算装置,用于利用所述时间值和所述前端误差之和来减去所述后端误差得到所述原始待测信号的脉冲宽度。
7.如权利要求6所述的测量脉冲宽度的装置,其特征在于,所述误差测量装置包括: 进位链单元,用于输入原始待测信号; 误差测量单元,用于利用经过本地标准时钟延时后的待测信号去采样由所述进位链输出的待测信号以得到所述前端误差和所述后端误差。
8.如权利要求7所述的测量脉冲宽度的装置,其特征在于,所述进位链单元由现场可编程门阵列FPGA中多个进位链级联而成。
9.如权利要求7所述的测量脉冲宽度的装置,其特征在于,所述误差测量单元包括: 前端误差测量模块,用于利用经过本地标准时钟延时后的待测信号的上沿去采样由所述进位链输出的待测信号以得到前端误差; 后端误差测量模块,用于利用经过本地标准时钟延时后的待测信号的下沿去采样由所述进位链输出的待测信号以得到后端误差。
10.如权利要求6所述的测量脉冲宽度的装置,其特征在于,所述脉宽测量装置包括: 第一延时单元,用于利用本地标准时钟延时所述原始待测信号得到第一延时信号; 第二延时单元,用于利用本地标准时钟延时所述第一延时信号得到第二延时信号; 检测单元,用于检测所述第一延时信号和所述第二延时信号; 计数控制单元,用于根据检测结果控制脉宽计数器进行计数以得到所述原始待测信号高电平的时间值。
11.一种频率计,其 特征在于,包括如权利要求6-10任一所述的测量脉冲宽度的装置。
全文摘要
本发明实施例提供一种测量脉冲宽度的方法、装置和频率计,方法包括利用经过本地标准时钟延时后的待测信号来采样原始待测信号和所述经过本地标准时钟延时后的待测信号之间的前端误差和后端误差;利用本地标准时钟记录所述原始待测信号高电平的时间值;利用所述时间值和所述前端误差之和来减去所述后端误差得到所述原始待测信号的脉冲宽度。本发明实施例直接获得了脉冲宽度测量过程中的前端误差和后端误差,而且利用了FPGA内部的进位链资源,避免了布线延时带来的测量误差,实现了精确的脉冲宽度测量。
文档编号G01R29/02GK103176059SQ20111043165
公开日2013年6月26日 申请日期2011年12月21日 优先权日2011年12月21日
发明者张沁涛, 丁新宇, 王悦, 王铁军, 李维森 申请人:北京普源精电科技有限公司