新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > USB音頻的基本原理

        USB音頻的基本原理

        作者: 時間:2016-12-16 來源:網絡 收藏




        圖2:一款帶有一個晶振用于穩定音頻頻率的USB音頻板,并且有一個低抖動PLL用于產生任何所需的頻率信號。


        因此,系統中至少有2個不同的時鐘:USB時鐘由主機產生,頻率為8,000次傳輸/s;采樣時鐘由外部產生,例如,其采樣率為96,000Hz。
        這些時鐘的頻率會略有不同,其差別會隨時間略微變化。因此,每幀音頻樣本的平均數會稍微高于或低于期望的比率。例如,在本文96,000Hz采樣率的情況下,樣本的平均數為12.001。為了確保主機發送正確數量的數據,并且不會太多或太低,主機向中斷端點請求當前的采樣率。每隔幾個毫秒,上一個周期的平均采樣率將以16.16位定點數格式回報。如果上一個周期取平均數為12.001幀,那么報告值將為0x000C0041(65536×12.001)。
        給定該平均速率,主機將能計算出在一次傳輸中在何時發送額外樣本;在此例中,每秒8次傳輸將運送一個額外樣本。此外,主機能夠利用該值與音頻設備進行同步。這使得DVD播放器等主機應用能夠將視頻保持為與音頻同步。如果沒有同步,音頻會慢慢地跑到視頻前面,兩個小時以后,音頻將會有1s誤差。
        為了保持反饋回路較短,訣竅是不對音頻包和反饋包做不必要的緩沖。任何附加的緩沖都會產生報告延遲,該延遲使得保持通信流的平滑變得更加困難。這意味著,底層USB棧和USB音頻棧應緊密集成,而無需在它們之間緩沖。盡管這在應用處理器上難以達到,但是把軟件在執行時間可預測的嵌入式處理器上來實現,這點將非常容易達到。諸如XMOS等公司現在可以提供這種可預測的嵌入式處理器,如XMOS的xCORE多核MCU等處理器系列。借助其豐富的內置USB接口,它們緊密地將底層USB棧和USB音頻棧集成在一起。





        多個時鐘源
        以上方案僅考慮了兩個時鐘源——或者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耳機放大器和音響組合單元。預計該項應用將在不遠的將來為更多用戶所選用。

        上一頁 1 2 下一頁

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 宁安市| 清水河县| 南宁市| 齐齐哈尔市| 资阳市| 东安县| 出国| 苏尼特右旗| 青岛市| 田林县| 清新县| 白河县| 仪陇县| 个旧市| 酒泉市| 永仁县| 荔波县| 荣成市| 嘉祥县| 抚州市| 寿阳县| 康乐县| 沂源县| 奎屯市| 惠水县| 长春市| 剑川县| 偏关县| 桑植县| 佛坪县| 阳信县| 开远市| 繁峙县| 桐柏县| 犍为县| 壤塘县| 宕昌县| 武山县| 宜兰市| 如东县| 准格尔旗|