何 冰
(1.渭南師范學(xué)院 物理與電氣工程學(xué)院,陜西 渭南 714099;2.陜西省X射線檢測與應(yīng)用研究開發(fā)中心 陜西 渭南 714099)
一種基于單片機的MP3音頻播放器設(shè)計
何 冰1,2
(1.渭南師范學(xué)院 物理與電氣工程學(xué)院,陜西 渭南714099;2.陜西省X射線檢測與應(yīng)用研究開發(fā)中心 陜西 渭南714099)
本設(shè)計采用以STC12C5A60S2單片機作為MP3播放器的核心,將U盤作為數(shù)據(jù)存儲介質(zhì),通過編寫程序代碼將U盤中的MP3等格式音頻文件傳送到STC12C5A60S2單片機中;然后由VS1003解碼芯片對MP3文件進行解碼;最后將解碼后的數(shù)字信號轉(zhuǎn)換成模擬信號并通過功放設(shè)備輸出。所實現(xiàn)的功能可以通過按鍵對播放器實現(xiàn)"上一首"、"下一首"、"播放"等操作。本設(shè)計經(jīng)軟硬件測試,不僅可以實現(xiàn)對U盤的識別,還能播放MP3、WMA、WAV等格式的音頻文件,具有聲音播放流暢,操作簡單,功耗低等特點。
單片機;MP3播放器;VS003解碼芯片;U盤
近幾年,隨著MP3音樂播放器的不斷發(fā)展,如今的MP3價格早已在百元之內(nèi)了,它充斥著我們的生活,這不光體現(xiàn)在MP3播放器,更大程度上體現(xiàn)在MP3技術(shù)向其他的產(chǎn)品進行了滲透,MP3技術(shù)早已經(jīng)向手機進行了滲透,所以我們現(xiàn)在的手機都可以進行MP3播放,其他的一些產(chǎn)品比如說數(shù)碼相框或數(shù)碼相機也都支持了MP3播放的功能,甚至現(xiàn)在的鬧鐘也可以進行MP3播放了,所以我們更可以看到MP3技術(shù)已經(jīng)滲透到我們生活的點點滴滴了,MP3技術(shù)產(chǎn)生了極大商業(yè)需求,MP3關(guān)鍵技術(shù)和作為重要的是解碼器[1-2],我們將聲波進行定時的采樣,將采樣所得到的電壓值進行記錄,這就是原始的音頻數(shù)據(jù)。如果要得到較好的音質(zhì),就要提高采樣率,但是采樣率越高所產(chǎn)生的原始音頻數(shù)據(jù)量也就越大,所以人們就想到了數(shù)據(jù)的壓縮技術(shù),將大的數(shù)據(jù)量壓縮為較小的數(shù)據(jù)量,同時又不損失太多的音質(zhì),MP3的數(shù)據(jù)就是原始的音頻數(shù)據(jù)經(jīng)過MP3的編碼算法最終所得到的數(shù)據(jù)。因此我們得到一個MP3的數(shù)據(jù)之后,要想播放出聲音就要進行解碼,還原出最原始的音頻數(shù)據(jù),這樣才能夠?qū)β暡ㄟM行擬合,最終播放出聲音。
1.1MP3硬件組成框圖
本設(shè)計主要由3大模塊組成,分別為單片機處理模塊[3-4]、U盤讀寫模塊和音頻解碼模塊。單片機處理模塊通過U盤讀寫模塊從U盤中讀取音頻文件,然后傳送到音頻解碼模塊進行解碼并功放輸出。圖1為硬件設(shè)計結(jié)構(gòu)框圖。
圖1 硬件設(shè)計結(jié)構(gòu)框圖
1.2單片機處理模塊
本設(shè)計單片機處理模塊由STC12C5A60S2芯片及其外圍電路組成,STC12C5A60S2系列單片機是宏晶公司生產(chǎn)的高速、低功耗、超強抗干擾的新一代8051單片機,其內(nèi)核、引腳及指令代碼完全兼容傳統(tǒng)8051,能夠?qū)崿F(xiàn)單時鐘/機器周期,在相同條件下運行速度比傳統(tǒng)單片機快8~12倍。并且內(nèi)部集成MAX810專用復(fù)位電路,2路PWM,8路高速10位A/ D轉(zhuǎn)換(250 K/S,即25萬次/秒),4個 16位定時器,1K字節(jié)的EEPROM,工作電壓5.5~3.5 V,提供Flash程序存儲器8~62k字節(jié),此外片上集成數(shù)據(jù)存儲器(1280字節(jié)),分別為內(nèi)部RAM(256字節(jié))和內(nèi)部擴展RAM(1024字節(jié)),該單片機最高可工作在35 MHz時鐘,具有高速處理能力,能夠保證MP3文件的順播放。
1.3音頻解碼模塊
本設(shè)計利用STC12C5A60S2單片機[5-8]來實現(xiàn)MP3播放功能,由于這款單片機的速度和資源達不到解碼MP3文件的要求,所以只能依賴外部專用解碼芯片來實現(xiàn)MP3的播放。目前市場上常見的MP3解碼芯片有VS100X系列和STA01X系列,其中VS系列自帶DAC輸出,而且能解碼的格式也相對比較多;而STA系列要外加DAC用起來不方便,并且只能對MP3格式解碼。
經(jīng)過比較分析,最終選擇荷蘭VLSI公司出品的VS1003作為解碼芯片,該芯片具有體積小、高性能、低功耗的DSP處理器核VS_DSP,串行的數(shù)據(jù)、控制輸入接口,4個通用I/O口,一個UART接口和為用戶代碼和數(shù)據(jù)準備5.5 kB的片上RAM,該芯片不僅可以支持MP3、WMA、WAV、MIDI等格式的音頻解碼,自帶立體聲數(shù)/模轉(zhuǎn)換器,而且還可以調(diào)節(jié)音量、高低音等,更重要的是這款芯片還具有麥克錄音功能,這樣更方便我們以后進行功能擴展。
單片機與VS1003解碼芯片之間進行控制信息和音頻數(shù)據(jù)的傳輸是依靠SPI同步串行傳輸來完成的,VS1003芯片通過不同地址區(qū)分功能寄存器,向相應(yīng)寄存器寫入值,以實現(xiàn)相應(yīng)的功能。單片機將音頻數(shù)據(jù)寫入到VS1003芯片,需要依靠DREQ信號進行協(xié)調(diào),若DREQ為低電平,VS1003解碼芯片不能接收數(shù)據(jù);反之單片機可將音頻數(shù)據(jù)寫入解碼芯片。單片機驅(qū)動VS1003芯片流程圖見圖2所示。
圖2 單片機驅(qū)動VS1003芯片流程圖
本設(shè)計中單片機與VS1003芯片通過同步串行方式進行傳輸,根據(jù)傳輸內(nèi)容不同,將通信接口分為SCI和SDI??刂菩畔⑼ㄟ^SCI寫入功能寄存器,而音頻數(shù)據(jù)則通過SDI送入VS1003芯片進行解碼。SCI與SDI分別由XCS和XDCS進行區(qū)分,當(dāng)單片機向VS1003芯片寫入控制信息時,將XCS置低電平選中命令片選,同時XDCS置為高電平;當(dāng)單片機要向解碼芯片寫入音頻數(shù)據(jù)時,則將數(shù)據(jù)片選XDCS置為低電平,命令片選XCS置高電平。
如果要向VS1003芯片功能寄存器中讀取數(shù)據(jù),須按照讀命令工作時序(見圖3)進行操作。首先將VS_XCS=0以選擇芯片,再通過SPI_WriteByte()函數(shù)傳送0x03讀操作碼和8位地址。當(dāng)VS1003芯片讀入8位地址,SI上的數(shù)據(jù)將被忽略,相應(yīng)地址的兩個字節(jié)數(shù)據(jù)將全部從SO線移出,并將VS_XCS=1片選置為高電平。
圖3 讀命令工作時序
而如果要向VS1003芯片功能寄存器中寫入數(shù)據(jù)時,則須按照寫命令工作時序(見圖4)進行操作。即先將VS_XCS=0選擇芯片,再通過SPI_WriteByte()函數(shù)傳送0x02寫操作碼和8位地址,然后傳送兩個字節(jié)的數(shù)據(jù)。當(dāng)數(shù)據(jù)全被移入且最后的時鐘已發(fā)送,須將VS_XCS=1恢復(fù)為高電平完成寫操作。
圖4 寫命令工作時序
3.1系統(tǒng)調(diào)試過程
1)把所設(shè)計的PCB文件外發(fā)打樣并將所有電子元器件和集成芯片進行焊接;
2)利用萬用表對各個模塊電路進行檢測;
3)將所編寫的程序代碼燒寫到單片機中,檢測MCU模塊是否正常工作;
4)對VS1003解碼芯片進行正弦測試,通過功放設(shè)備聽到頻率不斷上升的聲音,用以檢測音頻解碼模塊正常;
5)通過串口調(diào)試助手將檢測信息反饋在電腦顯示器上以確保U盤讀取模塊是否正常運行;
6)所有模塊測試完畢,接通電源線并按下播放鍵,就可以從音響中聽到流暢的音樂。圖5為硬件設(shè)計調(diào)試圖。
圖5 硬件設(shè)計調(diào)試圖
3.2軟件調(diào)試及問題分析
本設(shè)計在Keil μVision4開發(fā)環(huán)境完成軟件編程,將各個模塊程序?qū)懗?c文件,這樣能夠方便對程序的移植和修改。圖6為工程中的文件。
圖6 工程中的文件
1)為了檢測VS1003解碼芯片是否能正常工作,通過編寫VS_sin_test()正弦測試函數(shù)進行驗證,測試是否可以聽到頻率不斷升高的聲音。
2)在調(diào)試過程中,本設(shè)計通過串口與計算機進行通信,當(dāng)U盤插入并播放時,串口助手并不能正常顯示所接收的信息,出現(xiàn)亂碼現(xiàn)象。最后將波特率值設(shè)置為4800后,其信息在串口助手中顯示正常。
3)由于單片機對U盤進行讀寫操作涉及到文件系統(tǒng),其文件系統(tǒng)工作量大而復(fù)雜,在本設(shè)計中采用移植znFAT文件系統(tǒng)實現(xiàn)單片機對U盤存儲模塊的讀寫。
本文主要介紹了以51單片機做為控制核心,讀取U盤中的音頻文件并通過VS1003進行解碼播放。通過實驗了解了FAT32文件系統(tǒng)的移植以及掌握了音頻解碼芯片和CH375芯片的驅(qū)動過程,在調(diào)試過程中針對出現(xiàn)的問題進行分析與改進,以達到更好的效果。由于時間與自身知識儲備量的關(guān)系,雖然基本已達到最初設(shè)計的要求,但對本設(shè)計將來依然可以進行模塊的擴展,比如增加MIC錄音,歌詞顯示等功能,或者由藍牙模塊將音頻文件發(fā)送到本設(shè)計中進行解碼播放。通過本課題的研究,可以提升我們的綜合能力,這對科技的創(chuàng)新具有非常重要的意義。
[1]譚浩強.C程序設(shè)計[M].4版.北京:清華大學(xué)出版社,2010.
[2]馬忠梅.單片機的C語言應(yīng)用程序設(shè)計[M].4版.北京:北京航空航天大學(xué)出版社,2007.
[3]謝維成,楊加國.單片機原理與應(yīng)用及C51程序設(shè)計[M].北京:清華大學(xué)出版社,2009.
[4]高鵬,安濤.Protel 99入門于提高[M].人民郵電出版社,2000.
[5]康華光,鄒壽彬,秦臻.電子技術(shù)基礎(chǔ)(數(shù)字部分)[M].北京:高等教育出版社,2006.
[6]康華光,陳大欽,張林.電子技術(shù)基礎(chǔ)(模擬部分)[M].北京:高等教育出版社,2006.
[7]肖金球.增強型51單片機與仿真技術(shù)[M].北京:清華大學(xué)出版社,2011.
[8]孟濤,王?;?單片機U盤控制器的設(shè)計與實現(xiàn)[J].船舶防化,2010,6(7):20-24.
Design of MP3 player based on 51 MCU
HE Bing1,2
(1.Department of Physics and Electronic Engineering,Wei Nan Normal University,Wei nan 714099,China;2.Center of X Ray Detection and Application of ShaanXi,Wei nan 714099,China)
This design uses STC12C5A60S2 MCU as the core of the MP3 player,U disk as a data storage medium,by writing the program code to transfer the U dish in the audio file to STC12C5A60S2 MCU;Then the VS1003 decoding chip to decode MP3 file;Finally converts digital signals into analog signals by the amplifier output.The functions implemented can be achieved"Prev","Next","Play"and other operations on the player through the key.The design by the hardware and software testing,not only to achieve recognition of U disk,can also play MP3,WMA,WAV and other audio files,with play smooth,easy operation and low power consumption.
MCU;MP3 player;VS1003 audio decode;U dish
TN29
A
1674-6236(2016)06-0142-03
2015-05-07稿件編號:201505063
陜西省教育廳科研計劃項目(14JK1248);渭南師范學(xué)院第二批特色學(xué)科建設(shè)項目(14TSXK06);渭南師范學(xué)院育苗項目(14YKP020);渭南師范學(xué)院科研計劃項目(15YKS010)
何 冰(1982—),男,陜西合陽人,碩士,講師。研究方向:智能圖像數(shù)據(jù)處理、信息安全。