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

LTE體系結(jié)構(gòu)
網(wǎng)絡(luò)體系結(jié)構(gòu),什么是網(wǎng)絡(luò)體系結(jié)構(gòu)
ARM體系結(jié)構(gòu)與程序設(shè)計(jì)
USB設(shè)備驅(qū)動(dòng)開(kāi)發(fā)

米爾科技ARM體系結(jié)構(gòu)與編程介紹

評(píng)論