




已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
USB的描述符與命令請求詳解一、 描述符1. 什么是描述符所謂描述符,就是用于描述設(shè)備特性的具有特定格式排列的一種數(shù)據(jù)組織結(jié)構(gòu)。2. 描述符的作用描述符的作用在于設(shè)備向主機(jī)匯報(bào)自己的信息、特征,主機(jī)根據(jù)這些信息從而加載相應(yīng)的驅(qū)動(dòng)程序。3. 描述符的分類描述符分為三大類:標(biāo)準(zhǔn)描述符、設(shè)備類描述符、廠商描述符。除字符串描述符可選外,任何設(shè)備都必須包含剩下的幾種標(biāo)準(zhǔn)描述符。在USB1.0中規(guī)定了5種標(biāo)準(zhǔn)的描述符:設(shè)備描述符配置描述符接口描述符端點(diǎn)描述符字符串描述符規(guī)定的設(shè)備類描述符有:集線器類描述符、人機(jī)接口類描述符。下表是三種描述符的類型值:表1 . USB描述符的類型值類型描述符描述符值標(biāo)準(zhǔn)描述符設(shè)備描述符(Device Descriptor)0x01配置描述符(Configuration Descriptor)0x02字符串描述符(String Descriptor)0x03接口描述符(Interface Descriptor)0x04端點(diǎn)描述符(EndPont Descriptor)0x05類描述符集線器類描述符(Hub Descriptor)0x29人機(jī)接口類描述符(HID)0x21廠商定義的描述符0xFF4. 使用的幾種類設(shè)備類DeviceClass下表是設(shè)備類值的含義。表2. 設(shè)備的類別(bDeviceClass)值(十進(jìn)制)值(十六進(jìn)制)說明00x00使用接口描述符中提供的類20x02通信類(CDC)90x09集線器類2200xDC用于診斷用途的設(shè)備類2240xFE混雜類型設(shè)備類2550xFF廠商定義的設(shè)備類接口類InterfaceClass下表是接口類值的含義。表3. USB協(xié)議定義的接口類別(bInterfaceClass)值(十六進(jìn)制)類別0x01音頻類0x02通信類(CDC)0x03人機(jī)接口類(HID)0x05物理類0x06圖像類0x07打印機(jī)類0x08大數(shù)據(jù)存儲(chǔ)類0x09集線器類0x0ACDC數(shù)據(jù)類0x0B智能卡類0x0D安全類0xDC診斷設(shè)備類0xE0無線控制器類0xEF混雜設(shè)備類0xFE特定應(yīng)用類(包括紅外的橋接器等)0xFF廠商定義的設(shè)備 類的交叉與獨(dú)享在描述符中,只有設(shè)備描述符和接口描述符中會(huì)有類別之分,即只有設(shè)備和接口會(huì)分類使用,不過有些類別的使用只需經(jīng)過設(shè)備或接口的區(qū)分就可徹底清楚明白,這說明在設(shè)備類別和接口類別的定義上會(huì)有共同的類別名稱。而有些類別則是設(shè)備或接口獨(dú)享的,下表是與使用設(shè)備相關(guān)的類別劃分交叉或共享情況:Base Class Usage Description 00h Device Use class information in the Interface Descriptors 01h Interface Audio 02h Both Communications and CDC Control 03h Interface HID (Human Interface Device) 05h Interface Physical 06h Interface Image 07h Interface Printer 08h Interface Mass Storage 09h Device Hub 0Ah Interface CDC-Data 0Bh Interface Smart Card 0Dh Interface Content Security 0Eh Interface Video 0Fh Interface Personal Healthcare 10h Interface Audio/Video Devices DCh Both Diagnostic Device E0h Interface Wireless Controller EFh Both Miscellaneous FEh Interface Application Specific FFh Both Vendor Specific (此表也適用于標(biāo)準(zhǔn)命令Get_Descriptor中wValue域高字節(jié)的取值含義) 【說明:】在設(shè)備或接口分類上均可徹底分清使用的(Usage = Both),即在任一處描述符中定義即可的分清楚使用的類(Usage = Both)的基本類有:02h - 通信及CDC控制類;DCh - 診斷設(shè)備類;EFh - 混雜設(shè)備類;FFh - 廠商定義的設(shè)備類。5. 標(biāo)準(zhǔn)描述符設(shè)備描述符表4、USB設(shè)備描述符的結(jié)構(gòu)偏移域Bytes值描述0bLength1數(shù)字此描述符的字節(jié)數(shù)1bDecriptorType1常量描述符的類型(此處應(yīng)為0x01,即設(shè)備描述符)2bcdUSB2BCD碼USB版本號(BCD 碼)4bDeviceClass1設(shè)備類設(shè)備類碼:bDeviceClass = 0 ,表明設(shè)備類型使用接口描述符中定義的類型,且各個(gè)接口獨(dú)立工作。bDeviceClass = FFh,表明設(shè)備類是由廠商自定義的。bDeviceClass = 1FEh,查表可得對應(yīng)設(shè)備類值,該設(shè)備在不同的接口上支持不同的類。且這些接口可能不能獨(dú)立工作。此值指出了這些接口集體的類定義。5bDeviceSubClass1設(shè)備子類設(shè)備子類碼: 這些碼值的具體含義根據(jù)bDeviceClass 域來看。 如bDeviceClass 域?yàn)榱?,此域也須為?如bDeviceClass 域?yàn)镕FH,此域的所有值保留。6bDevicePortocol1設(shè)備協(xié)議協(xié)議碼 這些碼的值視bDeviceClass 和 bDeviceSubClass 的值而定。 如果設(shè)備支持設(shè)備類相關(guān)的協(xié)議,此碼標(biāo)志了設(shè)備類的值。如果此域的值為零,則此設(shè)備不支持設(shè)備類相關(guān)的協(xié)議,然而,可能它的接口支持設(shè)備類相關(guān)的協(xié)議。如果此域的值為FFH,此設(shè)備使用廠商定義的協(xié)議。7bMaxPacketSize01數(shù)字端點(diǎn)0的最大包大?。▋H8,16,32,64為合法值)8idVendor2ID廠商標(biāo)志(由USB-IF組織賦值)10idProduct2ID產(chǎn)品標(biāo)志(由廠商賦值)12bcdDevice2BCD 碼設(shè)備版本號(BCD 碼)14iManufacturer1索引描述廠商信息的字符串描述符的索引值。15iProduct1索引描述產(chǎn)品信息的字串描述符的索引值。16iSerialNumber1索引描述設(shè)備序列號信息的字串描述符的索引值。17bNumConfigurations1數(shù)字可能的配置描述符數(shù)目【說明1:】當(dāng)設(shè)備類型bDeviceClass = 0時(shí),說明類型將由接口描述符中定義的為準(zhǔn)。【說明2:】從設(shè)備描述符表格中可知,有3個(gè)索引值:廠商信息索引、產(chǎn)品信息索引、設(shè)備序列號索引,這意味著,將有3個(gè)字符串描述符為其準(zhǔn)備。配置描述符配置描述符中包含了配置描述符本身的長度、所有配置信息的總長度、供電方式及遠(yuǎn)程喚醒、供電量。 如果主機(jī)發(fā)出標(biāo)準(zhǔn)命令Get_Descriptor要求獲得設(shè)備的某個(gè)配置描述符時(shí),該配置應(yīng)用的所有信息都將發(fā)給主機(jī),它包括:該標(biāo)準(zhǔn)配置符本身、該配置所包含的所有接口、端點(diǎn)描述符及設(shè)備類描述符和廠商描述符。 下表為配置描述符結(jié)構(gòu):表8、USB配置描述符的結(jié)構(gòu) 偏移量 域大小 值 描述 0bLength1 數(shù)字此描述表的字節(jié)數(shù)長度。 1bDescriptorType1 常量配置描述表類型(此處為0x02) 2wTotalLength2 數(shù)字此配置信息的總長(包括配置,接口,端點(diǎn)和設(shè)備類及廠商定義的描述符),即:將要返回的配置信息總長度。 4bNumInterfaces1 數(shù)字此配置所支持的接口個(gè)數(shù) 5bCongfigurationValue1 數(shù)字在SetConfiguration()請求中用作參數(shù)來選定此配置。 6iConfiguration1 索引描述此配置的字串描述符的索引 7bmAttributes1 位圖配置特性: D7: 保留(設(shè)為1) D6: 自給電源 D5: 遠(yuǎn)程喚醒 D4.0:保留(設(shè)為1) 一個(gè)既用總線電源又有自給電源的設(shè)備會(huì)在MaxPower域指出需要從總線取的電量。并設(shè)置D6為1。運(yùn)行時(shí)期的實(shí)際電源模式可由GetStatus(DEVICE) 請求得到。 8MaxPower1 mA在此配置下的總線電源耗費(fèi)量。以 2mA 為一個(gè)單位。 【說明1:】配置描述符也包含了個(gè)用于描述符該配置的字符串描述符索引iConfiguration,這說明將有個(gè)字符串描述符為其準(zhǔn)備。 【說明2:】枚舉的過程可分為4個(gè)狀態(tài)階段:接入狀態(tài)階段、缺省狀態(tài)階段、地址狀態(tài)階段、設(shè)置狀態(tài)階段,各狀態(tài)階段任務(wù)如下:接入狀態(tài)階段-主機(jī)檢測到新設(shè)備接入后,將復(fù)位總線(釋放總線于空閑狀態(tài))。缺省狀態(tài)階段-主機(jī)利用0x00地址訪問新接入的設(shè)備,讀取部分描述符后,會(huì)分配個(gè)設(shè)備地址。地址狀態(tài)階段-主機(jī)再次復(fù)位總線,然后用新分配的地址獲取設(shè)備所有的描述符。設(shè)置狀態(tài)階段-主機(jī)根據(jù)設(shè)備的描述符,會(huì)對設(shè)備作些相關(guān)的配置。 【說明3:】bCongfigurationValue-USB設(shè)備的配置值。用于存放主機(jī)執(zhí)行SetConfiguration命令的設(shè)置值。當(dāng)主機(jī)發(fā)送GetConfiguration命令時(shí),設(shè)備將向主機(jī)返回1個(gè)字節(jié)的配置值。然而,USB設(shè)備處于不同的狀態(tài)時(shí),對GetConfigration的請求也有不同的響應(yīng):1. 在枚舉階段,若設(shè)備處于地址狀態(tài)時(shí),對GetConfigration的請求返回為0;2. 在枚舉階段,若設(shè)備處于默認(rèn)狀態(tài)(缺省狀態(tài))時(shí),對GetConfigration的請求視為無效;3. 在枚舉階段,若設(shè)備處于配置狀態(tài)時(shí),對GetConfigration的請求將返回bConfigurationValue字段的值(該值可能是配置描述符的默認(rèn)值,也可能是USB主機(jī)的設(shè)置值,這要看在執(zhí)行GetConfigration命令前是否執(zhí)行了SetConfigration命令)。因?yàn)橹鳈C(jī)要執(zhí)行SetConfigration命令,所以bCongfigurationValue的默認(rèn)值沒什么用。實(shí)際上主機(jī)給bCongfigurationValue賦值后,bCongfigurationValue值就充當(dāng)配置描述符的編號,用以區(qū)分不同的配置,因?yàn)橐粋€(gè)設(shè)備可能有多個(gè)配置。接口描述符USB設(shè)備的接口,并不指物理接口,更確切的說應(yīng)該是“功能接口“,是個(gè)賦予特定功能邏輯概念,是由一組物理端點(diǎn)為實(shí)現(xiàn)這一特定功能而凝聚的集合。/定義標(biāo)準(zhǔn)的接口描述符結(jié)構(gòu)typedef struct _INTERFACE_DESCRIPTOR_STRUCT BYTE bLength; /接口描述符的字節(jié)數(shù)大小 BYTE bDescriptorType; /接口描述符的類型編號 BYTE bInterfaceNumber; /接口的編號 BYTE bAlternateSetting; /可替換的接口描述符編號。實(shí)際就是接口的描述符的編號。 BYTE bNumEndpoints; /該接口使用的端點(diǎn)數(shù),不包括端點(diǎn)0 BYTE bInterfaceClass; /接口類 BYTE bInterfaceSubClass; /接口子類 BYTE bInterfaceProtocol; /接口遵循的協(xié)議 BYTE iInterface; /描述該接口的字符串索引值 INTERFACE_DESCRIPTOR_STRUCT, * pINTERFACE_DESCRIPTOR_STRUCT;【說明1:】接口描述符中用到接口編號bInterfaceNumber,以區(qū)分在同一配置下的不同的接口。同時(shí)還有該接口描述符的索引iInterface,這意味著將為其準(zhǔn)備準(zhǔn)備一個(gè)字符串描述符。 【說明2:】接口描述符中有一項(xiàng):可替換的接口描述符編號bAlternateSetting,表示對某一接口進(jìn)行描述的描述符編號。雖然,USB設(shè)備的配置與配置描述符是一一對應(yīng)的,即一個(gè)配置只能由一個(gè)配置描述來描述它,但一個(gè)接口卻允許有多種描述符來描述它,盡管接口描述符的編號還是唯一一個(gè)。說白了就是:一個(gè)接口有唯一的一個(gè)接口編號,但一個(gè)接口卻可以有多個(gè)不同的描述符編號,而這些不同的接口描述符的編號值就是bAlternateSetting。所以,通過bInterfaceNumber可以選定一個(gè)唯一的接口,然后再通過bAlternateSetting選擇想要的對該接口的描述。主機(jī)通過GetInterface可以獲取當(dāng)前正在使用的接口及接口描述,通過SetInerface可以選定某接口及其使用的描述符。端點(diǎn)描述符端點(diǎn)是設(shè)備與主機(jī)之間進(jìn)行數(shù)據(jù)傳輸?shù)倪壿嫿涌?,除配置使用的端點(diǎn)0(控制端點(diǎn),一般一個(gè)設(shè)備只有一個(gè)控制端點(diǎn))為雙向端口外,其它均為單向。端點(diǎn)描述符描述了數(shù)據(jù)的傳輸類型、傳輸方向、數(shù)據(jù)包大小和端點(diǎn)號(也可稱為端點(diǎn)地址)等。每個(gè)設(shè)備必須要有一個(gè)默認(rèn)的控制型端點(diǎn),地址為0,它的數(shù)據(jù)傳輸為雙向,而且沒有專門的描述符,只是在設(shè)備描述符中定義了它的最大包長度。主機(jī)通過此端點(diǎn)向設(shè)備發(fā)送命令,獲得設(shè)備的各種描述符的信息,并通過它來配置設(shè)備。/定義標(biāo)準(zhǔn)的端點(diǎn)描述符結(jié)構(gòu)typedef struct _ENDPOINT_DESCRIPTOR_STRUCT BYTE bLegth; /端點(diǎn)描述符字節(jié)數(shù)大小 BYTE bDescriptorType; /端點(diǎn)描述符類型編號 BYTE bEndpointAddress; /端點(diǎn)地址及輸入輸出屬性 BYTE bmAttributes; /端點(diǎn)的傳輸類型屬性 WORD wMaxPacketSize; /端點(diǎn)收、發(fā)的最大包大小 BYTE bInterval; /對周期性端點(diǎn)的訪問間隔 ENDPOINT_DESCRIPTOR_STRUCT, * pENDPOINT_DESCRIPTOR_STRUCT;【說明1:】端點(diǎn)的傳輸類型字節(jié)bmAttributes,描述了該端點(diǎn)的傳輸特性:01bit定義了傳輸類型-00=控制傳輸、01=同步傳輸、10=批量傳輸、11=中斷傳輸?!菊f明2:】周期端點(diǎn)的訪問周期字節(jié)bInterval,定義了該端點(diǎn)被主機(jī)的訪問周期,此域值對于批量傳輸和控制傳輸毫無意義。對于同步傳輸,其值必須為1,即1ms為標(biāo)準(zhǔn)的同步幀周期。對于中斷傳輸,該值為1255,即1ms255ms。字符串描述符字符串描述符是一種可選的USB標(biāo)準(zhǔn)描述符,描述了如制商、設(shè)備名稱或序列號等信息。如果一個(gè)設(shè)備無字符串描述符,則其它描述符中與字符串有關(guān)的索引值都必須為0。字符串使用的是Unicode編碼。字符串描述符是用字符的形式描述設(shè)備、配置、接口、端點(diǎn)等信息。字符串描述符以一種格式2類符值的方式存在:1. 顯示語言的字符串描述符-該字符串描述符表明了設(shè)備支持哪幾種語言。2. 顯示信息的字符串描述符-用于描述具體的信息。標(biāo)準(zhǔn)的字符串描述符的格式為:表9. 字符串描述符偏移量 域 大小 值 描述 0bLength1數(shù)字此描述表的字節(jié)數(shù)(bString域的數(shù)值N2)1bDescriptorType1常量描述符類型(此處應(yīng)為0x03)2NStringsN數(shù)字字符串顯示語言的字符串描述符與顯示信息的字符串描述符的區(qū)別在于Strings項(xiàng)的不同,對于顯示語言的字符串描述符來說Strings項(xiàng)由多個(gè)wLANGIDn數(shù)組元素組成,每個(gè)wLANGIDn是一個(gè)雙字節(jié)的代表語言的ID值。而對于顯示信息的字符串描述符而言,Strings則是描述信息后的一組UNICODE編碼。為什么會(huì)出現(xiàn)這兩種情況,原因在于訪問字符串描述符的過程,主機(jī)請求訪問某個(gè)字符串描述符的步驟分成兩步:第一步:獲取語言信息-首先主機(jī)向設(shè)備發(fā)送標(biāo)準(zhǔn)請求命令Get_Descriptor,其參數(shù)為:描述符類型=字符串描述符,字符串的索引值=0,語言=0,這樣設(shè)備將返回顯示語言的字符串描述符,從而主機(jī)知道了設(shè)備能支持哪些語言。第二步:主機(jī)根據(jù)自已需要的語言,再次向設(shè)備發(fā)出標(biāo)準(zhǔn)請求命令Get_Descriptor,其參數(shù)為:描述符類型=字符串描述符,字符串索引值=目標(biāo)字符串索引值,語言=目標(biāo)語言。這次設(shè)備將返回目標(biāo)已經(jīng)明確的顯示信息的字符串描述符?!菊f明1:】只有字符串描述符的長度不是固定的,其長度為N+2,其中N代表Strings項(xiàng)的字節(jié)數(shù),2代表字符串描述符的bLength、bDescritorType所占的兩個(gè)字節(jié)。設(shè)備類描述符之HID描述符在USB協(xié)議中,HID設(shè)備的描述符沒有劃作為標(biāo)準(zhǔn)的描述符,而是作為一類設(shè)備單獨(dú)劃分出來進(jìn)行描述,以設(shè)備類的方式來描述它。所以,描述它的格式用設(shè)備類描述符。 HID設(shè)備的信息在設(shè)備描述符和配置描述符中都不包含,而是包含在接口描述符中,所以在使用HID設(shè)備時(shí),其設(shè)備描述符中的相關(guān)項(xiàng)應(yīng)定義如下:bDeviceClass=0;bDeviceSubClass=0;bDeviceProtocol=0;其接口描述符應(yīng)該:bInterfaceClass=0x03另外,對無引導(dǎo)的HID設(shè)備,其接口描述符中子類代碼bInterfaceSubClass應(yīng)置0,此時(shí)bInterfaceProtocol無效,置零即可。即為:bInterfaceClass=0x03 bInterfaceSubClass=0 bInterfaceProtocol=0對支持引導(dǎo)的USB設(shè)備,其接口描述符中子類代碼bInterfaceSubClass應(yīng)置1,此時(shí)bInterfaceProtocol可以為1或2,1表示鍵盤接口,3表示鼠標(biāo)接口。其參考設(shè)置如下:bInterfaceClass=0x03 bInterfaceSubClass=1 bInterfaceProtocol=1或2下面是HID設(shè)備類描述符:【說明1:】HID設(shè)備類描述符并不是說僅用這一個(gè)描述符就可描述清楚這類設(shè)備,而是指HID設(shè)備除包含所有的標(biāo)準(zhǔn)描述符外,還需這個(gè)HID設(shè)備來補(bǔ)充描述。也就是說,在使用一般的設(shè)備時(shí),只需使用標(biāo)準(zhǔn)的描述符就可描述清楚,而若使用HID設(shè)備時(shí),除了要使用全部的標(biāo)準(zhǔn)的描述符外還需HID描述符來補(bǔ)充描述。同時(shí),從HID描述符中看出,它還將引出HID的報(bào)告描述符,在此不講述??梢赃@么說,設(shè)備類描述符是作為一個(gè)對標(biāo)準(zhǔn)描述進(jìn)行補(bǔ)充描述的描述符。6. 描述符的編號及索引1. 一個(gè)USB設(shè)備只能擁有一個(gè)設(shè)備描述符,故設(shè)備描述符不需要編號。但設(shè)備描述符通常會(huì)提供設(shè)備最基本的文字描述信息,通常包含廠商、設(shè)備、產(chǎn)品的信息,故它擁有3個(gè)字符串描述符的索引,這3個(gè)索引將指向3個(gè)字符串描述,分別描述廠商信息、產(chǎn)品信息、設(shè)備序列號信息。簡言之,設(shè)備描述符指示了設(shè)備有幾種配置,及廠商、產(chǎn)品、設(shè)備序列號的字符串描述符索引。2. 配置描述符提供了相應(yīng)的配置參數(shù)和查找參數(shù):配置描述符編號bCongfigurationValue、配置描述符的字符串描述符的索引。3. 接口描述提供了該接口的應(yīng)用參數(shù)和查找參數(shù):接口編號bInterfaceNumber、接口描述符編號bAlternateSetting、該接口描述符對應(yīng)的字符串描述符的索引。4. 字符串描述符是對各描述符所需的字符信息描述的實(shí)現(xiàn),每個(gè)描述符所需的字符信息描述的索引都將對應(yīng)一個(gè)字符串描述符。但通常都不那么做,而是把所有的字符描述的實(shí)現(xiàn)都寫在一個(gè)總的字符串描述符中,即字符串描述符的bStrings項(xiàng),它們之間用索引來區(qū)分。7. 描述符的獲取獲取描述符的命令格式命令碼CmdCode = GetDescriptor , 格式如下:bmRequestTypebRequestwValuewIndexwLength0x800x60類型和索引0或語言ID描述符長度wValue-其高字節(jié)wValue_H指明要獲取的描述符類型(實(shí)際只有3種類型:設(shè)備描述符類型、配置描述符類型、字符串描述符類型),低字節(jié)wValue_L指明目標(biāo)描述符的索引,然而wValue_L的值只對配置描述符和字符串描述符有效,而對設(shè)備描述符無效。wIndex-只對字符串描述符有意義,對其它描述符時(shí)該值為0.。當(dāng)然對于字符串描述符時(shí),其值也可為0,表示要獲取“顯示語言的字符串描述符” ,若為其它值則代表了確定的語言ID,即表明要獲取指定了語言的“顯示信息的字符串描述符” 。wLength-主機(jī)要求的返回的描述符長度。如果wLength大于實(shí)際的描述符長度,則以實(shí)際描述符長度為準(zhǔn);如果wLength小于實(shí)際描述符長度,則以wLength值為準(zhǔn)。獲取描述符的過程獲取描述符屬于枚舉的過程,其整個(gè)過程當(dāng)然必經(jīng)Setup傳輸?shù)?大過程:Setup過程、數(shù)據(jù)過程、狀態(tài)信息過程。首先,在Setup過程中,主機(jī)發(fā)送GetDescriptor命令。若成功,設(shè)備就開始準(zhǔn)備數(shù)據(jù),通信將繼續(xù)向前推進(jìn),進(jìn)入數(shù)據(jù)過程。然后,在數(shù)據(jù)過程中,主機(jī)啟動(dòng)IN事件,設(shè)備就把準(zhǔn)備好的數(shù)據(jù)(描述符)發(fā)送出去。若成功,則通信繼續(xù)向前推進(jìn),進(jìn)入狀態(tài)信息過程。最后,在狀態(tài)信息過程,主機(jī)發(fā)送通信過程的信息狀態(tài),祝賀并告知通信完美結(jié)束。獲取配置描述符對于主機(jī)來說,配置是廣義的,包括狹義的配置、接口配置、端點(diǎn)配置等,而接口配置、端點(diǎn)配置等都隸屬于標(biāo)準(zhǔn)配置描述符,故主機(jī)若要求獲取配置描述符時(shí),實(shí)際上是要求獲取除設(shè)備描述符和字符串描述符以外的所有描述符。對于只有標(biāo)準(zhǔn)描述符的設(shè)備而言,當(dāng)主機(jī)要求或者配置描述符時(shí),需設(shè)備按照順序把標(biāo)準(zhǔn)配置描述符、標(biāo)準(zhǔn)接口描述符、標(biāo)準(zhǔn)端點(diǎn)描述符一次性發(fā)給主機(jī)。所以,通常在寫程序時(shí),會(huì)將廣義上的“配置”打成一個(gè)包,在包中,由標(biāo)準(zhǔn)配置描述符引領(lǐng),按照發(fā)送順序依次實(shí)現(xiàn)標(biāo)準(zhǔn)接口描述符、標(biāo)準(zhǔn)端點(diǎn)描述符等。這樣做的理由是,在標(biāo)準(zhǔn)配置描述符中有一項(xiàng)wTotalLength,它代表廣義上的配置包描述符總長度,根據(jù)這個(gè)參數(shù)就可把廣義的配置包描述符一起發(fā)給主機(jī),以避免多個(gè)描述符時(shí)的多次傳輸。bmRequestTypebRequestwValuewIndexwLength0x800x60類型和索引0或語言ID描述符長度 wValue _H = 配
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 西安航空基地管理辦法
- 西安動(dòng)態(tài)流動(dòng)管理辦法
- 福建苗圃育苗管理辦法
- 造船產(chǎn)值計(jì)算管理辦法
- 股靜脈護(hù)理課件
- 腸道與健康課件
- 醫(yī)院人員管理培訓(xùn)課件
- 腸內(nèi)營養(yǎng)課件
- 肝硬化腹水護(hù)理課件
- 高職分招數(shù)學(xué)試卷
- 設(shè)備安裝施工方案完整版
- 火針療法在皮膚病治療中的應(yīng)用
- 基于PLC的智能車庫門系統(tǒng)設(shè)計(jì)
- 【2023有效教學(xué)設(shè)計(jì)原理、策略與評價(jià)讀書報(bào)告3600字】
- 頂管專項(xiàng)施工方案-人工頂管
- SYNTEC參數(shù)說明手冊
- 2023春國家開放大學(xué)-01880組織行為學(xué)-期末考試題帶答案
- 2012年度天津市科學(xué)技術(shù)獎(jiǎng)評審結(jié)果
- 2022年臺(tái)州椒江區(qū)輔助警務(wù)人員招聘考試真題及答案
- 第二講土地估價(jià)技術(shù)報(bào)告難點(diǎn)及技術(shù)要求與處理辦法
- 房屋維修施工方案
評論
0/150
提交評論