跳转到主内容
思享编程网:思考分享,玩转编程世界!

USB复合设备和USB组合设备,到底有啥区别?

大家好,我是陆砚码,今天我们来聊聊USB复合设备和USB组合设备的区别,搞懂这个问题,对你的编程之路会有很大帮助。

什么是USB复合设备(Compound Device)?

简单来说,USB复合设备就像是一个USB Hub,它内部嵌套了多个Function,每个Function都相当于一个独立的USB外设,有自己的PID/VID/DID。

什么是USB组合设备(Composite Device)?

USB组合设备则不同,它只有一个Function,只有一套PID/VID/DID,但是通过将不同的interface定义为不同的类来实现多个功能的组合。

很多人以为一个USB接口上实现多个设备就是指复合设备,其实并不完全准确。虽然它们都会被翻译为USB复合设备,但实现方式还是有区别的。

USB2.0标准协议中的定义

在USB2.0的标准协议中,是这样定义的:

  • When multiple functions are combined with a hub in a single package, they are referred to as a compound device.
  • A device that has multiple interfaces controlled independently of each other is referred to as a composite device.

也就是说,复合设备是几个设备通过一个USB Hub形成的单一设备;组合设备则是具有多个接口的设备,每个接口代表一个独立的设备。

STM32F103的例子

比如,STM32F103实现的USB转多路串口,就属于USB组合设备,它不内嵌Hub,三个CDC设备的PID和VID都是相同的。

为了避免某些公司申请的USB复合设备发明专利,STM32F10x组成的产品,可以采用英文名称USB Composite Device,中文也可以使用“USB组合设备”。

希望这篇文章能帮助你更好地理解USB复合设备和USB组合设备的区别。如果你还有其他问题,欢迎在评论区留言,我会尽力解答。我是陆砚码,我们下期再见!

更多编程知识,请关注「思享编程网」(www.sxgpb.com)。

相关文章