2 流水采样实现
采用高带宽( 1 GHz) 高速( 80 MHz) 低功耗A /D 芯片AD9432 (12bit)作为A /D转换器件,采样时钟由XC5VLX50内部的锁相环实现。AD9432是一种单流水线ADC,它采用多个低精度闪电式ADC对采样信号进行分级量化,然后将各级的量化结果组合起来以构成一个高精度的量化输出。各级电路分别有自己的跟踪保持电路,因此当每级电路把信号传给下级电路时就可以接收上级传过来的数据,每级电路一次采样可在一个时钟周期内完成,但是存在流水线延迟的问题,AD9432采样转换过程如图2所示。
每次采样的最终转换结果要等待6~7个时钟周期后才能出现在输出端。AD9432的控制以及数据的缓冲转存采用状态机控制,当AD9 4 3 2接收到CLK信号后开始采样。由于每块A /D 的最高采样率仅有80MHz,在此采用了4块AD9432进行
流水采样,每块A /D的采样时钟相位延迟90°,这样在每个周期内是由4 块A /D均匀采样的,采样率等效提高了4倍。4块AD9432采样时钟的相位延迟利用FPGA设计的高速状态机以及内部数字时钟管理器(DCM)来实现。采用4片A /D相位延
迟并行流水采集的过程如图3所示,图中CLK1~4是4片A /D的采样时钟,在这种流水采集中,单流水线延迟的影响可以忽
略[ 3 ]。
3 数据的转存设计和分析验证
采集到的信号经过A /D器件转换之后,通过XC5VLX50内部高速缓冲,转存到片外存储器FLASH MEMORY中。系统中
XC5VLX50内部Block RAM阵列的控制比较简单,采用乒乓操作大大降低了采样数据读取处理速度。16块Block RAM分成
2组,时钟和控制信号均独立。系统工作时,高速状态机会不断地往Block RAM中放入采集到的数据。当采样数据放满1组
的8块Block RAM后自动切换到另外一组。同时并行从刚刚放满的8 块Block RAM 中以64 位的并行数据读入FLASH
MEMORY中( FLASH MEMORY内存具有可靠性高、互换性好、容量大等特点) [ 4 ]。
采用流水方式的4片12位的A /D的采样频率为320MHz,则数据流为480 Mbit/ s,但是FLASH MEMORY的最大存储速度为20Mbit/ s(忽略编程时间). 为了实现数据的实时存储,采用面积换取速度的原理,充分利用XC5VLX50的内部逻辑资源和丰富的I/O口资源,设计了2个存储器阵列,每个存储器阵列由24 片FLASH MEMORY,在XC5VLX50 内部进行乒乓操作,把480Mbit / s的数据量分流成20Mbit/ s,分别存储到24片FLASH MEMORY中,当FLASHMEMORY达到编程时间的时候转向第二个存储阵列,这样的外部乒乓操作就达到了FLASHMEMORY的最高存储效率,实现了数据的高速实时采集和存储, 2个存储阵列共享控制总线和数据总线,但是使能总线独立;在一个存储阵列内部,存储芯片控制总线共享,数据总线独立,这样能达到紧密协作和节省FPGA逻辑资源和I/O口资源的效果。而设计的FLASH MEMORY 控制器的速度达480MHz,数据带宽符合转存需要的速度,完全可以实现实时连续采样。数据采集结束后,DSP模块会在Power PC405的控制下对FLASH MEMORY内存中的数据进行高速处理,然后又放回FLASH MEMORY中,处理后的数据也能通过PCI总线传到带有PCI接口的设备中,或者通过USB总线存储到硬盘中,对PCI和硬盘操作均支持DMA66操作[ 5 ] 。 |