USB音頻設備類(lèi)的音頻信號同步解決方案
(1)基本性能
關(guān)閉軟件鎖相環(huán),系統在緩存中存放240個(gè)sample開(kāi)始播放。而每次當程序播放約45 s時(shí),由于緩存消耗殆盡,語(yǔ)音會(huì )自動(dòng)中斷,無(wú)法播放。
開(kāi)啟軟件鎖相環(huán),程序可以無(wú)時(shí)間限制運行,達到設計目的。
(2)緩存需求測試
在播放至少10 min穩定以后,利用變量rangel和range2跟蹤緩存內數據數量波動(dòng)范圍,記錄最大值和最小值,分12次測試,如圖4所示。

可見(jiàn),在啟動(dòng)軟件鎖相環(huán)以后,緩存中數據量最大浮動(dòng)范圍在192~250 sample之間。因此,為保證數據不溢出,只需要約60字節空間作為緩存就能維持設備正常工作。
(3)估算時(shí)鐘偏差測試
在不同電腦上運行10 min以上,提取插入/丟棄數據間隔,取倒數可以得到穩定后設備和USB時(shí)鐘偏差率。由圖5可見(jiàn),總體偏差在0.001~0.003以?xún)?,基本符合預期。

(4)穩定性測試
運行10 min以后,讀取當前設備緩存內數據量。由于每次寫(xiě)入/讀取8個(gè)sample,而終止程序進(jìn)行數據提取是隨機的,無(wú)法確定緩存剛才由USB寫(xiě)入還是由 ML2308讀取,因此在240上下8個(gè)sample以?xún)榷际峭耆项A期的。由圖6可見(jiàn),程序能準確地將緩存中數據量控制在240個(gè)sample左右,完全達到設計目標。

結 語(yǔ)
基于插值算法的自適應軟件鎖相環(huán),適用于針對USB_Audio_Class_Device的時(shí)鐘同步需求。它在達到設計要求的前提下,對嵌入式系統內存和MIPS占用極低,非常適合在利用USB總線(xiàn)作為音頻數據傳輸,或通信雙方存在一定的不確定速率的誤差且需要設備自主完成數據同步的設備中使用。
評論