如何利用FPGA设计高速数据采集系统接口
扫描二维码
随时随地手机看文章
引言
当前,越来越多的通信系统工作在很宽的频带上,对于保密和抗干扰有很高要求的某些无线通信更是如此,随着信号处理器件的处理速度越来越快,数据采样的速率也变得越来越高,在某些电子信息领域,要求处理的频带要尽可能的宽、动态范围要尽可能的大,以便得到更宽的频率搜索范围,获取更多的信息量。因此,通信系统对信号处理前端的A/D采样电路提出了更高的要求,即希望A/D转换速度快而采样精度高,以便满足系统处理的要求。
可编程门阵列FPGA的出现已经显著改变了数字系统的设计方式。应用可编程门阵列FPGA,可使数字系统设计具有高度的灵活性,因此FPGA的应用越来越广泛,而新一代FPGA--Virtex Ⅱ-PRO的出现使FPGA的功能更加强大,但随之而来的是要求提高数据的传输速率,过去人们总是关心如何提高处理器运行速度,而现在关心的是怎样才能更快地将数据从一个芯片传输到另一个芯
片。可见,高速数据采集系统的输入输出接口设计就显得尤为重要。
1 高速采集系统介绍
数据采集系统原理框图如图1所示,输入的中频信号经A/D采样电路采样后,转换成LVDS信号送入FPGA中,或通过FPGA的端口RocketIO从高速接口输出,或通过FPGA的端口LVDS循环存储于高速缓存中,再由低速接口输出。其中,FPGA主要完成对外接口管理、高速缓存的控制和管理。时钟控制电路对A/D数据转换器和可编程门阵列FPGA起同步和均衡作用。
2 输入输出接口研究
Virtex Ⅱ-PRO系列是在Virtex Ⅱ系列FPGA的基础上,嵌入了高速I/O接口和IBM PowerPC处理器,它能实现超高带宽的系统芯片设计,支持LVDS,LVPECL等多种差分接口,适应性很强。其中高速串行(MGT)技术采用了RocketIO技术,在可编程逻辑器件中内嵌了速率为3.125Gb/s的多端串行通信接口,该技术包括千Mb以太网、10千以太网、3GIO、SerialATA、Infiniband和Fibre Channel,为高性能接口提供了完成的解决方案。LVDS(Low Voltage Differential Signaling)信号标准是一种小振幅差分信号技术,如图2所示,它使用非常低的幅度信号(100-450mV),通过一对平行的PCB走线或平衡电缆传输数据。在两条平行的差分信号线上流经的电流方向相反,噪声信号同时耦合到两条线上,而接收端只关心两信号的差值,于是噪声被抵消。由于两条信号线周围的电磁场也互相抵消,故差分信号传输比单线信号传输电磁辐射小很多,从而提高了传输效率并降低了功耗。
在高速数据采集系统中,使用了最新的A/D芯片MAX104A。该芯片是Maxim公司的最新产品,采样频率可以达到1GHz,采样精度为8位。芯片输出是PECL(Positive Emitter-Coupled Logic)电平输出。PECL信号的摆幅相对ECL要小,适合于高速数据的串行或并行连接。PECL的输出电路结构如图3所示。该电路包含一个差分对管和一对射随器。输出射随器工作在正电压范围内,无信号时电流始终存在,这样有利于提高开关速度,标准的输出负载接50Ω电阻至VCCO-2V的电平上,如图3所示,在这种负载条件下,OUT+与OUT-的静态电平典型值为UCCO-1.3V,OUT+与OUT-输出电流为14mA。PECL结构的输出阻抗很低,典型值为4-5Ω,这表明它有很强的驱动能力。但当负载与PECL的输出端之间有一段传输线时,低阻抗造成的失配将导致信号时域波形的振铃现象。
3 RocketIO设计
Xilinx公司的Virtex Ⅱ-PRO FPGA采用具有时钟恢复功能的全双工串行I/O收发器,可高效地实施每通道带宽达到3.125Gb/s的不同协议设计。收发器支持高达到每通道3.125Gb/s的数据速率,并可利用通道捆绑功能满足各种应用不断增长的数据传输速率的要求,Virtex Ⅱ-PRO的收发模块由物理编码子层(PCS)和物理介质接入(PMA)构成,其中物理编码子层提供与FPGA逻辑内的数字接口,内部包括:循环冗余码校验CRC、8B/10B编解码器、先进先出缓冲器FIFO;物理介质接入提供与外部媒体的模拟接口,其中包括:20倍时钟倍频器、发送端时钟生成器、发送缓冲器、串化器、接收端的时钟恢复电路,接收缓冲器、解串器、可变速率的全双工收发器、可编程的五级差分输出幅度(摆率)控制和可编程的四级输出预加重模块。RocketIO的原始设计是比较复杂的,但幸运的是,Xilinx公司提供了大量成熟的和高效的IP(Intellectual Property)核来使用。如果能够很好地掌握该工具的使用,将会极大地缩短设计的进度,减少开发和调试时间,由于IP核是根据Xilinx FPGA器件的特点和结构设计的,直接用Xilinx FPGA底层硬件原语进行描述,可充分地将FPGA的性能开发出来,其实现结果在面积和速度上都能达到令人满意的效果。在设计中,还要考虑到以下方面。
(1)参考时钟
高性能的通信质量要求有高稳定性和高精度的时钟源。抖动和频偏是衡量时钟源的两个重要指标。频偏是指时钟标称频率与实际频率的偏差,主要是受晶体精度的影响,由于RocketIO模块内部将输入参考时钟20倍频,而RocketIO模块可容忍的输入参考时钟抖动公差为40ps,可见参考时钟的抖动对其性能有直接影响,所以必须选择性能优良的参考时钟。抖动一般是指一个实际情况下的周期信号每个周期的图样相对于该信号理想情况下一个周期图样的偏差。抖动产生的原因包括:时钟晶体本身的机械振动、器件的热噪声和电源串入噪声等。抖动可以分为确定性抖动和随机抖动,确定性抖动包括信号在传输中煤质损耗、码间串扰(ISI)等周期性因素导致的抖动;随机抖动是由半导体器件热噪声、电源波动等共模随机噪声源导致的。在Virtex Ⅱ-PRO系列FPGA中,RocketIO模块集中分布在上、下4个通道中,当RocketIO工作在2.0 Gbaud以上时,参考时钟应采用差分输入方式(如LVDS、LVPECH),由上述4个通道的专用差分时钟引脚输入,至相同时钟信号引入不必要的抖动,在2.0 Gbaud速率以下应用时,不要用FPGA内部的DCM来生成RocketIO的输入时钟,因为经DCM倍频的时钟会引入较大的抖动,使RocketIO的接收锁相环无法稳定地锁定发送时钟,致使系统无法正常工作。
(2)复位
在Virtex Ⅱ-PRO系列FPGA中,RocketIO模块的复位引脚分为发送(TX_RESET)和接收(RX_RESET)两部分。由于DCM在输出时钟锁定在设定值前,输出时钟处于不稳定状态,不能用作内部逻辑电路时钟,所以要在DCM时钟输出锁定有效,并经过适当延迟后才可将片内逻辑复位。RocketIO模块要求复位输入至少保持2个USRCLK时钟周期来完成内部FIFO的初始化。
(3)PCB设计
在PCB的设计中,应使差分线对内的长度相互匹配,以减少信号扭曲。为使设计传输速率达到2.0 Gbaud,在差分线对内部每个走线区间内的实际布线公差应控制在5 mil内。差分线对内两条线之间的距离应尽可能小,以使外部干扰为共模特征。差分线对间的距离应尽可能保持一致,以降低差分阻抗分布的不连续性。采用电源层作为差分线的信号回路,因为电源平面有最小的传输阻抗,从而减少噪声,由于每个过孔可带来0.5-1.0dB的损耗,应尽量减少过孔数目。过孔的通孔和焊盘应有尽量小的物理尺寸,并且在通孔穿越的未连接不加焊盘,差分对内的过孔不仅在数量上要匹配,而且在放置的位置上也要接近,以使阻抗分布尽量一致,避免导致阻抗不连续的90°走线,而要用圆弧或45°折线来代替。走线时应使向左、向右折角的数量接近,这样可减少信号经差分线传输引起的扭曲。在模拟数字混合系统设计中,首先,应在电源和地线之间加上去耦电容;其次,尽量加宽电源和地线宽度,最好是地线比电源线宽,使得地线宽度>电源线宽度>信号线宽度;第三,使用统一地,而将PCB分区为模拟部分和数字部分,模拟信号在电路板所有层的模拟区内布线,而数字信号在数字电路区内布线,在这种情况下,数字信号返回电流不会流入到模拟信号的地。经过以上设计,噪声影响明显降低。
4 接口解决方案
随着高速数据传输业务需求的增加,如何高质量地解决高速IC芯片的相互连接变得越来越重要,低功耗及高的信噪比是有待解决的主要问题。本文所介绍的高速采集系统中芯片间有两种接口:PECL和LVDS,如何进行两接口相互连接就成为一个影响系统性能的关键因素,LVDS的输入与输出都是内匹配的,所以LVDS间的连接可采用图4所示的直接连接,在FPGA内,需对差分输入时钟缓冲器(IBUFDS),差分输入的全局时钟缓冲区(IBUFGDS)和差分输出时钟缓冲器(OBUFDS)例化,在本项目的应用中,发送及接收FIFO的设计用了双口块内存(Block RAM),时钟倍频器用了延迟锁定环(DLL),帧解码器由30位并行数据产生器、同步字检测阵列和接收状态机组成。
FPGA的部分代码如下:
PECL间的连接一般常用直流耦合。在直流耦合情况下,PECL输出设计驱动50Ω负载至(VCC-2V),电路如图5所示。
FPGA的部分代码如下:
经实际测试,输入输出指标均符号系统要求,在硬件电路设计中,由于LVDS信号的偏置电压为1.25V,电压摆幅只有350mV,传输速率≥100Mb/s;因此,电路板制作至关重要,要求至少使用四层板。为使干扰信号以共模方式加到差分线对上(不影响数据正确性),要求差分线对间的距离尽可能小。电源方面,FPGA芯片上电时要求有大于500mA的驱动电流,同时,由于多个输出引脚的电位速度变化,要求每对电源和地引脚都要良好旁路。
5 结论
本文给出了基于FPGA高速数据采集系统中的输入输出接口的实现,介绍了高速传输系统中RocketIO设计以及LVDS接口、LVPECL接口电路结构及连接方式,并在我们设计的高速数传系统中得到应用。RocketIO传输速度可以达到2.5Gbaud,LVDS总线上的传输速率可以达到120Mb/s,系统性能稳定。