另外两篇博文:
目录
5.1.2 User data format for an independent lane
5.1.3 User data format for multiple lanes
5.1.6 Test modes (transport layer)
5 Data stream
5.1 Transport layer
5.1.1 Overview
传输层将转换样本映射到未扰码的字节。提供四种映射:
单转换器到单通道;
一个设备里的多转换器到单通道;
单转换器到多通道;
一个设备里的多转换器到多通道;
此外,还可将多个转换器设备的接口组合在一个多点链路上。但这不是一种特殊的映射情况。
一组或者部分样本组合成一帧的F个字节;很多情况下帧时钟和采样时钟相同,因为一帧只有一个样本S,但允许每帧有多个样本,即S是大于等于1的整数;每个样本以一组N '位元传送,N’=N+optional control bits + optional tail bits.在组合成帧可能还会再添加尾比特以满足字节的整数倍。
S: number of samples per converter per frame(指单个转换器的样本数)
F:number of octets per lane per frame cycle
这些参数的取值范围在Table20 in 8.3
5.1.2 User data format for an independent lane
5.1.2.1 User data mapping without oversampling
多转换器到单通道,对JESD204A兼容,可能尾比特位置不同
转换器的样本,左边是高位,右边是低位;有M个转换器,每个样本N比特
1样本线性组合,如图
2如果CF=0,每个样本后面加上控制比特,称为word;CF=1,每个样本就直接变成word,最后再加上一个单独的控制比特构成的word。由Word到nibble group:“NG”,看word的比特数是不是4的整数倍,不是那就填充,填充后有N’比特,称为nibble group:“NG”。当每个样本不包含控制比特,样本数等于word数,否则分为两种情况:
A控制比特跟在每个样本的最低位后面,一共有M个word
B控制比特作为单独的一个word,跟在最后一个样本后面,作为第M+1个word,每个样本顺序对应1位或更多比特控制位
CF是控制word的数量,CF=0或CF=1,每帧传输的words=M+CF
3每个样本可以有一位或者多位控制位
4要确保所有NG的比特数和是8的整数倍,即是整数个字节,不是的话就在最后面填充尾比特
5上一步最后的结果即每帧有F字节。
例子:2006版本的JESD204和新版本在尾比特上的不同
老版本只允许尾比特在一帧的末尾,新版本允许每个样本后都可以跟尾比特,但这样就多了一个字节,看下图:
不过可以把控制比特和尾比特都放在最后,这样节省带宽,也是7字节,如下图:
5.1.2.2 User data mapping with oversampling
Oversampling与 without oversampling的区别是原来每个转换器只有1个样本,现在有S个样本,word个数由原来的M+CF个变成MxS+CF个,其他都一样,看图一目了然:
5.1.3 User data format for multiple lanes
含有多个通道时,与单通道类似,就好像把原来的单通道直接分成多通道了,见下图:
1.参数HD:High Density,高密度标志。
HD=0,低密度标志,word不能被分到2个通道中,空余的填充尾比特
HD=1,高密度标志,word能被分到2个甚至更多通道中, 具体可看下面的实例
2.参数CF,CF=0,没有单独的控制word;CF>0时,CF的值应是L和M的公约数,然后L个通道被分成CF个组,每组L/CF个通道;每组包括M/CF个转换器的样本,并且每组尾部跟着控制word。如果控制word适合在一条通道上,则不允许它在通道边界上中断。
3.CS:每个样本后的控制比特个数.
对于Figure24来说,高密度的缺点是如果只需要传输转换器2的数据,那要用到0,1,6通道,而低密度Figure23,只要1通道就可以了。
5.1.4 Tail bits
满足下列之一:
a尾比特在每帧中都一样,但是不扰码的话就会产生频谱峰值
b通过伪随机序列产生(推荐)
5.1.5 Idle mode
指有些转换器是非活动的,会产生假的样本dummy samples,要求与尾比特一样;或者用传输层的测试序列代替。
5.1.6 Test modes (transport layer)
传输层测试模式:样本和控制位都被预先设定好的数据来替代
需要TX和RX端支持这种操作,TX发送,RX收到后验证数据;
分为短的测试模式,长的测试模式;一个测试序列有一帧或者多帧,然后一个测试序列重复多次。
长的测试模式的每帧都要满足一定的规律,
Frame0:每个样本的值=(converterID+1)mod2^N, converterID范围:0-M-1
Frame1:每个转换器内的每个样本的值=(sampleID+1)mod2^N, sampleID范围:0-S-1
Frame i≥2: 每个样本最高位置1,其他位置0
Frame 0≤i≤M·S-1:若支持控制位,第 floor(i/S) 个转换器的,第 mod(i,S)个样本的控制位置1(如图最右侧,control(0,0)是指第0个转换器的第0个样本的control bit=1);
Frame i≥max(M·S,2):控制位都置0;
若尾比特存在的话,所有尾比特都一样;
M=2,S=2,N=14时的例子如下图:
5.2 Scrambling
扰码可选,位于传输层和数据链路层之间,对每个通道分别扰码,不允许部分通道扰码、部分不扰码的混合模式。
扰码优点:避免频谱峰值,直流偏置,避免频率选择影响;
但是包括扰码在内的所有数据操作都会带来切换噪声;
扰码器多项式:
扰码是分帧进行,帧最高位先移出,图:
扰码器应为自同步型self-synchronous。串行实现和并行实现的方程如图29所示:
上述的扰码只对数据起作用,会绕过代码组同步序列CGS和通道初始化对齐序列ILA;
扰码器和解码器同步前需要接收2个字节的数据,之后解码器才能正确解码输出数据;为了避免开始2个字节的数据损失,另一种扰码方法可以选择,就是可以使能是否扰码,修改过后的图如下:
当扰码器的初始化数据与输入的数据一样时会造成重复输出repetitive output,还会造成频谱峰值和电磁干扰EMI;所以建议初始化的数据是高8位为1,低7位0。解码器不需要初始化,它是自同步self-synchronized。
5.3 Data Link Layer
5.3.1 8B/10B encoding
对发送前的数据进行编码,输入8b,输出10b,有很多优点,例如
建立接受同步,标识帧或者序列的开始和结束,在通道间建立对齐,检测单比特错误等
5.3.2 Transmission order
帧内容从左到右进行发送,即从MSB到LSB
5.3.3 Link operation
5.3.3.1 Code group synchronization(CGS)代码组同步
a.接收器通过同步接口发出同步请求
b.发射器发出/K/= /K28.5/符号流
c.接收器同步,然后等待至少连续4次的正确接收/K/符号
d.接收器根据7.1中概述的指导方案停用同步请求
后续步骤依赖于发送器设备的确定性延迟子类。
Subclass 0:
e.当检测到所有接收器都已停用其同步请求时,发射器将继续发射/K/符号,直到下一帧开始。
f.从下一帧开始,发射器发出初始通道对齐序列或编码的用户数据。
如下图:
Subclass 1 or 2:
e.当检测到所有接收器都已停用同步请求时,发射器继续发射/K/符号,直到下一个LMFC边界。(默认操作是使用下一个LMFC边界,但是设备可选择允许可编程的选项使用后一个LMFC边界)
f.在选择的LMFC边界后的第一帧上,发射机发射初始通道对齐序列
如下图:
5.3.3.2 SYNC~ signal combining
一条链路,在多通道情况下,所有通道的SYNC~信号可以组合起来,同时发给发送器,或者不组合,一个通道对应一个SYNC~。
多链路情况下,不强制,可以组合,或者不组合。
当组合时,只要一个接收机请求码组同步(CGS),所有发射机连将发送/K28.5/符号;
不组合时,那就各发各的。
下图左边是单链路的,右边是多链路的
SYNC~组合时:
SYNC~不组合时:
多链路情况,不使用确定性延时(JESD204A and subclass 0)必须使用SYNC~信号组合,来确保发送端ILA生成在所有链路上都是正确对齐的。
5.3.3.3 Initial frame synchronization
在码组同步过程中,发送端始终全帧发送/K28.5/符号;
在代码组同步之后,接收端假设第一个非/K28.5/符号标志着一帧的开始。如果发射机发射初始通道对齐序列ILA(见5.3.3.5),则第一非/K28.5/符号始终为/K28.0/。
接收机假设每帧有F字节。
5.3.3.4 Frame alignment monitoring and correction帧对齐检测和校正
1.Alignment characters对齐字符
帧对齐通过发射机在每帧的末尾添加对齐字符实现,接收机通过字符对帧进行重新同步。
(没看太懂)
2.Character replacement without scrambling非加扰模式下的字符替换
双方都支持通道同步:
当前帧的最后1字节,但不是多帧的最后1字节,若等于上一帧的最后1字节,接收机替换当前最后1字节,并将其编码为控制字符/F/=/K28.7/。但是,如果在前一帧中已经传输了对齐字符,则需要对原始的字节进行编码。
当多帧最后一帧中的最后1字节等于前一帧中的最后1字节时,发射机应替换当前的最后1字节,并将其编码为控制字符/ A /=/K28.3/,即使在前一帧中已经传输了一个控制字符。
当接收到/F/或/A/符号时,接收器应将其替换为在前一帧相同位置解码或使用的编码值。
至少一方不支持支持通道同步:
当当前帧中的最后1字节等于前一帧中的最后1字节时,发射机应将当前的最后1字节替换为/F/=/K28.7/。但是,如果/K28.7/已经在前一帧传输,则需要传输实际的字节。
接收方在接收到/K28.7/符号时,应将其替换为上一帧同一位置解码的数据字节的值
3.Character replacement with scrambling加扰模式下的字符替换
双方都支持通道同步:
当前帧的扰码后的最后1字节,但不是多帧的最后1字节等于0xFC,发射机应将其编码为控制字符/F/=/K28.7/
当多帧中最后一个扰码后的1字节等于0x7C时,发射器将其编码为控制字符/A/。
接收到/F/或/A/符号时,接收方应输入相应的数据字节组0xFC或0x7C到解扰码器。
至少一方不支持支持通道同步:
当当前帧中最后一个扰码字节为D28.7时,发射机将其替换为/F/=/K28.7/
接收到/K28.7/符号后,接收方应向解码器输入D28.7
NOTE:“帧或多帧中的最后1字节”是指一个通道上的,因此每个通道的字符替换函数是独立的。
4.Frame alignment correction in the RX接收机中的对齐校正
在接收端,对收到的帧进行对齐校正等,(没看太懂)
5.3.3.5 Initial lane synchronization初始化通道对齐
初始化通道对齐是在用户数据前进行。发射机都是在同一时间点发送通道对齐字符,但是由于通道延时,字符到达接收机时间不一样,每个通道收到对齐字符后将后续数据存储在缓冲区中,并向其他接收器指示一个标志(' ready '),指示缓冲区包含一个有效的对齐起点。当所有接收方都有了它们的“对齐接收”标志时,它们开始在同一时间点将接收到的数据传到后续的数据处理逻辑/函数,其中同步是基于公共信号(‘start’)的。
‘start’在6.1中有定义,该规范还允许在主接收机接收对准字符后的指定时间内进行此对准处理,而其他接收器如果在同一时间内没有在其自己的缓冲区中找到对准字符,则会发出错误信号。
初始化通道对齐通过初始化通道对齐序列ILA进行,紧跟随在代码组同步CGS后,并且ILA不能被扰码,ILA占用了4个ADC发送的多帧(Subclass1or2),或者更多的多帧(subclass0)
每个多帧的帧数K:1-32,ILA占用的多帧数:4-256,每个单帧内的字节数F,每个多帧内的字节数:17-1024。
初始通道对齐序列ILA的结构如图35所示。
/K/代码组同步CGS
/R/与/A/分别代表一个多帧的开始与结束
/R/向接收端表明多帧是ILA的一部分。
/A/标志多帧结束,用于通道同步和帧同步。
第二个多帧包含JESD204从发射机连接到接收机的链路配置信息
/Q/代表链路配置数据的开始,/C/代表链路配置数据
5.3.3.6 Lane alignment monitoring and correction通道对齐监测与校正
初始化帧和通道对齐后,通道切换到对齐监测模式。
当满足以下三个条件时,多通道环境中的每个接收器都可从高级别的应用层授权进行动态重新对齐:
已可靠地检测到错位,
找到了一种可靠的新对齐位置
可以根据对齐数据缓冲区中保持的数据的条件进行重新对齐。
重新对齐的授权是通过4.13中定义的控制接口授予接收方的。通道调整规则与帧调整规则类似(见5.3.3.4.4):
如果连续两个, 在同一位置而不是在假定的多帧末尾检测到有效的/A/符号,在两/A/符号之间不再接受/A/符号的情况下,接收方应当对新收到的位置/A/符号重新对齐。
如果最近的帧对齐是通道对齐丢失的最可能的原因,接收方将重新调整其通道帧到第一个已接收到的/A/符号at an unexpected position(看到5.3.3.4.4)。
5.3.3.7 Link re-initialization链路重新初始化
在某些错误条件下(见7.6.3),接收方可以通过同步请求来请求重新初始化链接。
发送方也可以请求重新初始化。(具体看原文)
5.3.3.8 Test modes
测试模式是在所有帧和通道上发送预定的8b/10b字符。JESD204系统通过外部控制接口进入测试模式,见4.9。链路层测试字符被指定为直接注入到8B/10B编码器。它们从不扰码。
Test sequences:发送一些特定的序列,接收机能够验证正确性。(具体看原文)