|
图1:主机和USB设备之间的传输--同步IN和OUT用于音频数据,控制用于设置参数,中断用于状态监视。
/ m( o: N" d& H: o$ B' ?% O2 Z/ T
, u( C6 `2 d% o' }5 J USB音频系统的数据需求取决于通道数、代表每个样本的位数,以及采样率。典型的通道数为2(立体声)、6(5.1声道)或者更高(用于录音室或DJ应用)。尽管传统音频可用16位,典型的采样率为24位,而高质量音频为32位。典型的采样率为44.1、48、96及192kHz,后者为高质量音频所使用。$ P0 S" N5 f. `- k
# e' q4 ?. m/ g. ]+ i) R 这里假设去设计一个具有96kHz采样率和24位样本的立体声音频扬声器系统,为了简化主机和设备上的数据编组,24位值一般用一个零字节填充,因此,总数据吞吐速率为96,000×2通道×4B=768,000Bps。同步端点以每125μs进行一次传输(或8000次传输/s)的速率工作。用所需的字节速率除以帧速率,可以得到每次同步传输的字节数:768,000/8,000=每次传输96B。
q" C0 D$ w p, e, p
3 E) X: p8 [; G0 r 假若使用例如44,000Hz的CD唱片速率,传输速率经计算为44.1次传输/s。在USB音频中,每次传输总是运送整数个样本;传输在48B和40B(6个和5个立体声样本)之间交替进行,以至于平均速率算出为每次传输44.1B。
* r; \$ d5 {- M( t7 i
6 k% U/ n0 M/ i4 P6 y& Y1 i& ` 单次同步传输可运送1024B,最多能够运送256个样本(在24/32位时)。这意味着,单个同步端点在48kHz时能传输42个通道,或者在192kHz时能传输10个通道--假定使用的是高速USB(HighSpeedUSB)--全速USB(FullSpeedUSB)在48kHz时无法运送多于一个立体声IN和OUT对。
, h6 i) ]. l& I0 p$ H
Q7 ~$ L6 U2 F W4 c$ |+ A 当发送数字音频时,将会有延迟引入。在高速USB的情况下,延迟为250μs.数据包在每个125μs窗口中传输一次,但是考虑到它可能会在该窗口中的任何时候发送,需要有一个250μs的缓冲器。在该250μs延迟的顶端,操作系统(O/S)驱动程序和编解码器(CODEC)中可能引起额外延迟。注意:全速USB的固有延迟远远更高(为2ms),因为数据在每个1ms窗口中仅发送一次。
" w% _' X% l! b! ]1 |, g" w% [, z$ O
1s在“朋友”之间是什么?
. `' m2 ]9 Z7 Y. t
0 a/ n( }4 Y! |' r 在数字音频中,商定一个共同的时间概念是大问题。上文已经定义了USB帧的传输速率为8,000次/s,并设定了扬声器播放样本的速率为96,000次/s。仅当扬声器和主机约定了1s的长度,这才能够奏效。USB音频提供了3种模式,来确保主机和扬声器共同约定时序:
3 Q8 P5 F+ k. x2 b3 T g: V: M# f6 T0 t' l; d# C% N
●在同步模式中,1s的长度由主机设备定义。这就是说,主机以某个速率发送数据,设备必须精确匹配这个速率。6 T3 F2 `) l, `' Z* c7 t
. B4 `* S( g4 {: M' l& a
●在异步模式中,这正好相反--设备设置1s的定义,主机必须对设备进行匹配。
5 d: q8 N+ p% ?+ r, W3 h: c! b( p! l" M& [4 K. v
●在自适应模式中,数据流决定时钟。
! }* w" Q/ [5 j2 h+ B0 `6 ]; |# L3 _' [8 A/ D
自适应模式和同步模式并不理想,因为PC保持时钟稳定的能力非常差,而且经常有其他音频源介入,例如一台外部数字录音机。异步模式使外部时钟源(或是设备内的低抖动时钟)能够用作主时钟。一般两者都依赖于基于晶振的锁相环(PLL),如图2所示。: W# P& O, |* @( D' P% ~- ]
. ^2 L- g: g t& D( V
|
|