USB底層協議

2021-06-26 17:12:10 字數 2825 閱讀 9710

usb它是序列匯流排,所以資料在匯流排上是一位一位傳輸的,先傳輸最低位資料,最後傳輸最高位資料。對於多個位元組的資料傳輸呢,採用的是小端格式,即先傳輸低位元組資料,最後傳輸高位元組資料。 在

usb中,資料是以包為單位進行傳輸的,所有的包都必須以

sync

字段開始,以

eop(end-of-packet)

結尾。在

sync

字段之後,緊跟著的是包識別符號

(pid)

,pid

為乙個位元組,其中

4位用於定義包的型別,另外

4位是用來校驗

pid的,

pid格式如下:

在usb

中,定義了四種型別的包,令牌包、資料報、握手包和特殊包,包型別詳細定義如下:

pid

型別pid

名pid<3:0>

令牌包out                            0001b

in                             1001b

sof                            0101b

setup                         1101b

資料報data0                         0011b

data1                         1011b

data2                         0111b

mdata                       1111b

握手包ack                            0010b

nak                           1010b

stall                         1110b

nyet                           0110b

特殊包pre                            1100b

err                            1100b

split                         1000b

ping                           0100b    

reserved                   0000b

在令牌包的

pid欄位之後,還包含位址域,位址就包括裝置位址和端點位址,裝置位址共

7位,總共可定址

128個位址,但是位址

0是作為預設裝置位址的,所以說,

usb系統中,最多只能同時連線

127個裝置。端點位址共

4位,可定址

16個端點。 在

usb包最後,還包含5位的

crc檢驗碼,

crc校驗碼只對

pid後面的資料進行校驗,不對

pid進行校驗,因為

pid本身就包含

4位校驗碼。

包格式

令牌包格式

令牌包格式定義如下:

這裡的令牌特指in、

out、

setup

令牌,而

sof包格式定義如下:

令牌包例項如下:

資料報格式

資料報包含包識別符號

(pid)和0

到多個位元組的資料,資料報型別總共四種,

data0

、data1

、data2

和mdata

。資料報格式定義如下:

資料報例項如下:

上圖為setup

請求資料報,用於讀取裝置的裝置描述符。

握手包格式

握手包有三種

ack、

nak和

stall

,其中ack

表示資料傳輸完成並且無錯誤,

nak表示裝置不能接收資料或者沒有資料上傳,

stall

表示裝置不能進行資料傳輸。而

nyet

和err

握手包只針對高速裝置,表示裝置沒有準備好或者出錯。握手包格式定義如下:

ack握手包例項如下:

USB協議簡介

usb,是英文universal serial bus 通用序列匯流排 的縮寫,其中文簡稱 通串線 是乙個外部匯流排標準,用於規範電腦與外部裝置的連線和通訊。是應用在 pc 領域的接 術。usb 介面支援裝置的即插即用和熱插拔功能。usb 是在 1994 年底由英特爾 康柏 ibm microsof...

USB協議總結

使用者將乙個usb裝置插入usb埠,主機為埠供電,裝置此時處於上電狀態。主機檢測裝置。集線器使用中斷通道將事件報告給主機。主機傳送get port status 讀埠狀態 請求,以獲取更多的裝置資訊。集線器檢測裝置是低速執行還是高速執行,並將此資訊送給主機,這是對get port status請求的...

底層網路協議

arp 位址解析協議 基本功能為透過目標裝置的ip位址,查詢目標裝置的mac位址,以保證通訊的順利進行。在每台安裝有tcp ip協議的電腦或路由器裡都有乙個arp快取表,表裡的ip位址與mac位址是一對應的。當傳送資料時,主機a會在自己的arp快取表中尋找是否有目標ip位址。如果找到就知道目標mac...