访问手机版页面
你的位置:老古开发网 > 其他 > 正文  
USB音频基础
内容导读:
 USB通用串行总线,已经存在了几十年,是世界上大量使用标准的个人电脑。 记忆棒、外部驱动器,老鼠,和网络摄像头都是界面上的USB。 在本文中,我们将看看USB音频:数字音频的标准用于电脑、智能手机和平板电脑等与音频外设接口扬声器,麦克风,或混合的办公桌。 在本文中,我们开始展示USB音频作品,要注意什么,以及如何使用USB音频高保真多信道的输入和输出

USB基本知识
USB协议,PC,USB主机,开始转移,设备(例如一个USB音箱)响应。 每个处理转移到特定的设备,到一个特定的端点在设备上。 转移来发送数据到电脑。 当主机发起一个传输设备与数据响应主机。 OUT-transfers向设备发送数据。 当主机执行输出传输它发送一个数据包设备必须获取的数据。 在usb听觉的世界,在转移可以用来传输音频样本:一个输出传输发送音频数据从PC到演讲者,而用来发送一个传输从一个麦克风音频数据到电脑。

有四种类型的,在USB OUT-transfers:散装、同步、中断,控制转移。

批量传输可靠地用于主机和设备之间传输数据。 所有的USB传输携带CRC(校验和)表明是否发生了一个错误。 大部分转会,接收器的数据验证了CRC。 如果CRC是正确的转移是承认的,假设和数据传输错误。 如果CRC是不正确的,转让不承认并重试。 如果设备还没有准备好接受数据可以发送一个否定应答,否定,这将导致主机重新传输。 批量传输不考虑时间criticial,计划在下面讨论的时间关键的转移。

等时传输用于主机和设备之间传输数据在实时。 同步端点时设立的主机,主机分配一个特定的带宽量同步端点,并定期执行,或输出传输端点。 例如,主机可能每125μs 1 kb的数据到设备。 因为一个固定和有限的带宽分配,没有时间如果出了任何差错重新发送数据。 数据有CRC正常,但是,如果接收端检测到一个错误没有重发机制。

中断传输使用主机定期轮询设备是否发生了一些有价值的事。 例如,主机可能调查一个音频设备检查静音按钮是否被按下。 中断传输这个名字有点困惑,因为他们没有任何中断。 然而,定期轮询数据给host-interrupt将提供同样的功能。

控制传输非常像批量转移。 控制传输承认,可以裸体,非实时的方式交付。 控制转移用于外正常数据流的操作,如查询设备功能,或端点状态。 解释如何描述设备功能超出了本文的范围,和我们国家有预定义的类,如“USB音频类”或“USB大容量存储类”,使跨平台互操作性。

所有传输都是在USB帧。 高速USB框架跨度125μs(全速USB 1 ms)和由主机发送Start-Of-Frame标记(SOF)消息。 同步和中断传输帧传输最多一次。

usb音频

USB音频使用同步,中断和控制转移。 所有音频数据传输同步传输,中断传输是用来传递信息的可用性音频时钟,控制转移用于设置音量,使用请求样本率,等等这些都是图1所示。

图1:主机和一个USB设备之间的传输:同步和音频数据,设置参数控制和中断状态监测。


一个usb听觉系统的数据需求取决于渠道的数量,每个样本的比特数来表示,而采样率。 典型的通道数是2(立体声),6(5.1)或更高的工作室和DJ使用。 样本量一般是24位,尽管16位可遗留音频,和32位高质量的音频。 典型的样本率是44.1,48岁,96和192千赫。 后者用于高质量的音频。

假设我们设计一个立体声音频扬声器96千赫采样率和24位样本。 为了简化数据编组主机和设备上,24位值通常垫以零字节,所以总数据吞吐量是96000 x 2频道x 4字节= 768000字节每秒。 同步端点的速度运行一个每125μs转移;或每秒8000转让。 分裂所需的字节率在帧速率给我们为每个同步传输的字节数:768000/8000 = 96字节/转让。

当使用CD率,如44100赫兹,传输速率是每秒44.1转移工作。 在USB音频样本的每个传输总是携带一个整数;交替传输携带48和40字节(6和5音响样品),这样平均汇率为44.1个字节传输工作。

一个同步传输可以携带1024字节,可以携带最多256个样本(24/32位)。 这意味着一个同步端点可以转移42频道48 khz,或10频道在192千赫(假设使用高速USB -全速USB无法携带超过一个音响,对48 khz)。

