前面已經轉了一篇類似的文章, 這篇和那篇其實很相似, 只是按我的習慣編寫而成。 內容和圖表基本**於www.usb.org。
lsb(bit) first 1.
域(fields)
sync:
所有包開始都必須有的,
1位元組在
low/full speed, 4
位元組在high speed
pid (packet id): 8bit, 高4
位為低四位取反,以低
4位為準
(見圖1
)address:
兩種位址,一種指
function address (7bit),
一種指endpoint
位址(4bit)
frame number:
只出現在
sof token
包中,11 bit
data: 0-1024
位元組crc:token packet 5bit, data packet: 2bytes
2.包(packet)
四種,見圖
1token (
包括setup/in/out
和sof)
包格式setup/in/out: pid (8) + addr (7)+endp(4)+crc5(5) = 24bit = 3bytes
sof: pid(8)+framenumber(11)+crc5(5)=24bit = 3bytes
data(
包括data0
和data1包)
包格式(byte
為單位)
:pid(1)+data(0-1024)+crc16(2)
handshake
包格式(byte
為單位)
:pid (1)
3.事務 (transaction)
有三種事務: setup, in, out
每個事務,
又由多個包(token, data, handshake, special)組成
,如圖2
4. 傳輸 (transfer)
四種傳輸方式:control, bulk, interrupt, isochronous
每種傳輸由乙個或多個事務(setup, in, out)組成
control:
用於device剛attach到
host時。
使用預設的control pipe, endpoint = 0.
有setup (must)/in/out (optional) transaction.
bulk:
用於傳輸大量順序資料時,
並且對時序沒有嚴格要求。如印表機。由in/out transaction組成
interrupt: 傳輸資料時間不定,
資料量小,
如鍵盤,滑鼠。由in/out transaction組成
isochronous:用於資料量大,對時序有嚴格要求。由in/out transaction組成
可以看出只有controltransfer有setup transaction
USB資料格式
usb傳輸型別 1.控制傳輸 非週期性,突發 用於命令和狀態的傳輸 2.大容量資料傳輸 bulk 非週期性,突發 大容量資料的通訊,資料可以占用任意頻寬,並容忍延遲 3.同步傳輸 週期性.持續性的傳輸,用於傳輸與時效相關的資訊,並且在資料中儲存時間戳的資訊 4.中斷傳輸 週期性,低頻率 允許有限延遲...
USB的資料格式概述
和其他的一樣,usb資料是由二進位制數字串構成的,首先數字串構成域 有七種 域再構成包,包再構成事務 in out setup 事務最後構成傳輸 中斷傳輸 並行傳輸 批量傳輸和控制傳輸 下面簡單介紹一下域 包 事務 傳輸,請注意他們之間的關係。一 域 是usb資料最小的單位,由若干位組成 至於是多少...
TCP協議資料格式
tcp協議間交換的資料單元稱為 tcp段 包括兩部分 首部和資料。標準首部長20位元組,帶有選項的首部會更長。1.源埠和目的埠 各佔2位元組,埠號加上ip位址,共同構成socket。互相通訊的程序使用一對socket,包括協議 源ip 源埠 目的ip 目的埠,這五個元素唯一確定乙個tcp連線。2.序...