CDC类设备CDC类设备与其他标准USB设备枚举过程的并没有什么特殊的地方。在设备描述符内可以使用DeviceClass=0x00,SubClass=0x00, Protocol=0x00 表示此类信息在接口描述符内给出;或者也可以使用0x02,0x00,0x00;来表明该设备为CDC类设备。或者使用0xef, 0x02,0x01表示当前为复合设备。 USB CDC类配置描述符的结...
Defined Class Codes | USB-IF class 包含 class subclass protocol 组合在一起,用来指出设备具体功能。 device class举例 DEVICEDESCRIPTORbLength:18bDescriptorType:0x01(DEVICE)bcdUSB:0x0200bDeviceClass:Miscellaneous(0xef)bDeviceSubClass:2bDeviceProtocol:1(InterfaceAssociationDescriptor)bMaxPacketSize0:64idVendo...
class分为device class和interface class。具体的class值以及含义,参考define class。 https://www.usb.org/defined-class-codes class 包含 class subclass protocol 组合在一起,用来指出设备具体功能。 device class举例 DEVICE DESCRIPTOR bLength: 18 bDescriptorType: 0x01 (DEVICE) bcdUSB: 0x0200 bDeviceClass:...
usb协议定义的接口类别binterfaceclass值十六进制类别0x01音频类0x02通信类cdc0x03人机接口类hid0x05物理类0x06图像类0x07打印机类0x08大数据存储类0x09集线器类0x0acdc数据类0x0b智能卡类0x0d安全类0xdc诊断设备类0xe0无线控制器类0xef混杂设备类0xfe特定应用类包括红外的桥接器等0xff厂商定义的设备类的交叉与...
USB 通用类泛型父驱动程序是复合设备的Microsoft提供的父驱动程序。 如果deviceClass为 0 或 0xef,并且numInterfaces在设备描述符中大于 1,则中心驱动程序将枚举并加载父复合驱动程序。 中心驱动程序将父复合驱动程序的兼容 ID 生成为“USB\COMPOSITE”。 Usbccgp.sys使用 Windows 驱动程序模型 (WDM) 例...
bDeviceClass 0xEF bDeviceSubClass 0x02 bDeviceProtocol 0x01 这些代码值还会Windows IAD 的驱动程序版本发出警报,以安装正确枚举设备的特殊用途总线驱动程序。 如果设备描述符中没有这些代码,则系统可能无法枚举设备,或者设备可能无法正常运行。 设备可以具有多个 IAD。 每个 IAD 必须紧接在 IAD 描述的接口组中接口...
InterfaceClassCode_InterfaceSubclassCode_InterfaceProtocolCode 或Default 最终的注册表值可以为上面三个Group的不同组合,最多可达64种. 例如,有一USB摄像头设备如下: Device Descriptor: bcdUSB: 0x0110 bDeviceClass: 0xEFDeviceClassCode bDeviceSubClass: 0x02DeviceSubclassCode ...
这里bDeviceClass要改为0xEF,意思是USB复合设备,然后bDeviceSubClass是USB\\_CLASS\\_CDC,也就是0x02,最后一个实测没什么影响。 修改config信息。这个config信息其实用一个大的数组来存放会更加灵活 这个dual\\_cdc\\_acm\\_config\\_desc的信息按照那篇基于STM32F7的多个USB ...
设备描述符(bDeviceClass)的设备类字段必须包含一个值为零,或者设备描述符的类(bDeviceClass)、子类(bDeviceSubClass)和协议(bDeviceProtocol)字段必须分别具有值0xEF、0x02和0x01,如 USB 接口关联描述符中所述。 设备必须具有多个接口。 设备必须具有单个配置。
如上图所示,一般IAD存在的情况下,在设备描述符中DeviceClass等三个参数不再都为0x00,图12中为0xef,...