呵呵,楼主把事情搞复杂了.
|
这些描述符都是USB协议的问题(咱们才不管那么多呢),具体解释在一般的USB书上都会有解释.其实你的终端设备接到PC机时,只要能显示您所需要的设备名称型号,不同的设备有不同的型号区分就可以了,这只需修改两个地方,一个是设备上的USB固件程序的设备描述符:<br />//设备描述符<br /> USB_DEVICE_DESCRIPTOR DeviceDescr =<br />{<br /> sizeof(USB_DEVICE_DESCRIPTOR), //设备描述符长度,= 12H<br /> USB_DEVICE_DESCRIPTOR_TYPE, //设备描述符类型,= 01H<br /> 0x00,0x01, //协议版本,= 1.10<br /> USB_CLASS_CODE_TEST_CLASS_DEVICE,//测试设备类型, = 0DCH<br /> 0, 0, //设备子类,设备协议<br /> EP0_PACKET_SIZE, //端点0最大数据包大小,= 10H<br /> 0x71,0x04, //PHILIPS公司的设备ID <br />// 0x66,0x06, //设备制造商定的产品ID<br />// 0x00,0x65, //设备制造商定的产品ID <br />#if ST7000<br /> 0x00,0x70, //设备制造商定的产品ID <br />#else<br /> 0x00,0x71,<br />#endif<br /> 0x00,0x01, //设备系列号<br /> 0, 0, 0, //索引<br /> 1 //可能的配置数<br />};<br /><br />注:我们用宏定义,定义了两个不同型号的设备,该结构你可以从USB书籍上找到设备描述符的结构<br />另外一个是PC机上USB驱动的*.inf文件:<br /><br />......<br />%USBVID_0471&PID_7000.DeviceDesc%=D12TEST.Dev, USBVID_0471&PID_7000<br />%USBVID_0471&PID_7100.DeviceDesc%=D12TEST.Dev, USBVID_0471&PID_7100<br />......<br />USBVID_0471&PID_7000.DeviceDesc="ST-7000C"<br />USBVID_0471&PID_7100.DeviceDesc="ST-7100C"<br />.......<br /><br />注:上面的"ST-7000C"和"ST-7100C"就是两个不同的型号的设备
|
|