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