關(guān) 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設(shè)計應(yīng)用 > 淺析USB主機識別USB設(shè)備及請求命令的方法

        淺析USB主機識別USB設(shè)備及請求命令的方法

        作者: 時間:2012-10-12 來源:網(wǎng)絡(luò) 收藏

        插上時,就通過一系列的動作來對進行枚舉配置(配置是屬于枚舉的一個態(tài),態(tài)表示暫時的狀態(tài)),這這些態(tài)如下:

        本文引用地址:http://www.104case.com/article/202150.htm

        1、接入態(tài)(Attached):接入后,主機通過檢測信號線上的電平變化來發(fā)現(xiàn)設(shè)備的接入;

        2、供電態(tài)(Powered):就是給設(shè)備供電,分為設(shè)備接入時的默認供電值,配置階段后的供電值(按數(shù)據(jù)中要求的最大值,可通過編程設(shè)置)

        3、缺省態(tài)(Default):在被配置之前,通過缺省地址0與主機進行通信;

        4、地址態(tài)(Address):經(jīng)過了配置,設(shè)備被復(fù)位后,就可以按主機分配給它的唯一地址來與主機通信,這種狀態(tài)就是地址態(tài);

        5、配置態(tài)(Configured):通過各種標準的USB請求命令來獲取設(shè)備的各種信息,并對設(shè)備的某此信息進行改變或設(shè)置。

        6、掛起態(tài)(Suspended):總線供電設(shè)備在3ms內(nèi)沒有總線操作,即USB總線處于空閑狀態(tài)的話,該設(shè)備就要自動進入掛起狀態(tài),在進入掛起狀態(tài)后,總的電流功耗不超過280UA。

        標準的USB設(shè)備請求命令究竟是什么?

        標準的USB設(shè)備請求命令是用在控制傳輸中的“初始設(shè)置步驟”里的數(shù)據(jù)包階段(即DATA0,由八個字節(jié)構(gòu)成)。標準USB設(shè)備請求命令共有11個,大小都是8個字節(jié),具有相同的結(jié)構(gòu),由5個字段構(gòu)成(字段是標準請求命令的數(shù)據(jù)部分),結(jié)構(gòu)如下(括號中的數(shù)字表示字節(jié)數(shù),首字母bm,b,w分別表示位圖、字節(jié),雙字節(jié)):

        bmRequestType(1)+bRequest(1)+wvalue(2)+wIndex(2)+wLength(2)

        各字段的意義如下:

        1、bmRequestType:D7D6D5D4D3D2D1D0

        D7=0主機到設(shè)備

        =1設(shè)備到主機;

        D6D5=00標準請求命令

        =01 類請求命令

        =10用戶定義的命令

        =11保留值

        D4D3D2D1D0=00000 接收者為設(shè)備

        =00001 接收者為設(shè)備

        =00010 接收者為端點

        =00011 接收者為其他接收者

        =其他 其他值保留

        2、bRequest:請求命令代碼 在標準的USB命令中,每一個命令都定義了編號,編號的值就為字段的值,編號與命令名稱如下(要注意這里的命令代碼要與其他字段結(jié)合使用,可以說命令代碼是標準請求命令代碼的核心,正是因為這些命令代碼而決定了11個USB標準請求命令):

        0) 0 GET_STATUS:用來返回特定接收者的狀態(tài)

        1) 1 CLEAR_FEATURE:用來清除或禁止接收者的某些特性

        2) 3 SET_FEATURE:用來啟用或激活命令接收者的某些特性

        3) 5 SET_ADDRESS:用來給設(shè)備分配地址

        4) 6 GET_DEscriptOR:用于主機獲取設(shè)備的特定描述符

        5) 7 SET_DEscriptOR:修改設(shè)備中有關(guān)的描述符,或者增加新的描述符

        6) 8 GET_CONFIGURATION:用于主機獲取設(shè)備當前設(shè)備的配置值(注同上面的不同)

        7) 9 SET_CONFIGURATION:用于主機指示設(shè)備采用的要求的配置

        8) 10 GET_INTERFACE:用于獲取當前某個接口描述符編號

        9) 11 SET_INTERFACE:用于主機要求設(shè)備用某個描述符來描述接口

        10) 12 SYNCH_FRAME:用于設(shè)備設(shè)置和報告一個端點的同步幀

        以上的11個命令要說得明白真的有一匹布那么長,請各位去看書吧,這里就不多說了,控制傳輸是USB的重心,而這11個命令是控制傳輸?shù)闹匦模赃@11個命令是重中之重,這個搞明白了,USB就算是入門了。

        更多計算機與外設(shè)信息請關(guān)注21ic計算機與外設(shè)頻道



        關(guān)鍵詞: USB 主機 識別 設(shè)備

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 特克斯县| 区。| 渭源县| 龙州县| 丽水市| 莫力| 清流县| 宝兴县| 凌源市| 济宁市| 新昌县| 连城县| 嘉兴市| 胶州市| 屯昌县| 新兴县| 织金县| 金溪县| 延吉市| 锡林郭勒盟| 延安市| 山阳县| 三原县| 县级市| 乌兰浩特市| 青海省| 北碚区| 邯郸市| 永平县| 保康县| 称多县| 武平县| 博白县| 唐山市| 缙云县| 宁明县| 昆明市| 台湾省| 区。| 久治县| 都安|