UAC麦克风实例分析
+ -

UAC麦克风音频流接口描述符

2021-07-23 716 0

UAC麦克风音频流接口描述符使用普通用USB接口描述符结构,该描述符是音频流描述符集合的开始。

UAC音频流描述符的组织结构如下图:
UAC音频流描述符

UAC麦克风音频流接口描述符的数据配置如下:
UAC麦克风音频流接口描述符
UAC麦克风音频流接口描述符

接口描述符的各字段的解释详见:USB接口描述符 http://www.usbzh.com/article/detail-64.html

源代码如下:

: /* USB_DT_INTERFACE: Interface descriptor */
struct usb_interface_descriptor {
    __u8 bLength;
    __u8 bDescriptorType;
    __u8 bInterfaceNumber;
    __u8 bAlternateSetting;
    __u8 bNumEndpoints;
    __u8 bInterfaceClass;
    __u8 bInterfaceSubClass;
    __u8 bInterfaceProtocol;
    __u8 iInterface;
}
__attribute__((packed));#
define USB_DT_INTERFACE_SIZE9
/* B.4.1  Standard AS Interface Descriptor */
static struct usb_interface_descriptor microphone_as_interface_alt_0_desc = {.bLength = USB_DT_INTERFACE_SIZE,
    .bDescriptorType = USB_DT_INTERFACE,
    .bAlternateSetting = 0,
    .bNumEndpoints = 0,
    .bInterfaceClass = USB_CLASS_AUDIO,
    .bInterfaceSubClass = USB_SUBCLASS_AUDIOSTREAMING,
};
static struct usb_interface_descriptor microphone_as_interface_alt_1_desc = {.bLength = USB_DT_INTERFACE_SIZE,
    .bDescriptorType = USB_DT_INTERFACE,
    .bAlternateSetting = 1,
    .bNumEndpoints = 1,
    .bInterfaceClass = USB_CLASS_AUDIO,
    .bInterfaceSubClass = USB_SUBCLASS_AUDIOSTREAMING,
};

模拟设备信息Free Device Monitoring Studio 抓取
UAC音频采用同步传输,故需要2个接口描述符,第二个为第一个描述符的转换接口描述符即备用接口描述符。

  • descriptors[5] = “Interface Descriptor”
  • bLength = 9
  • bDescriptorType = USB_INTERFACE_DESCRIPTOR_TYPE (4)
  • bInterfaceNumber = 1
  • bAlternateSetting = 0
  • bNumEndpoints = 0
  • bInterfaceClass = UsbAudio (1)
  • bInterfaceSubClass = 2
  • bInterfaceProtocol = 0
  • iInterface = 0

转换接口描述符:

  • descriptors[6] = “Interface Descriptor”
  • bLength = 9
  • bDescriptorType = USB_INTERFACE_DESCRIPTOR_TYPE (4)
  • bInterfaceNumber = 1
  • bAlternateSetting = 1
  • bNumEndpoints = 1
  • bInterfaceClass = UsbAudio (1)
  • bInterfaceSubClass = 2
  • bInterfaceProtocol = 0
  • iInterface = 0
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 篇笔记 写笔记

