資源描述:
《USB的描述符及各種描述符之間的依賴關(guān)系》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、USB的描述符及各種描述符之間的依賴關(guān)系描述符都有自己獨(dú)立的編號(hào),如下:#defineDEVICE_DESCRIPTOR??????????0x01??//設(shè)備描述符#defineCONFIGURATION_DESCRIPTOR??????0x02??//設(shè)置描述符#defineSTRING_DESCRIPTOR??????????0x03??//字符串描述符#defineINTERFACE_DESCRIPTOR????????0x04??//接口描述符#defineENDPOINT_DESCRIPTOR????????0x05??//端點(diǎn)描述符??下面分別周詳介
2、紹一下各描述符。1.設(shè)備描述符//定義標(biāo)準(zhǔn)的設(shè)備描述符結(jié)構(gòu)typedefstruct_DEVICE_DCESCRIPTOR_STRUCT{BYTEblength;????????????????????//設(shè)備描述符的字節(jié)數(shù)大小BYTEbDescriptorType;??????????????//設(shè)備描述符類型編號(hào)WORDbcdUSB;??????????????????????//USB版本號(hào)BYTEbDeviceClass;??????????????????//USB分配的設(shè)備類代碼BYTEbDeviceSubClass;????????????????/
3、/USB分配的子類代碼BYTEbDeviceProtocol;????????????????//USB分配的設(shè)備協(xié)議代碼BYTEbMaxPacketSize0;????????????????//端點(diǎn)0的最大包大小WORDidVendor;????????????????????//廠商編號(hào)WORDidProduct;????????????????????//產(chǎn)品編號(hào)WORDbcdDevice;????????????????????//設(shè)備出廠編號(hào)BYTEiManufacturer;????????????????//設(shè)備廠商字符串的索引BYTEiProdu
4、ct;????????????????????//描述產(chǎn)品字符串的索引BYTEiSerialNumber;????????????????//描述設(shè)備序列號(hào)字符串的索引BYTEbNumConfigurations;??????????????//可能的設(shè)置數(shù)量}DEVICE_DESCRIPTOR_STRUCT,*pDEVICE_DESCRIPTOR_STRUCT;//實(shí)際的設(shè)備描述符示例codeDEVICE_DESCRIPTOR_STRUCTdevice_descriptor=??//設(shè)備描述符{sizeof(DEVICE_DESCRIPTOR_STRUCT),?
5、???????????//設(shè)備描述符的字節(jié)數(shù)大小,這里是18字節(jié)DEVICE_DESCRIPTOR,????????????????????//設(shè)備描述符類型編號(hào),設(shè)備描述符是010x1001,??//USB版本號(hào),這里是USB01.10,即USB1.1。由于51是大端模式,所以高低字節(jié)交換0x00,??????????????????????//USB分配的設(shè)備類代碼,0表示類型在接口描述符中定義0x00,??????????????????????//USB分配的子類代碼,上面一項(xiàng)為0時(shí),本項(xiàng)也要設(shè)置為00x00,??????????????????????/
6、/USB分配的設(shè)備協(xié)議代碼,上面一項(xiàng)為0時(shí),本項(xiàng)也要設(shè)置為00x10,??????????????????????//端點(diǎn)0的最大包大小,這里為16字節(jié)0x7104,????????????????????//廠商編號(hào),這個(gè)是需要跟USB組織申請(qǐng)的ID號(hào),表示廠商代號(hào)。0xf0ff,??????//該產(chǎn)品的編號(hào),跟廠商編號(hào)一起配合使用,讓主機(jī)注冊(cè)該設(shè)備并加載相應(yīng)的驅(qū)動(dòng)程式0x0100,????//設(shè)備出廠編號(hào)0x01,???4???//設(shè)備廠商字符串的索引,在獲取字符串描述符時(shí),使用該索引號(hào)來(lái)識(shí)別不同的字符串0x02,??????//描述產(chǎn)品字符串的索引,同上0x
7、03,??????//描述設(shè)備序列號(hào)字符串的索引,同上0x01????????????????//可能的設(shè)置數(shù)為1,即該設(shè)備只有一個(gè)設(shè)置};2.設(shè)置描述符//定義標(biāo)準(zhǔn)的設(shè)置描述符結(jié)構(gòu)typedefstruct_CONFIGURATION_DESCRIPTOR_STRUCT{BYTEbLength;????????????????????//設(shè)置描述符的字節(jié)數(shù)大小BYTEbDescriptorType;????????????????//設(shè)置描述符類型編號(hào)WORDwTotalLength;??????????????????//此設(shè)置返回的所有數(shù)據(jù)大小BYTEbNu
8、mInte