精辟演說:首席技術專家為您講解USB音頻
發布時間:2014-12-25 責任編輯:echolady
【導讀】USB曆經數十年發展與延伸,已經在各個領域廣泛應用。我們的日常生活有很多的設備都離不開USB,例如鼠標、移動硬盤、網絡攝像頭等等。本文由首席技術專家為我們深入解析USB音頻的工作原理,使用過程中的注意事項,以及如何應用USB音頻。
USB基本原理
USB是一種由PC(USB主機)發起一次傳輸,設備(例如一套USB揚聲器)繼而響應的通信協議。每次傳輸都尋址到一個特定設備,並尋址到該設備的一個特定端點。IN傳輸將數據發送至PC。當主機發起一次IN傳輸時,設備必須用主機所需的數據做出響應。OUT傳輸將數據傳輸至設備。當主機執行一次OUT傳輸時,它發送設備必須捕獲的數據包。在USB音頻領域,IN傳輸和OUT傳輸可以用於傳輸音頻樣本:一個OUT傳輸將音頻數據從PC發送至揚聲器,而IN傳輸用於將音頻數據從麥克風發送至PC。
USB規範中有4種類型的IN傳輸和OUT傳輸:批量傳輸、同步傳輸、中斷傳輸和控製傳輸。
批量傳輸用於在主機和設備之間可靠地傳輸數據。所有USB傳輸都帶有CRC(校驗和),它表明是否有錯誤發生。在一次批量傳輸中,數據的接收端必須驗證CRC。如果CRC正確,傳輸被應答,數據被假定已經傳輸無誤。如果CRC不正確,傳輸不會被應答,然後將會重試。如果設備未準備好接收數據,它將傳送一個否定應答(NAK)信號,該信號將會使主機重試傳輸。批量傳輸不被認為對時間要求嚴格,因此將會安排在以下將要討論的、對時間要求嚴格的各種傳輸的周邊時間。
tongbuchuanshuyongyuzaizhujiheshebeizhijianshishichuanshushuju。ruozhujijianliletongbuduandian,zhujihuiweitongbuduandianfenpeiyidingshuliangdedaikuan,bingqietajiangzaigaiduandianshangguilvdizhixingIN傳輸或OUT傳輸。例如,主機可以每125μs對該設備OUT 1KB數據。由於分配了固定的、有限數量的帶寬,如果出現了任何異常,都將沒有時間重發數據。數據具有正常的CRC,但是如果接收端檢測到錯誤,將沒有重發機製。
中斷傳輸被主機用於定期探詢設備,以發現是否有值得做的事情發生。例如,主機可以探詢音頻設備,核對靜音(MUTE)按鈕是否已被按下。“中斷”傳輸這個名稱有一點混淆視聽,因為其並不中斷任何事情。然而,數據的定期探詢給出了主機中斷將會提供的相同類型的功能。
控製傳輸與批量傳輸非常相似。控製傳輸會被應答(即可以被NAK),並(bing)且(qie)以(yi)非(fei)實(shi)時(shi)方(fang)式(shi)傳(chuan)送(song)。控(kong)製(zhi)傳(chuan)輸(shu)用(yong)於(yu)正(zheng)常(chang)數(shu)據(ju)流(liu)以(yi)外(wai)的(de)操(cao)作(zuo),例(li)如(ru)詢(xun)問(wen)設(she)備(bei)功(gong)能(neng)或(huo)端(duan)點(dian)狀(zhuang)態(tai)。設(she)備(bei)功(gong)能(neng)描(miao)述(shu)的(de)說(shuo)明(ming)在(zai)本(ben)文(wen)範(fan)疇(chou)之(zhi)外(wai),本(ben)文(wen)僅(jin)陳(chen)述(shu)諸(zhu)如(ru)“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窗口中僅發送一次。
[page]
1s在“朋友”之間是什麼?
在數字音頻中,商定一個共同的時間概念是大問題。上文已經定義了USB幀的傳輸速率為8,000次/s,並設定了揚聲器播放樣本的速率為96,000次/s。僅當揚聲器和主機約定了1s的長度,這才能夠奏效。USB音頻提供了3種模式,來確保主機和揚聲器共同約定時序:
1、在同步模式中,1s的長度由主機設備定義。這就是說,主機以某個速率發送數據,設備必須精確匹配這個速率。
2、在異步模式中,這正好相反——設備設置1s的定義,主機必須對設備進行匹配。
3、在自適應模式中,數據流決定時鍾。
自適應模式和同步模式並不理想,因為PC保持時鍾穩定的能力非常差,而且經常有其他音頻源介入,例如一台外部數字錄音機。異步模式使外部時鍾源(或是設備內的低抖動時鍾)能夠用作主時鍾。一般兩者都依賴於基於晶振的鎖相環(PLL),如圖2所示。

