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