<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          USB字符串描述符

          作者: 時(shí)間:2016-12-12 來(lái)源:網(wǎng)絡(luò) 收藏
          USB中,字符串描述符是可選的,也就是屬于可有可無(wú)的角色,USB并沒(méi)有強(qiáng)制規(guī)定必須有,但是一般產(chǎn)品是有的,至少能說(shuō)明生產(chǎn)廠家、產(chǎn)品信息等等,要不然這個(gè)產(chǎn)品看誰(shuí)還敢用。

          本文引用地址:http://www.ex-cimer.com/article/201612/328945.htm

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

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

          語(yǔ)言ID字符串描述符結(jié)構(gòu)定義如下:

          在枚舉過(guò)程中,USB主機(jī)會(huì)向USB設(shè)備發(fā)送GET_DESCRIPTOR請(qǐng)求,同時(shí)wValue字段高字節(jié)為描述符類型,字符串描述符的類型為0x03,低字節(jié)為字符串描述符索引值,對(duì)于語(yǔ)言ID的索引為0,其它字符串描述符索引由設(shè)備描述符指定,wIndex字段為語(yǔ)言ID。

          字符串描述符結(jié)構(gòu)定義如下:

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

          最后補(bǔ)上我的USB鼠標(biāo)字符串描述符信息。

          語(yǔ)言ID信息:

          廠商字符串描述符如下:

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

          產(chǎn)品字符串描述符信息如下:



          關(guān)鍵詞: USB字符串描述

          評(píng)論


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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();