UAC规范(USB音频)
+ -

UAC 终端类型

2022-02-22 2294 0

USB Terminal Types

These Terminal Types describe Terminals that handle signals carried over the USB, usually through
isochronous pipes. These Terminal Types are valid for both Input and Output Terminals.

Terminal Type Code I/O Description
USB Undefined 0x0100 I/O USB Terminal, undefined Type.
USB streaming 0x0101 I/O A Terminal dealing with a signal carried over an endpoint in an AudioStreaming interface. The AudioStreaming interface descriptor points to the associated Terminal through the bTerminalLink field.
USB vendor specific 0x01FF I/O A Terminal dealing with a signal carried over a vendor-specific interface. The vendor-specific interface descriptor must contain a field that references the Terminal.

Input Terminal Types

These Terminal Types describe Terminals that are designed to record sounds. They either are physically
part of the audio function or can be assumed to be connected to it in normal operation. These Terminal
Types are valid only for Input Terminals

Terminal Type Code I/O Description
Input Undefined 0x0200 I Input Terminal, undefined Type.
Microphone 0x0201 I A generic microphone that does not fit under any of the other classifications.
Desktop microphone 0x0202 I A microphone normally placed on the desktop or integrated into the monitor.
Personal microphone 0x0203 I A head-mounted or clip-on microphone.
Omni-directional microphone 0x0204 I A microphone designed to pick up voice from more than one speaker at relatively long ranges.
Microphone array 0x0205 I An array of microphones designed for directional processing using host-based signal processing algorithms.
Processing microphone array 0x0206 I An array of microphones with an embedded signal processor.

Output Terminal Types

These Terminal Types describe Terminals that produce audible signals that are intended to be heard by
the user of the audio function. They either are physically part of the audio function or can be assumed to
be connected to it in normal operation. These Terminal Types are only valid for Output Terminals. The
distinction between headphones, desktop speakers, and room speakers may be used by applications to
select different 3D signal processing algorithms

Terminal Type Code I/O Description
Output Undefined 0x0300 O Output Terminal, undefined Type.
Speaker 0x0301 O A generic speaker or set of speakers that does not fit under any of the other classifications.
Headphones 0x0302 O A head-mounted audio output device.
Head Mounted Display Audio 0x0303 O The audio part of a VR head mounted display. The Associated Interfaces descriptor can be used to reference the HID interface used to report the position and orientation of the HMD.
Desktop speaker 0x0304 O Relatively small speaker or set of speakers normally placed on the desktopor integrated into the monitor. These speakers are close to the user and have limited stereo separation.
Room speaker 0x0305 O Larger speaker or set of speakers that are heard well anywhere in the room.
Communication speaker 0x0306 O Speaker or set of speakers designed for voice communication.
Low frequency effects speaker 0x0307 O Speaker designed for low frequencies (subwoofer). Not capable of reproducing speech or music.

Bi-directional Terminal Types

These Terminal Types describe an Input and an Output Terminal for voice communication that are closely
related. They should be used together for bi-directional voice communication. They may be used
separately for input only or output only. These types require two Terminal descriptors. Both have the same
type. The two Terminals are linked together through the bAssocTerminal fields in their respective
Terminal descriptors. The Associated Interfaces descriptor can be used to reference a HID interface for
conferencing functions.

Terminal Type Code I/O Description
Bi-directional Undefined 0x0400 I/O Bi-directional Terminal, undefined Type.
Handset 0x0401 I/O Hand-held bi-directional audio device.
Headset 0x0402 I/O Head-mounted bi-directional audio device.
Speakerphone, no echo reduction 0x0403 I/O A hands-free audio device designed for host-based echo cancellation.
Echo-suppressing speakerphone 0 x0404 I/O A hands-free audio device with echo suppression capable of half-duplex operation.
Echo-canceling speakerphone 0x0405 I/O A hands-free audio device with echo cancellation capable of full-duplex operation.

Telephony Terminal Types

These Terminal Types describe Terminals that connect to the PSTN or PBX. Initiating calls and
monitoring call progress will be done through an associated interface which may be Communication, HID
or Vendor-Specific class. These Terminals are bi-directional and follow the rules for bi-directional
Terminals.

Terminal Type Code I/O Description
Telephony Undefined 0x0500 I/O Telephony Terminal, undefined Type.
Phone line - 0x0501 I/O May be an analog telephone line jack, an ISDN line, a proprietary PBX interface, or a wireless link.
Telephone - 0x0502 I/O Device can be used as a telephone. When not in use as a telephone, handset is used as a bi-directional audio device.
Down Line Phone 0x0503 I/O A standard telephone set connected to the device. When not in use as atelephone, it can be used as a bidirectional audio device.

External Terminal Types

These Terminal Types describe external resources and connections that do not fit under the categories of
Input or Output Terminals because they do not necessarily translate acoustic signals to or from the user of
the computer. Most of them may be either Input or Output Terminals.

Terminal Type Code I/O Description
External Undefined 0x0600 I/O External Terminal, undefined Type.
Analog connector 0x0601 I/O A generic analog connector.
Digital audio interface 0x0602 I/O A generic digital audio interface.
Line connector 0x0603 I/O An analog connector at standard line levels. Usually uses 3.5mm.
Legacy audio connector 0x0604 I/O An input connector assumed to be connected to the lineout of the legacy audio system of the host computer. Used for backward compatibility.
S/PDIF interface 0x0605 I/O An S/PDIF digital audio interface. The Associated Interface descriptor can be used to reference an interface used for controlling special functions of this interface.
1394 DA stream 0x0606 I/O An interface to audio streams on a 1394 bus.
1394 DV stream soundtrack 0x0607 I/O An interface to soundtrack of A/V stream on a 1394 bus.

