你的位置:首頁(yè) > 測(cè)試測(cè)量 > 正文

精辟演說(shuō):首席技術(shù)專(zhuān)家為您講解USB音頻

發(fā)布時(shí)間:2014-12-25 責(zé)任編輯:echolady

【導(dǎo)讀】USB歷經(jīng)數(shù)十年發(fā)展與延伸,已經(jīng)在各個(gè)領(lǐng)域廣泛應(yīng)用。我們的日常生活有很多的設(shè)備都離不開(kāi)USB,例如鼠標(biāo)、移動(dòng)硬盤(pán)、網(wǎng)絡(luò)攝像頭等等。本文由首席技術(shù)專(zhuān)家為我們深入解析USB音頻的工作原理,使用過(guò)程中的注意事項(xiàng),以及如何應(yīng)用USB音頻。

USB基本原理

USB是一種由PC(USB主機(jī))發(fā)起一次傳輸,設(shè)備(例如一套USB揚(yáng)聲器)繼而響應(yīng)的通信協(xié)議。每次傳輸都尋址到一個(gè)特定設(shè)備,并尋址到該設(shè)備的一個(gè)特定端點(diǎn)。IN傳輸將數(shù)據(jù)發(fā)送至PC。當(dāng)主機(jī)發(fā)起一次IN傳輸時(shí),設(shè)備必須用主機(jī)所需的數(shù)據(jù)做出響應(yīng)。OUT傳輸將數(shù)據(jù)傳輸至設(shè)備。當(dāng)主機(jī)執(zhí)行一次OUT傳輸時(shí),它發(fā)送設(shè)備必須捕獲的數(shù)據(jù)包。在USB音頻領(lǐng)域,IN傳輸和OUT傳輸可以用于傳輸音頻樣本:一個(gè)OUT傳輸將音頻數(shù)據(jù)從PC發(fā)送至揚(yáng)聲器,而IN傳輸用于將音頻數(shù)據(jù)從麥克風(fēng)發(fā)送至PC。

USB規(guī)范中有4種類(lèi)型的IN傳輸和OUT傳輸:批量傳輸、同步傳輸、中斷傳輸和控制傳輸。

批量傳輸用于在主機(jī)和設(shè)備之間可靠地傳輸數(shù)據(jù)。所有USB傳輸都帶有CRC(校驗(yàn)和),它表明是否有錯(cuò)誤發(fā)生。在一次批量傳輸中,數(shù)據(jù)的接收端必須驗(yàn)證CRC。如果CRC正確,傳輸被應(yīng)答,數(shù)據(jù)被假定已經(jīng)傳輸無(wú)誤。如果CRC不正確,傳輸不會(huì)被應(yīng)答,然后將會(huì)重試。如果設(shè)備未準(zhǔn)備好接收數(shù)據(jù),它將傳送一個(gè)否定應(yīng)答(NAK)信號(hào),該信號(hào)將會(huì)使主機(jī)重試傳輸。批量傳輸不被認(rèn)為對(duì)時(shí)間要求嚴(yán)格,因此將會(huì)安排在以下將要討論的、對(duì)時(shí)間要求嚴(yán)格的各種傳輸?shù)闹苓厱r(shí)間。

同步傳輸用于在主機(jī)和設(shè)備之間實(shí)時(shí)傳輸數(shù)據(jù)。若主機(jī)建立了同步端點(diǎn),主機(jī)會(huì)為同步端點(diǎn)分配一定數(shù)量的帶寬,并且它將在該端點(diǎn)上規(guī)律地執(zhí)行IN傳輸或OUT傳輸。例如,主機(jī)可以每125μs對(duì)該設(shè)備OUT 1KB數(shù)據(jù)。由于分配了固定的、有限數(shù)量的帶寬,如果出現(xiàn)了任何異常,都將沒(méi)有時(shí)間重發(fā)數(shù)據(jù)。數(shù)據(jù)具有正常的CRC,但是如果接收端檢測(cè)到錯(cuò)誤,將沒(méi)有重發(fā)機(jī)制。

中斷傳輸被主機(jī)用于定期探詢(xún)?cè)O(shè)備,以發(fā)現(xiàn)是否有值得做的事情發(fā)生。例如,主機(jī)可以探詢(xún)音頻設(shè)備,核對(duì)靜音(MUTE)按鈕是否已被按下。“中斷”傳輸這個(gè)名稱(chēng)有一點(diǎn)混淆視聽(tīng),因?yàn)槠洳⒉恢袛嗳魏问虑?。然而,?shù)據(jù)的定期探詢(xún)給出了主機(jī)中斷將會(huì)提供的相同類(lèi)型的功能。

