阅读:1406回复:6
高手请教一下,USB协议中设备描述符的设置
我在设置设备描述符的时候遇到一些问题,望高手们指点指点一下小弟,谢谢!!!在设备描述符中有几项如:bdeviceclass, bdevicesubclass, bmaxpacketsize, 我看了很多资料都只是知道bdeviceclass,怎么设置,但是后两项就不知道了,好像我想做一个U盘,那么bdeviceclass就是设置为0x08,但是后面两项我就不知道怎样设置,高手们有没有相关资料,可以给小弟参考一下。
还有在设备描述符里面还有idvender, idproduct, beddevice, imanufacturer, iproduct, iserialnumber,等等应该怎样设置的??我搞了很久都搞不懂,请高手们指点一下,万谢~~~ |
|
沙发#
发布于:2009-04-29 15:18
自己顶一下~~~~
|
|
板凳#
发布于:2009-04-29 19:59
我还在门外,想入,帮顶
|
|
地板#
发布于:2009-04-29 20:04
struct {
BYTE bLength; // 描述符的长度,以字节为单位 BYTE bDescriptorType; // 设备描述符类型,0x01 WORD bcdUSB; // 设备支持的USB协议版本,BCD码 BYTE bDeviceClass; // 设备类代码(由USB-IF分配) BYTE bDeviceSubClass; // 子类代码 BYTE bDeviceProtocol; // 协议码 BYTE bMaxPacketSize0; // 端点0的最大包长度(仅为8,16,32,64) WORD idVendor; // 厂商ID(由USB-IF分配) WORD idProduct; // 产品ID(由制造商定义) WORD bcdDevice; // 设备发行号(BCD码) BYTE iManufacture; // 描述厂商信息的字符串描述符的索引值 BYTE iProduct; // 描述产品信息的字符串描述符的索引值 BYTE iSerialNumber; // 描述设备序列号信息的字符串描述符的索引值 BYTE bNumConfigurations; // 可能的配置描述符的数目 } device_descriptor |
|
地下室#
发布于:2009-05-05 15:36
谢谢楼上,写得那么详细,不过这些在协议里面都有提到过,我想问的是
BYTE bDeviceSubClass; // 子类代码 BYTE bDeviceProtocol; // 协议码 BYTE bMaxPacketSize0; // 端点0的最大包长度(仅为8,16,32,64) 这三项应该具体怎样设计????如我现在做的是U盘,那么上面三项具体应该是什么设置呢?? 还有 WORD idVendor; // 厂商ID(由USB-IF分配) WORD idProduct; // 产品ID(由制造商定义) WORD bcdDevice; // 设备发行号(BCD码)应该怎样设置呢?? 还有 BYTE iManufacture; // 描述厂商信息的字符串描述符的索引值 BYTE iProduct; // 描述产品信息的字符串描述符的索引值 BYTE iSerialNumber; // 描述设备序列号信息的字符串描述符的索引值 我看过一些参考程序,上面三项都是设为0x00,为什么要这样设置呢?什么涵义呢?? 请各大路过的高手们,帮帮忙啊~~~~万谢啦!!!!! |
|
5楼#
发布于:2009-05-15 14:59
BYTE bDeviceSubClass; 0x06
USB设备所属的协议类的子类,MassStorage设备该值是 0x06,代表: SCSI transparent command set BYTE bDeviceProtocol; 0x50 设备协议, MassStorage设备该值是 0x50,代表: Bulk传输。 这两个值要参考USB各设备类的SPEC,如VideoClass, Massstorage, HID 的协议。 BYTE bMaxPacketSize0; // 端点0的最大包长度(仅为8,16,32,64) 一般取值64 还有 WORD idVendor; // 厂商ID(由USB-IF分配) 厂商的Vendor, 各厂商各USB组织申请的两字节数值,可以USB.org上查处 WORD idProduct; // 产品ID(由制造商定义) 厂商设备的编号,厂商自定义 WORD bcdDevice; // 设备发行号(BCD码)应该怎样设置呢? 厂商设备版本。厂商自定义 |
|
6楼#
发布于:2009-05-18 12:15
顶顶顶!!!我顶
|
|