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