停更好久,重新梳理一下usb 知識體系
1. USB 硬件框架
一個 USB 系統 由三部分來描述:
USB interconnect
USB devices
USB host
USB interconnect 是指USB 設備連接到主機并與主機通信的方式。這包括以下內容:
總線拓撲:USB device 和 host 之間的連接模型。
層間關系:
數據流模型:
USB 調度:
1.1. 總線拓撲
在USB 系統中有兩個硬件的概念:
USB host:它跟處理器相連,處理器通過USB Host跟各類USB設備通信。USB Host中集成有一個root hub
USB device:這類設備又分為兩類
Hub:用來擴展USB接口
Function:就是普通的USB設備,比如U盤、聲卡等
USB 總線拓撲如下:
roothub:根hub(根集線器)
hub:集線器
func:功能設備
Compound Device:組合設備,包含一個hub 和 一個或多個func
USB 總線拓撲最上層一定是host, 最后一級只能是func, 因此hub 級聯最多5級;
1.2. USB host
在任何USB 系統中只有一個主機,主機的每個USB控制器(Host Controller)對應一條USB總線。與主機計算機系統相連的USB接口被稱為主機控制器。
主機控制器可以以硬件,固件或軟件的組合來實現。
根集線器(root hub)集成在主機系統內以提供一個或多個連接點。
USB Host通過 Host Controller 與 USB device 交互。
Host主要負責:
檢測USB 設備的拔插動作
管理Host和Device之間的控制流、數據流
收集USB 總線狀態和活動數據信息
為連入USB總線的設備供電
1.3. USB device
USB device 分為 USB hub 和 USB Function。
USB hub (集線器):
root hub:一般與主機控制器連接在一起,提供一個或者多個端口。
普通hub:用于擴展USB 的主機端口。
結構上由一個上行端口和多個下行端口組成。
支持級聯:最多5級,不包含root hub。
支持速率轉換:低速/全速設備,可連接在高速hub 上。
USB function 設備:
Composite Device:復合設備。一個設備地址,1個 或者 多個function 接口組成
Compound Device:組合設備。多個設備地址,一個hub 和 一個或者多個func 組成。
比如:鍵盤,鼠標,攝像頭等。
1.4. USB 數據流
USB主機和USB設備之間的通信是通過管道(Pipe)進行的。
在USB協議中,管道是一個邏輯概念,
在USB主機端實際上就是一組緩沖區,用于管道中數據的收發。
在USB設備端,管道對應一個特定的端點,每一個端點都是一個由索引和方向確定的,USB設備最多支持16個雙向端點(8個in/8個out)。
USB設備地址、端點索引和端點方向的組合可以唯一確定USB主機和USB設備間的通信。
2. USB 軟件框架
2.1. USB 數據流模型
USB 簡化傳輸模型如下圖所示,實際上要比這個復雜的多。主要包含以下部分:
USB 物理設備:USB電纜終端的一塊硬件,執行一些有用的終端用戶功能。
客戶端軟件:在主機上執行的軟件,對應于一個USB設備。此客戶端軟件通常與操作系統一起提供,或與USB設備一起提供。
USB 系統軟件:在一個特定的操作系統中支持USB的軟件。USB系統軟件通常與操作系統一起提供,獨立于特定的USB設備或客戶端軟件。
USB Host Controller (Host Side Bus Interface):允許將USB設備連接到主機上的硬件和軟件。
2.2. USB 軟件模型
實際的通信數據流:usb host control 和 USB 總線接口。虛擬的通信方式:主機端客戶端軟件和 物理設備fucntion 直接通信。
USB host:
客戶端軟件
USB 系統軟件:USB 驅動,HOST controller 驅動 和 host 軟件
USB device:
USB物理設備為主機提供了額外的功能。USB設備提供的功能類型差別很大。但是,所有的USB邏輯設備都為主機提供相同的基本接口。這允許主機以相同的方式管理不同USB設備。
為了幫助主機識別和配置USB設備,每個設備都會攜帶和報告與配置相關的信息。所報告的一些信息在所有邏輯設備中都是常見的。其他信息是特定于該設備提供的功能的。此信息的詳細類型根據設備的設備類別而有所不同。
詳細軟件模型
抽象為熟悉的軟件模型
對于一個 usb 設備驅動,大多時候我們其實只需要關心function driver,不同的設備向上只有function 或者接口區分,對于底層而言都是一樣的,最終通過SIE (串行總線)和主機通信。
3. 總結
本文主要介紹了,USB 系統的體系結構。一個USB 系統包含核心的三部分:
USB interconnect:通過PIPE 互聯傳輸
USB Host:USB 主機
USB Device:USB 設備和集線器
并簡要闡述其軟件模型。
審核編輯:湯梓紅
-
控制器
+關注
關注
112文章
16445瀏覽量
179449 -
usb
+關注
關注
60文章
7980瀏覽量
266085 -
通信
+關注
關注
18文章
6070瀏覽量
136425 -
集線器
+關注
關注
0文章
389瀏覽量
39602 -
總線
+關注
關注
10文章
2903瀏覽量
88392
原文標題:USB 基礎學習:USB 體系結構介紹
文章出處:【微信號:漫談嵌入式,微信公眾號:漫談嵌入式】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論