USB 音频全析:技术核心与多元应用的深度洞察

USB 之基:连接与传输的基石

在科技浪潮汹涌澎湃的时代长河中,USB,这一通用串行总线,宛如一颗璀璨星辰,高悬于个人电脑的浩瀚苍穹已逾十载。其连接之广泛,恰似一张无形大网,轻松将麦克风、扬声器、外置驱动器以及网络摄像头等各类外围设备紧密相连。

而本文将聚焦于 USB 音频 ------ 这一在个人电脑、智能手机和平板电脑领域熠熠生辉的数字音频标准,它仿若一座桥梁,巧妙地衔接起扬声器、麦克风与混音器等音频外设,开启了音频传输的崭新篇章。

先探 USB 之根基。USB 遵循特定协议运行,恰似一场精密有序的交响乐演奏,其中主机计算机担当指挥角色,发起对诸如 USB 扬声器之类设备的传输指令。每次传输皆精准指向特定设备及其特定端点,犹如箭之射向靶心。其传输类型林林总总,共有批量传输、同步传输、中断传输以及控制传输四类。

批量传输,仿若一位沉稳可靠的信使,专注于在主机与设备间稳妥地传递数据。所有 USB 传输皆携 CRC(校验和)保驾护航,宛如忠诚卫士,时刻审视是否有误。于批量传输中,数据接收者务必校验 CRC,若其正确无误,传输便获确认,数据亦被视作无差错传输;反之,若 CRC 有误,传输则不予确认并将重试。倘若设备尚未准备就绪接纳数据,可发送否定确认 NAK,NAK 恰似一声令下,促使主机重新尝试传输。批量传输并非时序要求严苛之方式,它恰似灵动舞者,巧妙周旋于时序要求严格的传输方式周边。

同步传输,则似一位时间观念极强的急先锋,用于在主机与设备间实时传输数据。当主机设定同步端点时,会为等时端点分配特定带宽,并周期性地在该端点执行输入或输出传输。譬如,主机可每隔 125 毫秒向设备输出 1K 字节数据。然因带宽固定且有限,一旦传输出现状况,并无时间重传数据。数据虽有正常 CRC,但接收方若检测到错误,却无重发机制。

中断传输,名字虽易引人误解,实则如一位尽职的巡逻员,被主机用于定期轮询设备,探查是否有价值之事发生。例如,主机可轮询音频设备以确认 MUTE 按钮是否被按下,虽其名有 "中断" 二字,实则定期轮询之功能与主机中断殊途同归。

控制传输,与批量传输极为相似,可被确认、被拒绝,且以非实时方式交付,犹如一位幕后调度员,用于正常数据流之外的操作,诸如查询设备功能或端点状态等。关于如何描述设备功能,此非本文探讨范畴,仅知有诸如 "USB 音频类" 或 "USB 大容量存储类" 等预定义类,它们是实现跨平台互操作性的得力助手。所有传输皆以 USB 帧为最小单位进行,高速 USB 帧间隔为 125μs(全速 USB 为 1ms),并由主机发送帧开始(SOF)消息予以标记。同步和中断传输每帧至多传输一次。

USB 音频:数据传输的精妙编排

再观 USB 音频之妙处。USB 音频借助同步传输、中断传输与控制传输来传递音频数据。同步传输宛如音频数据的高速通道,用于传输音频数据;中断传输恰似音频时钟的守望者,用于监控音频时钟可用性;控制传输则如音频设置的调控大师,用于调整音量与采样率等参数。

其数据需求因通道数量、样本比特数以及采样率而异。常见通道数有 2 个(立体声)、6 个(5.1)甚至更多用于工作室和 DJ 的通道。采样大小方面,典型值有 24bits,16bits 常用于传统音频,32bits 则服务于高质量音频。采样率常见 44.1、48、96 和 192kHz,后者常用于高质量音频制作。

假设设计一个采样率为 96kHz、采样大小为 24bits 的立体声扬声器,为简化主机与设备间数据传输,24bits 值常以零字节填充,如此一来,总数据吞吐量便是 96,000 x 2 通道 x 4 字节 = 768,000 字节 / 秒。同步端点运行速度为每 125μs 传输一次 ------ 即每秒 8000 次传输。将每秒所需字节率除以每秒传输次数,可得每次同步传输字节数:768,000/8,000 = 每次传输 96 字节。

时钟同步:时间协调的关键密钥

USB 时钟同步亦是关键一环。数字音频领域,恰似在时间迷宫中探寻出路,需在共同时间概念上达成一致。前文提及 USB 帧每秒传输 8000 次,扬声器每秒播放 96000 次样本,唯当扬声器与主机就一秒钟长度达成共识,方能和谐运作。

