摘要:為了改善音樂播放器傳統界面,擴充功能,提高音質,基于ARM7嵌入式系統平臺和FAT 32文件系統,設計了一款帶有文本閱覽功能的多媒體音樂播放器。它不僅能正確識別并顯示存儲在SD,MMC等存儲卡內的音頻文件,支持環繞立體聲調節和重低音調節,還可通過液晶屏瀏覽存儲在存儲卡內的中、英文TXT文檔。該播放器選用具有出色音頻解碼能力的VS1053解碼芯片,它支持320 Kb/s的MP3或256 Kb/s的WMA音樂文件的播放。該播放器通過視聽驗證,實現了4種以上不同的音效,滿足使用者對音效的不同喜好。實現了環繞立體聲調節和真正的立體聲雙聲道音頻輸出。同時在操作上簡單便捷,具有友好的人機界面。
關鍵詞:ARM7;SD卡;多媒體播放器;VS1053
0 引言
嵌入式系統具有處理速度快、低功耗、體積小、功能強大且易于移植等優點而得到廣泛的應用。MP3(Moving Picture Experts Group Audio LayerⅢ)全稱是動態影像專家壓縮標準音頻層面3。它設計用來大幅度地壓縮音頻數據量,并實現重放的音質與原來不經壓縮的音頻相比沒有明顯的下降。鑒于MP3編碼方式的特點,將其作為音樂播放器的音頻文件時,可以在有限的存儲空間內存放更多的音頻信息。現在的數字音樂播放器市場,采用ARM主控+DSP音頻解碼芯片+SD存儲卡所構成的數字音樂播放系統具有強大的播放能力和較好的性價比,在中、高端音頻解碼領域內有著較強的生命力。本文針對嵌入式系統的開發特點,設計了基于嵌入式系統的MP3播放器。
1 系統組成
系統主要由主控制器LPC2138、音頻解碼芯片VS1053、存儲設備SD卡、顯示設備OCM12864、輸入設備鍵盤和系統供電電源組成。其中各部分電路均采用模塊化設計,各模塊之伺通過杜邦線進行連接。系統框圖如圖1所示。
2 硬件系統
2.1 主控系統LPC2138
LPC2138是支持實時仿真和跟蹤的16/32位ARM7TDMI-STM CPU,并帶有64 KB RAM和512 KB的高速FLASH存儲器。128位寬度的存儲器接口和獨特的加速結構使32位代碼能夠在最高時鐘速率下運行。ARM7體系為32位構架,它在處理數據時相對于8位單片機效率明顯提高,在處理文件系統所需要的大量的長整形數據的乘除運算時這種優勢更為明顯。同時它的硬件SPI,SSP總線控制器可以使控制器方便的與外部擴展設備進行連接。而且它的性價比較高,很適合用來做數字音樂播放系統的主控制器。
2.2 音頻解碼器VS1053
VS1053是VLSI Solution Oy公司生產的高性能、低功耗的以VS_DSP為內核的一款音頻解碼芯片,可輕松解碼MP1,MP2,MP3,WMA,IMA ADPCM,General Midi 1,Ogg Vorbis,LC-AAC和HE-AAC等音頻格式的文件,片內還集成有16 KB RAM。該芯片具有高信噪比DAC,功耗更低,并具有環繞立體聲調節和高低頻渲染等功能。采用VS1053芯片可以在不提高CPU主頻的情況下實現320 Kb/s的MP3文件或256 Kb/s的WMA文件的音頻解碼工作,并且音質上有了明顯的提高,信噪比可達90 dB以上,滿足系統85 dB的要求。
2.3 I/O口分配
LPC2138主控制器直接采用了廣州周立功公司的EasyARM開發板,減短了開發時間并有效保證了電路部分的穩定性。系統晶振采用11.059 2MHz的外部晶振,通過內置的PLL倍頻電路,可以將主頻升高到44.236 8 MHz,滿足系統要求。I/O資源分配如表1所示。
LPC2138具有2個獨立的SPI總線控制器(其中一個由SSP配置得到),SD卡均可通過SPI總線和處理器通信。將SPI接口分配給SD卡。
對于液晶屏,通過I/O口模擬其串行通信時序,因此只需分配兩個I/O(數據線和時鐘線)即可。
對于鍵盤部分,考慮到使用者操作的便捷性,共設計了5個按鍵。由于LPC2138的I/O資源非常豐富且該音樂播放器使用按鍵數量較少,故不采用矩陣譯碼鍵盤而直接使用了5個通用I/O口。這樣簡化了硬件設計和程序設計。
2.4 SD卡存儲器模塊
SD卡的通信線在總線空閑狀態下應保持高電平,因此總線上接有50 kΩ的上拉電阻。SD卡在上電初期,卡主控通過檢測引腳1(DAT3)的電平來決定工作在SD模式還是SPI模式。當此腳高電平時,SD卡進入SD模式;當此腳為低電平時,SD卡則工作于SPI模式2。卡槽采用了非彈出式的卡座,可以有效地保證SD卡通信的穩定性和可靠性。采用杜邦線將SD卡的SPI總線接口和LPC2138的SSP總線接口對接起來,實現數據的通信。
2.5 OCM12864液晶顯示
OCM12864液晶屏可以顯示字母、數字符號、中文字型及圖形,具有繪圖及文字畫面混合顯示功能。它提供3種控制接口,分別是8位微處理器接口,4位微處理器接口和串行接口。在該系統中由于未涉及圖形顯示,且對顯示的速度要求不是很高,因此采用串行接口實現與處理器的通信。OCM12864通過SCLK線和R/W線實現和處理器的串行通信。根據表1,將SCLK和R/W線與單片機分配的對應I/O用杜邦線連接起來即可。
2.6 MP3聲音輸出的功放單元采用UTC2822D
UTD2822D輸入電壓在1.8~15 V之間,在正常發熱狀態下工作電流約為1.4 A,可以使用在該設計當中。功放電路的設計原理圖如圖2所示。
2.7 輸入設備
鍵盤輸入采用了普通按鍵直接接處理器I/O口的方式。這種方式實現起來比較簡單,而且由于按鍵較少,不會占用過多的I/O資源。
3 系統軟件設計
總體軟件設計即系統運行過程中的主邏輯,負責整個系統運行過程中各個狀態之間的轉換,程序流程圖如圖3,系統初始化完成以后,在音樂模式下,即可通過按鍵選擇音樂目錄中的音樂,解碼WMA,MP3等格式的音頻文件,并播放。
3.1 SD卡模塊程序設計
對SD卡的初始化后,才可以對SD卡進行讀/寫操作。SD卡的初始化過程為先發送74個CLK以使SD卡達到正常工作電壓并實現同步,然后CS_LOW;接著發送CMD0,若通信成功則應收到0x01的應答信號;接著再發送CMD1,收到的應答應該是0x00;最后CS_HIGH。至此,初始化完成。在初始化完成后,通過CMD16設置數據Block長度,然后可以通過CMD17進行數據的讀取,流程圖如圖4所示。
3.2 VS1053程序設計
VS1053采用SPI總線與處理器實現通信,因此基本的通信規則遵循SPI總線協議。VS1053數據處理流程如圖5所示。對VS1053的操作主要包括復位和音頻數據傳送兩個方面。對于音量設定,環繞立體聲設定、高低頻設定等,只需發送指令到特定的寄存器即可。發送數據時1次發送32 B到VS1053的數據緩沖區。在數據處理過程中DREQ為低,此時不允許繼續發送數據,待數據緩沖區空時DREQ會變為高電平,可接著發送下32 B的數據,直到數據完全送完為止。復位流程和發送數組流程如圖6、圖7所示。
4 結語
基于ARM7平臺和FAT 32文件系統,設計了該種帶有文本閱覽功能的音樂播放器。它可以正確識別并播放存儲在SD,MMC等存儲卡內的MP3和WMA文件,支持環繞立體聲調節和重低音調節;使用者還可以通過液晶屏瀏覽存儲在存儲卡內的TXT文檔,并支持中英文兩種語言,由于得益于ARM7高達60 MHz的主頻和VS1053出色的音頻解碼能力。該系統還支持碼率高達320 Kb/s的MP3文件,信噪比達到了85 dB以上。同時該播放器還具有良好的人機交互界面,可以給使用者更好的使用體驗。