找回密码
 快速注册

QQ登录

只需一步,快速开始

查看: 11101|回复: 2

[音频应用] USB音频的原理

[复制链接]

7545

积分

8

听众

4030

金贝

中国原创歌词基地初级

积分
7545
audioapp 发表于 2016-6-24 07:56:37 | 显示全部楼层 |阅读模式
  USB(通用串行总线)经过几十年发展,已经成为一种在个人电脑领域大量使用的标准。记忆棒、移动硬盘、鼠标和网络摄像头都通过USB连接。本文将深入分析USB音频:一种用来将PC、智能手机和平板电脑中所使用的电子音频与扬声器、麦克风或调音台等音频外设连接在一起的标准。本文将描述USB音频的工作原理,需要注意什么事项,以及对于高保真多通道输入输出,应如何使用USB音频等。  \' Q3 }/ L: ~0 X
* i+ Q- o* X3 _3 }$ ~- U
  USB基本原理* y9 W" J2 F  x1 z' F

) J: G' b; f5 l! d8 r/ w7 k+ d  USB是一种由PC(USB主机)发起一次传输,设备(例如一套USB扬声器)继而响应的通信协议。每次传输都寻址到一个特定设备,并寻址到该设备的一个特定端点。IN传输将数据发送至PC.当主机发起一次IN传输时,设备必须用主机所需的数据做出响应。OUT传输将数据传输至设备。当主机执行一次OUT传输时,它发送设备必须捕获的数据包。在USB音频领域,IN传输和OUT传输可以用于传输音频样本:一个OUT传输将音频数据从PC发送至扬声器,而IN传输用于将音频数据从麦克风发送至PC。; {* p0 \* A( W% t# k  @( `
. `% x. s8 g. x1 Q
  USB规范中有4种类型的IN传输和OUT传输:批量传输、同步传输、中断传输和控制传输。1 l9 f6 r2 i8 B" }% }! h
+ {' X* s# P, r* k' P" W! r. ]7 `
  批量传输用于在主机和设备之间可靠地传输数据。所有USB传输都带有CRC(校验和),它表明是否有错误发生。在一次批量传输中,数据的接收端必须验证CRC.如果CRC正确,传输被应答,数据被假定已经传输无误。如果CRC不正确,传输不会被应答,然后将会重试。如果设备未准备好接收数据,它将传送一个否定应答(NAK)信号,该信号将会使主机重试传输。批量传输不被认为对时间要求严格,因此将会安排在以下将要讨论的、对时间要求严格的各种传输的周边时间。* P& l5 Z- i) `5 \- S

1 o# Y7 G. c' i) L) [  同步传输用于在主机和设备之间实时传输数据。若主机建立了同步端点,主机会为同步端点分配一定数量的带宽,并且它将在该端点上规律地执行IN传输或OUT传输。例如,主机可以每125μs对该设备OUT1KB数据。由于分配了固定的、有限数量的带宽,如果出现了任何异常,都将没有时间重发数据。数据具有正常的CRC,但是如果接收端检测到错误,将没有重发机制。
2 W/ ]* E  T2 k# l7 D: x  }) w. p4 i) _! U- X9 Q! e/ n; Z
  中断传输被主机用于定期探询设备,以发现是否有值得做的事情发生。例如,主机可以探询音频设备,核对静音(MUTE)按钮是否已被按下。“中断”传输这个名称有一点混淆视听,因为其并不中断任何事情。然而,数据的定期探询给出了主机中断将会提供的相同类型的功能。+ {- P5 b6 {9 O9 h" {" G& e

) g$ d% ?1 e6 \6 g  控制传输与批量传输非常相似。控制传输会被应答(即可以被NAK),并且以非实时方式传送。控制传输用于正常数据流以外的操作,例如询问设备功能或端点状态。设备功能描述的说明在本文范畴之外,本文仅陈述诸如“USB音频类”或“USB大容量存储类”等预定义的类型,它们能够实现跨平台的互操作性。# b% E2 u% \, j$ J7 o1 ^0 v
5 Z% b( |; V% d
  USB帧中制定了所有的传输类型。高速USB帧的长度为125μs(FullSpeedUSB帧为1ms),并由主机发送帧起始(SOF)消息进行标记。同步传输和中断传输每帧至多发送一次。
( A' e! h) {( F& U7 W' f
) G: y  J/ ]: s- Y  USB音频
, M% h8 x1 L0 E6 V) X) S- y0 C
6 j+ q' ]/ p+ I0 Q8 [0 t8 U5 d- P  USB音频使用了同步传输、中断传输和控制传输。所有音频数据通过同步传输来传输;中断传输用于转发关于音频时钟可用性的信息;控制传输用于设置音量、请求采样率等(参见图1)。. l9 S0 D4 H7 X1 a- d  A
2014122314556224.jpg
音频应用店铺 音乐发布 中国原创歌词网
回复

使用道具 举报

7545

积分

8

听众

4030

金贝

中国原创歌词基地初级

积分
7545
 楼主| audioapp 发表于 2016-6-24 07:57:11 | 显示全部楼层
  图1:主机和USB设备之间的传输--同步IN和OUT用于音频数据,控制用于设置参数,中断用于状态监视。
& }3 x+ m2 j1 w5 Q- B- `1 q1 b# [
& {7 ?- w! e1 L2 |+ }& Y' p1 a8 ^  USB音频系统的数据需求取决于通道数、代表每个样本的位数,以及采样率。典型的通道数为2(立体声)、6(5.1声道)或者更高(用于录音室或DJ应用)。尽管传统音频可用16位,典型的采样率为24位,而高质量音频为32位。典型的采样率为44.1、48、96及192kHz,后者为高质量音频所使用。% d. c+ j$ V4 g  U6 r
* F; X9 `% k4 r3 E0 c4 g
  这里假设去设计一个具有96kHz采样率和24位样本的立体声音频扬声器系统,为了简化主机和设备上的数据编组,24位值一般用一个零字节填充,因此,总数据吞吐速率为96,000×2通道×4B=768,000Bps。同步端点以每125μs进行一次传输(或8000次传输/s)的速率工作。用所需的字节速率除以帧速率,可以得到每次同步传输的字节数:768,000/8,000=每次传输96B。4 l# `- r( f1 A8 X' Y( N9 T8 H
/ Q: e4 A, N, ^+ L/ O1 J4 p
  假若使用例如44,000Hz的CD唱片速率,传输速率经计算为44.1次传输/s。在USB音频中,每次传输总是运送整数个样本;传输在48B和40B(6个和5个立体声样本)之间交替进行,以至于平均速率算出为每次传输44.1B。  I+ `% p4 b4 W1 ^% W; b  P
6 ?" i+ T8 K2 ^  T: `
  单次同步传输可运送1024B,最多能够运送256个样本(在24/32位时)。这意味着,单个同步端点在48kHz时能传输42个通道,或者在192kHz时能传输10个通道--假定使用的是高速USB(HighSpeedUSB)--全速USB(FullSpeedUSB)在48kHz时无法运送多于一个立体声IN和OUT对。
, h" w3 i+ W: a4 L, L) H. L3 K" o3 e
  当发送数字音频时,将会有延迟引入。在高速USB的情况下,延迟为250μs.数据包在每个125μs窗口中传输一次,但是考虑到它可能会在该窗口中的任何时候发送,需要有一个250μs的缓冲器。在该250μs延迟的顶端,操作系统(O/S)驱动程序和编解码器(CODEC)中可能引起额外延迟。注意:全速USB的固有延迟远远更高(为2ms),因为数据在每个1ms窗口中仅发送一次。* N5 c) h" e* w6 F3 ?" `8 B# }6 s) h

. n0 ~8 m6 H  c4 a  @, h  1s在“朋友”之间是什么?9 |6 |. B6 [# L+ L
9 X/ ^- b$ A9 C1 I& x. E
  在数字音频中,商定一个共同的时间概念是大问题。上文已经定义了USB帧的传输速率为8,000次/s,并设定了扬声器播放样本的速率为96,000次/s。仅当扬声器和主机约定了1s的长度,这才能够奏效。USB音频提供了3种模式,来确保主机和扬声器共同约定时序:
0 _& G/ {# l7 F: d+ ~5 j- b+ F/ W+ g+ A& j+ L) G/ s
  ●在同步模式中,1s的长度由主机设备定义。这就是说,主机以某个速率发送数据,设备必须精确匹配这个速率。
! ?8 n' i/ f* z* h  G( ]
/ R+ u2 p4 J0 U- F, D6 a  ●在异步模式中,这正好相反--设备设置1s的定义,主机必须对设备进行匹配。
6 n  j9 [/ t3 D
0 R. A& u  ~* H5 v+ \( y: x0 }" Q/ O  ●在自适应模式中,数据流决定时钟。
9 E9 G8 H/ o5 h% j
, b) y8 W+ @3 g9 C; e  自适应模式和同步模式并不理想,因为PC保持时钟稳定的能力非常差,而且经常有其他音频源介入,例如一台外部数字录音机。异步模式使外部时钟源(或是设备内的低抖动时钟)能够用作主时钟。一般两者都依赖于基于晶振的锁相环(PLL),如图2所示。$ i6 c% m3 F/ n) M1 `+ L6 H2 X: r

