基于数字移相高精度脉宽测量系统
时间:07-09
来源:互联网
点击:
在测量与仪器仪表领域,经常需要对数字信号的脉冲宽度进行测量。这种测量通常采用脉冲计数法,即在待测信号的高电平或低电平用一高频时钟脉冲进行计数,然后根据脉冲的个数计算待测信号宽度,如图1所示。待测信号相对于计数时钟通常是独立的,其上升、下降沿不可能正好落在时钟的边沿上,因此该法的最大测量误差为一个时钟周期。例如采用80MHz的高频时钟,最大误差为12.5ns。
提高脉冲计数法的精度通常有两个思路:提高计数时钟频率和使用时幅转换技术。时钟频率越高,测量误差越小,但是频率越高对芯片的性能要求也越高。例如要求1ns的测量误差时,时钟频率就需要提高到1GHz,此时一般计数器芯片很难正常工作,同时也会带来电路板的布线、材料选择、加工等诸多问题。时幅转换技术虽然对时钟频率不要求,但由于采用模拟电路,在待测信号频率比较高的情况下容易受噪声干扰,而且当要求连续测量信号的脉宽时,电路反应的快速性方面就存在一定问题。
区别于以上两种方法,本文提出另一种利用数字移相技术提高脉宽测量精度的思路并使用FPGA芯片实现测试系统。
1 测量原理
所谓移相是指对于两路同频信号,以其中一路为参考信号,另一路相对于该参考信号做超前或滞后的移动形成相位差。数字移相通常采用延时方法,以延时的长短来决定两数字信号间的相位差,本文提出的测量原理正是基于数字移相技术。如图2所示,原始计数时钟信号CLK0通过移相后得到CLK90、CLKl80、CLK270,相位依次相差90°,用这四路时钟信号同时驱动四个相同的计数器对待测信号进行计数。设时钟频率为f,周期为T,四个计数器的计数个数分别为m1、m2、m3和m4,则最后脉宽测量值为:
可以看到,这种方法实际等效于将原始计数时钟四倍频,以4f的时钟频率对待测信号进行计数测量,从而将测量精度提高到原来的4倍。例如原始计数时钟为80MHz时,系统的等效计数频率则为320MHz,如果不考虑各路计数时钟间的相对延迟时间误差,其测量的最大误差将降为原来的四分之一,仅为3.125ns。同时,该法保证了整个电路的最大工作频率仍为人避免了时钟频率提高带来的一系列问题。
2 系统实现
系统实现的最关键部分是保证送入各计数器的时钟相对延迟精度,即要保证计数时钟之间的相位差。由于通常原始时钟频率已经相对较高(通常接近100MHz),周期在10~20ns之间,因此对时钟的延迟时间只有几ns,使用普通的延迟线芯片无法达到精度要求;同时为了避免电路板内芯片间传送延迟的影响,保证测试系统的精度、稳定性和柔性。本文采用现场可编程门阵列(FPGA)来实现所提出的测量方法。系统结构如图3所示。晶振产生原始输入时钟,通过移相计数模块后得到脉宽的测量值,测量结果送人FIFO缓存中,以加快数据处理速度,最后通过PCI总线完成与计算机的数据传输。逻辑控制用来协调各模块间的时序,保证系统的正常运行。为提高测试系统的灵活性和方便性,系统建立了内部寄存器,通过软件修改寄存器的值可以控制测试系统的启动停止,选择测量高电平或低电平等。移相计数模块、FIFO缓冲以及逻辑控制均在FPGA芯片内实现,芯片使用XILINX公司的SpartanII系列。
SpartanII系列是一款高性能、低价位的FPGA芯片,其最高运行频率为200MHz,这里选用其中的XC2S15-6(-6为速度等级)。芯片提供了四个高精度片内数字延迟锁定环路(Delay-Locked Loop,即DLL),可以保证芯片内时钟信号的零传送延迟和低的时钟歪斜(Clock
Skew);同时可以方便地实现对时钟信号的常用控制,如移相、倍频、分频等。在HDL程序设计中,可以使用符号CLKDLL调用片内DLL结构,其管脚图如图4所示。主要管脚说明如下:
CLKIN:时钟源输入,其频率范围为25~100MHz。
CLKFB:反馈或参考时钟信号,只能从CLK0或CLK2X反馈输入。
CLK[0︱90︱180︱270]:时钟输出,与输入时钟同频,但相位依次相差90°。其内部定义了属性DUTY_CY-CLE_CORRECTION,可以用来调整时钟的占空比,值为FALSE时,输出时钟占空比和输入时钟一致,值为TRUE时将占空比调整为50%。
CLK2X:时钟源倍频输出,且占空比自动调整为50%。
CLKDV:时钟源分频输出,由属性CLKDV_divIDE控制N分频,N可以为1.5、2、2.5、3、4、5、8或16。
LOCKED:该信号为低电平时,表示延迟锁相环DLL还没有锁定信号,上述输出时钟信号未达到理想信号;当变为高电平时,表示锁相环已经完成信号锁定,输出时钟信号可用。若时钟源输入频率大于60MHz,则系统锁定时间大约需20μs。
利用DLL功能可以非常快速方便地构建移相计数模块,实现本文前面介绍的测量方法。移相计数模块结构如图5所示。原始时钟通过CLKDLL处理后得到的相位依次相差90°的四路时钟输出为CLK0、CLK90、CLKl80和CLK270,它们分别作为四个相同的16位计数器的计数时钟,待测信号连接计数器的使能端,同时控制四个计数器的启动和停止。有了各计数器的计数结果,再通过加法器得到累加的计数个数,最后计算出信号脉宽值。
提高脉冲计数法的精度通常有两个思路:提高计数时钟频率和使用时幅转换技术。时钟频率越高,测量误差越小,但是频率越高对芯片的性能要求也越高。例如要求1ns的测量误差时,时钟频率就需要提高到1GHz,此时一般计数器芯片很难正常工作,同时也会带来电路板的布线、材料选择、加工等诸多问题。时幅转换技术虽然对时钟频率不要求,但由于采用模拟电路,在待测信号频率比较高的情况下容易受噪声干扰,而且当要求连续测量信号的脉宽时,电路反应的快速性方面就存在一定问题。
区别于以上两种方法,本文提出另一种利用数字移相技术提高脉宽测量精度的思路并使用FPGA芯片实现测试系统。
1 测量原理
所谓移相是指对于两路同频信号,以其中一路为参考信号,另一路相对于该参考信号做超前或滞后的移动形成相位差。数字移相通常采用延时方法,以延时的长短来决定两数字信号间的相位差,本文提出的测量原理正是基于数字移相技术。如图2所示,原始计数时钟信号CLK0通过移相后得到CLK90、CLKl80、CLK270,相位依次相差90°,用这四路时钟信号同时驱动四个相同的计数器对待测信号进行计数。设时钟频率为f,周期为T,四个计数器的计数个数分别为m1、m2、m3和m4,则最后脉宽测量值为:
可以看到,这种方法实际等效于将原始计数时钟四倍频,以4f的时钟频率对待测信号进行计数测量,从而将测量精度提高到原来的4倍。例如原始计数时钟为80MHz时,系统的等效计数频率则为320MHz,如果不考虑各路计数时钟间的相对延迟时间误差,其测量的最大误差将降为原来的四分之一,仅为3.125ns。同时,该法保证了整个电路的最大工作频率仍为人避免了时钟频率提高带来的一系列问题。
2 系统实现
系统实现的最关键部分是保证送入各计数器的时钟相对延迟精度,即要保证计数时钟之间的相位差。由于通常原始时钟频率已经相对较高(通常接近100MHz),周期在10~20ns之间,因此对时钟的延迟时间只有几ns,使用普通的延迟线芯片无法达到精度要求;同时为了避免电路板内芯片间传送延迟的影响,保证测试系统的精度、稳定性和柔性。本文采用现场可编程门阵列(FPGA)来实现所提出的测量方法。系统结构如图3所示。晶振产生原始输入时钟,通过移相计数模块后得到脉宽的测量值,测量结果送人FIFO缓存中,以加快数据处理速度,最后通过PCI总线完成与计算机的数据传输。逻辑控制用来协调各模块间的时序,保证系统的正常运行。为提高测试系统的灵活性和方便性,系统建立了内部寄存器,通过软件修改寄存器的值可以控制测试系统的启动停止,选择测量高电平或低电平等。移相计数模块、FIFO缓冲以及逻辑控制均在FPGA芯片内实现,芯片使用XILINX公司的SpartanII系列。
SpartanII系列是一款高性能、低价位的FPGA芯片,其最高运行频率为200MHz,这里选用其中的XC2S15-6(-6为速度等级)。芯片提供了四个高精度片内数字延迟锁定环路(Delay-Locked Loop,即DLL),可以保证芯片内时钟信号的零传送延迟和低的时钟歪斜(Clock
Skew);同时可以方便地实现对时钟信号的常用控制,如移相、倍频、分频等。在HDL程序设计中,可以使用符号CLKDLL调用片内DLL结构,其管脚图如图4所示。主要管脚说明如下:
CLKIN:时钟源输入,其频率范围为25~100MHz。
CLKFB:反馈或参考时钟信号,只能从CLK0或CLK2X反馈输入。
CLK[0︱90︱180︱270]:时钟输出,与输入时钟同频,但相位依次相差90°。其内部定义了属性DUTY_CY-CLE_CORRECTION,可以用来调整时钟的占空比,值为FALSE时,输出时钟占空比和输入时钟一致,值为TRUE时将占空比调整为50%。
CLK2X:时钟源倍频输出,且占空比自动调整为50%。
CLKDV:时钟源分频输出,由属性CLKDV_divIDE控制N分频,N可以为1.5、2、2.5、3、4、5、8或16。
LOCKED:该信号为低电平时,表示延迟锁相环DLL还没有锁定信号,上述输出时钟信号未达到理想信号;当变为高电平时,表示锁相环已经完成信号锁定,输出时钟信号可用。若时钟源输入频率大于60MHz,则系统锁定时间大约需20μs。
利用DLL功能可以非常快速方便地构建移相计数模块,实现本文前面介绍的测量方法。移相计数模块结构如图5所示。原始时钟通过CLKDLL处理后得到的相位依次相差90°的四路时钟输出为CLK0、CLK90、CLKl80和CLK270,它们分别作为四个相同的16位计数器的计数时钟,待测信号连接计数器的使能端,同时控制四个计数器的启动和停止。有了各计数器的计数结果,再通过加法器得到累加的计数个数,最后计算出信号脉宽值。
- 集成电路的电磁兼容测试(06-06)
- 低功耗制造测试的设计-第一部分(01-29)
- 低功耗制造性测试的设计-第二部分(01-29)
- ASA测试技术在电路维修测试仪上的应用(06-28)
- 示波器前级衰减电路(06-21)
- 电调谐LC滤波器的研究与设计(11-09)