石鑫焱,曹成茂,劉 權,畢如俊,葛 俊
(安徽農業大學 工學院 機電工程系,安徽 合肥 230036)
AU7842是MVSILICON公司設計的一款集成了微控制器、MP3/WMA解碼器、USB主機控制器、SD/MMC卡控制器、16 bit音頻解碼器和一個紅外線解碼器的MP3/WMV音頻解碼芯片。在同一芯片上集成了MP3播放器所需要的全部關鍵解碼組件,只需少量的外圍元件,降低了布線要求,節省了成本。本文介紹用STC12C561624 AD通過I2C總線控制AU7842芯片,運用軟件對寄存器的讀寫操作,實現多種音效的MP3播放。
I2C總線作為同步串行數據輸出總線,由一條串行數據線(SDA)和一條串行時鐘線(SCL)組成。它是一個真正的多主機總線,如果2個或更多主機同時初始化數據傳輸可以通過沖突檢測和仲裁,防止數據被破壞。每個連接到總線的器件都可以通過唯一的地址和一直存在的簡單的主機/從機關系軟件設定地址;主機可以作為主機發送器或主機接收器[1]。
AU7842芯片是將在存儲器中以數字信號形式存儲的音樂解碼成可以播放的模擬信號。它可以解碼MP3和WMA兩種格式的音頻信號。工作原理如圖1所示。開機后,單片機循環檢測解碼芯片周圍電路的動作。當檢測到芯片外圍有存儲設備接入,單片機控制芯片直接訪問存儲器里的內容,讀取數據送入MP3/WMA解碼器,解碼得到的數字信號通過數模轉換器轉換成模擬信號,經模擬音頻放大和低通濾波,就可以聽到音樂[2]。

根據車載MP3播放器的特點選STC12C5624 AD系列單片機。該單片機是臺灣宏晶公司推出的51增強型單片機,其具有低功耗,計算速度快等特點。當關閉MP3播放器時,單片機進入低功耗休眠狀態,單片機切斷所有外圍模塊的供電。播放器需要工作時,通過外部中斷喚醒單片機工作,這樣最大限度地減少功耗[3]。其計算速度是普通單片機的8~12倍。播放器電路圖如圖2所示。

本文以STC12C5624AD單片機為核心,來控制其他模塊的工作。硬件模塊框圖如圖3示。

圖3播放器硬件框圖
(1)電源模塊:完成對整個MP3播放器的供電。電源模塊的電壓輸入端是發電機或蓄電池,電壓經過開關型集成穩壓電路(LM2575/LM2576),得到的輸出電壓穩定且紋波小[4]。
(2)LCD模塊:顯示MP3播放時的曲目序號、播放的時間、文件的格式以及播放模式。
(3)按鍵模塊:結合軟件可以實現控制MP3播放器的工作,如瀏覽播放、順序播放、隨機播放以及不同播放音效之間的切換等。
(4)MP3模塊:讀取存儲設備(SD卡/U盤)中的音頻文件(MP3/WMA),通過數模轉換將數字信號解碼成模擬信號。
(5)音效模塊:音效模塊提供音效處理功能。來自MP3模塊的音頻信號經過音效處理,能夠以爵士、搖滾、古典、流行等多種音效播放音樂,帶給聽眾很好的聽覺感受。
(6)其他:包括 USB接口和 SD接口等。
MP3播放器受控于按鍵模塊,單片機循環檢測按鍵模塊按鍵的動作,并通過軟件對相關的寄存器進行讀寫操作,實現MP3播放器相應的功能。
單片機循環檢測芯片外圍電路電平的變化,判斷當前是否有存儲設備插入,是否須進行存儲設備之間的切換。通過軟件改變相應標志位的值,實現存儲設備的讀取或存儲設備的切換。讀取流程如圖4所示。

圖4設備讀取流程圖
MP3處理模塊子程序:





為滿足使用的要求,車載MP3播放器應具有掉電記憶功能。掉電記憶功能可實現MP3播放器在掉電或關機后,上次各種設定值(如音量、音效、播放模式等)不會因斷電而復位,在下一次開機時不需重新設定,可以直接調用上次設定值。記憶流程如圖5所示。
掉電記憶子程序:

圖5記憶流程圖


本文設計的車載MP3播放器,在MP3音頻文件存儲設備方面有較大的突破,新型大容量存儲設備(SD卡等)取代了傳統卡帶存儲,并能夠以多種音效播放。系統操作簡便,MP3播放性能良好。為保證播放器穩定工作,實驗模擬汽車行駛狀況[5]:將播放器分別置于零下40℃和60℃環境中進行極限溫度試驗并置于四度一體空間振動試驗臺上進行振動測試,播放器長時間運行,各項功能穩定,播放性能良好。該款播放器已經成功應用在某些品牌工程車上。
[1]譚昭禹,顏永紅,馬勛.音頻子系統中的 I2C接口電路設計[J]. 微計算機 信 息,2008,24(26):252-254.
[2]Shanghai Mountain View Silicon Technology Co Ltd.AU7842 USB HOST MP3/WMA DECODER SOC[DB/OL],2007,6.
[3]邸春芳.車載MP3的應用設計[J].計量與測試技術,2008,35(9);36-38.
[4]李文.一種新型5 V大功率開關穩壓電源[J].微電子學,2003,33(1):74-77
[5]GRAZIANO M,ROCH M R R.An automotive CD-player electro-mechanics fault simulation using VHDL-AMS[J].Journal of Electronic Testing,2008(6):539-553.