USB3.2-Physical Layer

USB3.2-Physical Layer

一、物理层架构

  物理层由接收端和发送端构成(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。
symbol map
  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;

三、Link Initialization and Training

四、Clock and Jitter

五、Transmitter Specifications

六、Receiver Specifications

七、Low Frequency Periodic Signaling (LFPS)

八、Dual-lane Requirements

                                                   BACK

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值