圖2:一款帶有一個晶振用於穩定音頻頻率的USB音頻板,並且有一個低抖動PLL用於產生任何所需的頻率信號。
因此,係統中至少有2個不同的時鍾:USB時鍾由主機產生,頻率為8,000次傳輸/s;采樣時鍾由外部產生,例如,其采樣率為96,000Hz。這些時鍾的頻率會略有不同,其差別會隨時間略微變化。因此,每幀音頻樣本的平均數會稍微高於或低於期望的比率。例如,在本文96,000Hz采樣率的情況下,樣本的平均數為12.001。為(wei)了(le)確(que)保(bao)主(zhu)機(ji)發(fa)送(song)正(zheng)確(que)數(shu)量(liang)的(de)數(shu)據(ju),並(bing)且(qie)不(bu)會(hui)太(tai)多(duo)或(huo)太(tai)低(di),主(zhu)機(ji)向(xiang)中(zhong)斷(duan)端(duan)點(dian)請(qing)求(qiu)當(dang)前(qian)的(de)采(cai)樣(yang)率(lv)。每(mei)隔(ge)幾(ji)個(ge)毫(hao)秒(miao),上(shang)一(yi)個(ge)周(zhou)期(qi)的(de)平(ping)均(jun)采(cai)樣(yang)率(lv)將(jiang)以(yi)16.16位定點數格式回報。如果上一個周期取平均數為12.001幀,那麼報告值將為0x000C0041(65536×12.001)。
給定該平均速率,主機將能計算出在一次傳輸中在何時發送額外樣本;在此例中,每秒8次傳輸將運送一個額外樣本。此外,主機能夠利用該值與音頻設備進行同步。這使得DVD播放器等主機應用能夠將視頻保持為與音頻同步。如果沒有同步,音頻會慢慢地跑到視頻前麵,兩個小時以後,音頻將會有1s誤差。
為(wei)了(le)保(bao)持(chi)反(fan)饋(kui)回(hui)路(lu)較(jiao)短(duan),訣(jue)竅(qiao)是(shi)不(bu)對(dui)音(yin)頻(pin)包(bao)和(he)反(fan)饋(kui)包(bao)做(zuo)不(bu)必(bi)要(yao)的(de)緩(huan)衝(chong)。任(ren)何(he)附(fu)加(jia)的(de)緩(huan)衝(chong)都(dou)會(hui)產(chan)生(sheng)報(bao)告(gao)延(yan)遲(chi),該(gai)延(yan)遲(chi)使(shi)得(de)保(bao)持(chi)通(tong)信(xin)流(liu)的(de)平(ping)滑(hua)變(bian)得(de)更(geng)加(jia)困(kun)難(nan)。這(zhe)意(yi)味(wei)著(zhe),底(di)層(ceng)USB棧和USByinpinzhanyingjinmijicheng,erwuxuzaitamenzhijianhuanchong。jinguanzhezaiyingyongchuliqishangnanyidadao,danshibaruanjianzaizhixingshijiankeyucedeqianrushichuliqishanglaishixian,zhedianjiangfeichangrongyidadao。zhuruXMOS等公司現在可以提供這種可預測的嵌入式處理器,如XMOS的xCORE多核MCU等處理器係列。借助其豐富的內置USB接口,它們緊密地將底層USB棧和USB音頻棧集成在一起。
[page]
多個時鍾源
以上方案僅考慮了兩個時鍾源——或者USB設備提供時鍾,或是主機提供時鍾。在調音台等更複雜的設備中,可能還有其他設備提供采樣率,例如,通過ADAT或S/PDIF等數字接口,或通過攜帶字時鍾的BNC連接器提供。對於這樣的係統,USB音頻標準使設計人員能夠在設備當中置入時鍾選擇器。
時鍾選擇器規定采用哪個時鍾作為采樣率。時鍾選擇器有多個輸入時鍾(例如,一個S/PDIF接口上的輸入時鍾、本地晶振、以及一個ADAT接口上的輸入時鍾),並帶有一個用戶可選擇哪個時鍾用作輸入的控製傳輸,例如S/PDIF接口上的輸入時鍾。
符合性及原生支持
一旦一款設備符合USB音頻類協議,它將會很便捷地集成到操作係統中。圖3顯示了USB音頻設備插入到Mac OS/X係統中的控製界麵截屏。它表明,時鍾選擇、采樣率選擇、通道音量控製以及靜音控製等都是可以控製的,就像對於任何其他的音頻設備那樣。