当传输数字音频,延迟了。 对于高速USB 250μs这个延迟。 一次数据包传输的数据在每125μs窗口中,但是考虑到它可能随时被发送在这个窗口250μs缓冲区是必需的。 在此之上250μs延迟,额外的延迟可能发生在O / S司机,和编解码器。 注意,全速USB有更高的固有延时2女士,作为数据在每1毫秒窗口只发送一次

第二个朋友之间是什么?

数字音频的大问题是达成一个共同的时间概念。 上面我们已经定义的USB传输帧每秒8000次,并设置扬声器样本96000次每秒。 这只会工作,如果演讲者和主持人同意第二个的长度。 usb听觉提供了三种模式,确保主机和演讲者同意计时:

在同步模式下,第二个的长度定义的主机设备。 也就是说,主机发送数据的速度,速度的设备必须完全匹配。
在异步模式是相反的,该设备集的定义,和主机与设备相匹配。
在自适应模式下的数据流确定时钟。
适应性和同步模式并不理想,因为电脑是出了名的坏在保持一个稳定的时钟,并经常有其他音频来源,如外部数字甲板上。 异步模式使外部时钟源作为主人,或时钟抖动小的设备。 通常,要么依赖于基于晶体的锁相环,如图2所示。
图2:一个usb听觉,音频频率稳定,有水晶和低抖动锁相环产生所需频率。

因此至少有两个独立的时钟系统,USB主机驱动频率的时钟每秒8000转让,和一个示例与外部时钟驱动的采样率,例如,96000赫兹。

这些时钟频率会略有不同,差异会略有不同。 因此每帧音频样本的平均数量将比预期的稍多或少。 例如,在我们的96000赫兹采样率的情况下,样本的平均数量可能是12.001。 为了确保主机发送的数据量,而不是过多或过少,主机请求当前采样率在一个中断端点。 每隔几毫秒采样率在过去的平均时间是16.16位定点数字报告。 如果最后一期平均为12.001帧,那么值0 x000c0041将报道(65536 * 12.001)。

鉴于这种平均利率,主机工作时可以发送一个额外的样品转移;在本例中8每秒钟传输将携带一个额外的样品。 此外,主机可以使用这个值来同步音频设备本身。 这使得主机应用程序,比如DVD播放器视频与音频同步。 如果它没有,视频的音频会慢慢运行之前,和之后两个小时音频将是第二个。

为了保持一个简短的反馈回路,诀窍就是不要缓冲音频数据包和反馈不必要的数据包。 任何额外的缓冲创建延迟的报告,这种延迟使得更难保持交通顺畅。 这意味着低级USB堆栈和USB听觉堆栈应该紧密集成,没有缓冲。 虽然这很难实现在应用程序处理器,这是很容易实现的目标,如果软件是嵌入式处理器上实现一个可预测的执行时间。

多个时钟源

上述方案认为只有两个时钟源——要么USB设备提供时钟,或主机提供时钟。 在混合器的办公桌等更复杂的设备可能有其他设备提供采样率,例如通过数字接口如ADAT或SPDIF,或通过BNC连接器,这个词。 对于这样的系统,usb听觉标准允许设计者将时钟选择器的装置。

时钟的时钟选择美国作为采样率。 时钟选择器有多个输入时钟(如。 ,传入的时钟在S / PDIF连接;当地的水晶,和传入的时钟ADAT连接),控制转移用户选择使用哪个时钟作为输入,例如输入时钟的S / PDIF连接。

遵从性和原生支持

一次设备兼容usb听觉类,它将巧妙地集成到操作系统。 图3显示了一个屏幕截图的控制usb听觉设备插入Mac OS / X。 这表明时钟选择、采样率选择,通道音量控制和静音控制都是可控的,就像任何其他音频设备。
图3:一个可互操作的设备出现在一个标准的O / S对话框(Mac OS / X在这个例子中)和O / S可以设置音量,采样率等。

符合标准的设备互操作。 O / S供应商可以供应一个usb听觉驱动程序驱动大量的设备,具有多种功能。

实际上,相同的usb听觉实现可以参数化实现不同数量的渠道,和相同的驱动程序可用于接口设备。

总结

USB听觉类2.0利用高速USB 2.0,使低延迟传输电脑和连接音频设备之间的音频。 高吞吐量的高速USB 2.0可以利用提供许多音频通道,和高的音频质量。 usb听觉类标准满足广泛的设备,从复杂混合桌子和许多渠道,多个时钟源和复杂的控制,环绕声系统,个人电脑的扬声器和麦克风。
标签:
来源:liufengzhong 作者: 时间:2014/12/8 21:30:45
相关阅读
推荐阅读
阅读排行
最近更新
商品推荐