基于VS1003解碼器的MP3播放器設(shè)計(jì)
摘要:以MSP430F149作為核心控制器,結(jié)合VS1003音頻解碼器,設(shè)計(jì)了一種帶SD卡的MP3播放器,給出了MP3播放系統(tǒng)的軟硬件設(shè)計(jì)。在硬件設(shè)計(jì)上,解碼器與存儲(chǔ)器分離,增加了存儲(chǔ)容量;在軟件設(shè)計(jì)上,使用條項(xiàng)菜單方式進(jìn)行管理,可以方便地進(jìn)行硬件或軟件的升級(jí)。經(jīng)過(guò)測(cè)試,該 MP3播放器播放效果較好。
關(guān)鍵詞:MP3播放器;SPI總線(xiàn);MSP430F149;VS1003
引言
雖然現(xiàn)在市場(chǎng)上MP3的款式越來(lái)越多,功能越來(lái)越豐富,外觀設(shè)計(jì)也越來(lái)越個(gè)性化和人性化,但是,現(xiàn)有的MP3播放器大部分還是將解碼器與存儲(chǔ)器一體化。這種設(shè)計(jì)對(duì)MP3播放器的便攜性起了關(guān)鍵性的作用,但與此同時(shí)也帶來(lái)了一些問(wèn)題:一方面存儲(chǔ)容量不易擴(kuò)展,另一方面也不利于MP3播放器在其他領(lǐng)域的應(yīng)用。本系統(tǒng)將存儲(chǔ)器與解碼器分離,可以利用多余的I/O接口,只要適當(dāng)增加少量硬件開(kāi)銷(xiāo)并添加相應(yīng)代碼,即可以在此系統(tǒng)基礎(chǔ)上方便地增加電壓測(cè)量、頻率測(cè)量、溫度測(cè)量等功能,做到一機(jī)多用。
1 系統(tǒng)設(shè)計(jì)
MP3播放器系統(tǒng)結(jié)構(gòu)框圖如圖1所示。系統(tǒng)在硬件上主要包括MSP430F149單片機(jī)最小系統(tǒng)、音頻解碼模塊、SD卡讀寫(xiě)模塊、液晶顯示模塊以及用來(lái)存儲(chǔ)自制字庫(kù)的Flash存儲(chǔ)器等重要模塊。
MSP430F149是美國(guó)TI公司的MSP430系列單片機(jī),它具有適合于各種應(yīng)用的16位結(jié)構(gòu)。采用“馮·諾依曼”結(jié)構(gòu),因此其RAM、ROM和全部外圍模塊都位于同一片地址空間內(nèi)。而且具有超低功耗性能,同其他微控制器相比,MSP430系列可以大大延長(zhǎng)電池的使用壽命,這對(duì)手持設(shè)備及一些要求低功耗電子產(chǎn)品中是非常重要的。此外,它還具有靈活、強(qiáng)大的處理能力、豐富的存儲(chǔ)器、外設(shè)等優(yōu)點(diǎn)。
2 硬件模塊的具體實(shí)現(xiàn)
2.1 MSP430F149單片機(jī)最小系統(tǒng)
MSP430F149最小系統(tǒng)是整體設(shè)計(jì)中最核心的部分,控制著系統(tǒng)各個(gè)子模塊之間的協(xié)調(diào)運(yùn)行。它設(shè)計(jì)的成功與否,直接關(guān)系到整個(gè)設(shè)計(jì)能否正常運(yùn)行。如圖 2所示,MSP430F149最小系統(tǒng)中主要由穩(wěn)壓模塊、晶振電路、復(fù)位電路以及人機(jī)交互式按鍵輸入4部分組成。SPX1117M3-3.3是系統(tǒng)穩(wěn)壓芯片,為系統(tǒng)提供穩(wěn)定的3.3 V電源。SP708S是系統(tǒng)管理芯片,與手動(dòng)復(fù)位開(kāi)關(guān)一起,主要起可靠復(fù)位作用。考慮到MP3播放器的人機(jī)交互操作,共設(shè)計(jì)了6個(gè)按鍵(KEY1到 KEY6)。它們的按鍵功能分別是:確定、向下、向上、退出、音量加、音量減。
2.2 音頻解碼模塊
VS1003是芬蘭VLSI公司生產(chǎn)的單芯片MP3/WMA音頻解碼芯片。其擁有一個(gè)高性能、低功耗的DSP處理器核VSDSP,5 KB的指令RAM,O.5 KB的數(shù)據(jù)RAM,串行的控制和數(shù)據(jù)輸入接口,4個(gè)通用I/O口,1個(gè)UART口,1個(gè)可變采樣率的ADC,1個(gè)立體聲DAC以及音頻耳機(jī)放大器。其內(nèi)部結(jié)構(gòu)圖如圖3所示。
音頻解碼模塊對(duì)單片機(jī)從SD卡里讀取的數(shù)字MP3音頻數(shù)據(jù)流進(jìn)行解析,并轉(zhuǎn)換成模擬信號(hào)進(jìn)行輸出。圖4是該MP3播放器的音頻解碼模塊電路原理圖。
采用VS1003音頻解碼芯片來(lái)實(shí)現(xiàn)音樂(lè)數(shù)據(jù)流的解析。VS1003與核心控制器MSP430F149的數(shù)據(jù)通信是通過(guò)SPI總線(xiàn)方式進(jìn)行的。 VS1003通過(guò)串行命令接口(SCI)和串行數(shù)據(jù)接口(SDI)來(lái)接收MSP430F149的控制命令和MP3的數(shù)據(jù);通過(guò)xCS、xDCS引腳的置高/低來(lái)確認(rèn)是哪一個(gè)接口處于傳送狀態(tài)。VS1003的功能控制,如初始化、軟復(fù)位、暫停、音量控制、播放時(shí)間的讀取等,均是通過(guò)SCI口寫(xiě)入特定寄存器實(shí)現(xiàn)的。兩條SCI指令之間要通過(guò)DREQ引腳信號(hào)判斷上一次處理是否完成。
2.3 SD卡模塊
SD卡價(jià)格低,存儲(chǔ)容量大,使用方便,通用性與安全性強(qiáng),MP3、數(shù)碼相機(jī)等設(shè)備上都采用SD卡作為其存儲(chǔ)設(shè)備。
SD卡支持兩種總線(xiàn)模式:SD模式與SPI模式。其中,SD模式采用6線(xiàn)制,而SPI模式采用4線(xiàn)制。采用單片機(jī)對(duì)SD卡進(jìn)行讀寫(xiě)時(shí)一般都采用SPI模式??捎貌煌某跏蓟绞绞筍D卡工作于SD或SPI模式。
本設(shè)計(jì)中,音頻數(shù)據(jù)MP3文件以SD卡為載體,所以設(shè)計(jì)電路時(shí)必須含有讀取SD卡模塊。圖5為SD卡模塊(SPI模式)的接口電路。
2.4 液晶顯示模塊
LCD3310液晶是一個(gè)48行84列的液晶顯示器。其帶有低功耗PCD8544的CMOS LCD控制驅(qū)動(dòng)器,串行輸入速度最高可達(dá)4.O Mb/s。為了讓LCD3310液晶能夠顯示4行12×12的漢字,系統(tǒng)開(kāi)辟了一個(gè)6×84字節(jié)的緩沖區(qū)。寫(xiě)液晶時(shí)就不用直接寫(xiě)入LCD3310的靜態(tài) DDRAM了,可以先寫(xiě)入系統(tǒng)為它開(kāi)辟的數(shù)據(jù)緩沖區(qū),最后再刷新修改的部分就可以顯示出要顯示的內(nèi)容。LCD3310的接口采用SPI模式,其電路如圖6 所示。
3 軟件設(shè)計(jì)
圖7是MP3播放器的軟件流程。系統(tǒng)啟動(dòng)后,先初始化硬件模塊。由單片機(jī)通過(guò)FAT32文件系統(tǒng)接口讀取SD卡的一些基本信息,如容量、扇區(qū)大小、FAT 表以及根目錄所在的起始扇區(qū)等。通過(guò)這些信息就可以找出SD卡是否有可以播放的音樂(lè)文件。若有,單片機(jī)通過(guò)SPI總線(xiàn)方式讀出音頻信息,并將歌曲的碼流信息送入到VS1003芯片中,通過(guò)VS1003解碼芯片及其內(nèi)含的高質(zhì)量立體聲DAC和耳機(jī)驅(qū)動(dòng)電路,實(shí)現(xiàn)MP3歌曲的播放功能。在按鍵的控制下,通過(guò) LCD3310中菜單選項(xiàng)的選擇,實(shí)現(xiàn)對(duì)歌曲選擇及音量控制等功能;在播放的同時(shí),LCD3310上顯示的信息除歌曲名稱(chēng)外,還包括進(jìn)度和音量等。
經(jīng)過(guò)運(yùn)行測(cè)試,系統(tǒng)可以正常流暢地播放出320 kb/s的高音質(zhì)MP3音樂(lè)文件,而且在使用500 mA鋰電池的情況下,可以連續(xù)正常地播放長(zhǎng)達(dá)10個(gè)小時(shí)。可見(jiàn),其功耗比較低。
結(jié)語(yǔ)
本著低成本、實(shí)用性強(qiáng)的原則,設(shè)計(jì)了一種解碼器與存儲(chǔ)器分離的MP3播放器,可以流暢地播放出高音質(zhì)的MP3文件。同時(shí),只要適當(dāng)增加少量硬件開(kāi)銷(xiāo)并添加相應(yīng)代碼,即可以利用多余的I/O口在此系統(tǒng)基礎(chǔ)上方便地增加如電壓測(cè)量、頻率測(cè)量、溫度測(cè)量等功能,真正做到一機(jī)多用。