資源描述:
《STM32 USB HID詳解》由會員上傳分享,免費在線閱讀,更多相關內容在學術論文-天天文庫。
1、STM32USBHID詳解1、USB簡介2、USB描述符USB只是一個總線,只提供一個數(shù)據(jù)通路而已。USB總線驅動程序并不知道一個設備具體如何操作,有哪些行為。具體的一個設備實現(xiàn)什么功能,要由設備自己來決定。那么,USB主機是如何知道一個設備的功能以及行為呢?這就要通過描述符來實現(xiàn)了。描述符中記錄了設備的類型、廠商ID和產品ID(通常依靠它們來加載對應的驅動程序)、端點情況、版本號等眾多信息。標準的USB設備有5種USB描述符:設備描述符,配置描述符,接口描述符,端點描述符,字符串描述符。下面詳解:2.1、設備描述符一個USB
2、設備只有一個設備描述符。設備描述符主要記錄的信息有:設備所使用的USB協(xié)議版本號、設備類型、端點0的最大包大小、廠商ID(VID)和產品ID(PID)、設備版本號、廠商字符串索引、產品字符串索引、設備序列號索引、可能的配置數(shù)等。偏移量域大小/字節(jié)說明0bLength1該描述符的長度(0x12=18字節(jié))1bDescriptorType1描述符類型(0x01設備描述符)2bcdUSB2本設備使用的USB協(xié)議版本4bDeviceClass1類代碼5bDeviceSubClass1子類代碼6bDeviceProtocol1協(xié)議碼7b
3、MaxPacketSize1端點0最大包長8idVendor2廠商ID10idProduct2產品ID12bcdDevice2設備版本號14iManufacturer1描述廠商的字符串索引15iProduct1描述產品的字符串索引16iSerialNumber1產品序列號的字符串索引17bNumConfigurations1可能的配置數(shù)2.2、配置描述符設備描述符里決定了該設備有多少種配置,每種配置都有一個配置描述符。配置描述符主要記錄的信息有:配置所包含的接口數(shù)、配置的編號、供電方式、是否支持遠程喚醒、電流需求量等。偏移量域
4、大小/字節(jié)說明0bLength1該描述符的長度(0x09字節(jié))1bDescriptorType1描述符類型(0x02配置描述符)2wTotalLength2配置、接口、端點和類描述符字節(jié)總和4bNumInterfaces1支持接口數(shù)5bConfigurationValue1本配置描述符標識6iConfiguration1配置描述符說明字符串索引7bmAttributes1電源及喚醒8MaxPower1設備耗電電流2.3、接口描述符在每個配置描述符中又定義了該配置有多少個接口,每個接口都有一個接口描述符。接口描述符主要記錄的信息
5、有:接口的編號、接口的端點數(shù)、接口所使用的類、子類、協(xié)議等。偏移量域大小/字節(jié)說明0bLength1該描述符的長度(0x09字節(jié))1bDescriptorType1描述符類型(0x04接口描述符)2bInterfaceNumber1本接口描述符標識3bAlternateSetting14bNumEndpoints1接口端點數(shù)5bInterfaceClass1接口類代碼6bInterfaceSubClass1啟動類型1=BOOT,0=NoBOOT7bInterfaceProtocol10=None,1=Keyboard,2=Mo
6、use8iInterface1接口描述符說明字符串索引2.4、[類描述符]該描述符不是必須的,如果配置的USB類型有類特殊描述符(如HID類),它跟在相應的接口描述符之后。2.5、端點描述符在接口描述符里又定義了該接口有多少個端點,每個端點都有一個端點描述符。端點描述符主要記錄的信息有:端點號及方向、端點的傳輸類型、最大包長度、查詢時間間隔等。偏移量域大小/字節(jié)說明0bLength1該描述符的長度(0x07字節(jié))1bDescriptorType1描述符類型(0x5端點描述符)2bEndpointAddress1端點地址3bmA
7、ttributes1端點類型4wMaxPacketSize2端點發(fā)送接收最大包長6bInterval1中斷端點輪訓時間間隔2.6、[字符串描述符]字符串描述符主要是提供一些方便人們閱讀的信息,它不是必需的。偏移量域大小/字節(jié)說明0bLength1該描述符的長度(0x04/0xXX字節(jié)),第一個字符串描述符0x041bDescriptorType1描述符類型(0x3字符串描述符)2wLANGID2/XX第一個字符串描述符時2字節(jié),表示語言編碼,其他自定義3、USBHID為了把一個設備識別為HID類別,設備在定義描述符的時候必須遵
8、守HID規(guī)范。除了USB標準定義的一些描述符外,HID設備還必須定義HID描述符。另外設備和主機的通信是通過報告的形式來實現(xiàn)的,所以還必須定義報告描述符;而物理描述符不是必需的。還有就是HID描述符是關聯(lián)于接口(而不是端點)的,所以設備不需要為每個端點都提供一個HID描述符。