USB 音频提供三种模式,力保主机与扬声器在时间上携手共进。同步模式 下,一秒钟长度由主机设备定义,主机以特定速率发送数据,设备需全力匹配。异步模式 则反其道而行之,设备主导一秒钟定义,主机依此调整。自适应模式 中,数据流决定时钟走向。

然自适应与同步模式并非尽善尽美,因个人电脑在维持稳定时钟方面表现欠佳,且常有其他音频源介入,如外部数字卡座。异步模式借助外部时钟源或设备中的低抖动时钟作为主时钟,通常二者皆依赖基于晶体的 PLL。故而系统中至少存在两个独立时钟,一为驱动 USB 传输频率为每秒 8,000 次的 USB 时钟,一为驱动采样率(如 96,000Hz)的采样时钟。

这些时钟频率略有差异,且随时间推移变化微妙。例如在 96,000Hz 采样率情形下,平均样本数可能为 12.001。为确保主机发送数据量精准无误,主机通过中断端点请求当前采样率。每隔数毫秒,上一阶段平均采样率便以 16.16 位定点数形式回报。若最后周期平均数为 12.001 帧,则报告值为 0x000C0041(65536*12.001)。

有此平均速率,主机便可计算何时在传输中额外发送样本;在此例中,每秒 8 次传输将携带一个额外样本。此外,主机可借此值与音频设备同步,使 DVD 播放器等主机应用程序保持视频与音频同步。否则,音频将逐渐超前视频,两小时后,声音便会比画面快一秒钟。

为维持短反馈回路,关键在于避免不必要地缓冲音频数据包与反馈数据包。任何额外缓冲皆会在报告中产生延迟,使流量顺畅维持更为艰难。这意味着底层 USB 协议栈与 USB 音频协议栈应紧密融合,中间不容缓冲。虽在应用处理器上实现颇具挑战,但于具有可预测执行时间的嵌入式处理器上则易如反掌。

总之,在数字音频世界,维持一致时间概念至关重要,USB 音频提供的三种模式 ------ 同步、异步和自适应,为确保主机与外围设备同步各显神通,其中异步模式因外部时钟源而更为可靠。

复杂设备:多元时钟的精准抉择

复杂设备如混音器中,可能存在多个设备通过不同接口提供采样率。USB 音频允许设计师部署时钟选择器,以便从多个输入时钟(如 S/PDIF 连接的输入时钟、本地晶振以及 ADAT 连接的输入时钟)中选择输入时钟源用于提供采样率。用户可通过控制传输,选定如 S/PDIF 连接的输入时钟作为输入源。

合规支持:系统融合的顺畅桥梁

合规性与原生支持方面,符合 USB 音频类 2.0 标准,便能实现设备与操作系统的无缝对接,通过标准操作系统对话框轻松掌控音量、采样率等参数。

USB 音频的卓越贡献

综上所述,凭借高速 USB 2.0 的强劲优势,USB 音频类 2.0 成功搭建起 PC 与音频设备间的低延迟传输桥梁,确保高吞吐量与卓越音质。其适用范围广泛,从复杂混音器到环绕声系统、PC 扬声器以及麦克风等多种设备,皆在其服务范畴之内,为音频领域的发展注入了源源不断的活力与可能。

相关推荐
凉辰7 分钟前
使用uni.createInnerAudioContext()播放指定音频(踩坑分享功能)
开发语言·javascript·音视频
AI资源库33 分钟前
Remotion 一个用 React 程序化制作视频的框架
人工智能·语言模型·音视频
永远都不秃头的程序员(互关)2 小时前
基于CANN的ops-signal仓库实现AIGC音频生成中的动态窗函数融合优化——从STFT预处理到端到端低延迟合成
aigc·音视频
薛定谔的猫喵喵2 小时前
基于PyQt5的视频答题竞赛系统设计与实现
开发语言·qt·音视频
byte轻骑兵2 小时前
从HCI报文透视LE Audio重连流程(3):音频流建立、同步与终止
音视频·蓝牙·le audio·cig/cis·广播音频
三十_A3 小时前
零基础通过 Vue 3 实现前端视频录制 —— 从原理到实战
前端·vue.js·音视频
愚公搬代码3 小时前
【愚公系列】《AI短视频创作一本通》018-AI语音及音乐的创作(短视频背景音乐的选择及创作)
人工智能·音视频
sweetone14 小时前
LINN莲CLASSIK桌面音响微修
经验分享·音视频
晚霞的不甘18 小时前
CANN 编译器深度解析:UB、L1 与 Global Memory 的协同调度机制
java·后端·spring·架构·音视频
美狐美颜SDK开放平台19 小时前
多终端适配下的人脸美型方案:美颜SDK工程开发实践分享
人工智能·音视频·美颜sdk·直播美颜sdk·视频美颜sdk