<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于C51單片機的MP3播放器設計與實(shí)現

基于C51單片機的MP3播放器設計與實(shí)現

作者: 時(shí)間:2009-12-17 來(lái)源:網(wǎng)絡(luò ) 收藏

0 引言

便攜式作為一種集音頻播放、數據存儲為一身的數碼產(chǎn)品,其功能結構為電子設計人員所津津樂(lè )道。MP3是MPEG一1音頻III(1ayerIII)的簡(jiǎn)稱(chēng)。MPEG一1音頻(ISO/IECll 172—3)是目前普遍應用的音頻壓縮標準,其中層III的算法最為復雜,但壓縮比最大,效果也最好,在低碼率的條件下基本能達到CD的音質(zhì)效果。MP3標準用盡可能低的碼流實(shí)現CD音質(zhì)的聲音而不會(huì )產(chǎn)生數據損失。如果對于一段聲音不進(jìn)行壓縮的話(huà),那么每存儲一秒鐘的立體聲CD音質(zhì)音樂(lè )必須用1.4Mbit,這是個(gè)十分大的開(kāi)銷(xiāo)。通過(guò)運用MPEG音頻標準的壓縮技術(shù),我們可以把存儲空間壓縮到原來(lái)的1/12而不會(huì )降低聲音的音質(zhì)。即使使用1/24的壓縮因子,仍然比單純降低采樣率的音質(zhì)要好。低數據量和高播放品質(zhì)的優(yōu)點(diǎn)使其成為音樂(lè )存儲、數字廣播、網(wǎng)上音樂(lè )傳輸的主要方式。人們不僅可以使用計算機軟件,還可以通過(guò)數字隨身聽(tīng)來(lái)欣賞音樂(lè )。本設計以內核單片機為核心,設計了。

1 MP3硬件設計

在該硬件系統的設計中,采用Atme 1公司生產(chǎn)的AT89SNDlC作為主控MCU。AT89C5lSNDlC是ATMEL公司專(zhuān)門(mén)針對MP3的需求而設計的一款多媒體8位微處理器,使用通用的內核,片上集成了多種外設,為MP3產(chǎn)品提供了一套方便的解決方案。該芯片對電路的高度集成大大降低了系統的耗電和發(fā)熱,提高了系統的穩定性和速度,抗干擾能力也顯著(zhù)增強。AT89C51SNDlC具有如下外設的集成,大大簡(jiǎn)化了電路的設計:a.MP3硬件解碼器;b.可編程音頻輸出接口DAC;c.8位MCU C51:d.USBl.1控制器;e.內建鎖相環(huán)PLL;f.多媒體卡接口適配器;g.SPI接口適配器;h.IDE/ATAPI接口;i.兩路10位ADC,8kHz;j.44個(gè)通用I/0;k.兩個(gè)16位定時(shí)器/計數器;1.硬件看門(mén)狗定時(shí)器;m.標準全工UART;n.兩線(xiàn)主被動(dòng)模式控制器;o.SPI主被動(dòng)模式控制器;p.電源管理模塊。

整個(gè)播放器的結構框圖如圖l所示。PC機通過(guò)實(shí)現對U盤(pán)的MP3歌曲、文檔等數據信息的存儲。系統啟動(dòng)后,由MCU控制將儲存于Flasht辛歌曲的碼流信息送入MP3解碼芯片中解碼,并產(chǎn)生解碼輸出。在系統的DAC模塊通過(guò)CS4340芯片把解碼輸出轉換為模擬音頻聲音后, 經(jīng)功放電路一級音頻放大并驅動(dòng)耳機,實(shí)現MP3歌曲的播放。系統硬件包括主控MCU、解碼器、Flash存儲系統、供電系統、按鍵和D/A轉換器等幾部分。

1.1 解碼部分

這是的核心部件, 本設計采用硬件解碼技術(shù)。在本系統中筆者采用AT89C51SNDlC芯片。該芯片是一塊自帶MPEG I/II—Layer硬件解碼器和Human Interface的51內核單片機。它可支持對8~320kbps基本數據流的解碼,支持的取樣頻率范圍為16~48kHz,非常適合于MPEG的音頻解碼, 并帶有數字語(yǔ)音錄音的MPEG播放模塊, 具有很高的性?xún)r(jià)比。解碼后的信號是可以直接輸出到DAC的立體聲、單聲道或雙聲道的數字信號,SP—CA751A與DAC的接口是可編程的。只要通過(guò)通用的串行I/0口和控制接口就能對MPEG比特流進(jìn)行I/0和回放控制,系統控制器能很輕易地對MPEG音頻信號進(jìn)行解碼。通過(guò)一個(gè)通用的可編程I2S接口,就能把一解碼的音頻PCM數據輸出到外部的DAC中,因此,大多數常用的音頻DAC都能和本芯片兼容,本設計采用的是CS4340芯片。

1.2 存儲部分

現采用1GB的FLASH存儲器,該存儲器能夠存儲19小時(shí)128kbps(達到CD音質(zhì))的音樂(lè ),該系統采用了SAMSUNG公司的1GB FLASH存儲芯片K9F5608UOB。

1.3 接口部分

