基于 JESD204B 的采集与数据接收电路设计
本章将围绕基于 JESD204B 高速数据传输接口的双通道高速数据采集实现展
开。首先,简介 JESD204B 协议、接口结构。然后,研究 JESD204B 链路建立与同
步的过程。其次,研究基于 JESD204B 子类 1 的多器件同步方案。最后,将完成
双通道同步采集与数据接收设计,包括时钟、采集及数据接收设计。
3.1 JESD204B 协议概述
为应对高采样率、高分辨率数据转换器数据吞吐率提高的状况, JEDEC 协会
制定了一种可用于数据转换器与逻辑器件之间的高速串行通信协议—— JESD204 ,
并不断更新、修订该协议。其中 JESD204 系列协议的第二次修订版—— JESD204B
被各大知名器件厂商(如 ADI 、 TI )广泛应用于高速数据转换器。
相较于之前的两个版本, JESD204B 首先提高了数据传输速率,单通道最高传
输速率为 12.5Gbps ;其次链路收发两端不再采用同一时钟(帧时钟),而是采用
设备时钟,即转换器的采样时钟,逻辑器件的参考时钟,通常这两个时钟的频率
不同;最后引入确定性延时,通过在各链路上实现可重复、可编程延时解决多链
路、多通道之间数据不同步的问题。根据是否支持确定性延时及用于实现确定性
延时的时钟种类, JESD204B 可分为子类 0 、子类 1 及子类 2 。其中只有子类 1 及
子类 2 支持确定性延迟。 JESD204B 协议的传输示意如图 3-1 所示。
3.2 JESD204B 接口结构
JESD204B 接口由发送端(模数转换器或逻辑设备)接口及接收端(逻辑设备
或数模转换器)接口两部分组成,无论是发送端还是接收端其结构组成一致,都
包括应用层、传输层、数据链路层及物理层 4 个部分。在 JESD204B 协议中并未
定义应用层。但是,常把用于用户设置 JESD204B 链路参数的应用接口称为应用
层。只有发送端与接收端的链路参数一致才能确保 JESD204B 链路正确工作。图
3-2 是 JESD204B 接口结构框图,发送端与接收端之间对应层级在功能上互为逆过
程。
发送端一侧的传输层根据链路参数将数据生成模块的数据映射为字节、帧、
多帧及通道形式 [23] ,链路参数有 L 、 M 、 F 、 S 、 CS 、 N 、 N’ ,其中 L 、 N’ 、 M 、 F
同 2.3.1 小节及 2.3.2 小节表示的意义相同, S 则表示每个帧时钟每个转换器有多少
个采样点, CS 则表示每个转换样本包含多少个控制位, N 表示样点分辨率。接收
端侧的传输层则需要将接收的打包数据按照链路参数及映射方式恢复样点。
链路层负责建立 JESD204B 链路,实现链路同步,主要功能有 8b/10b 编 / 解码,
链路同步、建立及监测。这里主要介绍 8b/10b 编 / 解码,链路同步、建立及监测将
在后面小节介绍。 8b/10b 编码方式能够为交流耦合的串行解串链路提供直流平衡,
避免传输数据出现连续 6 位为 0 或为 1 的情况。故 8b/10b 编码方式能够在数据传
输过程中产生足够数量的边沿跳变,使接收端能可靠地恢复数据时钟。 8b/10b 还
能提供一定的错误检测,当接收端所接收的 10 位字符并不位于 8b/10b 解码器查找
表中时,说明字符中出现数据位错误。
发送端物理层将 8b/10b 编码后的数据串行化并按照通道数据传输速率发送,
接收端物理层则将接收的串行数据并行化并由 8b/10b 解码字节数据。 JESD204B
物理层主要由电流模式逻辑( CML )电平驱动器、预加重器(均衡器)及串行器
(接收端为解串器)构成。发送端采用预加重器补偿信道上由 PCB 材料及信号传
输距离带来的损耗,接收端则采用均衡器校准传输通道的低通响应。接收端的组
成部分还包括时钟检测恢复模块,该模块通过数据传输通道的串行数据流解析出
数据时钟,用于串行数据并行化。
发送端的加扰是一种可选功能,位于传输层及链路层之间。加扰功能对传输
层的 8bits 数据进行加扰,用以消除传输数据中可能存在的频谱尖峰。当发送端选
择使用加扰功能时,接收端则需要对 8b/10b 解码数据进行解扰 [23] 。
3.3 JESD204B 链路的建立与同步
由前一小节 JESD204B 接口结构可知, JESD204B 链路的建立主要由数据链路
层完成。在正式传输采样数据之前,首先需要经历代码组同步( CGS )阶段,然
后是初始化通道同步(
ILS )阶段 [24] 。初始化帧同步(
IFS )的完成包含在 CGS 及
ILS 阶段中。 JESD204B 各子类链路建立与同步的区别在于代码组同步完成之后以
何种时钟边沿为基准开启初始化通道同步,子类 0 采用帧时钟,子类 1 、 2 采用多
帧时钟。图 3-3 是 JESD204B 子类 1 、 2 链路同步过程示意。
链路同步第一阶段——代码组同步,主要用于检测串行数据流中的关键字符
边界,同步数据流中的字符边界与接收端字节时钟。接收端通过拉低 SYNC 信号
表示同步请求,发送端则通过发送 /K28.5/ (即 /K/ 字符,其十六进制数为 bc )字符
流表示检测到同步信号,接收端将接收并同步数据流。当接收端接收到至少 4 个
连续正确的 /K28.5/ 字符时,接收端将通过拉高 SYNC 信号表示取消同步请求。虽
然 SYNC 拉高,但是发送端仍会发送 /K28.5/ 字符直到发送端的下一个 LMFC 边界
到来时刻,此时代码组同步完成。对于 JESD204B 子类 1 ,在开始代码组同步之前
需要使用 SYSREF 信号指定各设备的帧时钟及多帧时钟边界。
链路同步第二阶段——初始化通道同步,主要用于检测串行数据流的帧边界
及多帧边界,并验证链路参数是否与用户设置一致。初始化通道同步由初始化通
道对齐序列(ILAS)完成,初始化通道对齐序列由多帧构成,根据 JESD204B 不
同子类的工作模式,多帧个数不同, JESD204B 子类 0 可自定义多帧个数,
JESD204B
子类 1 、 2 多帧个数则为 4 个。以子类 1 、 2 为例,初始化通道对齐序列的每个多
帧都以帧开始字符 /K28.0/ (即 /R/ 字符,其十六进制数为 1c )开始,链路同步字符
/K28.3/ (即 /A/ 字符,其十六进制为 7c )结束,特别的,第二个多帧会在开始字符
后跟上一个链路控制数据开始字符 /K28.4/ (即 /Q/ 字符,其十六进制为 9c ),随后
是链路参数具体值(字符 C ),初始化通道对齐序列中未填充位置便使用斜坡数据
(字符 D )进行填充,图 3-4 是初始化通道对齐序列示意。
初始化帧同步存在于 JESD204B 链路建立的各个阶段。代码组同步阶段,发
送端通过发送 /K28.5/ 字符完成帧标识;初始化通道同步阶段,接收端将接收到的
第一个非 /K28.5/ 字符作为一个新帧开始,即图 3-4 中的帧开始字符 /R/ ;接收端还
将根据链路参数 F 估计新帧开始位置。用户数据传输过程中可能会出现帧对齐错
误,为此通过对齐字符 /K28.7/ (即 /F/ 字符,其十六进制为 fc )和 /K28.3/ 字符插入
或替换特定帧,并在接收端验证对齐字符位置方式实现帧对齐监测和纠正。
3.4 基于 JESD204B 的多器件同步
对于多通道采集系统来说,同步指的是多个 ADC 器件同步采样并且采样数据
同步传输,通道之间采样数据的相位差保持稳定。无论是采用 LVDS 并行传输接
口的多 ADC 采集系统,还是基于 JESD204 高速串行接口协议的多 ADC 采集系统
首先都需要保证器件之间的采样时钟相位确定,然后保证采样数据同步传输。基
于 JESD204B 的多器件采集系统为实现数据同步传输,不仅同 LVDS 并行传输接
口一样采取数据走线匹配方式,而且还引入了两种同步方法:一种是时间戳,一
种是确定性延迟。在实际应用中,最常采用的是第二种方式,即通过实现确定性
延迟完成多器件同步 [25-26] 。
3.4.1 确定性延迟原理
通常要求基于 JESD204B 的多通道采集系统具有数据延迟在不同上电周期或
重新建立链路时可重复的特性。 JESD204B 标准将确定性延迟定义为样本以帧结构
进入串行发送器与样本以帧结构从串行接收器输出的时间差 [27] ,如图 3-5 所示。
确定性延迟包括固定延迟和可变延迟两部分。可变延迟由 JESD204B 协议定
义的多个用于数据传输及处理的时钟在每次上电或重新建立链路时相位关系不确
定引起。 JESD204B 子类 0 虽然不需要借助外部电路就可以实现单链路多通道对齐,
但是其在不同上电周期或重新建立链路时链路延迟无法固定,不适用于多链路需
要同步的情况。 JESD204B 子类 1 、子类 2 则通过确定性延迟实现多链路同步,发
送端需使所有通道在某一“确定时刻”同时发送初始化通道对齐序列,接收端各
通道对应的接收缓冲器需在某一“确定时刻”同时释放所有通道数据。无论是发
送端的“确定时刻”还是接收端的“确定时刻”计数单位都是帧时钟。发送端的
“确定时刻”可以是 SYNC 拉高后的第一个多帧边沿,也可以编程为 SYNC 信号
上升之后的几个多帧边沿。接收端的“确定时刻”指多帧边界后的几个可编程帧
周期( RBD , RX Buffer Delay ),可编程帧周期取值范围为 1 至 K 。为确保接收缓
冲器在释放所有通道的数据之前,各通道的数据已全部到达,所有通道中最大延
迟必须小于本地多帧周期, RBD 值与帧周期乘积必须大于数据通道中可能的最大
延迟。
3.4.2 SYSREF 设计
上述确定性延迟要求提及的初始化通道对齐序列发送和接收缓冲器释放时刻
与发送端和接收端中的帧时钟、多帧时钟有关。发送端、接收端的帧时钟、多帧
时钟相位对齐是实现确定性延迟的关键。
JESD204B 子类 1 采用 SYSREF 对齐系统
中各器件之间的帧时钟、多帧时钟相位,如图 3-6 所示 [28] 。
随着转换器件采样率的提升, SYSREF 相对于器件时钟的建立及保持定时变得
极具挑战,尤其采样率达千兆的器件。本文采用的 ADC12DJ3200 采样率高达
6.4GSPS ,为应对 SYSREF 的建立保持窗口减小的情况,该款 ADC 通过在单通道
模式下使用双边沿采样将输入时钟(器件时钟)频率减小一半的方式达到将
SYSREF 建立保持窗口增加一倍的效果。除了降低输入时钟频率的方式以外,该
ADC 还提供了 SYSREF 窗口以及 SYSREF 自动校准两种功能。通过 SYSREF 窗口
检测 SYSREF 位置(相对于器件时钟)和 SYSREF 采样位置选择辅助用户设计以
满足各种情况下的建立保持时间需求。 SYSREF 自动校准相较于 SYSREF 窗口功
能更易操作,使用孔径时间调整模块基于 SYSREF 相位移动 ADC 采样序列,而不
是基于 ADC 采样序列调整 SYSREF 相位。
SYSREF 窗口功能需按照一定过程实现 [29] 。首先,需给 ADC 芯片提供采样时
钟及 SYSREF 。 SYSREF 捕捉模块使用 SYSREF 窗口确定 SYSREF 相对于设备时
钟的位置,并将该位置值存储在 SYSREF 位置寄存器( SYSREF_POS )中。
SYSREF_POS 寄存器的每一位都代表一个潜在的 SYSREF 采样位置。当
SYSREF_POS 中的某一位被置位,那么相应的 SYSREF 采样位置有潜在的建立或
保持违例。然后,根据 SYSREF_POS 寄存器 值 在 SYSREF 选择寄存器
(SYSREF_SEL)中设置与 SYSREF_POS 相对应的有效采样位置。该采样位置通
常位于两个建立和保持时间都满足的采样位置的中间。 SYREF_SEL 的取值范围为
为 0 至 15 ,即 SYSREF 窗口功能仅支持将 SYSREF 设置在前 16 个采样位置。根
据 SYSREF_POS 数值选择 SYSREF_SEL 位置的示例如表 3-1 ,加粗部分表示可以
选择的位置。 SYSREF_POS 采样位置步进可以通过 SYSREF 放大寄存器
( SYSREF_ZOOM )调节。当 SYSREF_POS 的 0 至 23 位都为 1 时需要将
SYSREF_ZOOM 设置为 0 ,其他时候都将该值设置为 1 。
根据上文,为本文采集模块选择满足建立和保持时间的最佳 SYSREF 位置。
将 SYSREF_ZOOM 设置为 1 ,关闭 SYSREF 自动校正功能,然后读取 SYSREF_POS
值。
由表 3-2 中 ADC1 与 ADC2 的 SYSREF_POS 值可知,
ADC1 的 SYSREF_SEL
设置为 13 可以满足建立保持时间,而 ADC2 的 SYSREF_SEL 设置为 12 或 13 都
能够满足建立保持时间,故可将两个 ADC 的 SYSREF_SEL 的值都设置为 13 。
3.4.3 基于确定性延迟的多器件同步
JESD204B 子类 1 实现链路确定性延迟的过程如图 3-7 所示 [30] 。首先 SYSREF
指定发送端及接收端的本地多帧时钟边界,发送端在 SYNC 信号拉低后开启链路
建立、同步过程,接收端各通道的接收缓冲器缓存有效数据,在接收端所有通道
都接收到有效数据之后,才在其下一个本地多帧边界同时释放所有缓存数据。此
时所有数据通道的数据延迟恰好为一个本地多帧周期,即 RBD 取 K 值,且延迟是
确定、可重复的。当然缓存在接收缓冲器的各通道有效数据也可以在下一个本地
多帧边界之前释放,即 RBD 的值小于 K ,其中最小 RBD 取值对应的延迟称为最
小确定性延迟。
JESD204B IP 核将 0x030 寄存器( RBD )定义为接收端缓冲器延迟,
并为每一个数据通道定义了缓冲调整寄存器( Buffer Adjust )用于指示接收缓冲器
的填充水平。在所有数据通道中找出缓冲调整寄存器最小值,并将该值赋值给 RBD
便可实现最小确定性延迟。
上述 RBD 值调整基于数据通道最大延迟满足小于一个多帧的要求,实际数据
通道的最大延迟可能并不满足此要求。不仅如此,链路还可能出现两个通道的有
效数据分别落在两个相邻本地多帧内的情况。
信迈提供高速数据采集方案。