USB3.2-Physical Layer
文章目录
- USB3.2-Physical Layer
- 一、物理层架构
- 二、Symbol Encoding
- 三、[Link Initialization and Training](https://blog.csdn.net/qq_40411444/article/details/131471376?csdn_share_tail=%7B%22type%22:%22blog%22,%22rType%22:%22article%22,%22rId%22:%22131471376%22,%22source%22:%22qq_40411444%22%7D)
- 四、Clock and Jitter
- 五、Transmitter Specifications
- 六、Receiver Specifications
- 七、Low Frequency Periodic Signaling (LFPS)
- 八、Dual-lane Requirements
一、物理层架构
物理层由接收端和发送端构成(gen1和gen2接收和发送结构不同,见下图)
发送端由四个部分组成:scrambler、edcode、并转出、差分驱动电路;
接收端主要由差分接收电路、时钟回复、DRC、串转并、Elastic Buffer、decode、descramble组成。
二、Symbol Encoding
gen1 和gen2使用不同的编码方式,gen1使用8b/10b编码,gen2使用128b/132b编码方式。
1.GEN1
ENCODE
一个8bit字符ABCDEFGH,低5bitsABCDE map abcdei,高3bits map fghj,得到一个10bit的新数据abcdeifghj。
DECODE Rule
1、发送器在发送第一个差分数据时,可以选择任何一种不均等特性(disparity);(8b/10b编码特性,编码后的数据可以是4bit 0+6bit 1、5bit 0+5bit 1、或者6bit 0+4bit 1中的一种)
2、接收端的不均等性根据接收到的第一个symble特性决定(symble lock);
3、symble lock在差分传输中因为突发错误而丢失,又重新获得,disparity可以重新初始化;
4、在初始化disparity后接收到的symble,都遵循当前disparity方式;
5、接收端disparity错误不会重新训练链路;
6、检测到disparity error或者decode error,物理层应该通知链路层(Link Layer);
Scramble
scramble通过一个16bit反馈位移寄存器(LFSR)的最高位15bit与Date(从LSB到MSB)进行异或。(scramble可以通过其他机制disable
)
scram rule:
1、LFSR位移多项式 :G(x) =
X
16
X^{16}
X16 +
X
5
X^5
X5 +
X
4
X^4
X4 +
X
3
X^3
X3 + 1;
2、除了SKP,每个symble ,LFSR位移8次(每个bit位移一次);
3、所有D-code,除了在训练序列内的,都应该进行加扰;
4、K-code不加扰;
5、LFSR初始值16’hFFFF;发送端在COM离开LFSR时复位,接收端在COM进入LFSR时复位;同样适用于回环模式BRST序列;
DECODE Error
接收到检测到不符合8b/10b编码规则的值,则通过替换K28.4来通知链路层。
2.GEN2
gen2 link使用128b/132b编码规则,传输速度为10G。
物理层编码以block为单位,每个block由4bit block header和128bit data构成(SKP列外,4bit header+192bit data),data以byte为单位。header分为控制(4’b1100)和数据(4’b0011),header允许有单bit error;block结构如下图。(从数据结构看,就是在data前加了个类似于PID的东西,与8b/10b编码方式不一样,甚至谈不上是编码,就是两组数据组合在一起)
以下Ordered sets属于控制符:
TS1、TS2、TSEQ、SYNC、SKP、SDS;
Scramble
gen2与gen1 scramble方式类似,都是使用一个LFSR寄存器与data(每个byte从低位到高位)异或;gen2使用的16bit位宽LFSR寄存器,而gen2使用的32bit位宽LFSR寄存器。
gen2 scramble有三种工作方式:
mode1、LFSR寄存器移位,同时进行异或操作;
mode2、LFSR寄存器移位,但不进行异或操作;
mode3、LFSR寄存器既不移位,也不进行异或操作;
Scramble Rules
1、4bit header遵循mode3;
2、TS1、TS2、TSEQ:
a、symbol0 遵循mode1;
b、symbol14和symbol15,如果需要DC平衡 遵循mode1,否则遵循mode0;
c、symble1~13加扰;
3、SKP遵循mode3;
4、SDS遵循mode2;(既然不需要异或,为什么还需要LFSR寄存器???)
5、SYNC不加扰。发送端发送完最后一个symbol、接收端接收到最后一个symbol,重置LFSR寄存器 32’h001D_BFBC;
6、对于控制block,接收端根据symbol0来决定是否移位LFSR。如果symbol0是SKP或者SKPEND则不移位,否则移位LFSR寄存器;
7、针对16个symbol的data block,遵循mode1;
8、每16348个TSEQ需要个SYNC来复位LFSR;
9、symbol加扰从低位到高位; 10、LFSR多项式:G(x) =
X
23
X^{23}
X23 +
X
21
X^{21}
X21 +
X
16
X^{16}
X16 +
X
8
X^8
X8 +
X
5
X^5
X5+
X
2
X^2
X2 + 1;
DECODE Error
前面提到了header允许有单bit error,但data和gen1不同,没有list可以参考,不能判断出data出错。
1、header 单 bit error,需要纠正同时向链路层报告;
2、header 双 bit error向链路层报告error;