Embedded Function Terminal Types

Terminal Type Code I/O Description
Embedded Undefined 0x0700 I/O Embedded Terminal, undefined Type.
Level Calibration Noise Source 0x0701 O Internal Noise source for level calibration (MPEG decoding, Dolby PrologicÔ, AC-3 etc.)
Equalization Noise 0x0702 O Internal Noise source for measurements.
CD player 0x0703 I Audio compact disc player or CD-ROM capable of audio playback.
DAT 0x0704 I/O Digital Audio Tape.
DCC 0x0705 I/O Digital Compact Cassette.
MiniDisk 0x0706 I/O Minidisk player.
Analog Tape 0x0707 I/O Analog Audio Tape.
Phonograph 0x0708 I Analog vinyl record player.
VCR Audio 0x0709 I Audio track of VCR.
Video Disc Audio 0x070A I Audio track of VideoDisc player.
DVD Audio 0x070B I Audio track of DVD player.
TV Tuner Audio 0x070C I Audio track of TV tuner.
Satellite Receiver Audio 0x070D I Audio track of satellite receiver.
Cable Tuner Audio 0x070E I Audio track of cable tuner.
DSS Audio 0x070F I Audio track of DSS receiver.
Radio Receiver 0x0710 I AM/FM radio receiver.
Radio Transmitter 0x0711 O AM/FM radio transmitter.
Multi-track Recorder 0x0712 I/O A multi-track recording system.
Synthesizer 0x0713 I Synthesizer.
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 篇笔记 写笔记

UAC 双向终端类型设备(Bi-directional Terminal Types
在UAC的终端描述符里除了常见的输入终端和输出终端,也存在一些看起来很高级的类型,如双向终端类型设备(Bi-directional Terminal Types)、电话终端类型(Telephony Terminal Types)和额外扩展的终端类型(External Terminal Types)。......
UAC 终端类型
USB Terminal TypesThese Terminal Types describe Terminals that handle signals carried over the USB, usually throughisochronous pipes. These Terminal T......
Telephony Device Page (0x0B)
Usage IDUsage NameUsage TypesSection0Undefined1PhoneCA14.12Answering MachineCA14.13Message ControlsCL14.14Handset......
ALSA框架UAC1驱动程序入口宏DECLARE_USB_FUNCTION分析
题外话:为了学习看LINUX驱动,我也是拼了。对于LINUX源代码,虽然以前了解过LINUX的字符串驱动,不过突然跳到一个复杂的LINUX设备驱动,还是有点迷茫,自己什么不会。不过还是要狠下心来,像看了7天的UVC规范一样,强行让自己翻译。自己看的Linux UAC源代码位于https://eli......
UAC1数据结构关系由f_audio_bind函数引出的struct f_uac1_opts和struct f_uac1之间的联系解读
前面看到了分别通过f_audio_alloc_inst和f_audio_alloc函数申请struct f_uac1_opts和struct f_uac1结构体,而我们在看UAC1源代码的时候,就需要这些结构体之间进行转换。首先我们先看struct f_uac1_opts和struct f_uac......
USBIP 标准请求
URB标准请求使用store_urbr_submit函数实现。这里我们再强调一下,是将URB的请求信息“复制”给IRP_MJ_READ,其数据组织方式为usbip_header.static NTSTATUSstore_urbr_submit(PIRP irp, struct urb_req ......
USBIP 同步传输URB_FUNCTION_ISOCH_TRANSFER
USBIP同步传输使用store_urb_iso来实现 case URB_FUNCTION_ISOCH_TRANSFER: status = store_urb_iso(irp, urb, urbr); break;其实对于同步传输,其和中断/批量传输类似,......
USBIP 选择接口URB_FUNCTION_SELECT_INTERFACE
URB_FUNCTION_SELECT_INTERFACE命令发起static NTSTATUSstore_urbr_submit(PIRP irp, struct urb_req *urbr){... case URB_FUNCTION_SELECT_INTERFACE: ......
USBIP ClearStall/URB_FUNCTION_SYNC_RESET_PIPE_AND_CLEAR_STALL(URB_FUNCTION_RESET_PIPE)
URB_FUNCTION_SYNC_RESET_PIPE_AND_CLEAR_STALL命令URB_FUNCTION_SYNC_RESET_PIPE_AND_CLEAR_STALLb也是URB_FUNCTION_RESET_PIPE// for backward drivers#define U......
USBIP 控制传输URB_FUNCTION_CONTROL_TRANSFER
static NTSTATUSstore_urbr_submit(PIRP irp, struct urb_req *urbr){... case URB_FUNCTION_CONTROL_TRANSFER: status = store_urb_control_tra......
USBIP 扩展控制传输URB_FUNCTION_CONTROL_TRANSFER_EX
static NTSTATUSstore_urbr_submit(PIRP irp, struct urb_req *urbr){... case URB_FUNCTION_CONTROL_TRANSFER_EX: status = store_urb_control_......
URB URB_FUNCTION_SELECT_INTERFACE分析详解
URB_FUNCTION_SELECT_INTERFACE对应的USB标准请求是SetInterface。很奇怪,一个是Select,一个是Set.是微软故意的么。在SetInterface中,其wIndex对应的是InterfaceId,wValue对应的是AlterInterfaeId,......
URB URB_FUNCTION_SELECT_CONFIGURATION分析详解
先对比一下URB_FUNCTION_SELECT_INTERFACE和URB_FUNCTION_SELECT_CONFIGURATION他们的结构体。struct _URB_SELECT_INTERFACE { struct _URB_HEADER Hdr; USBD_CONFIG......
关注公众号
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

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

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