USB(通用串行总线)经过几十年开展,现已成为一种在个人电脑领域很多运用的标准。记忆棒、移动硬盘、鼠标和网络摄像头都经过USB衔接。本文将深入分析USB音频:一种用来将PC、智能手机和平板电脑中所运用的电子音频与扬声器、麦克风或调音台等音频外设衔接在一起的标准。本文将描绘USB音频的作业原理,需求留意什么事项,以及关于高保真多通道输入输出,应怎么运用USB音频等。
USB基本原理
USB是一种由PC(USB主机)建议一次传输,设备(例如一套USB扬声器)继而呼应的通信协议。每次传输都寻址到一个特定设备,并寻址到该设备的一个特定端点。IN传输将数据发送至PC。当主机建议一次IN传输时,设备有必要用主机所需的数据做出呼应。OUT传输将数据传输至设备。当主机履行一次OUT传输时,它发送设备有必要捕获的数据包。在USB音频领域,IN传输和OUT传输可以用于传输音频样本:一个OUT传输将音频数据从PC发送至扬声器,而IN传输用于将音频数据从麦克风发送至PC。
作者:XMOS首席技能专家Henk Muller |
USB标准中有4种类型的IN传输和OUT传输:批量传输、同步传输、中止传输和操控传输。
批量传输用于在主机和设备之间可靠地传输数据。一切USB传输都带有CRC(校验和),它标明是否有过错产生。在一次批量传输中,数据的接纳端有必要验证CRC。假如CRC正确,传输被应对,数据被假定现已传输无误。假如CRC不正确,传输不会被应对,然后将会重试。假如设备未准备好接纳数据,它将传送一个否定应对(NAK)信号,该信号将会使主机重试传输。批量传输不被以为对时刻要求严厉,因而将会安排在以下即将评论的、对时刻要求严厉的各种传输的周边时刻。
同步传输用于在主机和设备之间实时传输数据。若主机建立了同步端点,主机会为同步端点分配必定数量的带宽,并且它将在该端点上规则地履行IN传输或OUT传输。例如,主机可以每125μs对该设备OUT 1KB数据。由于分配了固定的、有限数量的带宽,假如呈现了任何反常,都将没有时刻重发数据。数据具有正常的CRC,可是假如接纳端检测到过错,将没有重发机制。
中止传输被主机用于定时打听设备,以发现是否有值得做的作业产生。例如,主机可以打听音频设备,核对静音(MUTE)按钮是否已被按下。“中止”传输这个称号有一点混淆视听,由于其并不中止任何作业。可是,数据的定时打听给出了主机中止将会供给的相同类型的功用。
操控传输与批量传输十分类似。操控传输会被应对(即可以被NAK),并且以非实时方法传送。操控传输用于正常数据流以外的操作,例如问询设备功用或端点状况。设备功用描绘的阐明在本文领域之外,本文仅陈说比如“USB音频类”或“USB大容量存储类”等预界说的类型,它们可以完成跨渠道的互操作性。
USB帧中拟定了一切的传输类型。高速USB帧的长度为125μs(Full Speed USB帧为1ms),并由主机发送帧开始(SOF)音讯进行符号。同步传输和中止传输每帧至多发送一次。
USB音频
USB音频运用了同步传输、中止传输和操控传输。一切音频数据经过同步传输来传输;中止传输用于转发关于音频时钟可用性的信息;操控传输用于设置音量、恳求采样率等(参见图1)。
图1:主机和USB设备之间的传输——同步IN和OUT用于音频数据,操控用于设置参数,中止用于状况监督。
USB音频体系的数据需求取决于通道数、代表每个样本的位数,以及采样率。典型的通道数为2(立体声)、6(5.1声道)或许更高(用于录音室或DJ运用)。虽然传统音频可用16位,典型的采样率为24位,而高质量音频为32位。典型的采样率为44.1、48、96及192kHz,后者为高质量音频所运用。
这儿假设去规划一个具有96kHz采样率和24位样本的立体声音频扬声器体系,为了简化主机和设备上的数据编组,24位值一般用一个零字节填充,因而,总数据吞吐速率为96,000×2通道×4B=768,000Bps。同步端点以每125μs进行一次传输(或8000次传输/s)的速率作业。用所需的字节速率除以帧速率,可以得到每次同步传输的字节数:768,000/8,000=每次传输96B。
假若运用例如44,000Hz 的CD唱片速率,传输速率经核算为44.1次传输/s。在USB音频中,每次传输总是运送整数个样本;传输在48B和40B(6个和5个立体声样本)之间替换进行,以至于均匀速率算出为每次传输44.1B。
单次同步传输可运送1024B,最多可以运送256个样本(在24/32位时)。这意味着,单个同步端点在48kHz时能传输42个通道,或许在192kHz时能传输10个通道——假定运用的是高速USB(High Speed USB)——全速USB(Full Speed USB)在48kHz时无法运送多于一个立体声IN和OUT对。
当发送数字音频时,将会有推迟引进。在高速USB的情况下,推迟为250μs。数据包在每个125μs窗口中传输一次,可是考虑到它或许会在该窗口中的任何时候发送,需求有一个250μs的缓冲器。在该250μs推迟的顶端,操作体系(O/S)驱动程序和编解码器(CODEC)中或许引起额定推迟。留意:全速USB的固有推迟远远更高(为2ms),由于数据在每个1ms窗口中仅发送一次。
1s在“朋友”之间是什么?
在数字音频中,商定一个一起的时刻概念是大问题。上文现已界说了USB帧的传输速率为8,000次/s,并设定了扬声器播映样本的速率为96,000次/s。仅当扬声器和主机约好了1s的长度,这才可以见效。USB音频供给了3种形式,来保证主机和扬声器一起约好时序:
● 在同步形式中,1s的长度由主机设备界说。这就是说,主机以某个速率发送数据,设备有必要准确匹配这个速率。
● 在异步形式中,这正好相反——设备设置1s的界说,主机有必要对设备进行匹配。
● 在自适应形式中,数据流决议时钟。
自适应形式和同步形式并不抱负,由于PC坚持时钟安稳的才能十分差,并且常常有其他音频源介入,例如一台外部数字录音机。异步形式使外部时钟源(或是设备内的低颤动时钟)可以用作主时钟。一般两者都依赖于根据晶振的锁相环(PLL),如图2所示。