基于Virtex6的高速串行数据采集与传输

作者:刘敏 西安电子科技大学 电子信息攻防对抗与仿真重点实验室

摘要: 随着现代工业科技飞速发展,某些特定的大容量数据系统要求有很高的采样频率及较高的通信效率。本文通过ADC12D800RF实现高速采样,并基于Xilinx Virtex6 FPGA的GTX高速串行接口实现可靠高速传输,从而满足大容量高速数据系统的要求。

引言
随着社会的发展,通信的频率和速度正在加快,许多复杂系统往往有大容量的信息交换,此时串行通信相较并行通信的优点就体现出来了,高速、实时、可靠,使得串行通信成为下一代数据通信的首选[1.2],而高效率的串行接口又使得转换器可以拥有更高的采样频率。

GTX是Xilinx公司的高速串行接口,ADC12D800RF是有较高采样速率的模/数转换器,本文介绍了ADC12D800RF的原理,数据的拼接转换及Virtex6 的GTX,并且实现了Virtex6与Virtex5之间的通信。

1ADC12D800RF
ADC12D800RF是12位双通道,采样速率为1.0~1.6 Gsps,最高采样输入频率达2.7 GHz的ADC[3]。

1.1技术特点
TI公司的ADC12D800RF,其主要特点如下:①工作模式为交替单通道/独立双通道;②分辨率为12位;③最高转换速率为1600 Msps;
④输入时钟频率范围为200~800 MHz;⑤无杂散动态范围(SFDR)为63.1 dBc, AIN=1 498 MHz @ -0.5 dBFS;⑥模拟输入带宽为-3 dB:2 700 MHz;⑦差分模拟输入电压为600 mVpp;⑧输出方式为LVDS电平(1∶1/1∶2);⑨功耗为2.5 W。

1.2主要组成部分
ADC12D800RF主要由输入模块、时钟控制模块、控制/状态及其他逻辑模块、控制接口、SPI接口和输出模块等组成,硬件结构如图1所示。模拟输入有I、Q两个通道,每通道有一对差分输入,经过一个多路复用器进入T/H电路(追踪保持解调技术),然后进入两片ADC。每片ADC可以有两路LVDS输出或者一路,具体是由多种不同模式决定,而控制接口或者SPI决定了ADC使用哪种模式进行采样。

图1 ADC12D800RF系统结构图

图1 ADC12D800RF系统结构图

1.3工作模式及控制
可以通过SPI或者9个控制接口来控制ADC工作模式,本文采用控制接口来控制,即NonECM模式。9个控制接口分别是:

① DES:双边沿采样模式选择。若此标志位置高则是双边沿采样,I、Q通道都采样I通道的模拟输入信号,Q通道模拟数据忽略,且在数据的上升沿和下降沿都采样;否则,I、Q通道各自采集各自的模拟输入信号,且只在上升沿采样。本文是双边沿采样,即DES = 1。

② CalDly:校准延迟选择。决定在自动校准初始化完成前等待时间的长短。本文中CalDly为0。

图2 多路双边沿采样模式

图2 多路双边沿采样模式

③ ECE:扩展控制端口使能。次标志位置高时SPI接口无效,所有设定由控制接口决定,否则由SPI通过控制寄存器来决定。本文中ECE为1。

④ PDI/PDQ:I/Q通道是否上电。本文中I、Q通道都用到了,即PDI/PDQ都为0。

⑤ TPM:测试模式选择。若此标志置高,ADC会连续产生规律模拟数据;否则是非测试模式,采样外部输入模拟数据。本文中TPM为0。

⑥ NDM:多路选择模式。次标志位置高是不分路模式,即每路ADC只有单路输出;否则是多路模式,每路ADC有两路输出。本文是多路模式,即NDM为0。

⑦ FSR:满量程输入范围选择。决定模拟输入信号的电压范围,本文中FSR为0,正常输入电压为600 mV。

⑧ DDRPh:数据和数据时钟相位关系选择。置高时,数据和数据时钟差90°,否则相差0°。本文中DDRPh为1。

本文采用的是双边沿多路采样,时序图如图2所示。Vin是模拟输入信号;CLK是采样时钟(500 MHz);DQd、DId、DQ、DI是4路LVDS数据输出,从图中可以看出ADC在上升沿和下降沿都有采样。DId、DI是I通道的输出,DI比DId晚1个周期采样,DQd、DQ同理;CLK是数据时钟(250 MHz)。

2高速串行接口GTX
Virtex6是Xilinx公司推出的高性能40 nm FPGA系列,相较前一代产品功耗降低多达50%,成本降低多达20%。该系列产品进行了组合优化,包括灵活性、硬内核IP、收发器功能以及开发工具支持, 从而可以帮助客户满足市场需求,在追求更高带宽的同时, 适应不断演化的标准以及苛刻的性能要求。

