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 扬声器以及麦克风等多种设备,皆在其服务范畴之内,为音频领域的发展注入了源源不断的活力与可能。