基于USB HOST音頻解碼器的數(shù)字音頻系統(tǒng)設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
以往在設(shè)計(jì)數(shù)字音頻系統(tǒng)時(shí),需要工程師具備相關(guān)的知識(shí)和經(jīng)驗(yàn),并且在軟件開發(fā)方面也要花費(fèi)大量的時(shí)間和精力。ROHM公司的USB HOST音頻解碼器大大簡(jiǎn)化了設(shè)計(jì)流程,軟件解碼都由芯片內(nèi)部實(shí)現(xiàn),設(shè)計(jì)者可以很輕松地構(gòu)建數(shù)字音頻系統(tǒng)。
傳統(tǒng)的CD播放系統(tǒng)、MP3播放器的設(shè)計(jì)通常需要存儲(chǔ)器控制器、解碼器、DAC、系統(tǒng)控制器等,這些模塊分散在各個(gè)IC中,硬件和軟件設(shè)計(jì)都比較復(fù)雜。而USB HOST音頻解碼器將這些功能集成于單芯片中,外部?jī)H需少量的晶振和阻容元件,大大降低了成本,而且可靠性提高。
芯片功能
ROHM公司的USB HOST音頻解碼器中所有的解碼工作都是由硬件自動(dòng)完成的,不同于其它內(nèi)嵌CPU的設(shè)計(jì)方案,減少了軟件編程的復(fù)雜度。內(nèi)部集成了USB和SD卡控制器,可以直接訪問存儲(chǔ)器中的文件。芯片按Unicode編碼對(duì)存儲(chǔ)器內(nèi)的音樂文件排序,并按順序播放。內(nèi)置了FAT文件系統(tǒng),可以自動(dòng)區(qū)分音樂文件和非音樂文件。芯片還可以自動(dòng)跳讀損壞文件,來防止產(chǎn)生噪音。芯片內(nèi)置了鍵盤控制器,可以外接4 X 3按鍵矩陣。音頻輸出支持模擬輸出和數(shù)字輸出。模擬輸出時(shí)可直接連接揚(yáng)聲器放大器,并且內(nèi)置了7種音效均衡器,在輸出時(shí)可以通過I2C總線來選擇。數(shù)字輸出支持高通用性的I2S BUS和SPDIF,可以很方便地連接到下一級(jí)數(shù)字信號(hào)處理電路中。芯片內(nèi)置了一個(gè)I2C總線接口,可以與微型控制器進(jìn)行通訊。USB HOST音頻解碼器的功能框圖見圖1。
圖1: USB HOST音頻解碼器功能框圖。
芯片可執(zhí)行的音樂文件操作包括:播放、暫停、停止、快進(jìn)/快退、跳到下一曲/上一曲、重復(fù)播放、隨機(jī)播放、音量調(diào)節(jié)、文件瀏覽、讀取ID3信息等。
該芯片具有三種工作模式,可通過功能引腳來選擇:
模式1也叫“獨(dú)立模式”。芯片工作時(shí)不需要外接微型控制器,可以作為主機(jī)直接播放存儲(chǔ)器中的音樂文件,通過內(nèi)置的鍵盤控制器讀取外部的按鍵操作來選擇播放模式。芯片還內(nèi)置了7個(gè)LED驅(qū)動(dòng)接口,通過LED豐富的表現(xiàn),可以清楚地了解到其工作模式。在該模式下芯片還支持自動(dòng)播放功能,上電后會(huì)自動(dòng)讀取和播放存儲(chǔ)器中的音樂文件,不需要外部干預(yù)。
模式2和模式3稱為“從動(dòng)模式”。芯片需要外接微型控制器,通過I2C總線傳輸指令,設(shè)計(jì)人員需要編寫相應(yīng)的控制軟件。這兩種模式的實(shí)現(xiàn)相對(duì)于模式1復(fù)雜一些,但可以構(gòu)建更高性能的系統(tǒng)。其中,模式2的工作流程類似于模式1的按鍵輸入,需要通過接收微型控制器發(fā)出的指令執(zhí)行"PLAY"、"PAUSE"等操作。在模式3中,芯片通過I2C總線將存儲(chǔ)器中的音樂文件的位置發(fā)送給微型控制器,然后控制器通過指定文件的位置來選擇播放。播放時(shí),芯片會(huì)每隔100ms讀取播放時(shí)間,通過LCD可以將曲目的播放時(shí)間、曲名等信息顯示出來。在這兩種模式中,芯片還具有RESUME功能,在下次播放時(shí)可從上次停止的地方繼續(xù)播放。
設(shè)計(jì)實(shí)現(xiàn)
本文將介紹使用ROHM的USB HOST音頻解碼器BU9437AKV和NEC的16位單片機(jī)uPD1166組成的數(shù)字音頻系統(tǒng)的設(shè)計(jì)實(shí)例。BU9437支持MP3和WMA文件解碼,具有上面所述的USB HOST音頻解碼芯片的所有功能。
1.硬件設(shè)計(jì)
硬件電路主要參考BU9437的從動(dòng)模式來設(shè)計(jì),通過I2C總線接收MCU發(fā)來的控制信息,實(shí)現(xiàn)模式2和模式3的功能。
BU9437配置了SD卡和USB接口,同時(shí)為了保護(hù)USB設(shè)備在熱插拔的過程中不受到損壞,我們還設(shè)計(jì)了USB保護(hù)開關(guān),使用的也是ROHM的USB High Side Switch芯片。音頻輸出使用的是模擬立體聲輸出,外接了一個(gè)耳機(jī)功放,可以通過耳機(jī)或有源音箱來收聽聲音。MCU外接了一個(gè)五向的開關(guān),可以方便地進(jìn)行菜單的選擇。LCD為16 X 2的字符型點(diǎn)陣液晶,可以顯示功能菜單、文件信息等簡(jiǎn)單畫面。芯片通過I2C總線與MCU通訊。硬件系統(tǒng)框圖見圖2,BU9437應(yīng)用電路見圖3。
圖2:USB HOST數(shù)字音頻系統(tǒng)框圖
圖3:U9437應(yīng)用電路圖
2.軟件設(shè)計(jì)
軟件的設(shè)計(jì)是利用MCU的鍵盤中斷來判斷并識(shí)別鍵值,主程序循環(huán)查詢鍵值及BU9437的狀態(tài),根據(jù)鍵值向BU9437發(fā)送不同的命令,同時(shí)在LCD上顯示BU9437的工作狀態(tài)等信息。主程序流程圖見圖5。
圖5:軟件流程圖。
導(dǎo)航鍵的操作使用中斷來處理,當(dāng)有任何一個(gè)按鍵被按下時(shí)產(chǎn)生按鍵中斷,在中斷程序中除了防抖之外還要判斷按鍵的優(yōu)先級(jí),中斷程序中將直接得到按鍵的鍵值。
液晶顯示模組有8位數(shù)據(jù)線,編寫了專用的子程序用來發(fā)送顯示數(shù)據(jù)。
USB HOST 芯片的控制是通過I2C總線來實(shí)現(xiàn)的,軟件還設(shè)計(jì)了相應(yīng)的I2C通訊程序,使其滿足I2C總線的通訊協(xié)議,通訊時(shí)序見圖4。
圖4:I2C總線通訊時(shí)序。
3. 設(shè)計(jì)注意事項(xiàng)
1. USB HOST芯片需要外接一個(gè)16.9344MHz的晶振,如果使用無源晶振應(yīng)注意該晶振的起振條件,選擇合適的震蕩電路,保證芯片上電后晶振能正常工作。
2. 選擇模擬音頻作為輸出時(shí),在PCB設(shè)計(jì)時(shí)最好將模擬地和數(shù)字地分開,并且在電源輸入時(shí)加大容量的濾波電容或鉭電容,可以很好地抑制噪音。
3. 為了增加軟件的可靠性,當(dāng)讀取寄存器的值時(shí),讀取到的第一個(gè)字節(jié)都是系統(tǒng)的忙閑狀態(tài),每次讀取時(shí)軟件都要處理此字節(jié)。
本文小結(jié)
ROHM公司的USB HOST音頻解碼芯片不僅適合于車載級(jí)應(yīng)用,還能用于衛(wèi)生間、保健設(shè)備等通常與音樂無關(guān)的設(shè)備,可以簡(jiǎn)單地播放出治療音樂、自然環(huán)境音等。另外,還可以用于娛樂設(shè)備的音樂、效果音的播放,以及公共交通的車內(nèi)廣播等語音發(fā)聲。這種情況下,語音數(shù)據(jù)保存在USB存儲(chǔ)器、SD存儲(chǔ)卡中,因此需要更新語音數(shù)據(jù)時(shí),即快速又方便。