本發(fā)明涉及USB設(shè)備技術(shù),特別涉及USB音頻輸出裝置技術(shù)。
背景技術(shù):
隨著USB技術(shù)在現(xiàn)代電子系統(tǒng)中的廣泛應(yīng)用,不僅計算機(jī)機(jī)箱外具有USB接口,包括MP3、手機(jī)、PAD及家電產(chǎn)品等都具有主機(jī)功能的USB接口,其中USB音頻設(shè)備逐漸的發(fā)展起來并且得到了很多消費(fèi)者的接受和喜愛。音頻輸出系統(tǒng)中,USB主設(shè)備與USB音頻設(shè)備的時鐘源是獨(dú)立的,而且每個時鐘源都是有偏差的,因此,USB主設(shè)備與USB音頻設(shè)備音頻編解碼器發(fā)送或接收數(shù)據(jù)的速度不一樣,就會導(dǎo)致聲音失真。
目前通常的解決辦法如下:
1、利用軟件簡單丟棄或插入一些音頻數(shù)據(jù),但改善效果不明顯。
2、利用功能強(qiáng)大的微處理器或DSP(Digital Signal Process),對音頻數(shù)據(jù)重新采樣,雖然得到音質(zhì)效果還可以,但其成本太高。
3、有些半導(dǎo)體廠商在微處理器內(nèi)集成了硬件IP來解決時鐘不匹配問題,通常這種微處理器價格都很高。
4、利用增加外圍電路解決,通常電路很復(fù)雜,成本也很高。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是要解決目前USB音頻設(shè)備時鐘不匹配而產(chǎn)生的聲音失真的問題,提供了一種USB音頻輸出裝置及其處理方法。
本發(fā)明解決其技術(shù)問題,采用的技術(shù)方案是,USB音頻輸出裝置,包括音頻數(shù)據(jù)獲取模塊、音頻數(shù)據(jù)處理模塊及音頻數(shù)據(jù)輸出模塊,所述音頻數(shù)據(jù)獲取模塊與音頻數(shù)據(jù)處理模塊連接,音頻數(shù)據(jù)處理模塊與音頻數(shù)據(jù)輸出模塊通過IIS(Inter—IC Sound)總線連接,
所述音頻數(shù)據(jù)獲取模塊用于獲取音頻數(shù)據(jù)并將其傳輸給音頻數(shù)據(jù)處理模塊;
所述音頻數(shù)據(jù)處理模塊用于對輸入的音頻數(shù)據(jù)進(jìn)行緩存及處理,得到處理后的音頻數(shù)據(jù)通過IIS總線發(fā)送給音頻數(shù)據(jù)輸出模塊;
所述音頻數(shù)據(jù)輸出模塊用于通過IIS總線從音頻數(shù)據(jù)處理模塊中獲取處理后的音頻數(shù)據(jù);
其特征在于,所述音頻數(shù)據(jù)處理模塊還用于根據(jù)緩存的音頻數(shù)據(jù)量對音頻數(shù)據(jù)輸出模塊通過IIS總線從音頻數(shù)據(jù)處理模塊中獲取處理后的音頻數(shù)據(jù)的時鐘頻率進(jìn)行調(diào)節(jié),進(jìn)而調(diào)整音頻數(shù)據(jù)輸出模塊的音頻數(shù)據(jù)輸出速率,使音頻數(shù)據(jù)輸入速率與音頻數(shù)據(jù)輸出速率相匹配。
具體的,所述音頻數(shù)據(jù)獲取模塊包括USB接口,用于與外部USB主設(shè)備連接。
進(jìn)一步的,所述音頻數(shù)據(jù)處理模塊包括微處理器。
具體的,所述微處理器包括音頻數(shù)據(jù)緩存區(qū)、FirmWare固件及晶振;
所述音頻數(shù)據(jù)緩存區(qū)用于緩存輸入的音頻數(shù)據(jù);
所述FirmWare固件用于對輸入的音頻數(shù)據(jù)進(jìn)行處理獲得處理后的音頻數(shù)據(jù);
所述晶振用于調(diào)節(jié)音頻數(shù)據(jù)輸出模塊從FirmWare固件中獲取處理后的音頻數(shù)據(jù)的時鐘頻率。
USB音頻輸出裝置的處理方法,應(yīng)用于上述USB音頻輸出裝置,其特征在于,包括以下步驟:
步驟1、音頻數(shù)據(jù)獲取模塊獲取到音頻數(shù)據(jù)并將其傳輸給音頻數(shù)據(jù)處理模塊;
步驟2、音頻數(shù)據(jù)處理模塊將輸入的音頻數(shù)據(jù)存儲在音頻數(shù)據(jù)緩存區(qū)中;
步驟3、音頻數(shù)據(jù)處理模塊判斷存儲在音頻數(shù)據(jù)緩存區(qū)中的音頻數(shù)據(jù)量是否達(dá)到音頻數(shù)據(jù)緩存區(qū)的預(yù)設(shè)容量,若是則進(jìn)入步驟4,否則回到步驟1;
步驟4、音頻數(shù)據(jù)輸出模塊通過音頻數(shù)據(jù)處理模塊獲取經(jīng)音頻數(shù)據(jù)處理模塊處理后的音頻數(shù)據(jù)緩存區(qū)中的音頻數(shù)據(jù),并輸出,且同時從音頻數(shù)據(jù)緩存區(qū)中刪除經(jīng)音頻數(shù)據(jù)處理模塊處理后的對應(yīng)的音頻數(shù)據(jù);
步驟5、音頻數(shù)據(jù)處理模塊時刻判斷當(dāng)前音頻數(shù)據(jù)緩存區(qū)中的音頻數(shù)據(jù)量是否超過或未達(dá)到音頻數(shù)據(jù)緩存區(qū)的預(yù)設(shè)容量,若相等則回到步驟4,若超過或未達(dá)到則進(jìn)入步驟6;
步驟6、音頻數(shù)據(jù)處理模塊的FirmWare固件發(fā)送時鐘調(diào)節(jié)指令給晶振,調(diào)節(jié)音頻數(shù)據(jù)輸出模塊通過IIS總線從音頻數(shù)據(jù)處理模塊中獲取處理后的音頻數(shù)據(jù)的時鐘頻率,回到步驟4。
具體的,所述音頻數(shù)據(jù)緩存區(qū)的預(yù)設(shè)容量為音頻數(shù)據(jù)緩存區(qū)總?cè)萘康囊话搿?/p>
進(jìn)一步的,步驟6具體為:當(dāng)IIS總線中的FS(LRCLK of IIS,是指音頻IIS協(xié)議的左右時鐘)的上升沿或下降沿到來時等待一個DA精度后(Digitsal-to-Analog precision,DA精度是指數(shù)模轉(zhuǎn)換的精度),F(xiàn)irmWare固件再發(fā)送時鐘調(diào)節(jié)指令給晶振,調(diào)節(jié)音頻數(shù)據(jù)輸出模塊通過IIS總線從音頻數(shù)據(jù)處理模塊中獲取處理后的音頻數(shù)據(jù)的時鐘頻率,回到步驟4。
具體的,步驟6中,所述音頻數(shù)據(jù)處理模塊的FirmWare固件發(fā)送時鐘調(diào)節(jié)指令給晶振,調(diào)節(jié)音頻數(shù)據(jù)輸出模塊通過IIS總線從音頻數(shù)據(jù)處理模塊中獲取處理后的音頻數(shù)據(jù)的時鐘頻率是指:若當(dāng)前音頻數(shù)據(jù)緩存區(qū)中的音頻數(shù)據(jù)量超過音頻數(shù)據(jù)緩存區(qū)的預(yù)設(shè)容量,則音頻數(shù)據(jù)處理模塊的FirmWare固件發(fā)送時鐘調(diào)節(jié)指令給晶振,提高音頻數(shù)據(jù)輸出模塊通過IIS總線從音頻數(shù)據(jù)處理模塊中獲取處理后的音頻數(shù)據(jù)的時鐘頻率,若當(dāng)前音頻數(shù)據(jù)緩存區(qū)中的音頻數(shù)據(jù)量未達(dá)到音頻數(shù)據(jù)緩存區(qū)的預(yù)設(shè)容量,則音頻數(shù)據(jù)處理模塊的FirmWare固件發(fā)送時鐘調(diào)節(jié)指令給晶振,降低音頻數(shù)據(jù)輸出模塊通過IIS總線從音頻數(shù)據(jù)處理模塊中獲取處理后的音頻數(shù)據(jù)的時鐘頻率。
本發(fā)明的有益效果是,在本發(fā)明方案中,通過上述USB音頻輸出裝置及其處理方法,可以根據(jù)緩存的音頻數(shù)據(jù)量來堆音頻數(shù)據(jù)輸出模塊的時鐘頻率進(jìn)行調(diào)節(jié),從而改變音頻數(shù)據(jù)輸出速率,使音頻數(shù)據(jù)均勻輸出,實(shí)現(xiàn)聲音無失真、無噪聲,且實(shí)現(xiàn)簡單,成本低廉。
附圖說明
圖1為本發(fā)明實(shí)施例USB音頻輸出裝置的系統(tǒng)框圖。
具體實(shí)施方式
下面結(jié)合附圖及實(shí)施例,詳細(xì)描述本發(fā)明的技術(shù)方案。
本發(fā)明所述USB音頻輸出裝置,其包括音頻數(shù)據(jù)獲取模塊、音頻數(shù)據(jù)處理模塊及音頻數(shù)據(jù)輸出模塊,音頻數(shù)據(jù)獲取模塊與音頻數(shù)據(jù)處理模塊連接,音頻數(shù)據(jù)處理模塊與音頻數(shù)據(jù)輸出模塊通過IIS(Inter—IC Sound)總線連接,其中,音頻數(shù)據(jù)獲取模塊用于獲取音頻數(shù)據(jù)并將其傳輸給音頻數(shù)據(jù)處理模塊;音頻數(shù)據(jù)處理模塊用于對輸入的音頻數(shù)據(jù)進(jìn)行緩存及處理,得到處理后的音頻數(shù)據(jù)通過IIS總線發(fā)送給音頻數(shù)據(jù)輸出模塊;音頻數(shù)據(jù)輸出模塊用于通過IIS總線從音頻數(shù)據(jù)處理模塊中獲取處理后的音頻數(shù)據(jù);音頻數(shù)據(jù)處理模塊還用于根據(jù)緩存的音頻數(shù)據(jù)量對音頻數(shù)據(jù)輸出模塊通過IIS總線從音頻數(shù)據(jù)處理模塊中獲取處理后的音頻數(shù)據(jù)的時鐘頻率進(jìn)行調(diào)節(jié),進(jìn)而調(diào)整音頻數(shù)據(jù)輸出模塊的音頻數(shù)據(jù)輸出速率,使音頻數(shù)據(jù)輸入速率與音頻數(shù)據(jù)輸出速率相匹配。音頻數(shù)據(jù)處理模塊可以包括微處理器,而微處理器可以包括音頻數(shù)據(jù)緩存區(qū)、FirmWare固件及晶振,其中,音頻數(shù)據(jù)緩存區(qū)用于緩存輸入的音頻數(shù)據(jù);FirmWare固件用于對輸入的音頻數(shù)據(jù)進(jìn)行處理獲得處理后的音頻數(shù)據(jù);晶振用于調(diào)節(jié)音頻數(shù)據(jù)輸出模塊從FirmWare固件中獲取處理后的音頻數(shù)據(jù)的時鐘頻率。
本發(fā)明所述的USB音頻輸出裝置的處理方法,應(yīng)用于上述USB音頻輸出裝置,首先音頻數(shù)據(jù)獲取模塊獲取到音頻數(shù)據(jù)并將其傳輸給音頻數(shù)據(jù)處理模塊,然后音頻數(shù)據(jù)處理模塊將輸入的音頻數(shù)據(jù)存儲在音頻數(shù)據(jù)緩存區(qū)中,音頻數(shù)據(jù)處理模塊再判斷存儲在音頻數(shù)據(jù)緩存區(qū)中的音頻數(shù)據(jù)量是否達(dá)到音頻數(shù)據(jù)緩存區(qū)的預(yù)設(shè)容量,若不是則回到音頻數(shù)據(jù)獲取模塊獲取到音頻數(shù)據(jù)那一步,若是則音頻數(shù)據(jù)輸出模塊通過音頻數(shù)據(jù)處理模塊獲取經(jīng)音頻數(shù)據(jù)處理模塊處理后的音頻數(shù)據(jù)緩存區(qū)中的音頻數(shù)據(jù),并輸出,且同時從音頻數(shù)據(jù)緩存區(qū)中刪除經(jīng)音頻數(shù)據(jù)處理模塊處理后的對應(yīng)的音頻數(shù)據(jù),在輸出時,音頻數(shù)據(jù)處理模塊時刻判斷當(dāng)前音頻數(shù)據(jù)緩存區(qū)中的音頻數(shù)據(jù)量是否超過或未達(dá)到音頻數(shù)據(jù)緩存區(qū)的預(yù)設(shè)容量,若相等則回到音頻數(shù)據(jù)輸出模塊通過音頻數(shù)據(jù)處理模塊獲取經(jīng)音頻數(shù)據(jù)處理模塊處理后的音頻數(shù)據(jù)緩存區(qū)中的音頻數(shù)據(jù)那一步,若超過或未達(dá)到則音頻數(shù)據(jù)處理模塊的FirmWare固件發(fā)送時鐘調(diào)節(jié)指令給晶振,調(diào)節(jié)音頻數(shù)據(jù)輸出模塊通過IIS總線從音頻數(shù)據(jù)處理模塊中獲取處理后的音頻數(shù)據(jù)的時鐘頻率,再回到音頻數(shù)據(jù)輸出模塊通過音頻數(shù)據(jù)處理模塊獲取經(jīng)音頻數(shù)據(jù)處理模塊處理后的音頻數(shù)據(jù)緩存區(qū)中的音頻數(shù)據(jù)那一步。
實(shí)施例
本發(fā)明實(shí)施例的USB音頻輸出裝置,其系統(tǒng)框圖參見圖1,包括音頻數(shù)據(jù)獲取模塊、音頻數(shù)據(jù)處理模塊及音頻數(shù)據(jù)輸出模塊,音頻數(shù)據(jù)獲取模塊與音頻數(shù)據(jù)處理模塊連接,音頻數(shù)據(jù)處理模塊與音頻數(shù)據(jù)輸出模塊通過IIS總線連接。
其中,音頻數(shù)據(jù)獲取模塊用于獲取音頻數(shù)據(jù)并將其傳輸給音頻數(shù)據(jù)處理模塊。其包括USB接口,用于與外部USB主設(shè)備連接,從外部USB主設(shè)備中獲取音頻數(shù)據(jù)。
音頻數(shù)據(jù)處理模塊用于對輸入的音頻數(shù)據(jù)進(jìn)行緩存及處理,得到處理后的音頻數(shù)據(jù)通過IIS總線發(fā)送給音頻數(shù)據(jù)輸出模塊;還用于根據(jù)緩存的音頻數(shù)據(jù)量對音頻數(shù)據(jù)輸出模塊通過IIS總線從音頻數(shù)據(jù)處理模塊中獲取處理后的音頻數(shù)據(jù)的時鐘頻率進(jìn)行調(diào)節(jié),進(jìn)而調(diào)整音頻數(shù)據(jù)輸出模塊的音頻數(shù)據(jù)輸出速率,使音頻數(shù)據(jù)輸入速率與音頻數(shù)據(jù)輸出速率相匹配。
音頻數(shù)據(jù)處理模塊可以包括微處理器,而微處理器可包括音頻數(shù)據(jù)緩存區(qū)、FirmWare固件及晶振,這里,音頻數(shù)據(jù)緩存區(qū)用于緩存輸入的音頻數(shù)據(jù);FirmWare固件用于對輸入的音頻數(shù)據(jù)進(jìn)行處理獲得處理后的音頻數(shù)據(jù);晶振用于調(diào)節(jié)音頻數(shù)據(jù)輸出模塊從FirmWare固件中獲取處理后的音頻數(shù)據(jù)的時鐘頻率。
音頻數(shù)據(jù)輸出模塊用于通過IIS總線從音頻數(shù)據(jù)處理模塊中獲取處理后的音頻數(shù)據(jù)。
使用時,其處理方法如下:
步驟1、音頻數(shù)據(jù)獲取模塊獲取到音頻數(shù)據(jù)并將其傳輸給音頻數(shù)據(jù)處理模塊。
步驟2、音頻數(shù)據(jù)處理模塊將輸入的音頻數(shù)據(jù)存儲在音頻數(shù)據(jù)緩存區(qū)中。
步驟3、音頻數(shù)據(jù)處理模塊判斷存儲在音頻數(shù)據(jù)緩存區(qū)中的音頻數(shù)據(jù)量是否達(dá)到音頻數(shù)據(jù)緩存區(qū)的預(yù)設(shè)容量,若是則進(jìn)入步驟4,否則回到步驟1。
本步驟中,音頻數(shù)據(jù)緩存區(qū)的預(yù)設(shè)容量優(yōu)選為音頻數(shù)據(jù)緩存區(qū)總?cè)萘康囊话耄捎捎脩艋蚬ぷ魅藛T根據(jù)情況進(jìn)行設(shè)置。
步驟4、音頻數(shù)據(jù)輸出模塊通過音頻數(shù)據(jù)處理模塊獲取經(jīng)音頻數(shù)據(jù)處理模塊處理后的音頻數(shù)據(jù)緩存區(qū)中的音頻數(shù)據(jù),并輸出,且同時從音頻數(shù)據(jù)緩存區(qū)中刪除經(jīng)音頻數(shù)據(jù)處理模塊處理后的對應(yīng)的音頻數(shù)據(jù)。
步驟5、音頻數(shù)據(jù)處理模塊時刻判斷當(dāng)前音頻數(shù)據(jù)緩存區(qū)中的音頻數(shù)據(jù)量是否超過或未達(dá)到音頻數(shù)據(jù)緩存區(qū)的預(yù)設(shè)容量,若相等則回到步驟4,若超過或未達(dá)到則進(jìn)入步驟6。
本步驟中,音頻數(shù)據(jù)緩存區(qū)的預(yù)設(shè)容量優(yōu)選為音頻數(shù)據(jù)緩存區(qū)總?cè)萘康囊话?,可由用戶或工作人員根據(jù)情況進(jìn)行設(shè)置。
步驟6、音頻數(shù)據(jù)處理模塊的FirmWare固件發(fā)送時鐘調(diào)節(jié)指令給晶振,調(diào)節(jié)音頻數(shù)據(jù)輸出模塊通過IIS總線從音頻數(shù)據(jù)處理模塊中獲取處理后的音頻數(shù)據(jù)的時鐘頻率,回到步驟4。
本步驟可以具體為:當(dāng)IIS總線中的FS的上升沿或下降沿到來時等待一個DA精度后,即音頻數(shù)據(jù)輸出模塊輸出無效數(shù)據(jù)時,F(xiàn)irmWare固件再發(fā)送時鐘調(diào)節(jié)指令給晶振,調(diào)節(jié)音頻數(shù)據(jù)輸出模塊通過IIS總線從音頻數(shù)據(jù)處理模塊中獲取處理后的音頻數(shù)據(jù)的時鐘頻率,回到步驟4。
而其中,音頻數(shù)據(jù)處理模塊的FirmWare固件發(fā)送時鐘調(diào)節(jié)指令給晶振,調(diào)節(jié)音頻數(shù)據(jù)輸出模塊通過IIS總線從音頻數(shù)據(jù)處理模塊中獲取處理后的音頻數(shù)據(jù)的時鐘頻率是指:若當(dāng)前音頻數(shù)據(jù)緩存區(qū)中的音頻數(shù)據(jù)量超過音頻數(shù)據(jù)緩存區(qū)的預(yù)設(shè)容量,則音頻數(shù)據(jù)處理模塊的FirmWare固件發(fā)送時鐘調(diào)節(jié)指令給晶振,提高音頻數(shù)據(jù)輸出模塊通過IIS總線從音頻數(shù)據(jù)處理模塊中獲取處理后的音頻數(shù)據(jù)的時鐘頻率,若當(dāng)前音頻數(shù)據(jù)緩存區(qū)中的音頻數(shù)據(jù)量未達(dá)到音頻數(shù)據(jù)緩存區(qū)的預(yù)設(shè)容量,則音頻數(shù)據(jù)處理模塊的FirmWare固件發(fā)送時鐘調(diào)節(jié)指令給晶振,降低音頻數(shù)據(jù)輸出模塊通過IIS總線從音頻數(shù)據(jù)處理模塊中獲取處理后的音頻數(shù)據(jù)的時鐘頻率。
這樣就可以使音頻數(shù)據(jù)緩存區(qū)中的音頻數(shù)據(jù)量始終保持預(yù)設(shè)容量,從而保證音頻數(shù)據(jù)均勻輸出。