圖3:一款可互操作的設備出現在標準O/S對話框(例如本例中的OS/X)中,並且O/S可以設置音量和采樣率等。
設備的標準符合性使其可以實現互操作。O/S供應商能夠提供一種單獨的USB音頻驅動程序,該驅動程序可驅動大量設備,並具有眾多功能。的確,相同的USB音頻實現能夠進行參數化,以實現不同數量的通道,並且相同的驅動程序能夠用於連接設備。
結語
USB-Audio Class 2.0利用了高速USB 2.0標準,支持在PC和一台所連接的音頻設備之間對音頻進行低延遲傳輸。高速USB 2.0的高吞吐率可用於實現多個音頻通道,並且具有高的音頻質量。USB音頻類標準可服務於多種設備的,從複雜的、具備多個通道、多個時鍾源和複雜控製的調音台,到環繞立體聲係統、PC揚聲器和麥克風。
目前,頂級的消費性音頻產生已經推出了各種USB-Audio產品,並且受到了市場的好評,如Sony和OPPO已經推出了基於XMOS公司xCORE多核MCU產品的USB-Audio耳機放大器和音響組合單元。預計該項應用將在不遠的將來為更多用戶所選用。
相關閱讀:
熟練掌握它:USB接口數模轉換電路設計
工程師值得推敲的設計:嵌入式USB工業U盤係統的設計
牛人解讀:從RS 232接口向USB接口通訊的華麗轉變
特別推薦
- 噪聲中提取真值!瑞盟科技推出MSA2240電流檢測芯片賦能多元高端測量場景
- 10MHz高頻運行!氮矽科技發布集成驅動GaN芯片,助力電源能效再攀新高
- 失真度僅0.002%!力芯微推出超低內阻、超低失真4PST模擬開關
- 一“芯”雙電!聖邦微電子發布雙輸出電源芯片,簡化AFE與音頻設計
- 一機適配萬端:金升陽推出1200W可編程電源,賦能高端裝備製造
技術文章更多>>
- 築基AI4S:摩爾線程全功能GPU加速中國生命科學自主生態
- 一秒檢測,成本降至萬分之一,光引科技把幾十萬的台式光譜儀“搬”到了手腕上
- AI服務器電源機櫃Power Rack HVDC MW級測試方案
- 突破工藝邊界,奎芯科技LPDDR5X IP矽驗證通過,速率達9600Mbps
- 通過直接、準確、自動測量超低範圍的氯殘留來推動反滲透膜保護
技術白皮書下載更多>>
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索




