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