USB3.1协议学习笔记

1

USB3.0速率为5Gbps。
USB3.1速率提升至10Gbps。时钟频率提升了1倍。原5Gbps仍然支持,命名为Gen1,10Gbps命名为Gen2.
USB3.1相对USB3.0变化不大,主要是性能提升。

2

  • LFPS : Low frequency periodic signal.
  • LBPM : LFPS Based PWM Messaging
  • LMP : Link Management Packet
  • TP : Transaction Packet
  • ITP : Isochronous Timestamp Packet
  • DP : Data Packet
  • lane : The connection between a transmitter (Tx) of one port to the receiver (Rx) in another port.

3

  • USB3.1采用“dual-bus”的方式保持向前兼容USB2.0。
  • USB2.0信号走D+/D- , USB3.1信号走Tx+/Tx-和 Rx+/Rx- , Vbus、Gnd不变。
  • USB2.0采用轮训和广播的方式处理数据传输。
  • USB3.1采用异步通知处理数据传输,数据包有精确的路径。
  • USB3.1支持多个功耗级别:idle、sleep、suspend,对应U1、U2、U3。 USB2.0只支持sleep(LPM)、suspend两个级别。
  • Gen1 采用8b/10b编码。 Gen2采用128b/132b编码。
  • 使用LFPS进行速率协商

4 Data flow model

与USB2.0的一些对比

  • endpoint, pipe, transfer type与USB2.0相同。max packet size, endpoint descriptor, device address, endpoint number, direction 这些概念与USB2.0相同。
  • USB2.0的传输分三部分:Token、Data、handshake。USB3.1与USB2.0不同,不再需要单独的Token包,对于OUT传输Token合并到Data中,对于IN传输,Token合并到handshake,上一个包的handshake包含了下一个包的Token。
  • USB3.1 非同步端点忙时回复一个NRDY,当端点可用时发送一个ERDY通知host。而USB2.0时通过host发送ping查询device端点的。
  • USB3.1支持burst。
  • USB2.0使用轮询模型。usb3.1使用异步通知模型。
  • USB2.0固定1ms/125us发送SOF/uSOF。USB3.1 125us发送ITP。
  • USB3.1支持stram。
  • USB2.0是广播方式,USB2.0的packet发送到所有下行端口。USB3.1不广播,packet直接发送到host或device,但ITP是广播的。
  • USB3.1的iso设备在SI之间可自主进入低功耗状态,当需要唤醒时host发送ping。USB2.0的低功耗状态(suspend、LPM)之能由host发起。
  • USB3.1 device设备科通知host自己进出低功耗状态的延时时间(使用LTM包)。 host可据此决定是否进入低功耗状态。 不过貌似USB2.0的LPM也可以。

transaction的区别

在收到一个握手前可以发送多个数据包。
OUT: 不在需要token,而是包含在Data包的header中。
IN: handshake包含了下一个数据包的请求(包含下一个数据包的Token)。device要么回复数据,要么回复NRDY或者STALL。

packets

  • LMP: Link Management Packets
  • TP: Transfer Packets
  • DP: Data Packets
  • ITP: 相当于SOF

burst

端点在comp描述符中声明burst值。 这个值支出在接受handshake前可以接受多少个data包。
IN: host发送ACK,在ACK中包含可接受的burst
OUT: host控制burst包数量。

传输类型

增加了一个Device Notifications

  • control transfer
  • bulk transfer
  • intr transfer
  • isoc transfer
  • Device Notification。 与endpoint、pipe无关,是Device直接发给host的。

6 physical layer

编码

  • USB2.0采用NRZI编码。
  • USB3.1 Gen1、Gen2采用不同编码方式。Gen1采用8b/10b编码 ,这是一种标准编码,ANSI X3. 230-1994。Gen2采用128/132b,这种编码类似于pcie的128b/130b编码。

符号

符号就是一些固定形状的波形,各自有其特殊的用途。

  • TS1: training sequence 1
  • TS2: training sequence 2
  • TSEQ: ?
  • SYNC: sync
  • SKP: skip
  • SDS: start data stream
  • SKPEND: skip end
  • SDP: start data packet
  • EDB: end bad
  • SUB: ?
  • COM: comma
  • SHP: start packet header
  • DPH: start data packet header
  • END: end
  • SLC: start link command
  • EPF: end packet framing
  • SDS: start data stream

Link initialization and training

使用training sequences进行初始化和training。
training sequences有一些“Ordered sets”组成。
Traning sequences有TS1、TS2、TSEQ。

lane polarity inversion : PHY在TSEQ中检测polarity inversion并翻转接受的bits。

Compliance Pattern : CP0, CP1, … CP12

LFPS

Low Frequence Period Signal
用于边带通信。
应用场景:
low power link state
under training
warm reset
U3 wakeup
详细类型:
Polling.LFPS
Ping.LFPS
U1 Exit
U2 Exit
Loopback Exit
U3 wakeup

固定频率的信号,持续tBurst,按tRepeat周期出现。 tBurst之间报纸Idle状态。

Superspeedplus Capability Declaration (SCD) :
在polling.LFPS时发送特殊的“pattern”,标识自己有superspeedplus能力。

LBPM : LFPS Based PWM Signaling。 superspeedplus使用,superspeed不使用。

7 Link Layer

link layer
packets: host <—> device
link commands: link <—> link

Packets

LMP: Link Management Packets
TP: Transfer Packets
ITP: Isochronous Timespamp Packets
DP: Data Packets (DP由DPH和DPP两部分组成)

packets分两类:

  • header packets
    • LMP
    • TP
    • ITP
    • DPH
  • Data packets
    • DPP

这些包都有一个“header packet”。
header packet由三部分组成:

Link Control WordPacket HeaderHeader Packet framing

DPP组成:

CRC32DataDPP framing

Link Commands

LGood_n
LTRY
LCRD_x
LCRD1_x
LCRD2_x
LGO_Ux
LAU
LXU
LPMA
LDN
LUP

Logical Idle: 没有packets和Link command传输的状态。
一种special symbol
Gen1: 00h
Gen2: 5Ah
对应还有Electrical Idle状态。

注意Link command与packets header中的Link control不同。

LTSSM

Link Training Status State Machine

  • 最初为disabled状态
  • Reset后进入Rx.detect状态
  • 如果设备脸上,则进入Polling状态
  • Traning之后进入U0
  • U0是正常工作状态。
  • LGO.U1使Link进入U1, LGO.U2使Link进入U2, LGO.U3使Link进入U3.
  • 出错会进入Recovery状态。
  • Recovery状态会进入Hot Reset,如果失败会进inactive,如果成功则进U0
  • Polling状态还可进入Loopback、compliance等状态。
    以上规则仅仅是LTSSM的一部分,详细的运作规则见USB3.1 spec。

8 protocol layer

有四种基础类型packet:
LMP:
Link management Packets
用于管理链路(link)
TP
Transaction Packets
用于控制Data packet和配置设备、hub等。
DP
Data Packets
data packet由DPH和DPP组成。
DPH
Data Packets Header
DPP
Data Packets Payload
ITP
Isochronous Time Packet,相当于sof


LMP 有以下种类和用途:
Set Link Function
U2 inactivity Timeout
Vendor device test
Port Capability
Port configuration Response
Precision Time Management

TP有以下种类:
ACK
NRDY
ERDY
STATUS
STALL
DEV_NOTIFICATION
PING
PING_Response

9、10、11

略。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值