XP和Win7在处理USB复合设备时有什么不同?

XP和Win7在处理USB复合设备时有什么不同?

我已经使用 LPC2148 开发了一个 USB 设备,并且串行总线USB 堆栈。当我将其设置为 HID 设备(键盘)时,它工作正常,但当我将其设置为复合设备、存储(SD 闪存卡)和 HID 时,它仅在 Windows XP 上工作。我在两台不同的 Windows 7 计算机上尝试过,但都显示设备无法启动(代码 10 错误)。

我使用了两个软件来跟踪 USB(USBTrace 和 USBlyzer),但找不到发生了什么。该设备显示为已安装在 Win 7 上,但它在硬件设备属性中显示无法启动。那么有人知道在处理 USB 复合设备时 XP 和 Win7 之间有什么不同吗?

这里是源代码中的描述符,下面是 USBlyzer 的输出:

连接状态 设备已连接
当前配置 0
全速(12 Mbit/s)
设备地址 5
开放管道数量 0

* 设备描述符 Teleboard
偏移量 字段 大小 值 描述
0 b长度 1 12h     
1 bDescriptorType 1 01h 设备  
2 bcdUSB 2 0200h USB 规格 2.0    
4 bDeviceClass 1 00h Ifc 描述符中的类别信息   
5 b设备子类 1 00h     
6 b设备协议 1 00h     
7 bMaxPacketSize0 1 40h 64 字节    
8 ID供应商 2 FFFFh       
10 id产品 2 0003h       
12 bcd设备 2 0100h 1.00    
14 iManufacturer 1 01h “Acme”  
15 iProduct 1 02h “测试板”
16 iSerialNumber 1 03h “ADR2012”   
17 bNumConfigurations 1 01h     

* 配置描述符 1
配置描述符 1   
偏移量 字段 大小 值 描述
0 b长度 1 09h     
1 bDescriptorType 1 02h 配置   
2 wTotalLength 2 0042h       
4 bNumInterfaces 1 02h     
5 b配置值 1 01h     
6 配置 1 00h     
7 bmAttributes 1 C0h 自供电    
          4..0:保留...00000            
          5:远程唤醒..0.....否  
          6:自供电.1......是
          7:保留1.......
          (1.0 版采用总线供电)     
8 bMaxPower 1 32h 100 mA  

* 接口描述符 0/0 大容量存储,2 个端点
偏移量 字段 大小 值 描述
0 b长度 1 09h     
1 bDescriptorType 1 04h 接口   
2 b接口编号 1 00h     
3 bAlternateSetting 1 00h     
4 bNumEndpoints 1 02h     
5 bInterfaceClass 1 08h 大容量存储    
6 bInterfaceSubClass 1 06h SCSI 透明命令集    
7 bInterfaceProtocol 1 50h 仅批量传输
8 i接口 1 00h     

* 端点描述符 85 5 In,批量,64 字节
偏移量 字段 大小 值 描述
0 b长度 1 07h     
1 bDescriptorType 1 05h 端点    
2 b端点地址 1 85h 5 输入    
3 bmAttributes 1 02h 批量    
          1..0:传输类型......10 批量    
          7..2:保留 000000..            
4 wMaxPacketSize 2 0040h 64 字节    
6 b间隔 1 00h     

* 端点描述符 02 2 输出,批量,64 字节
偏移量 字段 大小 值 描述
0 b长度 1 07h     
1 bDescriptorType 1 05h 端点    
2 b端点地址 1 02h 2 输出   
3 bmAttributes 1 02h 批量    
          1..0:传输类型......10 批量    
          7..2:保留 000000..            
4 wMaxPacketSize 2 0040h 64 字节    
6 b间隔 1 00h     

* 接口描述符 1/0 HID,1 端点
偏移量 字段 大小 值 描述
0 b长度 1 09h     
1 bDescriptorType 1 04h 接口   
2 b接口编号 1 01h     
3 bAlternateSetting 1 00h     
4 bNumEndpoints 1 01h     
5 bInterfaceClass 1 03h HID
6 bInterfaceSubClass 1 00h     
7 b接口协议 1 01h     
8 i接口 1 00h     


* HID 描述符
偏移量 字段 大小 值 描述
0 b长度 1 09h     
1 bDescriptorType 1 21h HID
2 bcdHID 2 0110h 1.10    
4 b国家代码 1 00h     
5 bNumDescriptors 1 01h     
6 bDescriptorType 1 22h 报告  
7 wDescriptorLength 2 0040h 64字节    

* 端点描述符 81 1 输入,中断,32 毫秒
偏移量 字段 大小 值 描述
0 b长度 1 07h     
1 bDescriptorType 1 05h 端点    
2 b端点地址 1 81h 1 输入    
3 bmAttributes 1 03h 中断   
          1..0:传输类型......11中断   
          7..2:保留 000000..            
4 wMaxPacketSize 2 0008h 8字节
6 b间隔 1 20小时32毫秒   

* 字符串描述符
偏移量 字段 大小 值 描述
0 b长度 1 04h     
1 bDescriptorType 1 03h 字符串  
2 wLANGID[0] 2 0409h 英语(美国)

相关内容