?
USB主機是如何識別USB設備的?
當USB設備插上主機時,主機就通過一系列的動作來對設備進行枚舉配置(配置是屬于枚舉的一個態,態表示暫時的狀態),這這些態如下:
1、接入態(Attached):設備接入主機后,主機通過檢測信號線上的電平變化來發現設備的接入;
2、供電態(Powered):就是給設備供電,分為設備接入時的默認供電值,配置階段后的供電值(按數據中要求的最大值,可通過編程設置)
3、缺省態(Default):USB在被配置之前,通過缺省地址0與主機進行通信;
4、地址態(Address):經過了配置,USB設備被復位后,就可以按主機分配給它的唯一地址來與主機通信,這種狀態就是地址態;
5、配置態(Configured):通過各種標準的USB請求命令來獲取設備的各種信息,并對設備的某此信息進行改變或設置。
6、掛起態(Suspended):總線供電設備在3ms內沒有總線操作,即USB總線處于空閑狀態的話,該設備就要自動進入掛起狀態,在進入掛起狀態后,總的電流功耗不超過280UA。
標準的USB設備請求命令究竟是什么?
標準的USB設備請求命令是用在控制傳輸中的“初始設置步驟”里的數據包階段(即DATA0,由八個字節構成)。標準USB設備請求命令共有11個,大小都是8個字節,具有相同的結構,由5個字段構成(字段是標準請求命令的數據部分),結構如下(括號中的數字表示字節數,首字母bm,b,w分別表示位圖、字節,雙字節):
bmRequestType(1)+bRequest(1)+wvalue(2)+wIndex(2)+wLength(2)