JESD204B分层及参数理解

JESD204B各层功能及参数理解

概述

模拟世界和数字世界之间的联系离不开ADC和DAC,随着人们数据需求的增加、频谱资源紧缺,高速ADC/DAC以及适合处理大数据的FPGA平台逐渐被开发出来,随之用于高速数据传输的协议与之诞生,即JESD204协议,相比传统的LVDS传输方式,其链路速率更高,同时也节约IO数量。协议发展为几个不同版本,其主要区别如下所示:

JESD204B分层

当前应用最普遍的为JESD204B,204B又分为子类0、子类1、子类2 ,这是根据同步方式划分的,比如子类1通过SYSREF进行同步,子类2根据SYNC来同步,目前采用较多的为子类1,并且只有子类1和子类2才支持确定性延时。

如上图所示,JESD204B分为四层介绍,分别是物理层、数据链路层,传输层和应用层。
1、物理层用于以特定速率发送和接收数据;
2、数据链路层用于8B/10B编解码和帧、lane数据对齐;
3、传输层用于数据组帧或解帧;
4、应用层用于链路配置和数据映射。
在使用转换器和FPGA进行JESD204B数据传输时,必须对转换器和FPGA采用相同的链路配置,才能正确的接受数据。如ADC何FPGA之间的数据连接,首先通过SPI配置ADC实现链路参数设置。
一、传输层
ADC采集到的数字信号会在JESD204B传输层根据给定器件已定义的链路配置参数,决定如何包装ADC的数据。这些参数在初始通道对齐序列(ILAS)期间从ADC传输到FPGA,以便校验通信双方链路参数是否相同 ,若FPGA检测到错误就会通过SYNC信号向ADC汇报错误,数据映射如下图所示。

二、数据链路层
数据链路层接受并行成帧数据,并输出8B/10B字。8B/10B方案会增加一些开销,但能提供直流平衡的输出数据和内置差错校验。链路建立包括三个不同阶段:
1) 代码组同步(CGS):
在代码组同步(CGS)期间,一旦在所有链路通道上检测到某一数量的连续K28.5字符,FPGA就会送至ADC的SYNC信号。在JESD204B中,ADC捕捉到SYNC信号的变化,就会在下一个本地多帧时钟(LMFC)边界上启动ILAS。
2) 初始通道对齐序列(ILAS)
ILAS的主要作用是对齐链路的所有通道,验证链路参数,以及确定帧和多帧边界在接收器的输入数据流中的位置。 ILAS由4个或更多多帧组成。各多帧的最后一个字符是多帧对齐字符/A/。第一、第三和第四个多帧以/R/字符开始,以/A/字符结束。第二个多帧包含/R/和/Q/字符,随后是链路参数。/Q/字符表示之后的数据是链路配置参数。
3) 用户数据
CGS和ILAS阶段完成后,发送器开始送出ADC数据。在这一阶段,用户数据根据ADC中定义并转发到接收器(FPGA)的链路参数,以流形式从发送器传输到接收器。;并且如果需要,通过数据链路中的字符替换可以监视并纠正帧和通道对齐,字符替换在帧和多帧边界处进行。

三、物理层
在物理层中,数据进行串行化,8B/10B编码数据以线路速
率发送和接收。物理层包括串行/解串器(SERDES)模块、
驱动器、接收器和CDR,JESD204B规范支持三种可能的速
度等级,如下图所示。

一条完整的传输链路框架如下图所示:

JESD204B参数理解

如上图,首先要了解LINK和lane的概念,link即一个转换器设备和逻辑设备(FPGA)之间的数据连接;lane是指link中每一路数据通道。转换器如ADC,在进行采样、下变频等操作之后,根据预先设定的204B参数,在204B传输层将数据组帧,到数据链路层进行编码,最后通过物理层将数据传输到逻辑设备(FPGA),这些参数决定了数据传输的模式,在逻辑设备端采用相同的参数进行解码和解帧才能得到正确的采样数据。我们关心的参数如下:

以TI的AD9689为例子解释参数,AD9689是双通道16位,最大采样速率2.56GHz的模数转换器,其全带宽模式如下图所示,有两个ADC CORE即M=2;8条lane即L=8;N=14即3.5nibble,补全nibble即N’=4nibble=16,每帧只有一个字节(8bit)即F=1;每个转换器每帧时间的采样点数为2即S=2;这些参数决定了lane rate。
在这里插入图片描述
①lane rate=(MxSxN’x10/8xFc)/L;帧时钟:Fc=Fs/S,乘以N’即补齐nibble部分用控制字填充。

乘以10/8即编码部分。

lane rate计算对选择FPGA具有重要意义,JESD204B支持速率高达12.5Gbps,但最终工作在何种速率取决于使用哪种FPGA,FPGA GTH/GTX收发速率有上限,不同FPGA支持速率不同。因此参数决定的lane rate和FPGA选择需要进行权衡对比哦。
在JESD204B协议中,各个时钟之间的关系如下图所示

时钟间关系如下表所示:

然而在实际应用中,硬件上需要外部提供给ADC和FPGA的时钟只有四类如下所示:

1、SYSREF:参考时钟,同SYSREF TO ADC;
2、GLBCLK:204B核时钟,Fglbclk=lane rate/40;
3、REFCLK:GTH参考时钟,时钟频率可选;
4、DEVICE CLK:ADC设备时钟;
5、SYSREF:ADC参考时钟;
总结
通常实现在ADC和FPGA的连接,硬件上根据设计需求选择合适的ADC和FPGA,这设计到对ADC工作模式和FPGA逻辑资源和高速收发器速率的综合考虑。然后提供分别电源、时钟和硬件连接,在ADC端通过SPI总线配置其工作模式和参数配置等,在FPGA端一般是通过调用IP CORE,配置对应参数然后打开相应的example design进行接收端数据处理的。
emm后面再介绍吧。
学习FPGA数字硬件有一段时间了,感觉知识体系不完善,希望能在这里做一个整理,其次就是等不断的学习之后能温故知新
奥利给!!!

猜你喜欢

转载自blog.csdn.net/weixin_43813325/article/details/104870432