USB字符串描述符
来源:互联网 发布:java学徒招聘 编辑:程序博客网 时间:2024/06/06 00:33
USB字符串描述符
在USB中,字符串描述符是可选的,也就是属于可有可无的角色,USB并没有强制规定必须有,但是一般产品是有的,至少能说明生产厂家、产品信息等等,要不然这个产品看谁还敢用。
如果设备没有字符串描述符,那么在设备描述符、配置描述符、接口描述符等处的字符串索引值必须为0,要不然在枚举过程中,USB主机会尝试去获取字符串描述符,而刚好你又没有,那么枚举就会失败,所以必须指定为0。
字符串描述符使用UNICODE编码,可以支持多种语言,所以字符串描述符首先要指定语言ID,语言ID代码可以参考这个网站:http://www.usb.org/developers/docs/USB_LANGIDs.pdf,例如:简体中文的ID值为0x0804,美式英语ID值为0x0409。
语言ID字符串描述符结构定义如下:
在枚举过程中,USB主机会向USB设备发送GET_DESCRIPTOR请求,同时wValue字段高字节为描述符类型,字符串描述符的类型为0x03,低字节为字符串描述符索引值,对于语言ID的索引为0,其它字符串描述符索引由设备描述符指定,wIndex字段为语言ID。
字符串描述符结构定义如下:
bLength为描述符长度,bDescriptorType为描述符类型,字符编码统一采用UNICODE编码,UNICODE采用两个字节字节表示一个字符,如果是英语字符的话,那就很简单了,直接在ASCII码前面补上一个为0x00的字节数据就组成UNICODE编码了,如果是其它语言的话,网上有很多的UNICODE编码转换工具,可以直接拿来使用就行了。
最后补上我的USB鼠标字符串描述符信息。
语言ID信息:
厂商字符串描述符如下:
我在Virtual Box中捕获的信息,所以厂商字符串为VirtualBox。
产品字符串描述符信息如下:
- USB字符串描述符
- Linux那些事儿 之 戏说USB(37)字符串描述符
- Linux那些事儿 之 戏说USB(33)字符串描述符
- USB 基本知识--描述符
- USB描述符
- USB描述符
- USB描述符
- USB描述符详解
- USB描述符
- USB HID描述符
- linux usb 描述符
- USB设备描述符
- USB HID 描述符
- USB HID描述符
- USB描述符
- USB描述符
- USB设备描述符
- USB描述符
- 如何评价『黑客与画家』
- PHPUnit学习笔记(五)PHPUnit参数详解
- android词典
- Windows Phone 7 开发 31 日谈——第24日:嵌入字体
- vbs 中移动其他sheet到当前工作薄中
- USB字符串描述符
- cin、cin.get()、cin.getline()、getline()、gets()等函数的用法
- Git Community Book 中文版
- java设计模式-单例模式
- java实现两个int类型的数的交换
- 关于C++虚函数自己的理解
- 类的继承,方法重载,方法覆盖
- Windows Phone 7 开发 31 日谈——第25日:外部API
- java经典问题——兔子