usb基礎知識資料

2021-08-03 08:27:28 字數 3146 閱讀 4545

usb massage storage協議

usb描述符詳細含義

usb裝置的識別流程

usb主機控制器host controler

• uhci: universal host controller inte***ce (通用主機控制介面, usb1.0/1.1)

• ohci: open host controller inte***ce (開放主機控制介面,usb1.0/1.1)

• ehci: enhanced host controller inte***ce (用於usb2.0高速裝置的「增強主機控制介面」)

控制資料傳輸,裝置永遠不能主動發資料

主機控制器控制匯流排上包的傳輸, 使用1ms或125us的幀。在每幀的開始時,主機控制器產生乙個幀開始包(sof: start of frame)。

sof包用於同步幀的開始和跟蹤幀的數目,每個包的傳輸都有乙個狀態階段同(同步傳輸除外),資料接收者可以在其中返回ack(應答接收),nak(重試),stall(錯誤條件)或什麼也沒有(混亂資料階段,裝置不可用或已經斷開)。

usb裝置的列舉過程

列舉列舉就是從裝置讀取一些資訊,

知道裝置是什麼樣的裝置,如何進行通訊

,這樣主機就可以根據這些資訊來載入合適的驅動程式

hubhub

負責檢測裝置的連線和斷開,利用其

中斷in端點

(interrupt in endpoint)來向主機(host)報告。在系統啟動時,主機輪詢它的根hub(root

hub)的狀態看是否有裝置(包括子hub

和子hub上的裝置)連線

識別電路

hub端:d+/d-接乙個下拉電阻rpd(14.5到24.8k)

裝置端:1.5k的上拉電阻rpu

全速/高速:d+上拉電阻rpu

低速       :d-上拉電阻rpu

識別原理

當裝置插入到hub埠時,有上拉電阻的一根資料線被拉高到幅值的90%的電壓(大致是3v)。

hub檢測到它的一根資料線是高電平,就認為是有裝置插入

,並能根據是d+還是d-被拉高來判斷到底是什麼裝置(全速/低速)插入埠

列舉過程

列舉試驗資料

usb協議架構及驅動架構

當usb裝置連線到集線器,集線器狀態將發生相應的變化,並將狀態變化資訊傳遞給usb主機。usb主機通過根集線器向usb裝置傳送命令,獲取usb裝置的各種資訊,包含usb裝置傳輸型別、id號、product、usb速度等資訊。

usb協議中共定義了以下四種描述符:

1) 裝置描述符

2) 配置描述符

3) 介面描述符

4) 端點描述符

其關係如下圖所示:

裝置描述符:每個裝置唯一

配置描述符

介面描述符

端點描述符

每個裝置至少支援控制端點0。usb裝置應該支援三類端點:控制端點、輸入端點和輸出端點。

usb通訊過程,有試驗資料

以usb裝置插到電腦為例說明

usb上電  -> 從裝置的usb一直不斷地掛起和喚醒  -> 插到電腦,電腦發來資料報要求獲取usb裝置的描述

usb的裝置描述符,描述了這個裝置使用什麼usb的協議版本,這裡是1.1的版本,還有廠家標識、產品標識,以及廠家、產品和序列號等字串的偏移位址

通過裝置描述符,就可以讓主控器知道這個裝置是使用什麼版本的usb協議,是高速的裝置,還是低速的裝置,是誰產生的,是什麼產品,然後作業系統就可以通過這些資訊去找到相應的驅動程式,如果作業系統沒有找到相應的驅動程式,就會提示使用者插入光碟,或者其它方來安裝相應的驅動程式。

基本概念

乙個【傳輸】(控制、批量、中斷、等時):由多個【事務】組成;

乙個【事務】(in、out、setup):由一多個【packet】組成。

usb資料在【主機軟體】與【usb裝置特定的端點】間被傳輸。【主機軟體】與【usb裝置特定的端點】間的關聯叫做【pipes】。乙個usb裝置可以有多個管道(pipes)。

usb主機控制器:裝置管理,ehci_hcd,uhci_hcd

hub:hub發起裝置的初始化,roothub(與主機控制器整合)

rs232傳輸協議

無資料傳送時,資料線處於高電

平,等到有資料開始傳送,傳送方首先拉低資料線(start),表示資料傳輸開始,接受端也因為這個「start」訊號

開始準備接受即將到來的資料,類似一次握手,隨後,在兩者之間的資料傳送開始,結束後主方再次拉高資料

線,表示結束傳輸,自此兩者重新進入idle狀態。等待下一輪傳送開始

usb傳輸協議

假設d+,d-分別表示usb訊號線的電平訊號。那麼對於usb full speed function

data j state:d+=1,d-=0;

data k state:d+=0,d-=1;

se0:d+=d-=0;

se1:d+=d-=1;

這個對usb full speed function來說,idle狀態將處於data j state,se0表示一楨結束

USB基礎知識

開始對usb感興趣了,學習一下usb驅動,趁著現在剛好在做usb裝置驅動。先了解一下usb的大概知識 1.先看一下維基百科的介紹 usb分組格式 usb的分組格式和早期的網際網路分組格式非常相似,要了解usb連線原理就一定要先了解分組格式。2.了解一下vid和pid 摘自 什麼是 usb 廠商 id...

USB基礎知識

1.usb是什麼?usb是universal serial bus的縮寫,中文譯為通用序列匯流排。2.一些重要概念 主機 host 和裝置 device 介面 inte ce 管道 pipe 是主機與裝置端點資料傳輸的連線通道,代表了主機的資料緩衝區與裝置端點間互動資料的能力。管道包括資料流管道和訊...

USB基礎知識

url size medium usb 介紹 usb 協議有嚴格的層次結構。在所有 usb 系統中,只有乙個主裝置,到主計算機的的 usb 介面稱為 主控器 host controller 主控器有兩個標準 開放主控器介面 compaq 的 open host controller inte ce,...