测量领域以及仪表仪器领域中,对数字信号的测量主要便是对其信号脉冲宽度进行测量。目前使用最多的方式便是脉冲计数的方式,即通过高频时钟脉冲在待测信号的低电平处或者高电平处进行计数,然后依照脉冲数量,通过计算的方式得到信号宽度,待测信号独立于计数时钟,其信号的上升以及下降沿无法同时钟边沿准确的吻合,所以,该方式得到的误差最大值可以达到一个时钟周期。例如,若是高频时钟为80MHz,那么其最大的误差量可以达到12.5ns。
脉冲计数法的精度也可以通过有效的方式予以提高,其思路如下:首先可以将计数时钟的频率予以提高,其次则是通过时幅转换技术对误差予以降低。测量误差会随着时钟频率的的提高而减小,但是频率提高,相对便会对芯片的要求有所提高。例如,若测量误差要求为1ns 时,其时钟频率必须达到1GHz,一般的计数芯片在这种状态下无法正常工作,并且电路板布线以及加工和材料选择都会成为难题。而使用时幅转换技术就无需对时钟频率有所要求,但是该种方式使用了模拟电路,若是待测频率相对较高,那么测量结果很容易受到噪声的干扰,并且若要求是对信号脉宽进行连续测量,那么电路能否快速反应是该方式需要解决的一大弊病。
而同上述两种方式都不相同的是,文章论述了一种新型的方式,通过数字移相的方式,对脉宽测量精度予以提高。该方式采用FPGA 芯片,实现了高精度脉宽测量。
1.测量原理
两路同频信号以一路作为参考,将另一路以该路信号作为参考,进行滞后或者超前的移动,从而形成相应的相位差,这边是移相。该种测量方式通常使用延时方法,通过对两数字信号之间产生的相位差以延时长短进行决定,这种测量原理的基础即数字移相技术。原始计数时钟信号CLK0 通过移相后得到CLK90、CLK180、CLK270。相位之间依次相差90°,通过这四路时钟信号对四个相同计数器进行同时驱动,从而完成信号计数。
2.系统实现
计数时钟之间所具有的相位差是该系统保持正常运行的基础,原始时钟频率通常所具有的频率一般较高,频率接100MHz,而周期也大于10ns 而小于20ns,所以即便是存在延迟时间也仅仅只有几ns;另外,为了避免由于传送延迟而对电路板芯片造成不利影响,必须保证系统的柔性以及稳定和精度。文章通过对可编程门阵列,对测量方法予以实现。通过下图的分析可以看出,测量结果最终被送入到FIFO 缓存,从而在处理速度上可以有效得以提高,最终通过PLC总线完成数据的传送。
各个模块之间的时序需要予以协调控制,而通过逻辑控制则可以有效的得以时间,并使得系统能够正常运行。而FIFO 缓冲模块是在FPGA 芯片中予以实现,另外,逻辑控制也是在该芯片中予以实现的。
SpartanII 系列相对于其他的FPGA 芯片性价比相对较高。并且运行频率最高而已达到200MHz,这里芯片选用的是XC2S15-6 以此保证时钟信号不会出现始终外协以及延时传送;并且在时钟信号的控制上也相对较为方便,例如时钟信号的分频以及倍频和移相。另外通过DLL 功能可以实现移相计数模块的快速构建,从而实现上述文章中介绍的几种测量方式。通过DLL 处理后的原始时钟可以得到相差为90°的四组相位,即SLD0、CLK90以及CLK180和CLK270,最后计算出信号脉宽值。
3.仿真分析以及精度分析
通过给出内部的布线,实现芯片的方针结果,其仿真结果用Modelsim实现。在RESET 后对计数模块进行启动,继而开始测量待测信号,测量后会产生READY 信号,同时将测量后的结果输出,为后续的测量计算以及分析提供基础信息,通过仿真实验可以证明系统可以达到目标要求。
然后进一步对系统进行误差分析,系统测量脉宽测量会出现误差的原因主要是因为系统原理误差TS、时钟相移误差Tp 和信号延迟误差Td 以及计数时钟抖晃Tc 等多项误差的存在。通过上面的分析可以看出,若时钟输入过程中晶振为80MHz 时,得出的误差量为3.125ns。时钟相移误差是四路相位-偏移产生的信号本身,该信号从SLKDLL 中分离,依照芯片参数,最大的相移误差可以达到200ps。
通过分析计算可以得出结果:分别可以得到计数时钟到各自计数器的延迟时间,控制计数器启动停止的HF 信号到四个计数器的时间。由于需要的是各计数时钟间相对延迟时间,故还能得到时钟相对于HF信号到计数器的延迟。
数字移相技术是目前我们应用在脉宽测量上的基础,在此基础上文章提出了一种精度更高的测量系统,这种方式不同于脉冲计数的方式,在精度上更是高出脉冲计数数倍。而该种方式的测量精度还能够继续予以提升,主要可以通过以下两方面予以完善:首先将晶振频率继续提高,将FPGA 芯片的速度提升的更快。着也是因为系统原理误差会受到晶振频率的影响,晶振频率越高,其误差值就会越小。其次,是对信号延迟误差予以降低。通过前面的分析可以看出,系统精度会受到信号延迟误差的影响。通过减少计数器以及技术时钟的信号延迟差异,能够将测量精度有效提高。另外在FPGA芯片中,信号延迟的时间能够方便的得到,所以,设计过程中只需要将内部元件的位置以及连线予以调整便可以对延迟误差进行调整,或者通过增加一些门电路,从而令信号延迟时间保持一致。