控制傳輸與批量傳輸非常相似??刂苽鬏敃?huì)被應(yīng)答(即可以被NAK),并且以非實(shí)時(shí)方式傳送??刂苽鬏斢糜谡?shù)據(jù)流以外的操作,例如詢(xún)問(wèn)設(shè)備功能或端點(diǎn)狀態(tài)。設(shè)備功能描述的說(shuō)明在本文范疇之外,本文僅陳述諸如“USB音頻類(lèi)”或“USB大容量存儲(chǔ)類(lèi)”等預(yù)定義的類(lèi)型,它們能夠?qū)崿F(xiàn)跨平臺(tái)的互操作性。

USB幀中制定了所有的傳輸類(lèi)型。高速USB幀的長(zhǎng)度為125μs(Full Speed USB幀為1ms),并由主機(jī)發(fā)送幀起始(SOF)消息進(jìn)行標(biāo)記。同步傳輸和中斷傳輸每幀至多發(fā)送一次。

USB音頻

USB音頻使用了同步傳輸、中斷傳輸和控制傳輸。所有音頻數(shù)據(jù)通過(guò)同步傳輸來(lái)傳輸;中斷傳輸用于轉(zhuǎn)發(fā)關(guān)于音頻時(shí)鐘可用性的信息;控制傳輸用于設(shè)置音量、請(qǐng)求采樣率等(參見(jiàn)圖1)。

精辟演說(shuō):首席技術(shù)專(zhuān)家為您講解USB音頻
圖1:主機(jī)和USB設(shè)備之間的傳輸——同步IN和OUT用于音頻數(shù)據(jù),控制用于設(shè)置參數(shù),中斷用于狀態(tài)監(jiān)視。
 
USB音頻系統(tǒng)的數(shù)據(jù)需求取決于通道數(shù)、代表每個(gè)樣本的位數(shù),以及采樣率。典型的通道數(shù)為2(立體聲)、6(5.1聲道)或者更高(用于錄音室或DJ應(yīng)用)。盡管傳統(tǒng)音頻可用16位,典型的采樣率為24位,而高質(zhì)量音頻為32位。典型的采樣率為44.1、48、96及192kHz,后者為高質(zhì)量音頻所使用。

這里假設(shè)去設(shè)計(jì)一個(gè)具有96kHz采樣率和24位樣本的立體聲音頻揚(yáng)聲器系統(tǒng),為了簡(jiǎn)化主機(jī)和設(shè)備上的數(shù)據(jù)編組,24位值一般用一個(gè)零字節(jié)填充,因此,總數(shù)據(jù)吞吐速率為96,000×2通道×4B=768,000Bps。同步端點(diǎn)以每125μs進(jìn)行一次傳輸(或8000次傳輸/s)的速率工作。用所需的字節(jié)速率除以幀速率,可以得到每次同步傳輸?shù)淖止?jié)數(shù):768,000/8,000=每次傳輸96B。

假若使用例如44,000Hz 的CD唱片速率,傳輸速率經(jīng)計(jì)算為44.1次傳輸/s。在USB音頻中,每次傳輸總是運(yùn)送整數(shù)個(gè)樣本;傳輸在48B和40B(6個(gè)和5個(gè)立體聲樣本)之間交替進(jìn)行,以至于平均速率算出為每次傳輸44.1B。

單次同步傳輸可運(yùn)送1024B,最多能夠運(yùn)送256個(gè)樣本(在24/32位時(shí))。這意味著,單個(gè)同步端點(diǎn)在48kHz時(shí)能傳輸42個(gè)通道,或者在192kHz時(shí)能傳輸10個(gè)通道——假定使用的是高速USB(High Speed USB)——全速USB(Full Speed USB)在48kHz時(shí)無(wú)法運(yùn)送多于一個(gè)立體聲IN和OUT對(duì)。

當(dāng)發(fā)送數(shù)字音頻時(shí),將會(huì)有延遲引入。在高速USB的情況下,延遲為250μs。數(shù)據(jù)包在每個(gè)125μs窗口中傳輸一次,但是考慮到它可能會(huì)在該窗口中的任何時(shí)候發(fā)送,需要有一個(gè)250μs的緩沖器。在該250μs延遲的頂端,操作系統(tǒng)(O/S)驅(qū)動(dòng)程序和編解碼器(CODEC)中可能引起額外延遲。注意:全速USB的固有延遲遠(yuǎn)遠(yuǎn)更高(為2ms),因?yàn)閿?shù)據(jù)在每個(gè)1ms窗口中僅發(fā)送一次。
[page]
1s在“朋友”之間是什么?

