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