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