在數(shù)字音頻中,商定一個(gè)共同的時(shí)間概念是大問(wèn)題。上文已經(jīng)定義了USB幀的傳輸速率為8,000次/s,并設(shè)定了揚(yáng)聲器播放樣本的速率為96,000次/s。僅當(dāng)揚(yáng)聲器和主機(jī)約定了1s的長(zhǎng)度,這才能夠奏效。USB音頻提供了3種模式,來(lái)確保主機(jī)和揚(yáng)聲器共同約定時(shí)序:

1、在同步模式中,1s的長(zhǎng)度由主機(jī)設(shè)備定義。這就是說(shuō),主機(jī)以某個(gè)速率發(fā)送數(shù)據(jù),設(shè)備必須精確匹配這個(gè)速率。

2、在異步模式中,這正好相反——設(shè)備設(shè)置1s的定義,主機(jī)必須對(duì)設(shè)備進(jìn)行匹配。

3、在自適應(yīng)模式中,數(shù)據(jù)流決定時(shí)鐘。

自適應(yīng)模式和同步模式并不理想,因?yàn)镻C保持時(shí)鐘穩(wěn)定的能力非常差,而且經(jīng)常有其他音頻源介入,例如一臺(tái)外部數(shù)字錄音機(jī)。異步模式使外部時(shí)鐘源(或是設(shè)備內(nèi)的低抖動(dòng)時(shí)鐘)能夠用作主時(shí)鐘。一般兩者都依賴(lài)于基于晶振的鎖相環(huán)(PLL),如圖2所示。

精辟演說(shuō):首席技術(shù)專(zhuān)家為您講解USB音頻
圖2:一款帶有一個(gè)晶振用于穩(wěn)定音頻頻率的USB音頻板,并且有一個(gè)低抖動(dòng)PLL用于產(chǎn)生任何所需的頻率信號(hào)。
 
因此,系統(tǒng)中至少有2個(gè)不同的時(shí)鐘:USB時(shí)鐘由主機(jī)產(chǎn)生,頻率為8,000次傳輸/s;采樣時(shí)鐘由外部產(chǎn)生,例如,其采樣率為96,000Hz。

這些時(shí)鐘的頻率會(huì)略有不同,其差別會(huì)隨時(shí)間略微變化。因此,每幀音頻樣本的平均數(shù)會(huì)稍微高于或低于期望的比率。例如,在本文96,000Hz采樣率的情況下,樣本的平均數(shù)為12.001。為了確保主機(jī)發(fā)送正確數(shù)量的數(shù)據(jù),并且不會(huì)太多或太低,主機(jī)向中斷端點(diǎn)請(qǐng)求當(dāng)前的采樣率。每隔幾個(gè)毫秒,上一個(gè)周期的平均采樣率將以16.16位定點(diǎn)數(shù)格式回報(bào)。如果上一個(gè)周期取平均數(shù)為12.001幀,那么報(bào)告值將為0x000C0041(65536×12.001)。

給定該平均速率,主機(jī)將能計(jì)算出在一次傳輸中在何時(shí)發(fā)送額外樣本;在此例中,每秒8次傳輸將運(yùn)送一個(gè)額外樣本。此外,主機(jī)能夠利用該值與音頻設(shè)備進(jìn)行同步。這使得DVD播放器等主機(jī)應(yīng)用能夠?qū)⒁曨l保持為與音頻同步。如果沒(méi)有同步,音頻會(huì)慢慢地跑到視頻前面,兩個(gè)小時(shí)以后,音頻將會(huì)有1s誤差。

為了保持反饋回路較短,訣竅是不對(duì)音頻包和反饋包做不必要的緩沖。任何附加的緩沖都會(huì)產(chǎn)生報(bào)告延遲,該延遲使得保持通信流的平滑變得更加困難。這意味著,底層USB棧和USB音頻棧應(yīng)緊密集成,而無(wú)需在它們之間緩沖。盡管這在應(yīng)用處理器上難以達(dá)到,但是把軟件在執(zhí)行時(shí)間可預(yù)測(cè)的嵌入式處理器上來(lái)實(shí)現(xiàn),這點(diǎn)將非常容易達(dá)到。諸如XMOS等公司現(xiàn)在可以提供這種可預(yù)測(cè)的嵌入式處理器,如XMOS的xCORE多核MCU等處理器系列。借助其豐富的內(nèi)置USB接口,它們緊密地將底層USB棧和USB音頻棧集成在一起。
[page]
多個(gè)時(shí)鐘源

