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,...