新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > USB字符串描述符

USB字符串描述符

作者: 時間:2016-12-12 來源:網絡 收藏
USB中,字符串描述符是可選的,也就是屬于可有可無的角色,USB并沒有強制規(guī)定必須有,但是一般產品是有的,至少能說明生產廠家、產品信息等等,要不然這個產品看誰還敢用。

本文引用地址:http://2s4d.com/article/201612/328945.htm

如果設備沒有字符串描述符,那么在設備描述符、配置描述符、接口描述符等處的字符串索引值必須為0,要不然在枚舉過程中,USB主機會嘗試去獲取字符串描述符,而剛好你又沒有,那么枚舉就會失敗,所以必須指定為0。

字符串描述符使用UNICODE編碼,可以支持多種語言,所以字符串描述符首先要指定語言ID,語言ID代碼可以參考這個網站:http://www.usb.org/developers/docs/USB_LANGIDs.pdf,例如:簡體中文的ID值為0x0804,美式英語ID值為0x0409。

語言ID字符串描述符結構定義如下:

在枚舉過程中,USB主機會向USB設備發(fā)送GET_DESCRIPTOR請求,同時wValue字段高字節(jié)為描述符類型,字符串描述符的類型為0x03,低字節(jié)為字符串描述符索引值,對于語言ID的索引為0,其它字符串描述符索引由設備描述符指定,wIndex字段為語言ID。

字符串描述符結構定義如下:

bLength為描述符長度,bDescriptorType為描述符類型,字符編碼統(tǒng)一采用UNICODE編碼,UNICODE采用兩個字節(jié)字節(jié)表示一個字符,如果是英語字符的話,那就很簡單了,直接在ASCII碼前面補上一個為0x00的字節(jié)數(shù)據(jù)就組成UNICODE編碼了,如果是其它語言的話,網上有很多的UNICODE編碼轉換工具,可以直接拿來使用就行了。

最后補上我的USB鼠標字符串描述符信息。

語言ID信息:

廠商字符串描述符如下:

我在Virtual Box中捕獲的信息,所以廠商字符串為VirtualBox。

產品字符串描述符信息如下:



關鍵詞: USB字符串描述

評論


技術專區(qū)

關閉