停更好久,重新梳理一下usb 知識體系
1. USB 硬件框架
一個 USB 系統(tǒng) 由三部分來描述:
USB interconnect
USB devices
USB host
USB interconnect 是指USB 設(shè)備連接到主機并與主機通信的方式。這包括以下內(nèi)容:
總線拓撲:USB device 和 host 之間的連接模型。
層間關(guān)系:
數(shù)據(jù)流模型:
USB 調(diào)度:
1.1. 總線拓撲
在USB 系統(tǒng)中有兩個硬件的概念:
USB host:它跟處理器相連,處理器通過USB Host跟各類USB設(shè)備通信。USB Host中集成有一個root hub
USB device:這類設(shè)備又分為兩類
Hub:用來擴展USB接口
Function:就是普通的USB設(shè)備,比如U盤、聲卡等
USB 總線拓撲如下:
roothub:根hub(根集線器)
hub:集線器
func:功能設(shè)備
Compound Device:組合設(shè)備,包含一個hub 和 一個或多個func
USB 總線拓撲最上層一定是host, 最后一級只能是func, 因此hub 級聯(lián)最多5級;
1.2. USB host
在任何USB 系統(tǒng)中只有一個主機,主機的每個USB控制器(Host Controller)對應(yīng)一條USB總線。與主機計算機系統(tǒng)相連的USB接口被稱為主機控制器。
主機控制器可以以硬件,固件或軟件的組合來實現(xiàn)。
根集線器(root hub)集成在主機系統(tǒng)內(nèi)以提供一個或多個連接點。
USB Host通過 Host Controller 與 USB device 交互。
Host主要負責:
檢測USB 設(shè)備的拔插動作
管理Host和Device之間的控制流、數(shù)據(jù)流
收集USB 總線狀態(tài)和活動數(shù)據(jù)信息
為連入USB總線的設(shè)備供電
1.3. USB device
USB device 分為 USB hub 和 USB Function。
USB hub (集線器):
root hub:一般與主機控制器連接在一起,提供一個或者多個端口。
普通hub:用于擴展USB 的主機端口。
結(jié)構(gòu)上由一個上行端口和多個下行端口組成。
支持級聯(lián):最多5級,不包含root hub。
支持速率轉(zhuǎn)換:低速/全速設(shè)備,可連接在高速hub 上。
USB function 設(shè)備:
Composite Device:復合設(shè)備。一個設(shè)備地址,1個 或者 多個function 接口組成
Compound Device:組合設(shè)備。多個設(shè)備地址,一個hub 和 一個或者多個func 組成。
比如:鍵盤,鼠標,攝像頭等。
1.4. USB 數(shù)據(jù)流
USB主機和USB設(shè)備之間的通信是通過管道(Pipe)進行的。
在USB協(xié)議中,管道是一個邏輯概念,
在USB主機端實際上就是一組緩沖區(qū),用于管道中數(shù)據(jù)的收發(fā)。
在USB設(shè)備端,管道對應(yīng)一個特定的端點,每一個端點都是一個由索引和方向確定的,USB設(shè)備最多支持16個雙向端點(8個in/8個out)。
USB設(shè)備地址、端點索引和端點方向的組合可以唯一確定USB主機和USB設(shè)備間的通信。
2. USB 軟件框架
2.1. USB 數(shù)據(jù)流模型
USB 簡化傳輸模型如下圖所示,實際上要比這個復雜的多。主要包含以下部分:
USB 物理設(shè)備:USB電纜終端的一塊硬件,執(zhí)行一些有用的終端用戶功能。
客戶端軟件:在主機上執(zhí)行的軟件,對應(yīng)于一個USB設(shè)備。此客戶端軟件通常與操作系統(tǒng)一起提供,或與USB設(shè)備一起提供。
USB 系統(tǒng)軟件:在一個特定的操作系統(tǒng)中支持USB的軟件。USB系統(tǒng)軟件通常與操作系統(tǒng)一起提供,獨立于特定的USB設(shè)備或客戶端軟件。
USB Host Controller (Host Side Bus Interface):允許將USB設(shè)備連接到主機上的硬件和軟件。
2.2. USB 軟件模型
實際的通信數(shù)據(jù)流:usb host control 和 USB 總線接口。虛擬的通信方式:主機端客戶端軟件和 物理設(shè)備fucntion 直接通信。
USB host:
客戶端軟件
USB 系統(tǒng)軟件:USB 驅(qū)動,HOST controller 驅(qū)動 和 host 軟件
USB device:
USB物理設(shè)備為主機提供了額外的功能。USB設(shè)備提供的功能類型差別很大。但是,所有的USB邏輯設(shè)備都為主機提供相同的基本接口。這允許主機以相同的方式管理不同USB設(shè)備。
為了幫助主機識別和配置USB設(shè)備,每個設(shè)備都會攜帶和報告與配置相關(guān)的信息。所報告的一些信息在所有邏輯設(shè)備中都是常見的。其他信息是特定于該設(shè)備提供的功能的。此信息的詳細類型根據(jù)設(shè)備的設(shè)備類別而有所不同。
詳細軟件模型
抽象為熟悉的軟件模型
對于一個 usb 設(shè)備驅(qū)動,大多時候我們其實只需要關(guān)心function driver,不同的設(shè)備向上只有function 或者接口區(qū)分,對于底層而言都是一樣的,最終通過SIE (串行總線)和主機通信。
3. 總結(jié)
本文主要介紹了,USB 系統(tǒng)的體系結(jié)構(gòu)。一個USB 系統(tǒng)包含核心的三部分:
USB interconnect:通過PIPE 互聯(lián)傳輸
USB Host:USB 主機
USB Device:USB 設(shè)備和集線器
并簡要闡述其軟件模型。
審核編輯:湯梓紅
-
控制器
+關(guān)注
關(guān)注
112文章
16461瀏覽量
179580 -
usb
+關(guān)注
關(guān)注
60文章
7985瀏覽量
266226 -
通信
+關(guān)注
關(guān)注
18文章
6074瀏覽量
136461 -
集線器
+關(guān)注
關(guān)注
0文章
389瀏覽量
39615 -
總線
+關(guān)注
關(guān)注
10文章
2904瀏覽量
88433
原文標題:USB 基礎(chǔ)學習:USB 體系結(jié)構(gòu)介紹
文章出處:【微信號:漫談嵌入式,微信公眾號:漫談嵌入式】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
PSoC 5體系結(jié)構(gòu)中是否存在時鐘鎖定?
USB驅(qū)動程序框架介紹
了解體系結(jié)構(gòu) - 介紹 Arm 體系結(jié)構(gòu)
Armv9-A體系結(jié)構(gòu)參考手冊
Arm的DRTM體系結(jié)構(gòu)規(guī)范
《IP交換技術(shù)協(xié)議與體系結(jié)構(gòu)》
USB體系結(jié)構(gòu)概述
![<b class='flag-5'>USB</b><b class='flag-5'>體系結(jié)構(gòu)</b>概述](https://file1.elecfans.com//web2/M00/A4/C3/wKgZomUMNZSASNuuAACUISBB0ss162.jpg)
LTE體系結(jié)構(gòu)
網(wǎng)絡(luò)體系結(jié)構(gòu),什么是網(wǎng)絡(luò)體系結(jié)構(gòu)
ARM體系結(jié)構(gòu)與程序設(shè)計
USB設(shè)備驅(qū)動開發(fā)
![<b class='flag-5'>USB</b>設(shè)備驅(qū)動開發(fā)](https://file.elecfans.com/web2/M00/49/32/pYYBAGKhtD6AIViOAAAMVcf39AA405.jpg)
米爾科技ARM體系結(jié)構(gòu)與編程介紹
![米爾科技ARM<b class='flag-5'>體系結(jié)構(gòu)</b>與編程<b class='flag-5'>介紹</b>](https://file.elecfans.com/web1/M00/AA/BC/pIYBAF2peQWANUQHAABtQVMoHts840.jpg)
評論