USB系統結構
1.USB系統拓撲結構
這個是USB系統的拓撲圖,4個部分構成:USB主機控制器,根集線器,集線器,裝置。其中Root Hub與USB主機控制器是綁定在一起的。
Node代表USB裝置,廣義上講hub也是一種USB裝置。一根USB匯流排最多可掛127個裝置。
常見的USB主控制器:
OHCI(open host controller interface):主要是非PC系統上的USB晶片,嵌入式系統常用的控制器。USB1.1
UHCI(open host controller interface):大多是intel和VIA主板上的USB控制器晶片。USB1.1
EHCI(enhanced host controller interface):由intel等幾個廠商研發,相容OHCI\UHCI,遵循USB2.0規範。
2.USB實現架構:
3.USB裝置的構成包括了配置,介面和端點
1. 裝置通常具有一個或者更多個配置
2. 配置經常具有一個或者更多個介面
3. 介面通常具有一個或者更多個設定
4. 介面沒有或者具有一個以上的端點
配置由介面組成,每個裝置都有不同層級的配置資訊;
介面由多個端點組成,代表一個基本的功能;
端點是USB裝置中的唯一可定址部分,可以理解為USB裝置或主機上的一個資料緩衝區。
配置和設定的理解:一個手機可以有多重配置,比如可以作為電話,可以接在PC上當成一個隨身碟,這兩種情況就屬於不同的配置。再來看設定,一個手機作為電話已經確定了,但是通話情境(室外模式,多方通話等等)可以改變,每種情境就可以算一個設定。
例如:一個USB播放器帶有音頻,視頻功能,還有旋鈕和按鈕。
配置1:音頻(介面) + 旋鈕(介面)
配置2:音頻(介面) + 視頻(介面) + 旋鈕(介面)
配置3:視頻(介面) + 旋鈕(介面)
每一個介面均需要一個驅動程式。
每個USB裝置有一個唯一的地址,這個地址是在裝置連上主機時,由主機分配的,而裝置中的每個端點在裝置內部有唯一的端點號,這個端點號是在設計裝置時給定的。每個端點都是一個簡單的連接點,是單向的。
端點0是一個特殊的端點,用於裝置枚舉和對裝置進行一些基本的控制功能。除了端點0,其餘的端點在裝置配置之前不能與主機通訊,只有向主機報告這些端點的特性並被確認後才能被啟用。
例如:
USB匯流排,類似於高速公路;
收發的資料,類似於汽車;
USB端點,類似於高速公路收費站的入口或出口。
4.USB描述符
當USB裝置插入到主機系統中,主機系統會自動檢測USB裝置的相關資訊,就是通過USB描述符來實現的。
標準的USB裝置有五種USB描述符:
裝置描述符
配置描述符
介面描述符
端點描述符
字串描述符
一個裝置只有一個裝置描述符,而一個裝置描述符可以包含多個配置描述符,而一個配置描述符可以包含多個介面描述符,一個介面使用了幾個端點,就有幾個端點描述符。
管道是USB裝置的端點和主機端緩衝的串連通道,主機和USB裝置通過管道來進行通訊。
5.四種傳輸類型
端點有4中不同的類型:控制,批量,等時,中斷。
對應USB的4種不同的傳輸類型:
1. 控制傳輸:適用於小量的,對傳輸時間和速率沒有要求的裝置。如USB裝置配置資訊。
2. 批量傳輸:適用於類似印表機,掃描器等傳輸量大,但對傳輸時間和速度無要求的裝置。
3. 等時傳輸:適用於大量的,速率恒定,具有周期性的資料,對即時性有要求的,比如音視頻。
4. 中斷傳輸:適用於非大量,但具有周期性的資料,比如滑鼠鍵盤。當USB宿主要求裝置傳輸資料時,中斷端點會以一個固定的數率傳輸資料。滑鼠,鍵盤以及遊戲手柄等。此種中斷和經常說的硬體中斷是不同的,此種中斷會以固定的時間間隔來查詢USB裝置。
三種事務(transaction)類型
一次傳輸由一個或多個事務構成。
1. IN transaction
IN事務為host輸入服務,當host需要從裝置獲得資料的時候,就需要IN事務。
2. OUT transaction
OUT事務為host輸出服務,當host需要輸出資料到裝置的時候,就需要OUT事務。
3. SETUP transaction
SETUP事務為host控制服務,當host希望傳輸一些USB規範的預設操作的時候就需要使用setup事務。
四種包(package)類型
一個事務由一個或多個包構成,包可分為令牌包(setup),資料包(data),握手包(ACK)和特殊包。
域
一個包由多個域構成,域可分為同步域(SYNC),標識域(PID),地址域(ADDR),端點域(ENDP),幀號域(FRAM),資料域(DATA),校正域(CRC)。
抓包:
參考網址:http://blog.csdn.net/woshixingaaa/article/details/6362603