! z0 w6 V& L  D- j   2014122314556884.jpg
音频应用店铺 音乐发布 中国原创歌词网
回复 支持 反对

使用道具 举报

7545

积分

8

听众

4030

金贝

中国原创歌词基地初级

积分
7545
 楼主| audioapp 发表于 2016-6-24 07:58:08 | 显示全部楼层
  图2:一款带有一个晶振用于稳定音频频率的USB音频板,并且有一个低抖动PLL用于产生任何所需的频率信号。
' n  H0 _/ t: X4 Z$ D3 z4 |
: o' n9 w, G. q. r5 h5 ]$ u3 u1 u' W  因此,系统中至少有2个不同的时钟:USB时钟由主机产生,频率为8,000次传输/s;采样时钟由外部产生,例如,其采样率为96,000Hz。
/ ^: n: ~0 `( n5 V) f4 s  M$ {' `, D8 Q: Q0 X
  这些时钟的频率会略有不同,其差别会随时间略微变化。因此,每帧音频样本的平均数会稍微高于或低于期望的比率。例如,在本文96,000Hz采样率的情况下,样本的平均数为12.001.为了确保主机发送正确数量的数据,并且不会太多或太低,主机向中断端点请求当前的采样率。每隔几个毫秒,上一个周期的平均采样率将以16.16位定点数格式回报。如果上一个周期取平均数为12.001帧,那么报告值将为0x000C0041(65536×12.001)。
