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