基于單片機(jī)的MP3播放器設(shè)計
0 引言
隨著電子技術(shù)的發(fā)展,MP3播放器是目前市場上流行的消費(fèi)類數(shù)碼產(chǎn)品之一,具有大容童、高音質(zhì)、小巧便攜等特點.而倍受廣大消費(fèi)者的青睞。本文采用ETC公司的微控制器STC89C58RD+,結(jié)合解碼芯片VS1003、USB接口芯片CH375、LCD等外圍設(shè)備設(shè)計并實現(xiàn)了MP3播放器。主要功能有:播放VS1003支持的所有音頻文件,包括MP3,WMA,WAV文件,且音質(zhì)非常好,具有按鍵控制播放上一首/下一首、音量增減等,可通過LCD顯示歌曲名字和播放狀態(tài)信息等功能。
1 硬件系統(tǒng)設(shè)計
系統(tǒng)工作原理框圖如圖1所示。系統(tǒng)啟動后,單片機(jī)通過USB接口芯片CH375,從U盤中獲取MP3格式文件的數(shù)據(jù),并存入片內(nèi)RAM進(jìn)行緩沖,然后單片機(jī)定時將數(shù)據(jù)從緩沖區(qū)送到MP3音頻解碼芯片VS1003,實現(xiàn)解碼并輸出音頻信號到耳機(jī)或者有源音響輸出。用戶可以通過鍵盤實現(xiàn)“啟動”、“上一曲”、“下一曲”、“音量控制”及“停止”等功能,并將播放狀態(tài)信息通過LCD顯示。系統(tǒng)框圖如圖1所示。
1.1 單片機(jī)讀取MP3數(shù)據(jù)模塊
數(shù)據(jù)讀取模塊包括單片機(jī)控制器,USB串行數(shù)據(jù)轉(zhuǎn)換成8位并行數(shù)據(jù)CH375芯片和MP3格式數(shù)據(jù)存儲U盤3部分。
1.1.1 單片機(jī)控制器
采用宏晶公司的STC89C58RD+單片機(jī),該單片機(jī)最高可工作于33 MHz時鐘,具有32 KB的FLASH,1 KB的內(nèi)部RAM,引腳與指令系統(tǒng)均與51單片機(jī)兼容。本設(shè)計中,單片機(jī)工作在30 MHz的系統(tǒng)時鐘下,能滿足系統(tǒng)對數(shù)據(jù)帶寬的要求。
1.1.2 USB接口芯片CH375
CH375是一個USB總線通用接口電路,支持HOST主機(jī)方式和SLAVE設(shè)備方式。CH375內(nèi)部集成了PLL倍頻器、主從USB接口SIE、數(shù)據(jù)緩沖區(qū)、被動并行接口、異步串型接口、命令解釋器、控制傳輸?shù)膮f(xié)議處理器、通用的固件程序等。在本地端,CH375具有8位數(shù)據(jù)總線和讀、寫、片選控制線及中斷輸出,可以方便地掛接到單片機(jī)、DSP等控制器的系統(tǒng)總線上,并內(nèi)置海量存儲固件。CH375的USB主機(jī)方式支持各種常用的USB全速設(shè)備,外部單片機(jī)、DSP、MCU可以通過CH375按照相應(yīng)的USB協(xié)議與USB設(shè)備通信,支持常用的12 Mb/s全速USB設(shè)備。
1.1.3 工作原理
利用單片機(jī)實現(xiàn)將U盤中的音頻數(shù)據(jù)經(jīng)CH375的USB轉(zhuǎn)串行接口傳送至單片機(jī)內(nèi)部RAM緩沖,以等待解碼。其中CH375是一款USB總線的通用接口芯片,可以方便地掛接到單片機(jī)的控制總線上,同時CH375的USB主機(jī)方式支持常用的USB全速設(shè)備,外部單片機(jī)可以通過CH375按照相應(yīng)的USB通信協(xié)議與USB設(shè)備通信。
由于CH375內(nèi)置了USB通信協(xié)議,省去了對USB通信協(xié)議的了解,單片機(jī)可以直接調(diào)用API庫讀寫U盤中的文件數(shù)據(jù),硬件上只需在51單片機(jī)系統(tǒng)中增加一個CH375芯片,綜合成本較低。CH375支持全速的USB-HOST主機(jī)接口,外圍元器件只需要少量晶體和電容,便可支持5 V電源電壓和3.3 V電源電壓,CH375芯片還支持低功耗模式,正常工作時,需要外部為它提供12 MHz的時鐘信號。電路原理如圖2所示。
[!--empirenews.page--]
1.2 音頻解碼模塊
音頻解碼模塊包括2大部分單片機(jī)控制器和專用MP3音頻解碼芯片VS1003。
1.2.1 音頻解碼芯片VS1003
VS1003是一個單片MP3/WMA/MIDI音頻解碼器和ADPCM編程器。它包含一個高性能、自主產(chǎn)權(quán)的低功耗DSP處理器核VS_DSP,并提供5KB的指令RAM和0.5 KB的數(shù)據(jù)RAM。產(chǎn)生MIDI/SP-MIDI文件,內(nèi)含高性能片上立體聲數(shù)/模轉(zhuǎn)換器,兩聲道,無相位差,在播放音頻文件時不需要外加驅(qū)動電路,VS1003內(nèi)部自帶耳機(jī)功放,只要調(diào)試好電路系統(tǒng),接入耳機(jī)就可以聽到美妙的音樂。同時,VS1003為用戶提供5.5 KB的片上RAM,并支持SPI串行通信的控制數(shù)據(jù)接口。
1.2.2 工作原理
系統(tǒng)上電啟動后,由單片機(jī)控制將存儲于U盤中歌曲的MP3數(shù)據(jù)格式流信息通過CH375USB接口芯片送入到VS1003芯片中,通過VS1003芯片解碼及其內(nèi)含高質(zhì)量的立體聲DAC和耳機(jī)驅(qū)動電路,實現(xiàn)MP3歌曲的播放,在按鍵的控制下,可實現(xiàn)對歌曲的選擇、音量增減等功能。VS1003的所有數(shù)據(jù)和控制命令均通過SPI總線接口實現(xiàn),由于設(shè)計中所采用的單片機(jī)沒有SPI接口,因此,在設(shè)計中采用單片機(jī)的3個I/O口來模擬SPI時序,以達(dá)到實現(xiàn)SPI通信功能。電路如圖3所示。
1.3 鍵盤及顯示模塊
鍵盤采用的是獨(dú)立按鍵,與單片機(jī)P30~P34相連接,實現(xiàn)“開始”、“下一曲”、“上一曲”、“音量+”和“音量-”等5個功能。播放的狀態(tài)由Nokia5110液晶顯示,該液晶為84×48點陣的LCD,可以顯示4行漢字,并支持串行通信協(xié)議,傳輸速率高達(dá)4 Mb/s,可全速寫入顯示數(shù)據(jù),方便地與單片機(jī)進(jìn)行通信。該液晶外部信號線僅有9條,節(jié)約本來就緊張的I/O口,其串行通信模式下的控制時序如圖4所示。
[!--empirenews.page--]
1.4 電源模塊
系統(tǒng)采用的是5 V直流電源供電,并通過5 V轉(zhuǎn)3.3 V的SPX1117-3.3 V芯片給單片機(jī),VS1003解碼器和USB專用芯片CH375模塊供電,其電源電路原理如圖5所示。
2 軟件系統(tǒng)設(shè)計
本系統(tǒng)單片機(jī)的軟件設(shè)計采用C51語言編寫,源程序共分3個部分,即:單片機(jī)驅(qū)動CH375程序,單片機(jī)控制VS1003實現(xiàn)音頻解碼程序,按鍵和顯示驅(qū)動程序。在編寫CH375模塊部分的程序時,用到了從南京沁恒公司官方網(wǎng)站下載的CH375的API函數(shù)庫“CH375HF4.LIB”文件,簡化了程序設(shè)計。因為單片機(jī)的硬件資源十分有限,在硬件調(diào)試過程中,出現(xiàn)在傳送頻率較高的歌曲時,由于采樣頻率低,帶寬不夠,而造成聲音失真。所以在系統(tǒng)的開發(fā)過程中,應(yīng)優(yōu)化程序,提高運(yùn)行速度,保證播放歌曲的流暢,其軟件流程如圖6所示。
3 結(jié)語
設(shè)計的MP3播放器采用51單片機(jī)加VS1003解碼,并通過CH375USB專用芯片進(jìn)行數(shù)據(jù)讀取,這種組合方式相比于采用AVR或者M(jìn)SP430系列的高端單片機(jī),達(dá)到的播放效果也毫不遜色。系統(tǒng)的整個設(shè)計難點在于單片機(jī)如何高效的從U盤中讀取數(shù)據(jù),并以一定的時序?qū)⒕彌_的數(shù)據(jù)傳輸給VS1003,實現(xiàn)解碼。在此采用的方法一是提高系統(tǒng)的時鐘;二是通過修改軟件,精簡程序,來加快了系統(tǒng)的傳輸速率,使播放音樂更加流暢。