USB百科
+ -

USB复合设备Compoite Device与组合设备Compound Device

2023-04-28 1548 0

USB的设备有两种“复合”,这两种复合从硬件组成的解的角度分为两种:
为了便于区分,这里我们定义两个名词:

  • USB组合设备Compound Device
  • USB复合设备Compoite Device

USB组合设备-Compound Device

USB组合设备比较暴力,就是通过USB集线器将多个物理的USB设备通过集线器级联起来进行封装,对外预留一个USB集线器的上游端口。
USB组合设备中的每个设备包括集线器本身都会在该集线器上有独立的地址。
在USBTreeViewer这类工具下,会显示出设备的层级关系,如果移除设备,可以看到是一个设备树节点被移除。

USB组合设备

假如我们有一个USB组合设备插入电脑,在USBTreeViewer中如下图中红框中显示:
USBTreeViewer
系统一下子枚举出了一个USB集线器和其下游的子设备,如果移除设备,其USB集线器及其下游的所有设备均移除。

所以可以这样定义:从外观或者包装上来看的这个USB设备,如果其USB接口是其一个USB集线器的上游端口,这类设备被定义为USB组合设备(Compound Device)。

USB组合设备每个设备有独立的设备描述符,分配独立的USB总线地址。
USB组合设备是硬件工程师组合的USB设备。
USB组合设备各个设备的PIDVID一般不相同。
USB组合设备的每个设备有独立的配置描述符,并且都需要独立在USB总线上传输。

USB复合设备Composite Device

USB复合设备是一个USB物理设备,其表现为这个USB接口就是一个USB设备芯片的接口。
USB复合设备Compoite

USB复合设备是一个USB设备芯片实现了多个USB设备功能,其是通过USB接口描述符来实现不同的设备功能。
USB复合设备在USBTreeVeiwer下只显示一个USB设备,是软件工程师复合的USB设备。
还是如上图的USBTreeViewer中的Port8,可以看到是一个UAC耳机。其在Windows设备管理器下如下:
UAC耳机
其根节点必是通过USB Composite Device(usbccgp.sys)来驱动,其子节点的硬件ID必带MI_0X,并且所有设备其享一组PIDVID.
USB复合设备的配置描述符一次获取完整后,再由系统驱动根据其接口功能的不同,而进行逻辑拆分组合,生成逻辑设备。

HID人机交互QQ群:564808376    UAC音频QQ群:218581009    UVC相机QQ群:331552032    BOT&UASP大容量存储QQ群:258159197    STC-USB单片机QQ群:315457461    USB技术交流QQ群2:580684376    USB技术交流QQ群:952873936   

0 篇笔记 写笔记

