JESD204B 作为一种分层规范,在规范中共定义了四个层,分别为应用层,传输层,数据链路层和物理层。各层分别执行各自的对应的功能,最终通过四个层的联合,将数据高速无误的进行传输。
【JESD204系列】三、JESD204标准分层1. 简介
JESD204B与PCIE类似,其标准是一种分层规范,规范中的各层都有自己的功能要完成。如下图所示为JESD204B的分层框图。
下面就一一介绍各层完成的基本功能。
2. 分层简介
2.1 应用层(Application Layer)
应用层本身并不包含在协议标准之内,而是为了实现用户特殊配置,以及将原始数据映射成为规范格式之外的格式,而添加的一个层。对于需要以不同于N’(样本传输位数)的大小传输的数据,使用单独设计的应用层可以对其进行更加灵活且具有针对性的配置,将多个样本重新包装,从而降低通道速率,提高链路整体效率。值得注意的一点是,发送端和接收端的配置必须相同,才能进行正确的数据传输和接收。
2.2 传输层(Transport Layer)
传输层根据给定器件已定义的链路配置参数,决定如何包装来自ADC的数据,即LMFS参数配置,四个字母代表最主要的四个参数,收发两端协商好之后(ADC会将参数发给FPGA,双方会进行校验),就按规则进行组包和解包。 这些参数在初始通道对齐序列(ILAS)期间从ADC传输到FPGA。这些设置通过串行端口接口(SPI)配置,其设置ADC和FPGA上的寄存器值来定义链路配置参数。根据这些参数产生一个校验和并将其传输给接收器,以便接收器(FPGA)能够验证链路配置参数是否正确接收。通过链路传输的这些参数不是用于配置接收器,而是仅用于验证链路参数匹配。若检测到错误,FPGA将通过JESD204B规范的错误报告中定义的中断报告此错误。
数据在发送过程中首先要经过传输层,对于发送端来说,传输层要完成的任务是基于用户选择的链路参数,对转换器设备采样得到的原始数据进行打包组帧,从而映射成宽度为8bit 的特定格式数据,并根据链路参数中的相关参数,对数据进行控制位和尾位的添加,以满足映射后数据的格式要求。因此对接收端来说,传输层负责的主要功能就是对收到的数据进行对应的解帧处理,恢复成原始的数据。此外,根据协议规范,在传输层和数据链路层之间,还要有可选的加扰模块,按照特定算法对映射后的数据进行加扰。因此,相应的在接收端需要一个解扰模块,对发送端输出的数据流进行对应的解扰,使之恢复为未加扰的数据。用下图来大概说明一下传输层的作用,8个ADC通过一定的方式组合在4条链路中进行传输。
在传输层,一组样本或部分样本被分组成F个八位字节的帧。“帧”数据结构是指一组连续的八位字节(8b/10b 编码器的输出都是一个八位字节),其中每个八位字节的位置都以帧对齐信号作为参考。“多帧”数据结构是指一组连续的帧,其中每个多帧的位置都以多帧对齐信号作为参考。在许多应用中,帧时钟将具有与采样时钟相同的频率。JESD204 协议允许在每个帧周期内每个转换器传输多个采样,S 必须总是整数,这样可以最小化SERDES 电路和敏感模拟部件之间的串扰。每个采样作为一组N’比特发送,由N 个数据比特,可选控制比特和可选尾部比特组成。在帧的结尾处的附加尾比特是必需的,这样可以在每个帧周期中填充每个通道使比特总数为整数个八位字节。
数据映射相关链路配置参数的意义与取值范围如表1 所示。
参数名 | 含义 | 取值范围 |
---|---|---|
M | 每个设备中的转换器数 | 1-256 |
L | 每个转换器链路的通道数 | 1-32 |
F | 每个帧中的字节数 | 1-256 |
S | 每帧中每个转换器的采样点数 | 1-32 |
N | 转换器分辨 | 1-32 |
N’ | 每个采样的总比特数 | 1-32 |
K | 每个多帧中帧的数量 | 1-32 |
CF | 每个链路每个帧周期的控制字数量 | 0-32 |
CS | 每个采样的控制比特数 | 0-3 |
HD | 高数据密度模式使能 | 0-1 |
2.3 数据链路层(Data Link Layer)
数据链路层主要是完成链路建立和数据编码,该层的主要功能即为建立传输链路,对数据进行传输。数据链路层层接受并行成帧数据(包含ADC样本、控制位和结束位),并输出8B/10B字,后者在物理层中进行串行化且可以加扰。传输过程包含以下几个环节,即代码组同步(CGS),初始通道对齐序列(ILAS),用户数据传输(DATA),每阶段具体功能下面将进行具体说明。在本层中还包含8B/10B 编码模块,功能是将打包形成的8bit 数据采取8B/10B 编码的处理,使传输保持直流平衡,从而使CDR(Clock Data Recovery)电路的设计更加简单。并且通过使用8B/10B 编码方式的几种控制字符,如字符/K/、/A/等,实现对多通道的同步对齐和检测。因此,接收端需要对应的8B/10B 解码模块,对发送端生成的10bit 编码数据恢复为8bit 数据,且通过其中包含的控制字符,实现检错和对齐等功能。
数据链路层通过链路建立过程同步JESD204B链路。链路建立包括三个不同阶段:代码组同步(CGS)、初始通道同步(ILS)、传输用户数据。
1.代码组同步(CGS)
根据JESD204B 协议规定,代码组同步是链路建立的第一个步骤,并且不进行加扰,代码组同步主要有以下几个步骤,值得注意的是,以下步骤对于单发射端-单接收端和多发射端-多接收端两种情况均适用。首先,接收端通过拉低SYNC 信号发起同步请求,进入代码组同步(Code Group Synchronization,CGS)阶段。发射端开始发送连续的/K/=/K28.5/字符,各接收器(FPGA)必须利用时钟和数据恢复(CDR)技术,在ADC传来的输入数据流中找到K28.5字符。一旦在所有链路通道上检测到某一数量的连续K28.5字符,接收器模块就会解除置位送至发送器模块的SYNC~ 信号。在发送端捕获到SYNC~ 的变化后,JESD204A和JESD204B的处理会略有不同。在JESD204A中,发送模块捕捉SYNC~ 信号的变化,经过固定数量的帧时钟之后,ILAS就会启动。在JESD204B中,发送模块捕捉SYNC~ 信号的变化,并在下一个本地多帧时钟(LMFC)边界上启动ILAS。
2.初始通道对齐序列(ILAS)
在开始传输用户数据之前,要先对通道进行初始化对齐,方法是通过发送ILAS(Initial Lane Alignment Sequence)。ILAS的主要作用是对齐链路的所有通道,验证链路参数,以及确定帧和多帧边界在接收器的输入数据流中的位置。 由于ILAS 中包含了链路配置信息,接受端需要以此信息对链路进行配置,包括是否使用可选的加扰功能。因此JESD204B 协议规定,ILAS 不能进行加扰。
ILAS由4个或更多多帧组成。多帧以/R/字符开始,以/A/字符结束。第二个多帧包含/R/和/Q/字符,随后是链路参数。/Q/字符表示之后的数据是链路配置参数。如果接收器需要,ILAS可以添加其它多帧。最后一个ILAS多帧的最后一个/A/字符出现后,用户数据开始。
3.用户数据
在这一阶段,用户数据根据发送器(ADC)中定义并转发到接收器(FPGA)的链路参数,以流形式从发送器传输到接收器。达到用户数据阶段后,如果需要,通过数据链路中的字符替换可以监视并纠正帧和通道对齐。
如下图所示,为整个链路层数据链路建立的图示。实际上链路层除了要理解协议之外,还有理解对齐过程中各信号的时序关系,包括SYNC~ 、 LMFC,后面有时间再专门梳理指示信号和同步时钟的关系。
字符简写 | 字符 | 编码前数值 | RD=-1时编码结果 | RD=+1时编码结果 | 功能说明 |
---|---|---|---|---|---|
/R/ | /K28.0/ | 000_11100 | 001111_0100 | 110000_1011 | 多帧开始 |
/A/ | /K28.3/ | 011_11100 | 001111_0011 | 110000_1100 | 通道对齐 |
/Q/ | /K28.4/ | 100_11100 | 001111_0010 | 110000_1101 | 链路配置数据开始 |
/K/ | /K28.5/ | 101_11100 | 001111_1010 | 110000_0101 | 组同步 |
/F/ | /K28.7/ | 111_11100 | 001111_1000 | 110000_0111 | 帧同步 |
由于不同通道之间可能存在的延迟,这些特殊的通道控制字符可能无法同时传输到接收端,因此使用字符/A/进行同步。每个接收端在收到数据时,将数据存储在缓存中,并且使用一个标志位(READY)来告知其它接收器,自己当前已经接收到有效信息。当所有接收器的标志位都有效时,它们就将收到的数据同时送到下一步的逻辑功能中去,从而实现不同通道间的数据对齐。
2.4 物理层(Physical Layer)
物理层由串化/解串器,CML 驱动器,接收机以及CDR 电路组成。在发送端,通过串化器将多位的并行数据转化为串行数据,按照通道速率发送至接收端。在接收端通过解串器,将收到的串行数据转换为并行数据。由于数据传输速率非常高,这些模块常常采用定制单元设计。
JESD204和JESD204A均支持最高3.125 Gbps的速度。JESD204B规范支持三种可能的速度等级。速度等级1支持最高3.125 Gbps的速度,基于OIF-SxI5-0.10规范。速度等级2支持最高6.375 Gbps的速度,基于CEI-6G-SR规范。速度等级3支持最高12.5 Gbps的速度,基于CEI-11G-SR规范。表2概要显示了三种速度等级对应的一些物理层规格。JESD204的物理层实际上就是SerDes结构。在物理层主要是要关注电气特性,通过眼图来测量信号完整性。
参数 | OIF-Sx15-01.0 | CEI-6G-SR | CEI-6G-SR |
---|---|---|---|
线路速率(Gbps) | ≤3.125 | ≤6.375 | ≤12.5 |
输出差分电压(mVppd) | 500 (最小值) 1000 (最大值) | 400 (最小值) 750 (最大值) | 360 (最小值) 770 (最大值) |
输出上升/下降时间(ps) | >50 | >30 | >24 |
输出总抖动(pp UI) | 0.35 | 0.30 | 0.30 |
3. 总结
3.1 数据帧输出路径
为了说明数据从转换器中取出,直到被经过8B/10B 编码生成10bit 数据之间的一系列过程,下面以14 位转换器的采样数据为例进行说明。下图为14bit 数据传输的输出路径。
对于14 位的数据,根据JESD204B 协议要求,处理后的数据位数应为8 的倍数,因此将被14bit 的数据组合成两个8bit 的字节。将原始数据按顺序排列后,为了满足格式位数要求,还添加了两个尾位,从而实现两个8bit 的数据格式。其中尾位并没有实际的意义,可以全为0 或者使用伪随机数列,或者根据应用情景,使用控制位来代替尾位。然后是一个可选择的加扰过程,基于多项式1 + 𝑥14 + 𝑥15对数据进行加扰,避免频谱尖峰现象。一般根据实际应用情况决定是否使用对数据进行加扰。然后这两个8bit 字节经过8B/10B 编码模块,输出两个宽度为10bit 的编码后数据。然后经过物理层的处理,输出一连串的串行数据,此时发送端的功能完成。之后在接收端进行发送端的逆过程,对数据进行还原。
3.2 发送端和接收端的逻辑功能
对于发送端来说,首先在根据SYSREF 信号产生帧和多帧的信号。在JESD204B 规范中,帧的长度是以8bit 字节为单位的,一个单帧包含的8bit 字节数由链路配置参数中的F决定。大多数情况下为了简化设计,多帧的字节数一般都设计为4 的整数倍。发送端控制模块在检测到SYNC 信号有效时,进入代码组同步阶段,开始发送一连串的字符/K/=8’hBC。当SYNC 无效时,在下一个本地多帧时钟的上升沿到来时,进入ILAS 阶段,发送4 个初始化多帧。发送结束后,进入用户数据阶段,开始发送用户数据,并根据链路配置决定是否进行加扰及字符替换,最后将数据通过物理层的接口进行输出。发送端的逻辑功能框图如下图所示。
文章来源:https://www.toymoban.com/news/detail-480941.html
对于接收端来说,首先要将串行接收接口接收到的数据,还原成10bit 的并行数据,然后经过8B/10B 解码模块进行解码。如果在解码过程中发现错误,则通过控制模块再次使能SYNC~信号,来实现报错或者重新发起同步。在经过8B/10B 解码后,要通过字符替换模块,将数据中被替换过的字符再次进行替换,还原出原本数据。数据在发送时若进行了加扰处理,那么就要使用接收端的解扰模块进行解扰。和发送端一样,接收端的解扰模块也是可选的。经过上述一系列的操作之后,接受数据将被还原成最初的帧格式。最后根据发送端的组帧格式,进行相对应的解帧,从而还原出原始数据。接收端的逻辑功能框图如下图所示。
文章来源地址https://www.toymoban.com/news/detail-480941.html
到了这里,关于【JESD204系列】三、JESD204B标准分层的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!