1.usb的插入檢測機制:usb埠的d+和d-均用乙個15k的電阻接地,當無裝置接入時,均處於低電平;在裝置端在d+(表示高速裝置或者全速裝置)或者d-(表示低速裝置)接了乙個1.5k的上拉電阻到+3.3v,一旦將裝置接入,usb埠的d+或者d-其中乙個被拉高為3v,系統識別到外部裝置接入。
注意:高速裝置首先會被識別為全速裝置,然後再通過集線器和裝置二者的確認最後切換到高速模式下。
在高速模式下,採用的是電流傳輸模式,這個時候上拉電阻需要從d+上斷開。
2.當裝置沒有列舉成功時(可以通過乙個10k的電阻將usb的電源端和d+或者d-連線起來,電腦會發現乙個無法識別的裝置,這個裝置的pid和vid都是0,根據每個特性可以簡單的判定裝置的列舉是否成功。
3.乙個具體的usb實現什麼功能,usb主機並不知道。usb主機通過讀取usb的裝置描述符來獲取裝置的型別、廠商的id和產品的id(通常依靠它們來載入對應的驅動程式)、端點情況、版本號等眾多資訊。
4.usb1.1協議定義的標準描述符有裝置描述符(device descriptor)、配置描述符(configuration descriptor)、介面描述符(inte***ce descriptor)、端點描述符(endpoint descriptor)和字串描述符(string descriptor)。
usb2.0相比於usb1.1新增加的兩個描述符:限定符描述符(qualifier descriptor)和其他速度配置描述符(other speed configuration descriptor)。
5.乙個usb裝置只有乙個裝置描述符。
裝置描述符裡面決定了該裝置有多少種配置,每種配置都有乙個配置描述符;
而在每個配置描述符中又定義了該配置有多少個介面,每個介面都有乙個介面描述符;
在介面描述符裡面又定義了該介面有多少個端點,每個端點都有乙個端點描述符,端點描述符定了端點的大小、型別等。
如果有類特殊描述符,它跟在相應的介面描述符之後。
注意:usb主機獲取描述符時,從上到下逐層獲取。對於字串描述符,usb主機是單獨獲取的,主機通過傳送獲取字串中描述符的請求以及描述符的索引號、語言id來獲取對應的字串描述符。
6.裝置描述符:裝置所使用的usb協議版本號、裝置型別、端點0的最大包大小、廠商id(vid)和產品id(pid)、裝置版本號、廠商字串索引、產品字串索引、裝置序列號索引、可能的配置數等。
配置描述符:記錄配置所包含的介面數、配置的編號、供電方式、是否支援遠端喚醒、電流需求量等。
介面描述符:記錄介面的編號、介面的端點數、介面所使用的類、子類、協議等。
端點描述符:端點號及方向、端點的傳輸型別、最大包長度、查詢時間間隔等。
字串描述符:提供一些方便人們閱讀的資訊,它不是必需的。
8.具有多個介面,並由介面來實現功能的裝置叫做usb復合裝置。例如乙個usb音訊裝置,它具有乙個音訊控制介面,另外還有乙個到多個音訊流或者midi流介面。在主機端會把usb復合裝置的每個介面當做乙個功能裝置來看待,常見的usb滑鼠,u盤等通常是單一的裝置,即乙個裝置下只有乙個配置描述符、乙個介面描述符。
USB入門系列之二 USB的連線模型
usb是一種主從結構。主機叫做host,從機叫做device 也叫做裝置 集線器也被當作一種特殊的裝置處理。usb的資料交換只能發生在主機和裝置之間,主機和主機,裝置和裝置之間不能互連。為了在物理上區分主機和裝置,使用了不同的插頭和插座,這個在usb的聯結器一節中會講到。所有的資料傳輸都由主機主動發...
USB學習之二 USB PHY
usb phy負責最底層的訊號轉換,作用類似於網口的phy。有兩種介面,一種是ulpi,一種是utmi。前者pin少,後者pin多,所以如果用ulpi,phy一般外部另接 用utmi,pin多,一般內建。phy內建或者外接要看晶元資料。powerpc的p2010,晶元資料裡面定義是ulpi,需要外接...
USB學習之二 USB匯流排驅動程式
usb匯流排驅動程式的作用 1.識別usb裝置 1.1 分配位址 1.2 並告訴usb裝置 set address 1.3 發出命令獲取描述符 描述符的資訊可以在include linux usb ch9.h看到 2.查詢並安裝對應的裝置驅動程式 3.提供usb讀寫函式 將乙個usb裝置接到開發板上...