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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/888784.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

工业异常检测-CVPR2024-新的3D异常数据合成办法和自监督网络IMRNet

论文:https://arxiv.org/pdf/2311.14897v3.pdf 项目:https://github.com/chopper-233/anomaly-shapenet 这篇论文主要关注的是3D异常检测和定位,这是一个在工业质量检查中至关重要的任务。作者们提出了一种新的方法来合成3D异常数据&#x…

debian ubuntu armbian部署asp.net core 项目 开机自启动

我本地的环境是 rk3399机器,安装armbian系统。 1.安装.net core 组件 sudo apt-get update && \sudo apt-get install -y dotnet-sdk-8.0或者安装运行库,但无法生成编译项目 sudo apt-get update && \sudo apt-get install -y aspnet…

qt QNetworkAccessManager详解

1、概述 QNetworkAccessManager是QtNetwork模块中的一个核心类,它允许应用程序发送网络请求并接收响应。该类是网络通信的基石,提供了一种方便的方式来处理常见的网络协议,如HTTP、HTTPS等。QNetworkAccessManager对象持有其发送的请求的通用…

21、结构体成员分布

结构体中的成员并不是紧挨着分布的,内存分布遵循字节对齐的原则。 按照成员定义的顺序,遵循字节对齐的原则存储。 字节对齐的原则: 找成员中占据字节数最大的成员,以它为单位进行空间空配 --- 遇到数组看元素的类型 每一个成员距离…

前端基础——CSS

美化文档 HTML内部添加样式 本节我们来学习如何在标签中引入CSS样式。 1 在标签中添加声明 声明的关键字是style后接等号&#xff08;&#xff09;再接引号&#xff08;""&#xff09;&#xff0c;即style"" 具体声明如下&#xff1a; <input typ…

WPS解决Word文件引入excel对象文件无法打开提示“不能启动此对象...”的问题

一、问题现象 接收到了一份 Word文件&#xff0c;里面引入了一个Excel对象文件&#xff0c;双击时候&#xff0c;wps出现卡顿&#xff0c;过一会之后弹出错误提示&#xff1a;不能启动此对象... 二、解决方法 1.点击WPS左上角图标&#xff0c;并打开右上角设置&#xff0c;萱蕚…

spring下的beanutils.copyProperties实现深拷贝

spring下的beanutils.copyProperties方法是深拷贝还是浅拷贝&#xff1f;可以实现深拷贝吗&#xff1f; 答案&#xff1a;浅拷贝。 一、浅拷贝深拷贝的理解 简单说拷贝就是将一个类中的属性拷贝到另一个中&#xff0c;对于BeanUtils.copyProperties来说&#xff0c;你必须保…

3GPP R18 LTM(L1/L2 Triggered Mobility)是什么鬼?(三) RACH-less LTM cell switch

这篇看下RACH-less LTM cell switch。 相比于RACH-based LTM,RACH-less LTM在进行LTM cell switch之前就要先知道target cell的TA信息,进而才能进行RACH-less过程,这里一般可以通过UE自行测量或者通过RA过程获取,而这里的RA一般是通过PDCCH order过程触发。根据38.300中的描…

Ansible 运维工具

安装 apt install ansible /etc/ansible/hosts , 指定密码或密钥访问分组机器 [k8s_masters] master0.c0.k8s.sb[k8s_nodes] node0.c0.k8s.sb node1.c0.k8s.sb[k8s:children] k8s_masters k8s_nodes[k8s_masters:vars] ansible_ssh_usersbadmin ansible_ssh_pass"***&q…

三菱JET伺服CC-Link IE现场网络Basic链接软元件(RYn/RXn)(RWwn/RWrn)

链接软元件(RYn/RXn) 要点 在循环通信中对主站发送给伺服放大器的请求(RYn及RWwn)设定了范围外的值时&#xff0c;将无法反映设定内容。 循环通信的请求报文与响应报文的收发数据被换读为伺服放大器的对象数据(RYn、RXn)。 响应报文的设定值可进行变更。变更初始设定值时&…

WPF中的VisualState(视觉状态)

以前在设置控件样式或自定义控件时&#xff0c;都是使用触发器来进行样式更改。触发器可以在属性值发生更改时启动操作。 像这样&#xff1a; <Style TargetType"ListBoxItem"><Setter Property"Opacity" Value"0.5" /><Setter …

ARINC 标准全解析:航空电子领域多系列标准的核心内容、应用与重要意义

ARINC标准概述 ARINC标准是航空电子领域一系列重要的标准规范&#xff0c;由航空电子工程委员会&#xff08;AEEC&#xff09;编制&#xff0c;众多航空公司等参与支持。这些标准涵盖了从飞机设备安装、数据传输到航空电子设备功能等众多方面&#xff0c;确保航空电子系统的兼…

用golang简单做一个内网穿透小工具!

一个个人需求&#xff0c;需要简单的穿透一下 家里的电脑&#xff0c;也不需要多稳定&#xff0c;也没有并发。然后 通过http可以访问到内网的 一个网站&#xff0c; 因为服务端 是linux 系统 &#xff0c;内网是 windows10服务器 所以 就采用 用golang这个语言来实现&#xff…

微服务监控prometheus+Grafana

目录 Prometheus 概述 核心组件 特点 使用场景 Grafana 概述 功能特点 使用场景 PrometheusGrafana组合 部署和配置 一、准备工作 二、部署Prometheus 三、部署Grafana 四、创建监控仪表盘 五、验证和调优 总结 微服务监控是确保微服务架构稳定运行的关键环节…

(vue)el-cascader多选级联选择器,值取最后一级的数据

(vue)el-cascader多选级联选择器&#xff0c;取值取最后一级的数据 获取到&#xff1a;[“养殖区”,“鸡棚”,“E5001”] 期望&#xff1a;[“E5001”] 问题: 解决方法 增加change事件方法&#xff0c;处理选中的value值 1.单选 <el-cascaderv-model"tags2":o…

Git常用的命令【提交与回退】

git分布式版本控制系统 &#xff08;SVN集中式版本控制系统&#xff09;之间的对比 git有本地仓库和远程仓库&#xff0c;不同的开发人员可以分别提交自己的本地仓库并维护代码的版本控制。 然后多个人员在本地仓库协作的代码&#xff0c;可以提交到远程仓库中做整合。 git本…

AUTOSAR AP和CP的安全要求规范(Safety Req)详细解读

一、规范的编制的背景原因 编制该规范的原因 确保系统安全性和可靠性 随着汽车电子系统日益复杂&#xff0c;功能不断增加&#xff0c;对安全性和可靠性的要求也越来越高。该规范为AUTOSAR平台在安全执行、配置、更新、信息交换、数据处理等多方面制定了明确要求&#xff0c;…

黑马程序员MybatisPlus/Docker相关内容

Day01 MP相关知识 1. mp配置类&#xff1a; 2.条件构造器&#xff1a; 具体的实现例子&#xff1a; ①QuerryWapper&#xff1a; ②LambdaQueryWrapper: 3.MP的自定义SQL 4.MP的Service层的实现 5.IService下的Lambda查询 原SQL语句的写法&#xff1a; Lambda 查询语句的…

一番赏小程序定制开发,打造全新抽赏体验平台

随着盲盒的热潮来袭&#xff0c;作为传统的潮玩方式一番赏也再次受到了大家的关注&#xff0c;市场热度不断上升&#xff01; 一番赏能够让玩家百分百中奖&#xff0c;商品种类丰富、收藏价值高&#xff0c;拥有各种IP&#xff0c;从而吸引着各个圈子的粉丝玩家&#xff0c;用…