文章来源:数字站
本文参考B站尤老师JESD204B视频,图片来自JESD手册或者ADI/TI官方文档。
对比LVDS与JESD204
JESD204B是逻辑器件和高速ADC/DAC通信的一个串行接口协议,在此之前,ADC/DAC与逻辑器件交互的接口大致分为如下几种。
低速串行接口(I2C、SPI)、低速并行接口(包含时钟信号和并行数据信号,例如AD9226、AD9280等)、LVDS接口(在低速并行接口的基础上将数据线和时钟线变为差分信号,速度可以达到几百MHz)、最后演变为JESD204高速串行总线。
前两种接口的ADC和DAC比较常见,不管是单片机还是FPGA,都使用的比较多,不再赘述。接下来讲解LVDS接口的劣势,为什么高速ADC会演变为JESD204。
首先是PCB布局布线的难度,如下所示,相同的16位DAC,LVDS接口需要使用16对差分数据线,而JESD204B接口只需要使用4对差分线(带宽与LVDS接口一致)。
图1 数据线的差别
上述两种接口的PCB布线如下所示,由于数据线之间还要严格等长,LVDS需要使用4层布线,而JESD204B只需要一层布线即可。
图2 PCB布线
同时由于芯片数据引脚减少,芯片的尺寸也可以做得更小,缩减PCB的面积,如下所示。
图3 芯片面积缩小
LVDS接口的时序如下图所示,在时钟信号的边沿采集并行数据总线的状态,容易引起信道偏斜。要求各数据线之间严格等长,在时钟边沿能够稳定采集所有数据线的状态,在使用LVDS接口的器件时,一般都需要去通过idelaye去调节时钟和数据线的相位关系。
但如果数据线之间本身就没有对齐,当时钟频率较高时,整个系统很可能调试不出结果。钟频率越高,数据线对齐的要求越严格,时钟频率增加到某些值时,PCB走线可能已经无法完成对齐。
图4 LVDS接口的时序
JESD204接口是在高速Serdes的基础上封装得到的,因此数据传输的原理是一样的。如下图所示,JESD204接口并没有随路时钟信号,接收端通过CDR技术去调节参考时钟和数据之间的相位关系,每路串行数据均有对应CDR,各组数据线的PCB走线之间不需要等长对齐。
图5 JESD204接口接收数据时序
当然JESD204相对于LVDS也是有劣势的,JESD204并不能取代LVDS。由于JESD204的接收端需要锁相环给CDR提供参考时钟,因此JESD204的功耗一般会比LVDS高。
图6 JESD204与LVDS接口功耗
另外JESD204的接收端有缓冲器来实现多通道数据同步,数据传输延迟也会比LVDS大很多,因此在一些对延时比较敏感的系统中,可能还是得使用LVDS。
JESD204的结构
JESD204从发布开始至今有四个版本,分别为JESD204、JESD204A、JESD204B、JESD204C,目前使用最多的是JESD204B,各个版本之间的差异如下所示。
表1 各个版本的功能
其中支持确定性延迟是JESD204B的特点,JESD204B链路的确定性延迟定义为串行数据从发送器(ADX或FPGA)的并行帧数据输入传播至接收器(DAC或接收端FPGA)并行帧数据输出所需的时间。
图7 链路延迟
JESD204包含3种工作模式,如下所示。其中子类0是JESD204A的工作模式,不支持确定性延迟。子类1通过sysref和sync实现确定性延迟,子类2通过sync实现确定性延迟。子类1的结构最为复杂,也是JESD204B使用最广泛的模式。
图8 子类的连接方式
子类1的框图如下所示,时钟芯片同时给发送端和接收端提供sysref和Device Clock,接收端和发送端通过sysref去产生与Device Clock同步的帧时钟和多帧时钟LMFC。在链路建立阶段接收端通过拉低SYNC信号,去同步多lane数据,具体细节在后文的JESD204B确定性延迟章节进行讲解。
图9 子类1的结构
上图的发送端可以是ADC或者FPGA,接收端可以是FPGA或者DAC,从而实现ADC或者DAC与FPGA的数据传输。不管是发送端还是接收端,主要包含Transport Layer、Scrambler、Link Layer、Physical Layer等几部分。
物理层包含了完成高速并/串转换的SDRDES 模块,时钟及时钟数据恢复模块(CDR),也规定了接口的物理电器特性如下表所示。
表2 接口的物理电器特性
Link Layer主要包括8B10B编解码、数据链路的建立(帧和通道对齐)、使用符号位链路监控。链路建立的过程如下所示,具体实现在后文与确定性延时一起讲解。
图10 链路建立
加扰(Scrambler) 用于去除数据相关性,例如各个帧同时发送相同的数据,从而减小造成的系统干扰和减小电磁兼容性问题。加扰多项式为X15+X14+1,对应框图如下所示。图片
图11 加扰多项式
传输层(Transport Layer)的功能是将AD/DA的采集到的数据映射到非扰码的八字结的过程。如下图是一个传输层,需要理解一些参数的含义。
L:每颗ADC或者DAC芯片的高速收发器数量。
M:每颗芯片包含ADC或DAC通道数量。
F:每个高速收发器的每个frame包含几个字节的数据。
S:每个frame周期内芯片的采样点个数。
CS:每个采样点含有多少bit控制位。
图12 传输层
上图表示该芯片包含8路(M=8)分辨率为11(N=11)的ADC,8路ADC的数据通过4路(L=4)高速收发器传输,每个采样点包含2位(CS=2)控制位。
ADC每个采样点的数据需要经过两个时钟才能输出,因此在计算高速收发器线速率时,ADC分辨率其实可以等效为16位。
假设ADC采样率为X,则单个时钟ADC的采样数据为X*M*16bit,然后需要经过8B10B编码,编码后的数据量为(X*M*16)/0.8bit = X*M*20bit,最后通过4路高速收发器输出,每路高速收发器的线速率为X*M*20/4 = X*M*5bps。
当采样率为100MHz时,每路收发器线速率为100M*8*5=4000Mbps。
ADS42JB49的传输层如下图所示,2路14位ADC通过4路高速收发器传输数据,通过上述方式计算每路高速收发器线速率为X*2*16/0.8/4=X*10bps。
图13 ADS42JB49的传输层
下文着重讲解JESD204B子类1的数据链路建立过程和确定性延时相关知识。