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