要完成乙個usb裝置的開發,僅了解usb協議是不夠的,還需要知道usb裝置類協議,usb協議與usb裝置類協議是相互補充的。為了簡化usb匯流排的開發流程,usb-if將常用的具有相同或相似功能的裝置歸為一類,並制定了相關的裝置類規範,使得只要依照統一規範標準,不同的廠商開發的usb裝置可以使用同樣的驅動程式。
usb裝置類是個龐大的概念,限於篇幅,簡單介紹一下一些常見的型別。usb裝置分為兩大類:標準型的和非標準型的。標準型別的,比如音訊裝置、通訊裝置、印表機裝置、h工d裝置和儲存裝置。而非標準型別的,比如usb/rs一232轉換器等。其中儲存裝置(mass storage)類,將結合後面的具體開發,重點講述。
massstorage裝置類和bulk一only類傳輸協議
massstorage類主要用於為軟磁碟介面、硬碟介面及flash儲存器等裝置建立的usb介面,類**(blnte***ceclass欄位的值)為0x08。這些不同的資料儲存載體介面構成了massstorage類的子類。
這些子類的命令都是各子類所特有的,而與usb沒有任何關係,進行usb傳輸時,將這些命令打包進行傳輸。實際的開發過程,可以選用不同的子類命令集來實現系統功能,並不必完全受限制於關係定義。而真正與massstorage傳輸方式相關的是其傳輸協議,即blnte***ceprotocol欄位表示的內容。
在主動usb介面設計中支援的傳輸協議,是bulk一only傳輸協議。此協議僅使用bulk端點來實現資料、命令和狀態的傳輸,而沒有使用中斷和控制端點。cbw和csw是一系列包的集合,簡稱封包。
massstor。ge的子類命令
嚴格意義上,支援massstorage類的usb主機應該全面支援各子類。但是在實際應用中,一方面由於主機系統資源的限制,另一方面由於實際需求要求有針對性,所以通常選用一些基本的命令即可。各子類都支援基本的操作命令,所以可以靈活選用各種子類,如ufi,scsl及rbc等,具體的命令格式參考相關的命令規範,不再詳述,在具體的開發中,會結合專案來介紹相關的命令。
usb主機
傳統意義的usb開發,僅僅是對usb外設的開發,usb核心驅動程式和usb主控制器驅動程式都是由作業系統提供。而為了實現usb主機功能,必須設計這兩部分驅動程式。usb主機協議描述了usb系統軟體(核心驅動程式和主控制器驅動程式)的設計規範。
usb主機的主要功能有:檢測usb裝置的連線和斷開;管理主機和裝置間的標準的控制管道;管理主機和裝置間的資料流;收集裝置的狀態,統計匯流排的活動;控制和管理主機控制器和裝置間的電氣介面。
usb主機分為三個層次:usb匯流排介面層、usb系統層、usb使用者層。
**
USB架構概述之四匯流排協議
usb是一種輪詢匯流排。主機控制器初始化所有資料傳輸。大多數匯流排交易涉及三個資料報的傳輸。每個事務開始,當主機控制器,根據計畫,傳送乙個usb資料報描述事務的型別和方向,usb裝置位址和端點數量。該包被稱為 令牌包。usb通過解碼裝置,選擇自己合適的位址字段。在乙個給定的事務,資料從主機到裝置或轉...
USB匯流排協議 一
通訊過程 usb universal serial bus 統稱通用序列匯流排,主要是用於電腦裝置和外設連線和通訊。從硬體的層面看,包含usb介面 包含公頭和母頭 從軟體層面,通常指的是usb通訊協議,包含了握手 通訊等一系列行為的通訊定義。usb通訊協議由usb if usb implemente...
硬體匯流排學習之路 USB匯流排體系協議簡介
其實也想過很久,要不要去,猶豫了很久,本來想,其實不用這樣對技術痴迷,感覺,現在已經可以了,無所謂的非要這樣,去委屈自己,但是最後還是決定過去了,因為,真的就幾個月了,自己還沒有完全的想好,還有乙個原因,是自己想看看android是個什麼樣的,趁這個機會好好的了解一下整個系統,畢竟,目前,它是最最流...