5761和5762采样时钟以及采样率配置问题初探



硬件: Reconfigurable I/O (RIO)>>R Series>>ECP-RIO Adapter

问题: 我使用57615762这样的高速数据采集模块,它们最高采样速率是250M,它们的采样时钟来自于哪?我们是否就是通过在FPGA编程时修改定时循环的速率来改变它们的采样率呢?

解答:

   首先我们先来看一下5762的硬件框图,如图1 所示。我们可以看到5762的时钟来源。

                              图1 5762的硬件架构

其主要包含有4路来源,第一个就是在PLL关闭的情况下,直接使用板上晶振通过AD9511时钟芯片输出250MHz的时钟作为AD9647的采样时钟;第二个就是在PLL开启的情况下AD9511通过锁外接参考时钟(10MHz)输出250MHz的时钟作为AD9647的采样时钟;第三个即是在PLL开启的情况下AD9511通过锁IoModSyncClkPXI背板上10MHz的参考时钟),输出250MHz的时钟作为AD9647的采样时钟。这种方式主要应用在多块Module同步采集的场合。第四个就是直接外接采样时钟(150MHz250MHz作为AD9647的采样时钟。因此,以上即是对5672采样时钟来源的一个说明。同样,关于5761的硬件架构与5762类似。在此我们就不能产生误解——该模块的采样时钟可以来自于FPGA本身的40MHz时钟倍频,实际硬件中没有提供这样一个通路(这种时钟的抖动要比板上时钟大)。我们说到了这里,大家就会想56715672的采样频率是怎么配置的呢?下面我们就先来看一下一个基本的编程验证,如图2所示。
2 FPGA编程以及时钟的配置
   从图2我们可以看到,在FPGA层定时循环的时钟来源是“IO Module Clock,我们之所以采用Adapter上引出的时钟,最大的一个好处就是能保证与板上采样时钟的同相,以便能在数据的中部位置去读取,防止读取数据错误。然而,从“IO Module Clock”的配置来看,我们设置的时钟是80MHz,同时CLIP可以在一个时钟周期内读取两个采样点,实际的采样率就应该是160M。那么实际是这样的吗?下面我们一起来看一下验证。
         如图3所示,Host端与FPGA端采用FIFO来完成数据的传递。在Host端,我们从FIFO中将数据读出,同时调用Scale Acquired Data.vi将定点数数据转换为实际的信号数据。从图3中我们可以看到,该VI的参数包含有AD的位数、幅度以及采样率的配置(请把代码附上,客户不一定熟悉这个Scale函数)。按照我们前面的分析,定时循环的时钟是80MHz,一个周期读取两个采样点,那么采样率应该是160M,那么这个地方的参数就应该设定为160M。但是实际情况并不是这样,看接下来的验证。

3 Host端从FIFO中读取数据并恢复为实际信号
    们通过输入一个10MHz的方波信号,然后采用“提取单频信息”的VI测量所采集到的信号频率,这时只有当我们在Host端将采样率设置为250M时,才能得到正确的频率测量结果。如图4所示。

4  Host测量信号频率(只有当采样率设置为250M时才正确)

    所以从这个验证我们可以看到,不能通过更改“IO Module Clock”的采样时钟来改变5671或者5672AD的采样率,其实际采样率就是250M,而且我们的程序在进行编译时就应该是以125M的时钟进行编译的,而并不是我们所配置的“IO Module Clock”。因此,从这种意义上来说,对“IO Module Clock”配置没有太大的意义。

         接下来,我们实际再做一个验证,就是将FPGA程序中定时循环的源端接为FPGA的默认40M时钟,如图5所示,测试结果如图6所示。这时,我们要想得到正确的频率测试结果,就要将前面Host端所提到的“Scale Acquired Data.vi”中采样率的参数设置为80M。所以从这个验证我们可以看出,通过将定时循环设置为FPGA默认的40M时钟,可以改变定时循环读取的速率。虽然5761或者5762的以250M的采样率在采集,而FPGA却只是以40M的速率在抽取,一个时钟周期读取两个数据,那么实际的等效采样率是80MHz。但是,采用这种方式最大的问题就是,FPGA40M时钟与57615762上的时钟不是同相的,不能够很好的保证每次都能在数据的中部位置读取,会偶尔导致读取数据有误。

5 定时循环时钟源改为FPGA默认时钟
6 测试结果

    最后,我们简单的介绍一下,改变56715672采样率最好的方法就是改变采样时钟。这个我们就可以通过外接时钟来时钟来实现(150M~250M)。如图7中所述。

7 外接采样时钟来改变采
结论:
         对于57615762这样的高速数据采集模块,其采样时钟有4个来源。我们在FPGA编程中不能直接通过配置“IO Module Clock”来改变采样率,FPGA程序实际是以125MHz的时钟进行编译的。我们改变采样率最优的方法就是通过外接采样时钟来改变采样率。
 
 

 



相关链接: http://joule.ni.com/nidu/cds/view/p/id/2743/lang/zhs

附件:
可以参见LabVIEW范例程序“NI 5761-Getting Started.lvproj”,该程序只有在安装了相关链接中的软件模块后才可以找到。




报告日期: 08/11/2012
最近更新: 08/11/2012
文档编号: 60A2NPL9