方天紅,陳 勇
(1.湖北工程學(xué)院 物理與電子信息工程學(xué)院,湖北 孝感 432000 ;2.深圳悠易閱科技有限公司,廣東 深圳 518000)
基于ATmega64L的MP3播放器設(shè)計
方天紅1,陳 勇2
(1.湖北工程學(xué)院 物理與電子信息工程學(xué)院,湖北 孝感 432000 ;2.深圳悠易閱科技有限公司,廣東 深圳 518000)
設(shè)計了一款以U盤作存儲介質(zhì)的MP3文件播放系統(tǒng)。以ATmega64L為主控制器,音頻解碼芯片為VS1003B,CH375為U盤接口芯片,通過單片機控制實現(xiàn)對U盤的識別、文件的讀取和處理。利用相應(yīng)按鍵來控制歌曲的播放、選擇、處理以及對音量、音效和循環(huán)模式進行設(shè)置,并把信息實時顯示在液晶顯示器上。實際使用表明,播放器可流暢播放U盤中的MP3文件,人機操作簡便,功能較齊全,具有良好的應(yīng)用前景。
ATmega64L;VS1003B;CH375;MP3播放器
MP3播放器已成為高度商品化的產(chǎn)品,擁有很多的娛樂功能,具有容量大、音質(zhì)好、易于攜帶、操作人性化和簡單化等特點,因而深受廣大消費者的喜愛。雖然播放器的存儲單元和播放單元一體化設(shè)計使MP3播放器攜帶方便,更加小巧,形式多樣,但是也帶來很多的問題。對于那些不便于移動的播放器,更新歌曲將會變得麻煩,比如嵌入了播放器的音響、DVD、車載MP3,如果想存儲更多的歌曲,則需要重新買一個更大容量的播放器,導(dǎo)致資源的浪費。若將存儲器和播放器分離,不僅能擴大MP3播放器的應(yīng)用領(lǐng)域,通過對HOST USB的開發(fā),能為各種測控系統(tǒng)中實時數(shù)據(jù)采集的移動存儲提供了一個成本低、通用性強、可靠性高的解決方案[1]。
本文設(shè)計并制作一個基于CH375的U盤MP3播放系統(tǒng),系統(tǒng)功能包括:(1)播放歌曲,顯示歌曲名和歌詞;(2)顯示當(dāng)前歌曲播放時長、當(dāng)前循環(huán)模式、音效模式以及音量大??;(3)顯示當(dāng)前目錄下的歌曲數(shù)目、當(dāng)前歌曲序號和當(dāng)前歌曲的播放狀態(tài);(4)可調(diào)整音量大小、音效模式和循環(huán)模式;(5)瀏覽文件和刪除文件;(6)多級目錄瀏覽;(7)不在播放界面時,具有自動返回功能。
播放歌曲時,主控制器ATmega64L通過總線方式控制CH375來讀取U盤中的MP3文件,然后將讀取的文件數(shù)據(jù)緩存起來,通過SPI接口送到VS1003B中進行解碼從耳機或者音箱中輸出,利用按鍵改變音量、音效、歌曲文件的選擇、循環(huán)模式的設(shè)置、瀏覽U盤中的文件、U盤中MP3文件的刪除處理,并將這些信息實時顯示在液晶屏上。系統(tǒng)結(jié)構(gòu)框圖如圖1所示。
圖1 MP3播放器結(jié)構(gòu)框圖
1.1主控制器ATmega64L
ATmega64L是ATMEL公司設(shè)計的一款高性能低功耗的8位AVR微處理器,AVR單片機采用先進的RISC體系結(jié)構(gòu),而且采用了大型快速存取寄存器組、快速單周期指令系統(tǒng)以及單級流水線等先進技術(shù),使得AVR單片機具有高達1MIPS/MHz的高速運行處理能力,有利于MP3文件的順暢播放。ATmega64L具有豐富的資源,64K字節(jié)的系統(tǒng)內(nèi)設(shè)計了可編程Flash,具有獨立鎖定位的可選Boot代碼區(qū),2K字節(jié)的EEPROM,4K字節(jié)的片內(nèi)SRAM,64K字節(jié)可選外部存儲空間,能對鎖定位進行編程,以實現(xiàn)用戶程序的加密。通過SPI接口進行系統(tǒng)內(nèi)編程,具有JTAG接口,符合標(biāo)準(zhǔn)JTAG的邊界掃描功能,支持?jǐn)U展的片內(nèi)調(diào)試功能,通過JTAG接口可以實現(xiàn)對Flash、EEPROM、熔絲位和鎖定位的編程,這樣極大地方便了用戶下載程序和調(diào)試程序。SPI串行接口可工作于主機和從機模式,擁有53個可編程的I/O口,32個8位通用工作寄存器,全靜態(tài)工作,只需要兩個時鐘周期的硬件乘法器,工作于8M時性能高達8MIPS,具一般單片機無法比擬的優(yōu)點,而且具有很寬的工作電壓范圍(2.7V-5.5V),內(nèi)部還具有經(jīng)過標(biāo)定的RC振蕩器[2-3]。
1.2電源電路
系統(tǒng)采用5V直流電源供電,經(jīng)變換后獲得3.3V和2.5V電壓。5V電源電壓為USB設(shè)備和液晶屏背光燈提供工作電壓。3.3V電源電壓為單片機ATmega64L和VS1003B的I/O正電源與模擬正電源提供工作電壓,2.5V電源電壓為VS1003B的數(shù)字正電源提供工作電壓。3.3V電壓由電源芯片CYT8117T33產(chǎn)生,電路圖如圖2所示。2.5V電壓由電源芯片CYT8117T25產(chǎn)生,電路如圖3所示。
圖2 3.3V變換電路
圖3 2.5V變換電路
圖4 VS1003B音頻解碼電路
1.3音頻解碼電路
VS1003B是一個單片MP3/WMA/MIDI音頻解碼器和ADPCM編碼器。包含一個高性能,自主產(chǎn)權(quán)的低功耗DSP處理器核VS_DSP,擁有工作數(shù)據(jù)存儲器,為用戶應(yīng)用提供5KB的指令RAM和0.5KB的數(shù)據(jù)RAM。串行的控制和數(shù)據(jù)端口,4個GPIO口,一個UART,有一個高品質(zhì)可變采樣率的ADC和一個立體聲DAC,還有一個耳機放大器和地線緩沖器[4]。VS1003B音頻解碼電路如圖4所示。
VS1003B所有數(shù)據(jù)和控制命令都是通過SPI總線接口實現(xiàn),它與主控制器的連接比較簡單,只有3條SPI數(shù)據(jù)線和4條控制線,其中SO、SI和SCLK是與主控制器連接的SPI接口,XRESET是VS1003B的異步復(fù)位端口,XCS是VS1003B的命令片選端口,XDCS是VS1003B的數(shù)據(jù)片選端口,DREQ是VS1003B的數(shù)據(jù)請求端口,當(dāng)DREQ為高時,可以向VS1003B中發(fā)送數(shù)據(jù)。在不使用UART時,RX必須接IOVDD。為了能播放48KHz采樣率的音頻,至少要用12.288MHz的晶振才能獲得正確的播放速度,故本電路采用的是12.288MHz晶振,并且在晶振兩端并聯(lián)一個1M電阻,使振蕩電路容易起振。
1.4 U盤讀取電路
CH375是南京沁恒電子生產(chǎn)的一款USB總線的通用接口芯片,可支持HOST主機方式和SLAVE設(shè)備方式[5]。在本地端,CH375具有8位數(shù)據(jù)總線和讀、寫、片選控制線及中斷輸出,可以方便地接到單片機/DSP/MCU/MPU等控制器的系統(tǒng)總線上。在USB主機方式下,CH375提供有串行通訊方式,可通過串行輸入、串行輸出和中斷輸出與單片機/DSP/MCU/MPU等相連。外部單片機/DSP/MCU/MPU也可以通過CH375按照相應(yīng)的USB協(xié)議與USB設(shè)備進行通信,簡化了設(shè)計人員設(shè)計開發(fā)USB的工作。CH375還內(nèi)置了連接Mass-Storage海量存儲設(shè)備的專用通訊協(xié)議固件,外部單片機可以直接以扇區(qū)為基本單位讀寫常用的USB存儲設(shè)備(包括USB硬盤/USB閃存盤/U盤)。CH375在主機方式下,可以工作于并口和串口兩種方式。考慮到本系統(tǒng)需要快速讀取文件,實現(xiàn)流暢的MP3文件播放,本文在設(shè)計上選用并口方式,因此CH375芯片的TXD引腳應(yīng)該接地。CH375 U盤讀取電路如圖5所示。
圖5 U盤讀取電路
1.5按鍵電路
按鍵電路由五個按鍵組成:包括播放鍵PLAY、音量鍵VOL、模式鍵MODE、向前鍵PREV和向后鍵NEXT。播放鍵具有播放、暫停、停止和返回等功能;音量鍵具有進入音量調(diào)節(jié)模式和瀏覽目錄時的返回功能;模式鍵具有進入不同模式和確定功能;向前鍵具有播放前一首歌曲、減小音量等功能;向后鍵具有播放下一首歌曲、增大音量等功能;向前鍵和向后鍵是“連發(fā)”的。按鍵電路如圖6所示。
圖6 按鍵電路
2.1讀取U盤數(shù)據(jù)
CH375提供了U盤文件級子程序庫,單片機可以直接調(diào)用子程序讀寫U盤中的文件數(shù)據(jù),CH375的U盤文件級子程序庫支持常用的FAT12、FAT16和FAT32文件系統(tǒng),支持U盤最大容量100GB。一個U盤中可以有多個文件,每個文件都是一組數(shù)據(jù)的集合,通過按名存取。本系統(tǒng)直接采用沁恒公司提供的子程序庫讀取U盤數(shù)據(jù)的,U盤文件的讀寫方式采取扇區(qū)模式。下面列舉系統(tǒng)軟件中用到的函數(shù):CH375的初始化函數(shù)CH375LibInit();查詢U盤是否準(zhǔn)備就緒函數(shù)CH375DiskReady();打開指定名稱的文件或目錄、搜索枚舉文件函數(shù)CH375FileOpen();關(guān)閉當(dāng)前文件CH375FileClose();搜索枚舉指定目錄下的文件,返回文件名函數(shù)CH375FileEnumer();以扇區(qū)為單位移動當(dāng)前文件指針函數(shù)CH375FileLocate();刪除文件并關(guān)閉函數(shù)CH375FileErase();以扇區(qū)為單位從當(dāng)前文件讀取數(shù)據(jù)函數(shù)CH375FileReadX()和CH375FielRead()。CH375FileReadX()支持雙緩沖區(qū)讀操作,可以指定讀取數(shù)據(jù)存放的位置[6]。
2.2 VS1003B控制協(xié)議
VS1003B工作在從模式下,通過SPI串行總線與主控制器進行通訊。當(dāng)數(shù)據(jù)信號XDCS為低時表示傳送數(shù)據(jù),當(dāng)控制信號XCS為低時表示傳送控制命令??刂泼顬?6位,通過讀、寫不同的寄存器實現(xiàn)對VS1003的控制[7]。當(dāng)信號線DREQ為高時,表示可以向VS1003B發(fā)送至少32Byte的SDI數(shù)據(jù)或一個SCI命令,當(dāng)DREQ變低時,發(fā)送器必須停止發(fā)送新的數(shù)據(jù)。在設(shè)置VS1003B時鐘頻率的時候,內(nèi)部的時鐘會暫時運行在12.288MHz,所以在寫命令的時候,統(tǒng)一使SPI工作在低速模式,保證命令的正確發(fā)送。在發(fā)送數(shù)據(jù)的時候,將SPI的速度提高,以便MP3文件順暢播放。在播放WMA格式的音頻文件之前,要對VS1003B進行軟復(fù)位。
2.3軟件實現(xiàn)
上電后,首先對CH375、VS1003B、按鍵、液晶屏所使用端口進行初始化,設(shè)置定時器,對VS1003B芯片進行初始化,液晶屏初始化,然后對CH375芯片進行初始化,檢查是否有U盤插入,判斷U盤是否準(zhǔn)備好,再獲取根目錄信息,從EEPROM中讀取上次對音效、音量、循環(huán)模式的設(shè)置信息,根據(jù)這些信息對系統(tǒng)進行配置,初始化播放界面,開中斷,判斷是否有按鍵按下。如果有,則進行相應(yīng)的菜單處理,否則,進行自動返回處理,接著進行音樂播放處理。如果歌曲名、歌詞或目錄有更新,則立即進行顯示處理,最后返回到按鍵檢查。菜單處理主要是通過按鍵完成對VS1003B的音量、音效的設(shè)置,歌曲循環(huán)模式的設(shè)置,歌曲的選擇,瀏覽U盤中的文件和對U盤文件的刪除處理,這些信息會實時顯示在液晶屏上。自動返回處理是指在沒有任何按鍵按下,并且當(dāng)前不在播放界面下,系統(tǒng)會自動跳到播放界面。音樂播放處理是負責(zé)播放當(dāng)前所選擇的歌曲。系統(tǒng)軟件的流程圖如圖7所示,音樂播放界面和瀏覽界面分別如圖8和圖9所示。
圖7 軟件流程圖
圖8 播放界面
圖9 瀏覽界面
本文以ATmega64L為主控制器,設(shè)計了一個MP3播放器。經(jīng)過測試,設(shè)計的MP3播放器不僅能流暢播放U盤中的MP3文件,音質(zhì)效果好,突破了MP3播放器中播放單元與存儲單元的一體化限制,而且能實現(xiàn)對歌曲文件播放、選取、處理、音量的調(diào)節(jié)以及對音效、循環(huán)模式的設(shè)置。該MP3在音響、汽車電子、DVD以及測控系統(tǒng)中數(shù)據(jù)采集存儲方面具有很好的應(yīng)用前景。
[1] 陳博,劉天宏,劉錦高.基于CH375的USB-HOST MP3播放器[J].華東師范大學(xué)學(xué)報:自然科學(xué)版,2009(2):136-140.
[2] ATMEL.ATmega64L[EB/OL].http://www.atmel.com/devices/ATMEGA64.aspx?tab=documents.
[3] 馬潮.AVR單片機嵌入式系統(tǒng)原理與應(yīng)用實踐[M].北京:北京航空航天大學(xué)出版社,2007:9-14.
[4] VLSI.VS1003 datasheet[EB/OL].http://www.21icsearch.com/pdf-DB4EF1C4E54F180F/VS1003.html#.
[5] 肖踞雄.USB技術(shù)及應(yīng)用設(shè)計[M].北京:清華大學(xué)出版社,2003:15-20.
[6] 沁恒電子.CH375中文手冊[EB/OL].(2007-11-09). http://www.wch.cn/download/list.asp?id=13.
[7] 王輝,何永剛.嵌入式Linux下基于VS1003B的播放系統(tǒng)的設(shè)計與實現(xiàn)[J].電聲技術(shù),2012,36(4):59-62.
(責(zé)任編輯:張凱兵)
DesignofMP3PlayerBasedonATmega64L
Fang Tianhong1,Chen Yong2
(1.SchoolofPhysicsandElectronicInformationEngineering,HubeiEngineeringUniversity,Xiaogan,Hubei432000,China;2.ShenzhenUmidoCo.,Ltd,Shenzhen,Guangdong518000,China)
This paper develops an MP3 player system using U disk storage media. The proposed system uses ATmega64L as a main controller, VS1003B as audio decoder chip, and CH375 as U disk interface chip, to achieve the recognition of U disk, reading and processing of MP3 files controlled by microprocessor. It may control the playing, selecting, volume, audio selection and cycle mode settings of songs by the corresponding keys. Moreover, the playing information can be displayed on the LCD monitor in real time. Practice shows that the designed player has the features of smooth playing, simple man-machine interface, and complete functions with certain practical value.
ATmega64L; VS1003B; CH375; MP3 player
TP368.1
A
2095-4824(2013)06-0011-05
2013-09-29
湖北工程學(xué)院教學(xué)研究項目(2009B18)
方天紅(1979- ),男,湖北赤壁人,湖北工程學(xué)院物理與電子信息工程學(xué)院講師,碩士。
陳 勇(1987- ),男,湖北赤壁人,深圳悠易閱科技有限公司工程師。