" |3 Y6 j$ |* |) `% D6 j2 Q1 _! Z! I! _  {* C. `* t
  给定该平均速率,主机将能计算出在一次传输中在何时发送额外样本;在此例中,每秒8次传输将运送一个额外样本。此外,主机能够利用该值与音频设备进行同步。这使得DVD播放器等主机应用能够将视频保持为与音频同步。如果没有同步,音频会慢慢地跑到视频前面,两个小时以后,音频将会有1s误差。
7 s. }2 r; @: d: R# q' j/ F' W) e( ^7 l0 S
  为了保持反馈回路较短,诀窍是不对音频包和反馈包做不必要的缓冲。任何附加的缓冲都会产生报告延迟,该延迟使得保持通信流的平滑变得更加困难。这意味着,底层USB栈和USB音频栈应紧密集成,而无需在它们之间缓冲。尽管这在应用处理器上难以达到,但是把软件在执行时间可预测的嵌入式处理器上来实现,这点将非常容易达到。诸如XMOS等公司现在可以提供这种可预测的嵌入式处理器,如XMOS的xCORE多核MCU等处理器系列。借助其丰富的内置USB接口,它们紧密地将底层USB栈和USB音频栈集成在一起。
1 f( U2 s: g+ h+ b
% S- D4 I; H# C' X8 @  多个时钟源0 [& e+ ^, K& B7 r, A2 v

3 g$ A6 d3 L4 g8 N: G  以上方案仅考虑了两个时钟源--或者USB设备提供时钟,或是主机提供时钟。在调音台等更复杂的设备中,可能还有其他设备提供采样率,例如,通过ADAT或S/PDIF等数字接口,或通过携带字时钟的BNC连接器提供。对于这样的系统,USB音频标准使设计人员能够在设备当中置入时钟选择器。. G7 ?/ R1 H  m

, G8 D& I( P- l& B/ e  时钟选择器规定采用哪个时钟作为采样率。时钟选择器有多个输入时钟(例如,一个S/PDIF接口上的输入时钟、本地晶振、以及一个ADAT接口上的输入时钟),并带有一个用户可选择哪个时钟用作输入的控制传输,例如S/PDIF接口上的输入时钟。
, J2 E% o! x7 r+ _$ d" b3 \$ q  J
+ M5 f5 a- Q5 A  符合性及原生支持
9 k- o2 C0 h0 C* k3 Z( n: u$ d& n. A4 D' v  y: p. O+ r
  一旦一款设备符合USB音频类协议,它将会很便捷地集成到操作系统中。图3显示了USB音频设备插入到MacOS/X系统中的控制界面截屏。它表明,时钟选择、采样率选择、通道音量控制以及静音控制等都是可以控制的,就像对于任何其他的音频设备那样。
8 @! V* a( H1 K& b4 D' {' h6 G$ V( j  h+ _- u4 Z' Z* [
   2014122314556742.jpg # k% f& }  x" f' Z2 u
" C2 F4 ^1 N% j" `, [, a
  图3:一款可互操作的设备出现在标准O/S对话框(例如本例中的OS/X)中,并且O/S可以设置音量和采样率等。
% i9 p( \5 Q% J: b% v$ R+ ~6 D. O5 @$ ~! n6 C0 H9 ^6 i! n- S0 N
  设备的标准符合性使其可以实现互操作。O/S供应商能够提供一种单独的USB音频驱动程序,该驱动程序可驱动大量设备,并具有众多功能。
3 D, C& f' H. M& c5 s9 l0 A  K4 W) ~4 D: J; s3 n3 C) V' d9 @
  的确,相同的USB音频实现能够进行参数化,以实现不同数量的通道,并且相同的驱动程序能够用于连接设备。
" ^. P/ T6 [" r+ t8 u
% ~( y* ~6 K. ^# U1 T% m! Q  小结与展望
5 `$ b" [* a& U$ f/ ?" U+ k! r. K) U+ F5 M( X  n; Z
  USB-AudioClass2.0利用了高速USB2.0标准,支持在PC和一台所连接的音频设备之间对音频进行低延迟传输。高速USB2.0的高吞吐率可用于实现多个音频通道,并且具有高的音频质量。USB音频类标准可服务于多种设备的,从复杂的、具备多个通道、多个时钟源和复杂控制的调音台,到环绕立体声系统、PC扬声器和麦克风。
2 Q# M6 y; V+ O( o5 ~2 h: L, q1 R3 m
  目前,顶级的消费性音频产生已经推出了各种USB-Audio产品,并且受到了市场的好评!
音频应用店铺 音乐发布 中国原创歌词网
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

小黑屋|手机版|音频应用|歌词网|投稿|中国原创歌词基地 ( 鄂ICP备13005321号-1 )

GMT+8, 2026-5-20 19:41 , Processed in 0.029751 second(s), 8 queries , Redis On.

Powered by Audio app

中国原创歌词网微信: 924177110

快速回复 返回顶部 返回列表