以上方案僅考慮了兩個(gè)時(shí)鐘源——或者USB設(shè)備提供時(shí)鐘,或是主機(jī)提供時(shí)鐘。在調(diào)音臺(tái)等更復(fù)雜的設(shè)備中,可能還有其他設(shè)備提供采樣率,例如,通過(guò)ADAT或S/PDIF等數(shù)字接口,或通過(guò)攜帶字時(shí)鐘的BNC連接器提供。對(duì)于這樣的系統(tǒng),USB音頻標(biāo)準(zhǔn)使設(shè)計(jì)人員能夠在設(shè)備當(dāng)中置入時(shí)鐘選擇器。

時(shí)鐘選擇器規(guī)定采用哪個(gè)時(shí)鐘作為采樣率。時(shí)鐘選擇器有多個(gè)輸入時(shí)鐘(例如,一個(gè)S/PDIF接口上的輸入時(shí)鐘、本地晶振、以及一個(gè)ADAT接口上的輸入時(shí)鐘),并帶有一個(gè)用戶可選擇哪個(gè)時(shí)鐘用作輸入的控制傳輸,例如S/PDIF接口上的輸入時(shí)鐘。

符合性及原生支持

一旦一款設(shè)備符合USB音頻類(lèi)協(xié)議,它將會(huì)很便捷地集成到操作系統(tǒng)中。圖3顯示了USB音頻設(shè)備插入到Mac OS/X系統(tǒng)中的控制界面截屏。它表明,時(shí)鐘選擇、采樣率選擇、通道音量控制以及靜音控制等都是可以控制的,就像對(duì)于任何其他的音頻設(shè)備那樣。

精辟演說(shuō):首席技術(shù)專(zhuān)家為您講解USB音頻
圖3:一款可互操作的設(shè)備出現(xiàn)在標(biāo)準(zhǔn)O/S對(duì)話框(例如本例中的OS/X)中,并且O/S可以設(shè)置音量和采樣率等。
 
設(shè)備的標(biāo)準(zhǔn)符合性使其可以實(shí)現(xiàn)互操作。O/S供應(yīng)商能夠提供一種單獨(dú)的USB音頻驅(qū)動(dòng)程序,該驅(qū)動(dòng)程序可驅(qū)動(dòng)大量設(shè)備,并具有眾多功能。

的確,相同的USB音頻實(shí)現(xiàn)能夠進(jìn)行參數(shù)化,以實(shí)現(xiàn)不同數(shù)量的通道,并且相同的驅(qū)動(dòng)程序能夠用于連接設(shè)備。

結(jié)語(yǔ)

USB-Audio Class 2.0利用了高速USB 2.0標(biāo)準(zhǔn),支持在PC和一臺(tái)所連接的音頻設(shè)備之間對(duì)音頻進(jìn)行低延遲傳輸。高速USB 2.0的高吞吐率可用于實(shí)現(xiàn)多個(gè)音頻通道,并且具有高的音頻質(zhì)量。USB音頻類(lèi)標(biāo)準(zhǔn)可服務(wù)于多種設(shè)備的,從復(fù)雜的、具備多個(gè)通道、多個(gè)時(shí)鐘源和復(fù)雜控制的調(diào)音臺(tái),到環(huán)繞立體聲系統(tǒng)、PC揚(yáng)聲器和麥克風(fēng)。

目前,頂級(jí)的消費(fèi)性音頻產(chǎn)生已經(jīng)推出了各種USB-Audio產(chǎn)品,并且受到了市場(chǎng)的好評(píng),如Sony和OPPO已經(jīng)推出了基于XMOS公司xCORE多核MCU產(chǎn)品的USB-Audio耳機(jī)放大器和音響組合單元。預(yù)計(jì)該項(xiàng)應(yīng)用將在不遠(yuǎn)的將來(lái)為更多用戶所選用。

相關(guān)閱讀:

熟練掌握它:USB接口數(shù)模轉(zhuǎn)換電路設(shè)計(jì)
工程師值得推敲的設(shè)計(jì):嵌入式USB工業(yè)U盤(pán)系統(tǒng)的設(shè)計(jì)
牛人解讀:從RS 232接口向USB接口通訊的華麗轉(zhuǎn)變

要采購(gòu)揚(yáng)聲器么,點(diǎn)這里了解一下價(jià)格!
特別推薦
技術(shù)文章更多>>
技術(shù)白皮書(shū)下載更多>>
熱門(mén)搜索
?

關(guān)閉

?

關(guān)閉