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