Usb 对于bDescriptorType为0x24意味着什么?

Usb 对于bDescriptorType为0x24意味着什么?,usb,Usb,我发现一个描述符如下 我知道,当bDescriptorType为0x04时,它表示接口描述符 如果bDescriptorType是0x24,它意味着什么 我在USB spec 2.0中找不到相关说明 /* First Interface Descriptor For Comm Class Interface */ 0x09, /* bLength = 9 */ 0x04, /* bD

我发现一个描述符如下
我知道,当bDescriptorType为0x04时,它表示接口描述符
如果bDescriptorType是0x24,它意味着什么
我在USB spec 2.0中找不到相关说明

/*  First Interface Descriptor For Comm Class Interface */
0x09,                  /*  bLength = 9                     */
0x04,                  /*  bDescriptorType = Interface (4) */
0x00,                  /*  bInterfaceNumber                */
0x00,                  /*  bAlternateSetting               */
0x01,                  /*  bNumEndpoints (one for OUT)     */
0x02,                  /*  bInterfaceClass = Communications Interface Class (2) */
0x02,                  /*  bInterfaceSubClass = Abstract Control Model (2) */
0x01,                  /*  bInterfaceProtocol = Common "AT" commands (1), */ 
                      /*   no class specific protocol (0)                */
0x00,                  /*  iInterface                      */

/*  Header Functional Descriptor */

0x05,                  /*  bFunctionalLength = 5           */
0x24,                  /*  bDescriptorType                 */
0x00,                  /*  bDescriptorSubtype              */
0x10, 0x01,            /*  bcdCDC                          */

值0x24表示它是特定于类的接口描述符。请参见CDC 1.20规范表12中CS_接口的定义。你可以在这里找到它:


请注意,在这些USB标准中,0x24通常写为“24小时”。

我在iPhone的“音频”类接口中找到了描述符0x24(CS_接口)和0x25(CS_端点)

我还在网上找到了一些描述符:

它们在那里被命名为“AC”(音频控制)。这里只有两个例子:

AC Input Terminal Descriptor:
------------------------------
0x11    bLength
0x24    bDescriptorType
0x02    bDescriptorSubtype
0x01    bTerminalID
0x0201  wTerminalType   (Microphone)
0x00    bAssocTerminal
0x28    bCSourceID
0x04    bNrChannels
0x00000000 bmChannelConfig
0x16    iChannelNames
0x00    bmControls
0x00    iTerminal


AC Output Terminal Descriptor:
------------------------------
0x0C    bLength
0x24    bDescriptorType
0x03    bDescriptorSubtype
0x14    bTerminalID
0x0301  wTerminalType   (Speaker)
0x00    bAssocTerminal
0x0A    bSourceID
0x28    bCSourceID
0x0000  bmControls
0x00    iTerminal
CS_接口描述符的功能取决于描述符的子类型。 例如,对于子类型02,允许访问Microphone的是“AC输入端子描述符”。对于子类型03,它是允许访问扬声器的“交流输出端子描述符”

David Grayson链接的文件CDC 1.20(公认答案)对此类描述符没有帮助


我在“终端类型的USB设备类定义”中找到了详细的描述:

我想这是解决这个问题的一个更好的参考,

在本文件第5.2.3节表24中

bDescriptorType值与音频设备规范的USB设备类定义中定义的值相同。它们是通过使用USB规范第9章中定义的设备、配置、字符串、接口和端点常量,以及通过设置公共类规范中定义的类特定位来生成相应的类特定常量而得到的。 CS_接口24小时 CS_端点25h

同样的表格也出现在压缩的PDF:CDC120-20101103-track.PDF中,完整路径(从下载)如下所示:,
CDC1.2_WMC1.1_012011.zip\CDC1.2_WMC1.1_012011\CDC1.2_WMC1.1\usbcdc12\CDC120-20101103-track.pdf

您所指的链接列表中的哪个文档?似乎没有任何名称为“CDC X.YZ specification”的网站。该网站的用户界面变化速度快于我所能跟踪的速度。目前,您要做的是在搜索字段中键入“CDC”,然后单击“搜索”。单击“通信设备1.2的类定义”并下载ZIP文件。其中有一个文件名为“CDC120-20101103-track.pdf”(这比我记得读过的原始版本要难看得多,因为它有一个灰色框,占据了每页的四分之一)。然后在该PDF中搜索“CS_界面”。