科普下USB復(fù)合設(shè)備和USB組合設(shè)備的區(qū)別。
關(guān)鍵字
Communication Device Class,簡(jiǎn)稱CDC
USB Compound Device,USB復(fù)合設(shè)備
USB Composite Device,USB組合設(shè)備
摘要
Compound Device內(nèi)嵌Hub和多個(gè)Function,每個(gè)Function都相當(dāng)于一個(gè)獨(dú)立的USB外設(shè),有自己的PID/VID/DID。
Composite Device內(nèi)只有一個(gè)Function,只有一套PID/VID/DID,通過(guò)將不同的interface定義為不同的類來(lái)實(shí)現(xiàn)
多個(gè)功能的組合。
正文
Compound Device內(nèi)嵌Hub和多個(gè)Function,每個(gè)Function都相當(dāng)于一個(gè)獨(dú)立的USB外設(shè),有自己的PID/VID/DID。
Composite Device內(nèi)只有一個(gè)Function,只有一套PID/VID/DID,通過(guò)將不同的interface定義為不同的類來(lái)實(shí)現(xiàn)多個(gè)功能的組
合。
很多人認(rèn)為一個(gè)USB接口上實(shí)現(xiàn)多個(gè)設(shè)備,就是指復(fù)合設(shè)備,其實(shí),這是不確切的,雖然USB Compound Device和USB Composite Device
都會(huì)被百度翻譯為USB復(fù)合設(shè)備。
在一個(gè)USB接口上實(shí)現(xiàn)多個(gè)設(shè)備有2中方法,一種是Compound Device,就是復(fù)合設(shè)備;另一種是Composite Device,就是組合設(shè)備。
在USB2.0的標(biāo)準(zhǔn)協(xié)議中,定義如下:
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.
所以,復(fù)合設(shè)備其實(shí)就是幾個(gè)設(shè)備通過(guò)一個(gè)USB Hub形成的單一設(shè)備;組合設(shè)備也就是具有多個(gè)接口的設(shè)備,每個(gè)接口代表一個(gè)獨(dú)立的設(shè)備。
顯然,如果是想同樣的功能的話,組合設(shè)備的方法要簡(jiǎn)單很多(可以去看一下USB2.0協(xié)議中,USB2.0 Hub的復(fù)雜度)。
STM32F103實(shí)現(xiàn)的USB轉(zhuǎn)多路串口,屬于USB Composite Device,不內(nèi)嵌Hub,三個(gè)CDC設(shè)備的PID和VID都是相同。
為了避免某些公司申請(qǐng)的USB復(fù)合設(shè)備發(fā)明專利,STM32F10x組成的產(chǎn)品,可以采用英文名稱USB Composite Device,
中文也可以使用比較正規(guī)的“USB組合設(shè)備”。