当需要测量一个高速时钟信号频率的时候,你也许会寻找一个昂贵的机架固定式盒状装置来完成这一任务。但如果不是针对非常高的频率,你可以尝试使用廉价的数字测试仪的数字采样能力,配合上一些DSP函数库来完成同样的目标。本文就教你怎样做到这一点。
被曲解的奈奎斯特(Nyquist)理论
现有的采样理论使绝大多数人相信,你的采样频率必须至少达到你希望测量的最高频率的两倍以上,这意味着如果你想要捕获一个160MHz的时钟,你的采样频率必须超过320MHz。但是,这并不是Nyquist理论的真实含义。你仅仅在需要避免信号走样的情况下才需要遵循这个规则。
一个走样的160MHz时钟会表现得像一个6.666MHz的信号(160MHz比33.333MHz的5倍,即166.666MHz小6.666MHz)。图1a表示了在采样频率fS为33.3333333MHz的时候,频域内产生的不同波段。在图1a的最右边,是从133MHz(4x33MHz)到166MHz(5x33MHz)的波段。一个DCI设备不允许你实际观察到这些波段内的信号,但是它们确实存在,证据就是那些跌入Nyquist波段范围的走样频率,这些频率在图中使用黄色标记,波段范围从直流信号到16.666MHz(fS/2)。
因为166MHz仅仅比166.666MHz低6.666MHz,它的走样频率也将会跨越不同的波段范围(这些你也不能直接观察到),图中使用虚红箭头表示。最后,一个你可以观察到的走样频率——6.666MHz将会出现在Nyquist波段内。这个6.666MHz的走样频率来自于波段的上半部分,大约在位于采样频率4.5倍的地方,就像被镜子反射一样的折回来。这个信号的相位也被反转了,虽然对于本文的目标来说这并不重要。
现在你可以在Nyquist波段内看见6.666MHz的信号了,这意味着你捕获了160MHz的信号吗?并不准确。如果你在Nyquist波段内看见了6.666MHz的信号,它可能表示160MHz的信号,也可以表示任何其他在图1a上列出的频率(26.6、39.9、60、73.3、93.3、106.6、126.6或139.9 MHz)。要想证明Nyquist波段内6.666MHz的信号是由于采样166MHz信号产生的,我们必须使用一个不同的采样频率再次进行采样。
怎样区分走样频率?
如果你是用不同于一开始的 33.333MHz的采样频率再次对160MHz时钟的信号进行采样,走样频率将会出现在不同的地方。如果你发现这个新的走样频率也表示你可能捕获了160MHz的信号,你就很有把握推断说两次采样中都是采样了160MHz的信号,而将其他频率的可能性排除。新的采样频率和原始频率不要相关,否则他们具有的共模因子会削弱160MHz下的信号意义。例如,如果你使用25MHz(每个周期40ns)的采样频率来采样160MHz的信号,就很难发现真实的结果(图1b)。
使用25MHz采样意味着160MHz比150MHz(25MHz的6倍)高出10MHz,所以它的Nyquist波段内走样频率应该出现在10MHz。因为33.333MHz(一个周期30ns)和25MHz(一个周期40ns)有一个共模因子1/(10ns),也就是100MHz,他们以产生同样的走样频率告终。
比较图1a和图1b,你就可以发现问题。请注意60MHz同时出现在两个走样频率的列表上(数字标注在上部)。这意味着如果你在采样频率为33MHz的时候观察到6.666 MHz的信号,在使用25MHz的采样频率的时候观察到10MHz的信号,被采样的原始频率可能是160MHz,也可能是60MHz。现在,如果你能确定自己不可能运行在60MHz下,问题就已经解决了。但是当你设备的时钟出现错误的时候,你要怎么向客户解释那些没进行的测试呢?
让我们使用正交频率
为了第二次的采样可以明确原始信号的频率,你需要一个和第一次采样频率毫不相关的采样频率,这就是说这两个频率之间不能包含任何的共模因子。达到这一目标的一个方法是使用锁相环(PLL)来偏移系统的时钟,这样你就可以获得和标准的系统时钟周期分辨率不同的信号频率。
对于NexTEST Maverick的产品,你可以使用APG PLL来达到这一目标。你必须选择一个尽可能不和33.333MHz包含共模因子的频率。对这个例子来说,我们选择一个看起来相当晦涩的77MHz(每个周期12.987013ns)的系统时钟速度,来产生一个38.961039ns的周期(3倍于系统时钟周期)。这就产生了一个25.666666MHz的采样频率。不幸的是,你不能动态地随时调整PLL,你不得不进行一次采样,然后复位所有的时序电路,才能进行下一次采样,但是因为采样时间都相当短(对于1K的分辨率来说大约是1ms),这样并不会增加许多的测试时间。
在使用这一采样频率的时候,走样频率示意图如图1c所示,160MHz的原始频率比154MHz(25.66MHz的6倍)高出6MHz,所以在Nyquist波段内产生了6MHz的信号。请注意列表中的走样频率(在顶部都有标注),和在33.333MHz的采样频率下得到的走样频率完全不同。这一点是这一技术能够有效的关键因素。你可以再一次回顾图1a,确信地告诉自己,除了正确答案——160MHz以外,没有别的频率可能同时出现在这两个走样频率列表中。
请记住,你需要两个不同的时间设置、两个不同的模式、两个不同的功能脉冲。在运行的时候动态切换时间设置不是一个好主意,因为大多数的测试仪不支持这一点。
你需要设置你的采样设备来采样一个管脚(时钟管脚),设备将会收集一系列的1和0,表示时钟管脚的变化。很明显,比较器的电压需要被设置到时钟管脚高电平的50%,如果这个管脚需要电气终结就加上一个活动的负载。
一旦功能测试过程结束了采样,就将数字化的数据表示成波形的形式。下一步,从波形上减去0.5,这样一个采样得到的“1”代表一个0.5的电压,一个采样得到的“0”代表-0.5的电压(我们将在后面“分辨率和Nyquist问题”一节中解释这么做的原因)。
请确认波形在X方向的比例被设置成采样的实际采样率,否则你永远得不到正确的结果。一些测试仪会自动做到这一点;另外一些设备因为并不倾向用基于时间的波形采样而不具备这一功能。
实际的频率是什么?
现在你在两个不同的采样频率下获得了两个采样波形,你怎样测量包含在他们之中的时钟信号呢?有人可能试图通过计算波形中状态变化的次数,然后用UTP(单元测试周期,unit TEST period)除之。这种方法是无效的。
这个波形可能包含有少量的“弱变换”——因为噪音导致的接近比较器域值的额外边沿。这些额外的变换将会导致这一方法高估了时钟的频率,造成错误的结果。
傅立叶变换(FFT)技术用于将时间域的数据转换成频率域的数据,具备很高的抗噪能力。FFT会将弱变换看作噪音,所以不会影响你的测量。
你需要做的事情就是进行傅立叶变换,忽略相位,转换成幅度,然后查看振幅最高的信号。因为波形中的数据是方波,所以必然存在其他的元素(大部分是奇数谐波),但是通过查看幅度频谱中的最大值,你可以发现最高振幅的信号位置,这就是你采样到的时钟的基本信号。
如果你采样了100万个(220)数据,就可以获得24.5Hz的分辨率,但是对100万个采样点进行傅立叶变换,即使是在双Xeon处理器的计算机上,也需要花费好几秒的时间。请记住傅立叶变换在采样点的数量是2的整数次方的时候最有效率。也请注意这种情况下一个慢速的测试仪会体现出它的优势——更慢的采样给你更好的分辨率。
在发现交集的时候停止
一旦你测量了两个走样频率,查找这个信号可能的频率列表,看看有没有发现一个交集。你将会需要编写一些代码来查找走样频率,以便发现他们在哪里相交。
完成这项工作的最好方法是建立一个两行的表格,包含每一个采样率下的候选频率。通过查找表格中的行来发现相交的地方,或者是两个列表中匹配的地方(参见表格1)。
因为这个例子使用了两个正交的采样频率——他们之间没有共模因子——这意味着直到你查找到超过1GHz的信号才有可能出现重叠现象。因为大多数的廉价测试仪上的管脚比较器并不具备可以测量上GHz带宽的能力,这一点并不成为问题。
一旦你查到一个匹配点,你就可以推断在33.333MHz采样率下观察到的6.666MHz信号和在25.666MHz采样率下观察到的6.0MHz信号实际上意味着一个160MHz时钟的信号。就算不是精确的160MHz,也相差无几,因为走样会随着采样频率发生相同的漂移,可能会表示为159.5MHz或者160.2MHz,或者类似的频率。换句话说,这种方法不仅仅适用于160MHz时钟的信号,它可以被用于你可以通过数字管脚比较器采样的任意的频率。
分辨率和Nyquist问题
在查找两个表格间匹配点的时候,你通常不得不接受一定的误差。这是因为在两次采样过程中发生的频率漂移,以及考虑到采样过程本身的松散本质。但是你不得不防止过多的偏差,因为在接近Nyquist和直流频率的地方存在一个潜在的问题。
如果你正在测量的时钟非常接近一个边界,就十分难以确认走样频率实际属于边界的哪一边。例如,如果你使用33.333MHz的采样频率来采样一个133.0MHz时钟的信号,你将会看见在Nyquis波段内出现一个333.333kHz的信号(133.0MHz比33.333MHz的4倍低333.333kHz)。但是这个走样频率也可以表示你实际上得到的是一个133.666MHz(比33.333MHz的4倍高333.333kHz)的信号。如果你允许过多的误差,你就可能得到错误的结果。
有一些频率比其他频率显得更难测量,特别是那些是某个采样频率K倍的频率(K是一个整数)。如果你正在测量的频率正好和一个采样频率相同,绝大多数(如果不是全部)的采样点将会表现为相同的高或者低。如果他们全都是高,这没有什么问题,FFT将会体现出一个很高的直流信号数值,软件将会在直流和其他采样频率的走样频率查找表中找到相交点。
但是,如果你没有像我们前面提到的那样在采样波形中减去0.5,并且你采样的结果全都是低,将会检测不到有幅度的直流信号。通过将采样得到的波形减去0.5,当测量到的频率因为走样变成直流信号的时候,你将高电平赋值成0.5,将低电平赋值成-0.5。这种电压的极性不会影响FFT,它都将看到一个0.5的幅度。
你不需要将一个昂贵的盒子绑定到你廉价的数字测试仪上,以便能够测量高频率,即使它远远快于你的低档数字测试仪可以运行的速率。仅仅使用大多数测试仪都具备的能力进行两次采样,我们就击败了Nyquist规则。
文章评论(0条评论)
登录后参与讨论