一般通過(guò)PC的進(jìn)行MP3文件的下載,傳輸速率為12Mbps。由于A(yíng)tmel公司生產(chǎn)的AT89C5lSNDlC芯片僅支持USBl.1技術(shù)規范,因此接口速度稍慢。但對于MP3播放來(lái)說(shuō),可以滿(mǎn)足需要。

1.4 電源管理

便攜式MP3的體積小,可以使用兩節7號電池(3VDC)供電,同時(shí)也可以通過(guò)取電,因此采用低電壓以及進(jìn)行有效的功率管理是非常必要的。

2 MP3軟件設計

硬件是設計的基礎,軟件是設計的靈魂。MP3程序由兩大部分組成:MP3播放功能模塊和USB通訊功能模塊。此外,為了調試方便,還有調試功能模塊。此模塊在系統軟件調試中使用,當MP3系統正常工作時(shí)去除。

MP3播放功能模塊的工作分為兩個(gè)部分:

第一部分是循環(huán)播放MP3歌曲,該功能需要首先做一些初始化工作,MP3解碼器一旦開(kāi)始工作,就會(huì )一直向CPU請求數據,直至歌曲結束,只有通過(guò)鍵盤(pán)操作才會(huì )使該功能提前結束。因為MP3文件的數據量較大,在flash存儲器內是以頁(yè)為單位進(jìn)行存儲的,所以MP3的播放程序初始化就是要把該文件的首地址和頁(yè)數先讀出到CPU中,然后CPU可以根據如上數據進(jìn)行取數據工作。

第二部分則一直在等待中斷發(fā)生,該程序是與鍵盤(pán)結合起來(lái)的,主要用于使用者對播放過(guò)程的控制。鍵盤(pán)操作對MP3播放過(guò)程的控制還包括后退、躍進(jìn)、跳到下一首、音量控制等。因為整個(gè)播放過(guò)程的鍵盤(pán)控制功能比較單一,沒(méi)有鍵的復合操作,所以程序都很容易實(shí)現。當MP3播放器插入到USB接口時(shí),系統執行USB通訊功能模塊,該模塊主要用于對flash存儲器內的文件數據進(jìn)行管理。固件程序是該模塊開(kāi)發(fā)的主要工作,由于A(yíng)T89C5lSNDlC沒(méi)有外部中斷引腳,USB中斷沒(méi)有中斷向量地址入口,因此該固件程序的框架采用查詢(xún)工作方式。

3 FAT文件格式

因為該系統還要具有U盤(pán)的功能,所以存儲器中的文件還要能夠讓計算機讀寫(xiě)和識別,也就是所有的文件還要嚴格滿(mǎn)足計算機文件系統格式的要求。在所有計算機文件系統中,FAT是比較常用的一種。

一個(gè)FAT文件系統卷由4個(gè)部分組成:保留區、FAT區、根目錄區、文件和目錄數據區。其中保留區中的第一個(gè)分區必須是BPB,也稱(chēng)作“引導扇區”,因為它含有對文件系統進(jìn)行識別的關(guān)鍵信息,計算機將以此信息識別存儲器文件格式,因此十分重要。

FAT區存放的是文件分配表。操作系統的存儲空間是按簇來(lái)分配的,簇是操作系統分配的最小存儲單元,每個(gè)簇在FAT表中占據一個(gè)16位的位置,稱(chēng)為一個(gè)表項。同一個(gè)文件的數據并不一定存放在存儲區的一個(gè)連續的區域內,往往會(huì )分成若干段,像一條鏈子一樣的存放,這種存儲方式稱(chēng)為文件的鏈式存儲。為了實(shí)現文件的鏈式存儲,必須準確地記錄哪些簇已經(jīng)被占用,還必須為每一個(gè)已經(jīng)占用的簇指明后繼內容的下一個(gè)簇的簇號,對于一個(gè)文件的最后一個(gè)簇,則要指明本簇沒(méi)有后繼簇,這些就是由FAT表來(lái)存儲的。

根目錄區存放的是目錄項,每個(gè)目錄項為32個(gè)字節,記錄一個(gè)文件或目錄的信息。目錄項所占的空間與目錄項的個(gè)數有關(guān)。

文件和目錄數據區是真正存放文件數據的位置,所有數據都是按照以上信息分配存儲的。

4 結束語(yǔ)

MP3為取得較好的壓縮效果而采用相對復雜的技術(shù),寬帶音頻信號的取樣率也較高(一般為44.1kHz以上),所以MP3編解碼的運算量和數據量都相當龐大。MPEGLayer III解碼算法在A(yíng)T89C51SNDlC上驗證通過(guò)并獲得較好的效果,在通過(guò)優(yōu)化后可流暢播放。由于51內核單片機的性能限制,在緩沖時(shí)可能會(huì )有停頓。以上內容敘述了由AT89C51SNDlC構成的最小系統的結構,具備了便攜式MP3播放器的基本功能。其實(shí)AT89C51SNDlC還支持LCD顯示和IDE接口,還可以通過(guò)對以上接口模塊進(jìn)行擴展,構成更大更復雜的系統。



關(guān)鍵詞: MP3播放器 C51 USB接口

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>