USBTreeView遇到连续的转换接口描述符不解释情况说明
今天拿到一个USB摄像头,对其进行数据格式分析,出现了一个令人迷惑的问题…事情是这样的,我用POTPLAYER打开摄像头,使用BUSHOUND进行抓包,选择的备用接口是0x0c CTL 01 0b 0c 00 01 00 00 00 SET_INTERFACE为了查看该端点的数据大......
UAC 标准音频流接口描述符
UAC音频流接口描述符包含与音频数据流相关的描述符信息。标准音频流接口描述符,Standard AS Interface Descriptor是音频流接口描述符的第一个描述符。该描述符是标准的接口描述符,故数据结构定义如下:typedef struct _USB_INTERFACE_DESCRIPT......
USB 接口描述符
接口描述符一般是按设备的运行状态分类,这样设备可以在不同的接口中切换来实现设备运行状态的切换,如在设备在运行状态下使用正常的接口描述符,在停止状态下使用该接口描述符的备用接口描述符接口描述符的定义:struct _INTERFACE_DESCRIPTOR_STRUCT { BYTE ......
UVC 视频流接口描述符
视频流接口描述符包含了所有完整的视频流接口信息。视频流接口信息以标准的视频流接口开头。视频流接口描述符由标准视频控制接口描述符以及各控制相关描述符组成。标准视频流接口描述符使用通用USB设备接口描述符数据结构。struct _INTERFACE_DESCRIPTOR_STRUCT; { BY......
USB设备描述符、配置描述符、接口描述符和端点描述符的拓扑关系
在USB设备的逻辑组织中,包含设备、配置、接口和端点4个层次。每个USB设备都提供了不同级别的配置信息,可以包含一个或多个配置,不同的配置使设备表现出不同的功能组合(在探测/连接期间需从其中选定一个),配置由多个接口组成。一次只能有一个配置是活动的。大多数的设备只有一个配置和一个接口,当一个设备......
UAC 类特定音频流接口描述符
类特定音频流接口描述符:Class-Specific AS Interface Descriptor.UAC类特定音频流接口描述符 - UVC1.0结构体定义如下:typedef struct _USB_ASI_DESCRIPTOR{ UINT8 bLength; UINT8......
UAC 标准音频控制接口描述符
音频控制接口描述符以下的描述符信息包含了音频控制的功能特征信息,音频的各控制功能均是通过音频控制接口描述符之下的各实例,终端进行控制的。音频控制接口描述符:Standard AC Interface Descriptor。音频控制接口描述符的定义如下:typedef struct _USB_INTE......
UVC 标准视频控制接口描述符
视频控制接口描述符由标准视频控制接口描述符以及各控制相关描述符组成。标准视频控制接口描述符使用通用USB设备接口描述符数据结构。struct _INTERFACE_DESCRIPTOR_STRUCT; { BYTE bLength; //设备描述符的字节数大小,为0x09......
UAC麦克风音频控制的接口描述符
UAC麦克风包含一个音频控制接口,其以接口描述符为起始描述符。描述符的关系如下:接口描述符 //音频控制接口类特定音频流接口描述符输入终端描棕符输出终端描述符接口描述符的内容详见:USB接口描述符 http://www.usbzh.com/article/detail-64.ht......
UAC麦克风类特定音频控制接口描述符
UAC的类特定音频控制接口描述符又叫类特定音频控制接口头描述符,包含了UAC音频控制各终端,单元的描述符信息。在UAC规范中,其包含的描述符有:关于类特定音频控制接口描述符可详见本站:http://www.usbzh.com/article/detail-222.html由于该UAC麦克风是基于......
UAC麦克风音频流接口描述符
UAC麦克风音频流接口描述符使用普通用USB接口描述符结构,该描述符是音频流描述符集合的开始。UAC音频流描述符的组织结构如下图:UAC麦克风音频流接口描述符的数据配置如下:接口描述符的各字段的解释详见:USB接口描述符 http://www.usbzh.com/article/detail......
UAC麦克风类特定音频流接口描述符
UAC麦克风类特定音频流接口描述符数据组织如下图:该描述符包含了音频数据流的相关信息。关于该描述符的字段解释详见:http://www.usbzh.com/article/detail-158.html/* 4.5.2 Class-Specific AS Interface Descript......
Win10 x64下USB-UAC虚拟麦克风的实现
对于虚拟的UAC设备,实现了虚拟的UAC扬声器,总是想着再一个USB虚拟的UAC麦克风。因为这样,才算完美。本着完了完美的结果,自己又忍不住给自己找了一个活-USB虚拟麦克风虚拟麦克风的大体开发和USB虚拟扬声器类似,只是一个是输入设备,另一个是输出设备而已。所以参考UAC规范,基于UAC虚拟扬声......
Windows驱动中从配置描述符中解析接口描述符
Correct Sample A:/* pConfigurationDescriptor points to the descriptor previously requested from the driver. */PUSB_CONFIGURATION_DESCRIPTOR pConf......
DFU 运行时接口描述符
因为DFU仅使用控制端点故不存在端点描述符。 这样主机提供了足够的信息来识别设备能够执行固件升级操作。 它还提供了通过默认控制管道启动此类操作的方法。DFU 类接口通常是为每个运行时配置枚举的最后一个接口。但是,并不要求此接口占据任何特定位置。DFU 接口描述符格式偏移字段长度值描......
关注公众号
  • HID人机交互
  • Linux&USB
  • UAC音频
  • TYPE-C
  • USB规范
  • USB大容量存储
  • USB百科
  • USB周边
  • UVC摄像头
  • Windows系统USB
  • 音视频博客
  • 取消
    感谢您的支持,我会继续努力的!
    扫码支持
    扫码打赏,你说多少就多少

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

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