基于JESD204协议的高速串行采集系统
摘要 在通信设施、成像设备、工业仪器仪表等需要大量数据的系统中,要求数据转换级提供越来越宽的分辨率和越来越高的采样率。并行接口的物理布局和串行LVDS方法的比特率限制,给设计人员带来技术障碍。文中基于Xilinx Vertx6 FPGA的GTX高速串行接口实现了JESD204B协议,有效地解决了传统采集数据并行传输时的各种问题。
关键词 高速串行接口;GTX;Xilinx VertX6;JESD204B
随着转换器分辨率和速度的提高,对更高效率接口的需求也随之增长。JESD204接口可提供这种高效率,较之CMOS和LVDS接口产品在速度、尺寸和成本上更有优势。采用JESD 204的设计具有更高的接口速率,能支持转换器的更高采样速率。此外,引脚数量的减少使得封装尺寸更小且布线数量更少,这些都让电路板更容易设计并且整体系统成本更低JESD204标准经过两次更新,目前版本为B。由于该标准已为越来越多的转换器供应商、用户以及FPGA制造商所采纳,它被细分并增加了新特性,提高了效率和实施的便利性。此标准既适用于模数转换器(ADC)也适用于数模转换器(DAC),还可以作为FPGA的通用接口。
1 JESD204协议
JESD204B协议体系结构可以分为物理层、链路层、传输层和应用层其结构原理框图如图1所示。
物理层实现高速串行信号的发送和接收完成数据串并、并串转换以及编解码处理。接口采用电流模式逻辑(CML)驱动器和接收器的差分对组成,通信速率定义在 312.5 Mbit ·s-1与3.125Gbit·s-1之间。差分电平定义为标称800 mV峰峰值、共模电平范围是0.72~1.23 V。该链路利用8h/10b编码采用嵌入式时钟。这样便无须额外的时钟线路,避免了高速速率下传输数据与额外的时钟信号对齐的复杂性。链路层负责编码帧数据。校验数据,添加帧的边界和流量控制。链路层只发送和接收帧,并不需要知道帧的内容。传输层的工作是将A/D采样信息从数据流中提取出来。
2 JESD204B协议方案
2.1 Xilinx V6 FPGA
Virtex-6 FPGA是Xilinx公司推出的一块高性能低功耗FPGA。其内嵌8~72个千兆位收发器GTX。每个GTX收发器都集成了发射器和接收器功能,能以 480 Mbit·s-1~6.6 Gbit·s-1的数据速率运行。通过采用基于FPGA逻辑的过采样技术,可支持较低的数据速率。每个GTX收发器都有大量用户定义的特性和参数,这些特性和参数可在器件配置器件定义,也有许多可以在运行过程中进行修改。GTX发射器实质上是一款并串转换器,输出使用单通道差分电流模式逻辑(CML)信号,TXOUTCLK是进行适当相处的串行数据时钟,可直接作为来自内部逻辑的并行数据寄存器。输入的并行数据由一个小型FIFO提供,可选择使用 8b/10b、64b/66b算法对齐进行修改,以确保足够数量的跳变。输出信号摆幅可通以通过程序设定,其预加重也可编程从而补偿印刷电路板的损耗和其他互联特性。将输入的位差分信号转换为并行字流位宽可为8、10、16、20、32或40。可通过可编程均衡器,并使用FREF输入对时钟识别进行初始化,无须图例的时钟线路。数据模式采用不归零(NRZ)编码,可通过选定的编码方案确保充分的数据跳变。随后使用RXUSRCLK时钟将并行数据传输到 FPGA逻辑中。
GTX接口众多特性使其能够方便地实现PCI—E、SATA、SAS等高速串行接口的物理层与链路层桥接。可以考虑使用GTX接口实现JESD204B协议,以正确解析JESD204B接口ADC转化器发出的数据。
2.2 JESD204接口ADC转换器
使用的ADC为TI公司生产的ADS42JB69,它是一款高线性、双通道,16位,250 MSample·s-1的模数转换器。该器件支持JESD204B串口,数据速率高达3.125 Gbit·s-1。经缓冲的模拟输入在大幅降低采样保持毛刺脉冲能量的同时,在宽频率范围内提供统一的输入阻抗,这使得它可以轻松地将模拟输入驱动至极高输入频率。采样时钟分频器可实现更灵活的系统时钟架构设计。此期间采用内部抖动算法以在宽输入频率范围内提供出色的无杂散动态范围(SFDR)。
2.3 协议的实现
协议的实现是完成对AD42JB69的A/D采样数据进行读取。物理层完成了数据在线路上的传输,可以直接使用GTX与A/D相连实现。 A/D作为发送端FPGA作为接收端,链路层完成的主要功能是线路编码和对控制字符的检查。GTX接口内嵌了8b/10b编解码模块和控制字符检测模块,可以方便地实现与JESD204B标准设备的对接。在FPGA中基于GTX实现JESD204B协议,其难点主要有时钟的配置,以及对协议据帧的解析。
从时序图可以看出,由A/D的采样时刻到该时刻的采样数据被FPGA接收到存在一个延时。
工程中需要满足A/D采样率200 MSample·s-1。AD42JB69的JESD204接口可以配置为四线模式和两线模式。根据项目需求,应该使用四线模式才能达到200 MSample·s-1的采样要求。在四线模式下A/D的数据映射关系如表2所示。其中DA0、DA1、DB0、DB1分别接4个GTX接口。传输两个 A/D转换器采样数据的高8位和低8位。因为采样时钟与传输时钟一致,JESD204设备先将A/D采样的数据进行8b/10b编码然后用与采样频率相同的时钟将编码后的数据进行并串转换并发送给接收端。计算可得到发送线速度为2.0 Gbit·s-1。因此FPGA需要正确配置RXPLL_DIVSEL_REF、RXPLL_DIVSEL45_FB、TXPLL_DIVSEL_FB、 TXPLL_DIVSEL_OUT的值使GTX接收线速度能稳定工作在2.0 Gbit·s-1。
2.4 数据帧解析的实现
在串行数据收发过程中如何判断数据的边界尤为关键,JESD204协议采用字同步和帧同步解决数据边界问题。通过在数据流中插入控制字符完成字同步和帧同步。以下列出JESD204B中使用的控制字符以及他们的功能。FPGA通过对控制字符的正确解析可以完成时钟恢复、数据边界认定,对齐等。
/K/=/K28.5/控制字符用来完成字同步。接收端可以通过拉低
使发送端持续发送/K28.5/控制字。当接收端接收到连续的4个/K28.5/字符后字同步建立。此时FPGA作为接收端已经完成了时钟恢复,Comma字符检测。字同步建立以后进行帧边界确定。接收端拉高
后发送端停止发送/K/28.5/控制字,开始发送ILA帧。ILA帧的结构如图4所示,每个ILA帧包含4个多帧(Multi—Frame)。
/R/=/K28.0/做为每个多帧(Multi—Frame)的开始标志。
/A/=/K28.3/用于串行数据流中的多帧(Multi—Frame)同步。作为多帧(Multi—Frame)的结束标志。
/F/=/K28.7/用于串行数据流中的帧(Frame)同步,当当前帧的最后一个8位字节(Octet)等于前一帧的最后一个8位字节(Octet)时用/F/=/K28.7/控制字替换当前帧的最后一个字节。
通过上述规则检测K字符并将A/D采样数据存入FIFO。当完成了控制字符检测后需要将A/D的采样数据进行拼接,因为每路A/D转换器都是以高低字节分开的方式传输数据的,因此要严格保证采样时钟的同步。系统使用两级FIFO来对A/D采样数据进行缓存。第一级4个FIFO完成采样数据高低字节的同步,其存储深度为16 Byte,4个FIFO的时钟分别接4个GTX的RXUSRCLK,当FIFO存储数据达到10时开始读出数据,这样就能保证4个FIFO的输出由一个时钟同步。第二级FIFO作为数据缓存,为用户逻辑提供简单接口,深度为4 kByte。用户逻辑接口有RD_CLK,RD_READY。当FIFO存储深度达到4 000时RD_READY信号拉高。可以通过判断该信号开始读取数据。RD_CLK需要>200 MHz,每次读取4 kByte数据后再等待RD_READY信号有效,这样循环就可以将A/D采样数据连续地读入到用户逻辑。
3 实验分析
AD42JB69中包含了22个8位控制寄存器可以使用SPI接口对芯片的工作方式进行灵活的配置。可以配置芯片输出递增码、随机码、零 -交错码、正弦信号等多种测试码源。这些测试码源可以用于验证接口传输数据的正确性,实验选用递增码作为测试码源方便发现错误,图6所示为使用 Chipscope观察FPGA接收到的递增码波形。
4 结束语
随着传送速率的不断提高,并行传输技术中的同步码串扰等问题越来越严重,已不能满足高速数据传输的要求,成为工程应用瓶颈。笔者在分析FPGA中高速串行收发器CTX功能和JESD204协议后。实现了一种A/D采集数据的串行传输方式,解决了并行传输中遇到的问题。用Verilog语言编写了 JESD204协议控制核,节省了工程成本。
关键词: GTX Xilinx VertX6 JESD204B
加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW
或用微信扫描左侧二维码