在Xilinx公司的Virtex6 FPGA中,GTX作为一种低功耗的吉比特收发器,配置灵活、功能强大,并与FPGA内部的其他逻辑资源紧密联系,可用于实现多种高速接口(如XAUI、PCIE等)。Virtex6系列的FPGA中,GTX串行传输速度为 600 Mbps~6.6 Gbps[4],支持收发双向,且收发双向独立。GTX接收和发送方向均由物理媒介适配层PMA(Physical Media Access )和物理编码子层PCS(Physial Code Subplayer)两部分组成,PCS提供丰富的物理编码层特性,包括周期冗余检测CRC(Cyclic Redundancy Check)、8b/10b编码。发送FIFO、8b/10b解码及用于通道绑定和时钟校准的弹性缓冲器等模块;PMA部分为模拟电路,提供高性能的串行接口特性,如预加重、均衡等功能,主要包括串行转换、差分接收器、并串转换及时钟数据恢复(CDR)等模块[5]。GTX结构图略——编者注。

2.1GTX使用注意事项
对于GTX的参考时钟,可以由外部晶振提供、相邻的Quad提供或者内部提供[67]。本文用到了12个GTX接口,每个接口有3个Quad模块,112号Quad模块用的外部时钟芯片CDCE62005输出差分参考时钟,113号Quad模块用的相邻Quad112的时钟,114号Quad模块用的相邻的Quad115的参考时钟,而115号Quad模块参考时钟也是由CDCE62005提供。

GTX的用户时钟有些可以供外部使用,发送端用户时钟TXUSRCLK2是由TXOUTCLK驱动,接收端用户时钟RXUSRCLK2是由RXRECCLK驱动,即是从接收到的数据里恢复出来的时钟。要注意发送端还有另外一个用户时钟TXUSRCLK,是PCS内部逻辑时钟,不允许用户直接使用,接收端的RXUSRCLK类似。

TXUSRCLK的速率可以由下式求得:

TXUSRCLK速率=线速率数据位宽(1)

而线速率是3 Gbps,数据位宽是16位,所以用户时钟是150 MHz。接收端、发送端的TXUSRCLK2、RXUSRCLK2可以输出供外部模块使用,例如FIFO、DDR、TLK等,本文GTX作为发送端,GTX接口前面的FIFO读时钟和加K字符模块就是用的发送端用户时钟。

要使用GTX必须要进行复位操作,而且必须等到GTX复位完成才可以进行传输,发送端要等到TXRESETDONE位拉高,接收端等到TXRESETDONE拉高。若是有板间通信,则要等到两边的GTX都复位完成,本文就是在Vertex5接收端和Vertex6发送端都复位完成后才开始发送数据。

另外一个要点就是comma的检测,GTX检测comma对齐,本文使用的控制字符是K28.5。在发送数据前先发送一端足够长的控制字符,此时TXCHARISK=2'b01;然后发送数据,TXCHARISK=2'b00;接收端通过TXCHARISK判断当前接收到的是同步字符还是数据。

2.2GTX的环回测试
如果要检测GTX间连接是否正常,可以通过环回来检测。正常工作模式时LOOPBACK为3'b000,而环回模式共有4种:

① 近端PCS环回,即图中的路径①,数据流仅通过近端GTX的PCS部分,可用于验证近端GTX中PCS收发双向的设置,此时LOOPBACK为3′b001;

② 近端PMA环回,即图中的路径②,数据流通过近端GTX的PCS、PMA,可用于验证近端GTX发双向的设置,此时LOOPBACK为3'b010;

③ 远端PMA环回,即图中的路径③,数据流通过近端GTX的PCS和PMA,远端的GTX的PMA部分,通过两个GTX之间的物理连线,验证两个GTX之间物理联系的可靠性,以及验证两个GTX的PMA部分设置的正确性,此时LOOPBACK为3'b100;

④ 远端PCS环回,即图中的路径④,验证近端收发器和远端收发器的通信状况[7],此时LOOPBACK为3'b110。

环回测试示意图如图3所示。

图3 环回测试示意图

图3 环回测试示意图

3系统框架、实验结果及分析
本文实现高速数据采样并传输的作用,前端由ADC12D800RF采集数据,通过高速串行接口GTX实现FPGA间的通信。采样时钟是500 MHz,FPGA芯片分别是Virtex6系列XC6VLX240T和Virtex5系列的VC5VFX240 t,GTX的参考时钟是150 MHz,数据位宽是16位,数据传输速率为3 Gbps。系统示意图如图4所示,高速ADC采样得到4路数据,按照高低位合成64位,依次循环写进3个FIFO,再从每个FIFO里读出数据,再分成4路16位数据,加上K字符之后送入GTX,经过它发送至3片Virtex5的GTX,每个Virtex5接收4路GTX数据,再作进一步处理。系统框架如图4所示。

图4 系统框架

图4 系统框架

高速ADC的采样结果如图5所示。

图5 ADC12D800RF采样结果

图5 ADC12D800RF采样结果

模拟输入信号是正弦波,可以看到4路输出也是正弦波。模拟产生4路递增码,通过GTX发送至另外一片FPGA,发送和接收分别如图6、图7所示。

从图6和图7中可以看出,GTX传输之后数据既无丢失,也没有出现乱码,可靠快速地实现了高速数据传输任务。

图6 发送端数据

图6 发送端数据

图7 接收端数据

图7 接收端数据

结语
本文通过对高速信号采集器ADC12D800RF、高速串行数据接口GTX的介绍和实验,可靠、高速、实时地完成了大容量数据的传输。高速串行接口在提高数据传输速率的同时,使得处理更多更大数据成为可能,也就催生了采样速率更高的转换器,这些都对高速数据的处理、传输和存储有积极的影响。

文章来源:单片机与嵌入式系统应用