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