USB复合HID设备报告描述符的区分
在USB规范中,设备的功能是通过接口来承载的,在USB规格书中就是接口描述符。对于一般的设备,一般一个接口就是一个功能,这个功能可以是鼠标,键盘或其它设备类型。当然这个只是对USB简易设备而言的,对于一些USB复杂设备如UVC摄像头,UAC音频等是多接口相互配合来实现其功能的,为了整合这么多接口使......
USB复合设备-UVC摄像头HID设备共存的设计实现
通常做USB设备的开发,我们做的都是单一的功能设备。这种单一的功能设备只实现某种特定的功能,如只实现一个HID鼠标或键盘,只实现一个USB存储功能,或再复杂一点只实现一个UVC音频麦克风和扬声器功能或一个UVC摄像头功能。但我们在一般的市场上看到的设备通常不只实现一种功能,如UVC摄像头功能还提供......
HID复合设备(键盘、鼠标)的实现
在使用一些USB键盘或鼠标的时候,特别是一些电竟高档HID设备时,经常发现这些设备会额外定义一些特别的快捷键,使得这些设备不仅有基础设备(如键盘,鼠标)的功能,也有一些特别的快捷功能(如系统声音的放大放小)。甚至更有一些复杂的设备,只需要一个USB接口,就同时支持鼠标键盘功能或在键盘的额外区域支持触......
USBCCGP 复合USB设备的枚举
当新的 USB 设备连接到主机计算机时,USB 总线驱动程序创建设备的物理设备对象 (PDO),并生成报告新 PDO 的即插即用事件。 操作系统然后,查询的硬件 Id 与 PDO 相关联的总线驱动程序。对于所有 USB 设备、 USB 总线驱动程序报告设备 ID具有以下格式:USBVID_xx......
USBCCGP 复合设备接口设备ID
复合 USB 设备上的接口可分组到集合中或分别代表一个 USB 函数。如果接口未分组在集合中,则通用父驱动程序会为每个接口创建一个 PDO,并为每个 PDO 生成一组硬件 Id。USB设备ID接口 PDO 的设备 ID具有以下格式:USBVID_v(4)&PID_p(4)&MI......
模仿USBCCGP对USB复合设备功能分析打印输出
源代码如下:VOIDDumpFunctionDescriptor( IN PUSBC_FUNCTION_DESCRIPTOR FunctionDescriptor, IN ULONG FunctionDescriptorCount){ ULONG Index, Sub......
UAC复合设备(麦克风,扬声器,HID设备)的示例
UAC符合设备(麦克风,扬声器,HID设备)在设备管理器中如下图所示:在BUSHOUND下如下图所示:UAC音频设备UAC音频设备包括扬声器和麦克风。其中USB Pnp Audio Device使用了接口0,1,2,分别用于控制接口,扬声器和麦克风。HID音量控制设备USB输入设备用于音频的......
HID复合设备部分接口设备无数据响应问题
群里有位同学使用USB的多接口功能实现了一个复合设备,即使用了多个接口描述符,每个接口描述符下一组端点,用于数据传输,当然每组下也有一组HID描述符和其对应的HID报告描述符。关于HID复合设备接口描述符与其接口描述符的对应关系可见:http://www.usbzh.com/article/deta......
HID报告描述符复合HID设备
如我们电脑中有一个键盘,其设备管理器中如下:它们的硬件ID分别如下:USBVID_1A2C&PID_2124&REV_0110USBVID_1A2C&PID_2124&REV_0110&MI_00HIDVID_1A2C&PID_2124......
HID复合鼠标报告描述符
0x05, 0x01, // USAGE_PAGE (Generic Desktop) 0x09, 0x02, // USAGE (Mouse) 0xa1, 0x01, ......
HID设备ReportId冲突的验证探讨
需求永远是变态的,但能完成这个变态的需求,只能说我们也是极度的变态。有这么一个需求,一个自定义的HID设备,假如其ReportId分别为1,3,5用于输入,2,4,6用于输出。并且其原有的功能是可以稳定的工作的。不过现在我们有个需求,就是在不修改固件的情况下,对原有的ReportId=1时,进行扩......
USB复合设备Compoite Device与组合设备Compound Device
USB的设备有两种“复合”,这两种复合从硬件组成的解的角度分为两种:为了便于区分,这里我们定义两个名词:USB组合设备Compound DeviceUSB复合设备Compoite DeviceUSB组合设备-Compound DeviceUSB组合设备比较暴力,就是通过USB集线器将多个物理的......
关于USB复合设备CompositeDevice的交待
USB设备按复合的实现机制,分为组合设备和复合设备。关于他们之间的区分可详见:USB复合设备Compoite Device与组合设备Compound Device https://www.usbzh.com/article/detail-1175.html为了便于区分,本站定义为:USB复合设备......
USBIP USB根集线器节点信息IOCTL_USB_GET_NODE_INFORMATION
IOCTL_USB_GET_NODE_INFORMATION用于获取USB根集线器信息PAGEABLE NTSTATUSvhci_ioctl_vhub(pvhub_dev_t vhub, PIRP irp, ULONG ioctl_code, PVOID buffer, ULONG inlen,......
关注公众号
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

您的支持,是我们前进的动力!