USB系統結構

2021-06-20 00:16:28 字數 2410 閱讀 2921

usb系統結構

1.usb系統拓撲結構

這個是usb系統的拓撲圖,4個部分構成:usb主機控制器,根集線器,集線器,裝置。其中root hub與usb主機控制器是繫結在一起的。

node代表usb裝置,廣義上講hub也是一種usb裝置。一根usb匯流排最多可掛127個裝置。

常見的usb主控制器:

ohci(open host controller inte***ce):主要是非pc系統上的usb晶元,嵌入式系統常用的控制器。usb1.1

uhci(open host controller inte***ce):大多是intel和via主機板上的usb控制器晶元。usb1.1

ehci(enhanced host controller inte***ce):由intel等幾個廠商研發,相容ohci\uhci,遵循usb2.0規範。

2.usb實現框架:

3.usb裝置的構成包括了配置,介面和端點

1.         裝置通常具有乙個或者更多個配置

2.         配置經常具有乙個或者更多個介面

3.         介面通常具有乙個或者更多個設定

4.         介面沒有或者具有乙個以上的端點

配置由介面組成,每個裝置都有不同級別的配置資訊;

介面由多個端點組成,代表乙個基本的功能;

端點是usb裝置中的唯一可定址部分,可以理解為usb裝置或主機上的乙個資料緩衝區。

配置和設定的理解:乙個手機可以有多重配置,比如可以作為**,可以接在pc上當成乙個u盤,這兩種情況就屬於不同的配置。再來看設定,乙個手機作為**已經確定了,但是通話場景(室外模式,會議模式等等)可以改變,每種場景就可以算乙個設定。

配置1:音訊(介面) + 旋鈕(介面)

每乙個介面均需要乙個驅動程式。

每個usb裝置有乙個唯一的位址,這個位址是在裝置連上主機時,由主機分配的,而裝置中的每個端點在裝置內部有唯一的端點號,這個端點號是在設計裝置時給定的。每個端點都是乙個簡單的連線點,是單向的。

端點0是乙個特殊的端點,用於裝置列舉和對裝置進行一些基本的控制功能。除了端點0,其餘的端點在裝置配置之前不能與主機通訊,只有向主機報告這些端點的特性並被確認後才能被啟用。

例如:usb匯流排,類似於高速公路;

收發的資料,類似於汽車;

usb端點,類似於高速公路收費站的入口或出口。

4.usb描述符

當usb裝置插入到主機系統中,主機系統會自動檢測usb裝置的相關資訊,就是通過usb描述符來實現的。

標準的usb裝置有五種usb描述符:

裝置描述符

配置描述符

介面描述符

端點描述符

字串描述符

乙個裝置只有乙個裝置描述符,而乙個裝置描述符可以包含多個配置描述符,而乙個配置描述符可以包含多個介面描述符,乙個介面使用了幾個端點,就有幾個端點描述符。

管道是usb裝置的端點和主機端快取的連線通道,主機和usb裝置通過管道來進行通訊。

5.四種傳輸型別

端點有4中不同的型別:控制,批量,等時,中斷。

對應usb的4種不同的傳輸型別:

1.         控制傳輸:適用於小量的,對傳輸時間和速率沒有要求的裝置。如usb裝置配置資訊。

2.         批量傳輸:適用於類似印表機,掃瞄器等傳輸量大,但對傳輸時間和速度無要求的裝置。

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)。

抓包截圖:

參考**:

原文見:

usb系統拓撲結構和usb裝置邏輯結構

對於每個usb系統來說,都有乙個稱為host控制器的裝置,該host控制器和乙個根hub作為乙個整體。這個根hub下可以接多級hub,每個hub又可以接子hub。每個usb裝置作為乙個節點接在不同級別的hub上。每條usb匯流排上最多可以接127個裝置。usb主控制器 負責處理主機與裝置之間的電氣和...

USB 梳理USB子系統

看了很久的usb子系統了,還是霧濛濛的,現在梳理一下。首先從bus入手,在core下面定義了struct bus type usb bus type,這就是usb的bus上的裝置與驅動通用的乙個結構體。首先看driver,api主要在core driver.c裡,註冊usb bus type的,主要...

一 usb子系統相關結構體

1.usb匯流排 struct usb bus struct usb bus 2.usb hub struct usb hub status struct mutex status mutex int error 出錯標誌 int nerrors struct list head event lis...