USB資料格式

2021-10-06 16:01:03 字數 2121 閱讀 2263

usb傳輸型別:

1.控制傳輸:非週期性, 突發(用於命令和狀態的傳輸)

2.大容量資料傳輸(bulk):非週期性,突發(大容量資料的通訊, 資料可以占用任意頻寬, 並容忍延遲)

3.同步傳輸:週期性.(持續性的傳輸, 用於傳輸與時效相關的資訊, 並且在資料中儲存時間戳的資訊)

4.中斷傳輸:週期性, 低頻率(允許有限延遲的通訊)

usb傳輸格式:

sop					sync			packet content				eop**

packet content格式:

pid(8bit) 位址(7+4) 幀號 資料 crc(5bit)

packet分四大類(不同的型別包, 以上的組成部件有所不同):

命令(token) packet							

幀首(start of frame) packet

資料(data) packet

握手(handshake) packet

packet identifier資料報型別:

pid型別							pid名稱							對應的packet種類

token令牌 out/int/setup/sof 令牌包、sof包

data資料 data0/data1/data2/mdata 資料報

handshake ack/nak/stall/nyet 握手包

special pre/err/split/ping

control						bulk				interrupt		isoch

hs | fs |

ls hs | fs |

ls hs | fs |

ls hs | fs |

ls資料報長度 64 64 8 512 64 n.a 1024 64 8 1024 1023 n.a

–>data crc

計算資料域資料的crc

g(x) = x(16冪) + x(15冪)+ x(2冪) + 1

token型別:

(pid(8bit) + 位址(7+4bit) + crc(5bit))

以下三種pid可選

>>in							

>>out

>>setup

eg. sync setup addr|endp crc5 eop

00000001 0xb4 3 0 0x0a 250.000ns

(pid(8bit) + 幀號 + crc(5bit))

sof包, ls/fs每1ms乙個幀.hs每125us乙個幀.

eg.

sync sof frame# crc5 eop

00000001 0xa5 1611 0x11 250.000ns

data paket型別:

(pid(8bit) + 資料(0~1024 bit) + crc(16bit))

>>data0

>>data1

>>data2

>>datam

eg. sync data0 data crc16 eop

00000001 0xa5 80 06 00 01 00 00 12 00 0x072f 250.000ns

handshake packet

(pid(8bit))

>>ack:傳輸正確完成

>>nak:裝置暫時沒有準備好接收資料, 或沒有準備好傳送資料

>>stall:裝置不能進行傳輸

>>nyet/err:僅用高速傳輸,裝置沒有準備好或出錯

eg. sync ack eop

00000001 0x4b 233.330ns

USB 協議資料格式

前面已經轉了一篇類似的文章,這篇和那篇其實很相似,只是按我的習慣編寫而成。內容和圖表基本 於www.usb.org。lsb bit first 1.域 fields sync 所有包開始都必須有的,1位元組在 low full speed,4 位元組在high speed pid packet id...

USB的資料格式概述

和其他的一樣,usb資料是由二進位制數字串構成的,首先數字串構成域 有七種 域再構成包,包再構成事務 in out setup 事務最後構成傳輸 中斷傳輸 並行傳輸 批量傳輸和控制傳輸 下面簡單介紹一下域 包 事務 傳輸,請注意他們之間的關係。一 域 是usb資料最小的單位,由若干位組成 至於是多少...

從零開始學USB(六 USB通訊的資料格式)

前面章節已經學習過了usb的引腳定義了,但是對於其中的usb 2.0的兩根資料線d 和d 所對應的資料傳輸,卻沒有詳細介紹。此處就是介紹,在此序列資料線中,資料是如何被編碼和傳送的。usb所傳輸的資料,用的資料編碼方式是nrzi non return to zero inverted 其具體的含 釋...