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