USB通信包標識字段PID

包標識字段PID的定義格式如下圖,包標識字段(PID)長度爲8bit,由低4bit的類型字段和高4bit的校驗字段組成。校驗字段是類型字段的反碼。例如,PID[3:0] = 0001B時,完整的PID字段則應該是:1110_0001B,表示令牌OUT。

PID字段有如下4中類型信息包:

  • 令牌包:PID[1:0] = 01B;
  • 握手包:PID[1:0] = 10B;
  • 數據包:PID[1:0] = 11B;
  • 特殊包:PID[1:0] = 00B。

 

1.令牌包:對於令牌包,PID字段可以指明數據傳輸的方向、幀開始等,定義如下:

令牌包

PID[3:0]

含義

OUT

0001B

數據從Host發送到Device

IN

1001B

數據從Device發送到Host

SOF

0101B

幀或小幀的開始信息

SETUP

1101B

Host向Device發送配置信息

 

2. 握手包:對於握手包,PID字段指明數據傳輸的結果,定義如下:

握手包

PID[3:0]

含義

ACK

0010B

數據已經被接收方正確接收

NAK

1010B

數據未被接收方正確接收

STALL

1110B

目前使用的端點被掛起

NYET

0110B

接收方沒有反應

 

3. 數據包:對於數據包,PID字段子明數據包的奇偶性,類型定義如下:

數據包

PID[3:0]

含義

DATA0

0011B

數據包爲偶數據包

DATA1

1011B

數據包爲奇數據包

DATA2

0111B

數據包爲一個高速同步事務專用數據包

MDATA

1111B

數據包爲SPLIT事務專用數據包

      

4. 特殊包:用於定義特殊事務

特殊包

PID[3:0]

含義

PRE

1100B

主機發送的用於使能USB低速數據通信的令牌信息先導包

ERR

0100B

用於SPLIT事務中,表示錯誤握手信號

SPLIT

1000B

表示SPLIT事務的令牌信息

PING

0100B

用於數據流量監測控制

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章