基于C51單片機的MP3播放器的硬件系統(tǒng)設計原理
便攜式MP3播放器作為一種集音頻播放、數(shù)據(jù)存儲為一身的數(shù)碼產(chǎn)品,其功能結(jié)構(gòu)為電子設計人員所津津樂道。MP3是MPEG一1音頻III(1ayerIII)的簡稱。MPEG一1音頻(ISO/IECll 172—3)是目前普遍應用的音頻壓縮標準,其中層III的算法最為復雜,但壓縮比最大,效果也最好,在低碼率的條件下基本能達到CD的音質(zhì)效果。MP3標準用盡可能低的碼流實現(xiàn)CD音質(zhì)的聲音而不會產(chǎn)生數(shù)據(jù)損失。如果對于一段聲音不進行壓縮的話,那么每存儲一秒鐘的立體聲CD音質(zhì)音樂必須用1.4Mbit,這是個十分大的開銷。通過運用MPEG音頻標準的壓縮技術,我們可以把存儲空間壓縮到原來的1/12而不會降低聲音的音質(zhì)。即使使用1/24的壓縮因子,仍然比單純降低采樣率的音質(zhì)要好。低數(shù)據(jù)量和高播放品質(zhì)的優(yōu)點使其成為音樂存儲、數(shù)字廣播、網(wǎng)上音樂傳輸?shù)闹饕绞健H藗儾粌H可以使用計算機軟件,還可以通過數(shù)字隨身聽來欣賞音樂。本設計以C51內(nèi)核單片機為核心,設計了MP3播放器。
1 MP3硬件設計
在該硬件系統(tǒng)的設計中,采用Atme 1公司生產(chǎn)的AT89C51SNDlC作為主控MCU。AT89C5lSNDlC是ATMEL公司專門針對MP3的需求而設計的一款多媒體8位微處理器,使用通用的C51內(nèi)核,片上集成了多種外設,為MP3產(chǎn)品提供了一套方便的解決方案。該芯片對電路的高度集成大大降低了系統(tǒng)的耗電和發(fā)熱,提高了系統(tǒng)的穩(wěn)定性和速度,抗干擾能力也顯著增強。AT89C51SNDlC具有如下外設的集成,大大簡化了電路的設計:a.MP3硬件解碼器;b.可編程音頻輸出接口DAC;c.8位MCU C51:d.USBl.1控制器;e.內(nèi)建鎖相環(huán)PLL;f.多媒體卡接口適配器;g.SPI接口適配器;h.IDE/ATAPI接口;i.兩路10位ADC,8kHz;j.44個通用I/0;k.兩個16位定時器/計數(shù)器;1.硬件看門狗定時器;m.標準全工UART;n.兩線主被動模式控制器;o.SPI主被動模式控制器;p.電源管理模塊。
整個播放器的結(jié)構(gòu)框圖如圖l所示。PC機通過USB接口實現(xiàn)對U盤的MP3歌曲、文檔等數(shù)據(jù)信息的存儲。系統(tǒng)啟動后,由MCU控制將儲存于Flasht辛歌曲的碼流信息送入MP3解碼芯片中解碼,并產(chǎn)生解碼輸出。在系統(tǒng)的DAC模塊通過CS4340芯片把解碼輸出轉(zhuǎn)換為模擬音頻聲音后, 經(jīng)功放電路一級音頻放大并驅(qū)動耳機,實現(xiàn)MP3歌曲的播放。系統(tǒng)硬件包括主控MCU、解碼器、Flash存儲系統(tǒng)、供電系統(tǒng)、按鍵和D/A轉(zhuǎn)換器等幾部分。
1.1 解碼部分
這是MP3播放器的核心部件, 本設計采用硬件解碼技術。在本系統(tǒng)中筆者采用AT89C51SNDlC芯片。該芯片是一塊自帶MPEG I/II—Layer硬件解碼器和Human Interface的51內(nèi)核單片機。它可支持對8~320kbps基本數(shù)據(jù)流的解碼,支持的取樣頻率范圍為16~48kHz,非常適合于MPEG的音頻解碼, 并帶有數(shù)字語音錄音的MPEG播放模塊, 具有很高的性價比。解碼后的信號是可以直接輸出到DAC的立體聲、單聲道或雙聲道的數(shù)字信號,SP—CA751A與DAC的接口是可編程的。只要通過通用的串行I/0口和控制接口就能對MPEG比特流進行I/0和回放控制,系統(tǒng)控制器能很輕易地對MPEG音頻信號進行解碼。通過一個通用的可編程I2S接口,就能把一解碼的音頻PCM數(shù)據(jù)輸出到外部的DAC中,因此,大多數(shù)常用的音頻DAC都能和本芯片兼容,本設計采用的是CS4340芯片。
1.2 存儲部分
現(xiàn)采用1GB的FLASH存儲器,該存儲器能夠存儲19小時128kbps(達到CD音質(zhì))的音樂,該系統(tǒng)采用了SAMSUNG公司的1GB FLASH存儲芯片K9F5608UOB。
1.3 接口部分
一般通過PC的USB接口進行MP3文件的下載,傳輸速率為12Mbps。由于Atmel公司生產(chǎn)的AT89C5lSNDlC芯片僅支持USBl.1技術規(guī)范,因此接口速度稍慢。但對于MP3播放來說,可以滿足需要。
1.4 電源管理
便攜式MP3的體積小,可以使用兩節(jié)7號電池(3VDC)供電,同時也可以通過USB接口取電,因此采用低電壓以及進行有效的功率管理是非常必要的。
2 MP3軟件設計
硬件是設計的基礎,軟件是設計的靈魂。MP3程序由兩大部分組成:MP3播放功能模塊和USB通訊功能模塊。此外,為了調(diào)試方便,還有調(diào)試功能模塊。此模塊在系統(tǒng)軟件調(diào)試中使用,當MP3系統(tǒng)正常工作時去除。
MP3播放功能模塊的工作分為兩個部分:
第一部分是循環(huán)播放MP3歌曲,該功能需要首先做一些初始化工作,MP3解碼器一旦開始工作,就會一直向CPU請求數(shù)據(jù),直至歌曲結(jié)束,只有通過鍵盤操作才會使該功能提前結(jié)束。因為MP3文件的數(shù)據(jù)量較大,在flash存儲器內(nèi)是以頁為單位進行存儲的,所以MP3的播放程序初始化就是要把該文件的首地址和頁數(shù)先讀出到CPU中,然后CPU可以根據(jù)如上數(shù)據(jù)進行取數(shù)據(jù)工作。
第二部分則一直在等待中斷發(fā)生,該程序是與鍵盤結(jié)合起來的,主要用于使用者對播放過程的控制。鍵盤操作對MP3播放過程的控制還包括后退、躍進、跳到下一首、音量控制等。因為整個播放過程的鍵盤控制功能比較單一,沒有鍵的復合操作,所以程序都很容易實現(xiàn)。當MP3播放器插入到USB接口時,系統(tǒng)執(zhí)行USB通訊功能模塊,該模塊主要用于對flash存儲器內(nèi)的文件數(shù)據(jù)進行管理。固件程序是該模塊開發(fā)的主要工作,由于AT89C5lSNDlC沒有外部中斷引腳,USB中斷沒有中斷向量地址入口,因此該固件程序的框架采用查詢工作方式。
3 FAT文件格式
因為該系統(tǒng)還要具有U盤的功能,所以存儲器中的文件還要能夠讓計算機讀寫和識別,也就是所有的文件還要嚴格滿足計算機文件系統(tǒng)格式的要求。在所有計算機文件系統(tǒng)中,F(xiàn)AT是比較常用的一種。
一個FAT文件系統(tǒng)卷由4個部分組成:保留區(qū)、FAT區(qū)、根目錄區(qū)、文件和目錄數(shù)據(jù)區(qū)。其中保留區(qū)中的第一個分區(qū)必須是BPB,也稱作“引導扇區(qū)”,因為它含有對文件系統(tǒng)進行識別的關鍵信息,計算機將以此信息識別存儲器文件格式,因此十分重要。
FAT區(qū)存放的是文件分配表。操作系統(tǒng)的存儲空間是按簇來分配的,簇是操作系統(tǒng)分配的最小存儲單元,每個簇在FAT表中占據(jù)一個16位的位置,稱為一個表項。同一個文件的數(shù)據(jù)并不一定存放在存儲區(qū)的一個連續(xù)的區(qū)域內(nèi),往往會分成若干段,像一條鏈子一樣的存放,這種存儲方式稱為文件的鏈式存儲。為了實現(xiàn)文件的鏈式存儲,必須準確地記錄哪些簇已經(jīng)被占用,還必須為每一個已經(jīng)占用的簇指明后繼內(nèi)容的下一個簇的簇號,對于一個文件的最后一個簇,則要指明本簇沒有后繼簇,這些就是由FAT表來存儲的。
根目錄區(qū)存放的是目錄項,每個目錄項為32個字節(jié),記錄一個文件或目錄的信息。目錄項所占的空間與目錄項的個數(shù)有關。
文件和目錄數(shù)據(jù)區(qū)是真正存放文件數(shù)據(jù)的位置,所有數(shù)據(jù)都是按照以上信息分配存儲的。
4 結(jié)束語
MP3為取得較好的壓縮效果而采用相對復雜的技術,寬帶音頻信號的取樣率也較高(一般為44.1kHz以上),所以MP3編解碼的運算量和數(shù)據(jù)量都相當龐大。MPEGLayer III解碼算法在AT89C51SNDlC上驗證通過并獲得較好的效果,在通過優(yōu)化后可流暢播放。由于51內(nèi)核單片機的性能限制,在緩沖時可能會有停頓。以上內(nèi)容敘述了由AT89C51SNDlC構(gòu)成的最小系統(tǒng)的結(jié)構(gòu),具備了便攜式MP3播放器的基本功能。其實AT89C51SNDlC還支持LCD顯示和IDE接口,還可以通過對以上接口模塊進行擴展,構(gòu)成更大更復雜的系統(tǒng)。
評論