




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、WOR格式基于單片機的 MP3播放器設(shè)計1音頻信號數(shù)字化后所面臨的一個不容忽視的問題是:巨大的數(shù)據(jù)量給存儲和傳輸帶來的壓力。因此音頻壓縮技術(shù)在廣播專業(yè)領(lǐng)域、網(wǎng)絡(luò)傳輸及多媒體使用中受到廣泛關(guān)注,成為音頻信號處理的關(guān)鍵技術(shù)之一。MPEG(Moving Picture Experts Group)運動圖像專家組,在1992年底制定了第一個世界范圍的Hi-Fi(High-Fidelity)質(zhì)量的音頻編碼標(biāo)準(zhǔn)MPEG-1。MPEG-1分為三種不同的方式,稱為Layer1、Layer2和Layer3。序號越高,復(fù)雜性越大,但是可提供更好的編碼效率,特別是在低比特率時。MP3就是MPEG-1 Layer3,
2、是基于感知編碼的算法,目前在CD音質(zhì)的聲音壓縮方面,是一種通用的方法。使用MP3標(biāo)準(zhǔn)對于音頻數(shù)據(jù)編碼既可以獲得較大的音頻數(shù)據(jù)壓縮比,又可以得到較好的音樂回放質(zhì)量。MP3的解碼器結(jié)構(gòu)復(fù)雜,涉及到大量的數(shù)學(xué)計算,對處理器和內(nèi)存的要求相當(dāng)高。目前,AT89C51處理器以其高性價比,豐富的外設(shè)資源,越來越受到各種嵌入式研發(fā)人員的青睞5-7。基于以上背景,我在此次設(shè)計中提出了AT89C51SND1C微處理器的軟件解碼方案,在降低硬件成本的基礎(chǔ)上保證高質(zhì)量的播放效果。1.2.2課題研究的意義MP3音頻播放器的最合理工作速度為30Mips,而一個典型的視頻媒體播放器的理想速度則為175Mips,所以提高MP
3、3的工作速度,以及改善 MP3的音質(zhì)是最關(guān)鍵的,也是亟待解決的問題。MP3。由于閃存式MP3的容量限MP3的多功能及大容量,也必將受已廣泛被使用于網(wǎng)絡(luò)通信、工業(yè)MP3播放器的設(shè)計方案, 這就進MP3是一種典型的嵌入式設(shè)備,而現(xiàn)在市場上比較常見的是閃存式 制,使它存儲歌曲數(shù)目較少,在功能上也很難實現(xiàn)多樣化。而硬盤式 到不少消費者的喜愛。另外一個原因是近年來,嵌入式系統(tǒng)和單片機開發(fā)的有機結(jié)合,控制、機頂盒、PDA等諸多領(lǐng)域。本文提出了一種基于單片機的步的體現(xiàn)了該設(shè)計的靈活性。目前該設(shè)計方案已經(jīng)實現(xiàn),實踐證明,此播放器擁有市面MP3所有的全部功能并能夠很好的運行MP3播放器一般分成3個部分:CPU、
4、MP3硬件解碼器存儲器。其中可以將前兩部分集成在一起,即帶MP3硬件解碼器的CPU;或?qū)⒑髢刹糠旨稍谝黄?,即集成硬件解碼、D/ A轉(zhuǎn)換及音頻輸入。存儲器可以是Flash 存儲器或硬盤。通過用 MP3編碼技術(shù),可以得到大約 12 : 1壓縮的有損音樂信號。盡管MP3音樂是有損的,它在壓縮過程中對功率譜較弱的信號有所丟失,但它同CD原聲區(qū)別不大,不影響一般音樂愛好者對音樂的欣賞。MP3大大縮小了聲音文件的長度,使音樂的存儲和傳輸更方便。2 MP3的編解碼過程2.1 MP3的工作原理一個完整MP3播放器要分幾個部分:中央處理器、解碼器、存儲設(shè)備、主機通訊端口、音頻D/A和功放、顯示界面和控制鍵、其
5、中中央處理器和解碼器是整個系統(tǒng)地核心。這里的中央處理器我們通常成為MCU (單片微處理器),簡稱單片機。它運行MP3的整個控制程序,也稱為fireware (或者固件程序)??刂?MP3的各個部件的工作:從存儲設(shè)備讀取數(shù)據(jù)送到解碼器解碼;和主機連接時完成和主機的數(shù)據(jù)交換;接收控制按鍵的操作;顯示系統(tǒng)運行狀態(tài)等任務(wù)。解碼器是芯片中的一個硬件模塊,或者說是硬件解碼(有的MP3播放機是軟件解碼,由高速中央處理器完成)。它可以直接完成各種格式MP3數(shù)據(jù)流的解碼操作,并輸出PCM或I2S格式的數(shù)字音頻信號10。本課題來源于生產(chǎn)實踐專業(yè)資料整理WOR格式存儲設(shè)備是MP3播放機的重要部分,通常的MP3隨身聽
6、都是采用半導(dǎo)體存儲器(FLASH MEMORY或者硬盤(HDD )作為儲存設(shè)備的 11。它通過接收儲存主機通訊端口傳來的數(shù)據(jù)(通常以文件形式),回放的時候 MCU讀取存儲器中的數(shù)據(jù)并送到解碼器。數(shù)據(jù)的存儲是要有一定格式的,眾所周知,PC管理磁盤數(shù)據(jù)是以文件形式,MP3亦不例外,最常用的辦法就是直接利用PC的文件系統(tǒng)來管理存儲器,微軟操作系統(tǒng)采用的是FAT文件系統(tǒng),這也是最廣泛使用的一種12。播放機其中一個任務(wù)就是要實現(xiàn)FAT文件系統(tǒng),即可以從FAT文件系統(tǒng)支持的磁盤中按文件名訪問并讀出其中的數(shù)據(jù)。主機通訊端口是MP3播放機和 PC機交換數(shù)據(jù)的途徑,PC通過該端口操作MP3播放機存儲設(shè)備中的數(shù)據(jù)
7、,拷貝、刪除、復(fù)制文件等操作。目前最廣泛使用的是USB總線,并且遵循微軟定義的大容量移動存儲協(xié)議規(guī)范,將MP3播放機作為主機的一個移動存儲設(shè)備。這里需要遵循幾個規(guī)范:USB通信協(xié)議、大容量移動存儲器規(guī)范和SCSI協(xié)議13-15。音頻DAC是將數(shù)字音頻信號轉(zhuǎn)換成模擬音頻信號,以推動耳機、功放等模擬音響設(shè)備。這里要介紹一下數(shù)字音頻信號。數(shù)字音頻信號是相對模擬音頻信號來說的。我們知道聲音的本質(zhì)是波,人們能聽到的聲音頻率在20Hz到20kHz之間,稱為聲波。模擬信號對波的表示是連續(xù)的函數(shù)特性,基本的原理是不同頻率和振幅的波疊加在一起。數(shù)字音頻信號是對模擬信號的一種量化,典型方法是對時間坐標(biāo)按相等的時間
8、間隔做采樣,對振幅做量化。單位時間內(nèi)的采樣次數(shù)稱為采樣頻率。這樣一段聲波就可以被數(shù)字化后變成一串?dāng)?shù)值,每個數(shù)值對應(yīng)相應(yīng)抽樣點的振幅值,按順序?qū)⑦@些數(shù)字排列起來就是數(shù)字音頻信號了。這是ADC(模擬一數(shù)字轉(zhuǎn)換)過程,DAC (數(shù)字一模擬轉(zhuǎn)換)過程相反,將連續(xù)的數(shù)字按采樣時候的頻率轉(zhuǎn)換成對應(yīng)的電壓。MP3解碼器解碼后的信息屬于數(shù)字音頻信號(數(shù)字音頻信號有不同的格式,最常用的是 PCM和I2S兩種),需要通過 DAC轉(zhuǎn)換器變成模擬信號才能推動功放,被人耳所識別。2.2 MP3播放器編碼過程 2.2.1編碼分析一、音頻信號數(shù)字化信號的數(shù)字化就是將連續(xù)的模擬信號轉(zhuǎn)換成離散的數(shù)字信號,一般需要完成采樣、量化
9、和編碼三個步驟, 如圖2-1所示。采樣是指用每隔一定時間間隔的信號樣本值序列來代替原來的時間上連續(xù)的信 號;量化是用有限個幅度近似表示原來的時間上連續(xù)變化的幅度值,把模擬信號的連續(xù)幅度變?yōu)橛邢迶?shù) 量、有一定時間間隔的離散值;編碼則是按照一定的規(guī)律,把量化后的離散值用二進制數(shù)碼表示。上述數(shù)字化的過程又稱為脈沖編碼調(diào)制,通常由A/D轉(zhuǎn)換器來實現(xiàn)。模擬音頻信號數(shù)字流低通濾波器采樣圖2-1音頻信號數(shù)字化數(shù)字音頻信號經(jīng)過處理、記錄或傳輸后,號。將數(shù)字信號轉(zhuǎn)換成模擬信號為D/A轉(zhuǎn)換。數(shù)字音頻的質(zhì)量取決于采樣頻率和量化位數(shù)當(dāng)需要重現(xiàn)聲音時,還必須還原為連續(xù)變化的模擬信采樣頻率越高,量化位數(shù)越多,數(shù)字化專業(yè)資
10、料整理WOR格式后的音頻質(zhì)量越高。二、音頻采樣來代表這采樣就是從一個時間上連續(xù)變化的模擬信號取出若干個有代表性的樣本值, 個連續(xù)變化的模擬信號。一個在時間和幅值上都連續(xù)的模擬音頻信號的函數(shù)表示為采樣的過程就是在時間上將函數(shù)離散化的過程。一般的采樣是按照均勻的時間間隔進行的。設(shè)這一時間間隔為T,則取樣后的信號為根據(jù)奈奎斯特采樣定理:等于原始信號最高頻率的得到離散信號x nTx nT ,n為自然數(shù)。要從采樣值序列完全恢復(fù)原始的波形,2倍。設(shè)連續(xù)信號,如果滿足采樣頻率必須大于或時,xt的頻譜為x其中ff ,以采樣間隔時間c是截止頻率,即 T ;1 fc時,2T抽樣可以由x nT 完全確定連續(xù)信號,如
11、公式(2-1)所示。x n ' t 2 f n T(2-1)因此,可由離散信號x nT完全確定頻譜x t ,如公式(2-2 )所示sin - t nT(2-2)TrnT三、當(dāng)采樣頻率為1/2T時,即f1 T時,2為奈奎斯特采樣頻率。音頻量化采樣把模擬信號變成了時間上離散的樣值序列, 模擬量,因此還必須對其進行離散化處理,但每個樣值的幅度仍然是一個連續(xù)的將其轉(zhuǎn)換為有限個離散值,才能最終和數(shù)碼來表示其幅值。量化過程是將采樣值在幅度上再進行離散化處理的過程。所有的采樣值可能出現(xiàn)的范圍被劃分成有限多個量化階的集合,把凡是落入某個量化階內(nèi)的采樣值都賦予相同的值,即量化值。通常這個量化值用二進制來
12、表示,用N位二進制碼字可以表示 2N 個 -不同的量化電平。存儲數(shù)字音頻信號的比特率為:I N f s,其中的f s是采樣率,N是每個采樣值的比特數(shù)。表示采樣值的二進制的位數(shù)為量化位數(shù),它反映出各采樣值的精度,如3位能表示采樣值的 8個等級,8位能反映256個等級,其精度為音頻信號最大振幅的1/256。量化位數(shù)越多,量化值越接近于采樣值,其凈度越高,但要求的信息存儲量就越大。根據(jù)以上公式可知,要減小比特率I,在2s已經(jīng)確定的情況下,只能去減少N的值。N的值降低會導(dǎo)致量化的精度降低,N的值增加又會導(dǎo)致信息存儲量的增加。因此在編碼時就需要合理地選擇N的值購。均勻量化就是采用相等的量化間隔進行采樣,
13、也稱為線性量化。用均勻量化來量化輸入信號時,無論對大的輸入信號還是小的輸入信號都一律采用相同的量化間隔。因此,要想既適應(yīng)幅度大的輸入信號,同時又要滿足精度高的要求,就需要增加采樣樣本的位數(shù)。非均勻量化的基本思想是對輸入信號進行量化時,大的輸入信號采用大的量化間隔,小的輸入信號采用小的量化間隔,這樣就可以在滿足精度要求的情況下使用較少的位數(shù)來表示。其中采樣輸入信號幅度和量化輸出數(shù)據(jù)之間一般定義了兩種關(guān)系,一種成為u律壓縮算法,另一種成為A律壓縮算法。專業(yè)資料整理WOR格式采用不同量化方法,量化后的數(shù)據(jù)量也就不同。因此說量化也是一種壓縮數(shù)據(jù)的方法。四、音頻編碼專業(yè)資料整理WOR格式采樣、量化后的信
14、號還不是數(shù)字信號,需要把它轉(zhuǎn)換成數(shù)字脈沖,這一過程成為編碼。最簡單的編碼方式是二進制編碼。具體說就是用n比特的二進制編碼來表示已經(jīng)量化了的樣值,每個二進制數(shù)對應(yīng)一個量化電平,然后把它們排列,得到由二值脈沖串組成的數(shù)字信息流。用這種方式組成的二值脈沖的頻率等于采樣頻率和量化比特數(shù)的乘積,成為數(shù)字信號的數(shù)碼率采樣頻率越高, 量化比特數(shù)越大,數(shù)碼率就越高,所需要的傳輸帶寬就越寬17。音頻編碼方法歸納起來可分三大類:波形編碼、參數(shù)編碼、混合編碼。波形編碼是盡量保持輸入波形不變,即重建的語音信號基本上和原始語音信號波形相同,壓縮比較低;參數(shù)編碼是要求重建的信號聽起來和輸入語音一樣,但其波形可以不同,它是
15、以語音信號所產(chǎn)生的數(shù)學(xué)模型為基礎(chǔ)的一種編碼方法,壓縮較高;混合編碼是綜合了波形編碼的高質(zhì)量潛力和參數(shù)編碼的高壓縮效率的混合編碼方法,這類方法也是目前低碼率編碼的方向。222編碼過程MP3文件由一系列長度不同的幀組成,一個接著一個,就好像電影膠片一樣。每一幀的前面都有一個頭信息,其中就包括一些關(guān)于后繼數(shù)據(jù)的額外信息。在某些編碼中,這些幀可以互相影響。 例如,一幀有剩余的空間,而下一幀沒有,他們就可以組合起來產(chǎn)生一個優(yōu)化的結(jié)果。在一個MP3文件的開始或者結(jié)尾,通常會存儲一些額外的信息,包括歌手、曲目名、專輯名、錄制時間、流派以及個人評論。這叫做“ID3 ”數(shù)據(jù),當(dāng)文件數(shù)目不斷增長是,將會非常有用。
16、MP3使用兩種技術(shù)獲得好的壓縮比:一種有損壓縮,一種無損壓縮。首先,壓縮過程將人類根本不能聽到的部分丟棄(或者至少做出可接受的折衷),然后對冗余編碼進一18里也被更多的考慮。MP3編碼工具分析信號源,把它分解為各種數(shù)學(xué)模板,并和編碼器存儲的心理聲學(xué)模板進行比 較。編碼器就可以丟棄大部分不匹配的數(shù)據(jù)。MP3編碼過程可以分成幾個步驟:首先,將信號分解成稱為幀的組建片、每一幀持續(xù)不到一秒。這和電影中的幀很類似。第二,分析信號已決定其“光譜能量分布”,也就是說,在整個可聽頻率的光譜范圍內(nèi),找出怎樣將比特流進行分布,以產(chǎn)生最好的音頻編碼。因為頻率光譜的不同部分使用相同的算法,經(jīng)過輕微的變換,可以進行高效
17、編碼,這一步將信號分解為子帶(sub-bands),子帶可以獨立的進行處理以產(chǎn)生最優(yōu)的效果(注意所有的子帶都使用相同的算法,不同只是因為使用的編碼器不同造成的其分配的比特流大小不同而已)。第三,要考慮數(shù)據(jù)傳輸率,它決定了每一幀能夠分配的比特最大值。例如,如果數(shù)據(jù)傳輸率是128kbit/s ,那么每一幀可以分配的數(shù)據(jù)上限就確定了(除非使用變比特率方法)。這一步?jīng)Q定了可以存儲多少可獲得的數(shù)據(jù)以及有多少數(shù)據(jù)被丟棄。把每一幀的頻率分布于人類心理聲學(xué)的數(shù)學(xué)模板進行比較(數(shù)學(xué)模板作為一個索引表存儲在編/解碼器中),從這些模板中就可以決定,哪些頻率應(yīng)該準(zhǔn)確的渲染表現(xiàn)出來,那些頻率可以丟棄或者分配較少的bit
18、 o第四,經(jīng)過Huffman編碼的處理, 這個過程去處取樣的冗余信息。Huffman編碼和心理聲學(xué)模型并不相關(guān),它只是通過傳統(tǒng)的壓縮方式獲得額外的壓縮比。因此,讀者可 以看到,整個MP3編碼過程是:首先,利用所有的心理聲學(xué)模板選擇性的丟棄大量數(shù)據(jù),然后壓縮剩余 的數(shù)據(jù),消除冗余。其中的第二步,并不丟棄數(shù)據(jù),它僅僅使用更小的空間存儲剩余的數(shù)據(jù)。把一定數(shù)量的幀集合起來,再在每個數(shù)據(jù)幀前加上頭信息,就組裝成一系列的比特流,頭信息主要包括一些相關(guān)幀的指令。在這個過程中,許多其他因素需要考慮,這經(jīng)常在開始編碼前就需要預(yù)先設(shè)定。另外,對每個單獨的幀的編碼算法經(jīng)常還依賴于對前一幀和后一幀。整個過程包含了某種
19、程度的同步,前面的步驟并不必須按順序進行19專業(yè)資料整理WOR格式MP3的聲音數(shù)據(jù)分成幀,每幀包含1152個樣本的數(shù)據(jù),由32個子帶分別輸出 MP3的編碼器輸入,以12個樣本為一組,每組樣本經(jīng)過時間-頻率變換之后進行一次位分配并記錄一個比例因子(scalefactor )。位分配的信息告訴解碼器每個樣本由幾位表示,比例因子用6位表示解碼器,使用 6位的比例因子乘以量化器的每個輸出樣本值,以恢復(fù)被量化的子帶值。比例因子的作用是充分利用量化器的量化范圍,通過位分配的比例因子相配合,可以表示的動態(tài)范圍超過了120dB的樣本20。MP3 使用了從 ASPEC( Audio Spectral Perce
20、ptual Encoding)和 OCF( Optimal Coding In TheFrequency domain )導(dǎo)出的算法。在濾波器組上,MP3在使用了正交鏡像濾波(和MP1和MP2相同)后,緊跟著使用了改進離散余弦變換MDCT( Modified Discrete CosineTransform ),對正交鏡像濾波的不足進行了一些補償。MDCT把子帶的輸出在頻域里進一步細(xì)分已達(dá)到更高的頻域分辨率。而且通過對子帶的進一步細(xì)分,編碼器部分消除了多相濾波器組引入的混迭效果。MP3編碼器的詳細(xì)框圖如圖2-2所示。分析濾MDCT 動.波器組態(tài)加窗量化器比例器和哈夫曼邊合成濾NE逆 MDCTM
21、逆比例器、rr jt> *動態(tài)加v圖2-2 MP3編碼器和解碼器的結(jié)構(gòu)MP3指定了兩種MDCT的塊長:長塊的塊長為 18個樣本,短塊的塊長為 6個樣本,相鄰變換的窗口之間有50%的重疊。長塊對于平穩(wěn)的聲音信號可以得到更高的頻域分辨率,而短塊對跳變的聲音信號可以得到更好的時域分辨率。在短塊模式下,3個短塊代替了一個長塊,短塊的長恰好是一個長塊的 1/3,所以MDCT的樣本數(shù)不受塊長的影響。給定的一個幀聲音信號,MDCT可以全部使用長塊或全部使用短塊,也可以長短塊混合使用。因為低頻區(qū)的頻域分辨率對音質(zhì)有重大影響,所以在混合塊長模式下MDCT對低頻的2個子帶使用長塊,而對其余的30個子帶使用短
22、塊。這樣,既能保證低頻區(qū)的頻域分辨率,又不會犧牲高頻域的時域分辨率。長塊和短塊之間的切換有一個過程,一般用一個帶特殊長轉(zhuǎn)短或者短轉(zhuǎn)長數(shù)據(jù)窗口的長塊來完成這個長短塊之間的切換。除了使用MDCT外, MP3還采用了其他許多改進措施來提高壓縮比而不降低音質(zhì)。雖然MP3引入了許多復(fù)雜的感念,但是它的計算量并沒有比MP2增加許多。增加的主要是編碼器的復(fù)雜度和解碼器所需要的存儲容量。2.3 MP3播放器解碼過程作為一個整體,MP3系統(tǒng)的大部分工作放在了解碼部分。但是,普通用戶主要是播專業(yè)資料整理WOR格式放MP3文件而不是制造它,這里將重點介紹解碼過程。解碼器并不需要存儲或者利用人類心理聲學(xué)理論,也不需要
23、進行比特分配過程。MP3播放器所關(guān)注的只是檢查比特流的頭和頻譜分布的數(shù)據(jù)幀,以及和它們存儲在一起的邊信息,然后再將重建這些信息為音頻信號。從某種意義上說,播放器其實就是一個MP3文件、播放列表和聲卡的接口,將它們包裝為相對簡單明了的解碼MP3比特流格式的規(guī)則。不同的MP3解碼器在效率上有著很大的不同,同樣在解碼后聲音的質(zhì)量上也有很大的不同,在過去的幾年里,這些不同對計算機硬件的依賴在很大程度上被忽視了,實際上解碼器也同樣要消耗大量系統(tǒng)資源的。這在那些沒有良好微線程特征的操作系統(tǒng)中特別的明顯,如果有適當(dāng)?shù)挠布?,可以在很大程度上免除MP3的中斷的問題。一些MP3解碼器比其他解碼器占用更多的CPU時
24、間,但是,用效率來衡量它們之間的區(qū)別并不比用其它特征來衡量的區(qū)別大。選擇MP3播放器關(guān)系到成本、可擴展性、音頻質(zhì)量和外觀。圖2-3為MP3的整個解碼過程的流程圖,和解碼器的圖相對應(yīng):圖2-3 MP3解碼流程本節(jié)主要介紹了 MP3的編解碼過程。 MP3播放器的編碼過程包括:音頻信號數(shù)字化、音頻采樣、音頻量化和音頻編碼。編碼器將模擬信號經(jīng)處理后,轉(zhuǎn)換成數(shù)字信號進行傳輸。MP3的解碼是編碼的反過程,主要是從編碼后的譜線成分中,經(jīng)過反量化和逆變換,提取出聲音信號。 MP3的解碼總體上可分為比特流分析,霍夫曼編碼,逆量化處理,立體 聲處理,頻譜重排列,抗鋸齒處理,逆離散余弦變化,子帶合成,PCM輸出。3
25、 MP3播放器的硬件設(shè)計和實現(xiàn)3.1系統(tǒng)的總體設(shè)計此次設(shè)計方案可以方便的將外部的 可以看出本系統(tǒng)的具體硬件設(shè)計主要包括:MP3格式的音樂文件傳輸?shù)奖鞠到y(tǒng)的存儲器Flash中。如圖3-1主芯片和USB接口的連接設(shè)計,此部分主要用于MP3文件的傳輸和固件下載;主芯片和按鍵以及LCD之間的設(shè)計連接,用戶通過顯示屏幕獲取播放器的進程息,通過按鍵來對音樂進行選擇和控制;主芯片和D/A轉(zhuǎn)換器之間,這一系統(tǒng)將該系統(tǒng)解碼后的數(shù)字信號轉(zhuǎn)換為人耳能識別的模擬信號,這專業(yè)資料整理WOR格式一部分主要包括時鐘信號、數(shù)據(jù)信號以及反饋信號的連接;電源轉(zhuǎn)換部分,本系統(tǒng)內(nèi)部使用的電源一般為3.3V,而USB接口以及電池的電源
26、都需要DC-DC部分來進行轉(zhuǎn)換,從而為系統(tǒng)提供所需的3.3V電源;播放系統(tǒng)和存儲系統(tǒng)的切換電路設(shè)計。Keyboard通信接口(USB1.1)LCD顯示器VVMCUMP3解碼器(AT89C51SND1(操作按鍵)(AT89C51SND1C)MP3工作原理流程圖如圖音頻輸出功放D/A轉(zhuǎn)換器C芯片內(nèi)部集成)4圖3-1系統(tǒng)硬件結(jié)構(gòu)低通濾波后到音頻輸出圖3-2工作原理流程圖MP3播放器的軟件結(jié)構(gòu)跟硬件是相對應(yīng)的,即每一個硬件部分都有相應(yīng)的軟件代碼,這是因為大多數(shù)的硬件部分都是數(shù)字可編程控制的。音樂播放器首先讀取存儲器上的音樂信號,再通過解碼器對信號進行解碼分析,經(jīng)解碼的信號通過D/A轉(zhuǎn)換器將解碼出的數(shù)字
27、信號轉(zhuǎn)換成模擬信號,然后把轉(zhuǎn)換后的模擬音頻放大,通過低通濾波后到音頻輸出。3.2.主電路設(shè)計系統(tǒng)的主芯片采用美國ATMEL公司的AT89C51SND1C該芯片是一個 2.53.3 V 低電壓、80 mW低功耗、運算速度高、功能完善、高度集成并且低成本的單芯片數(shù)字(MPEG12,2.5&3 )音頻解碼器。其特點如下:基于8位C51MCU核(最大時鐘頻率 20MHz );內(nèi)部集成了單獨的MP3解碼器,而且支持 48,44.1,32,24,22.05, 16 kHz 采樣頻率,專業(yè)資料整理WOR格式支持左右聲道獨立的音量控制(軟件使用31級)、重低音、中音、高音均衡控制(31聲效果、輔助數(shù)據(jù)
28、輸出、“ CRC錯誤”和“ MPEG幀同步”指示;有 44通用I/O、重低環(huán)繞專業(yè)資料整理WOR格式口的嵌入式C51 Nand Flash , SSFDC I2S , SPI和IDE多種擴展功能接口容易適應(yīng)多種使用場合Flash/CD/HDD播放器等;具有適應(yīng)市場上不同的D/A轉(zhuǎn)換器的可編程的音頻輸出接口,兼容PCM格式和I2S 格式;內(nèi)置 2304BRAM ; 64KBFIash程序空間和 4KB引導(dǎo)閃存(AT89C51SNDI),在系統(tǒng)編程:通過USB UART接口進行在系統(tǒng)編程;USB1.1控制器,“ Full speed ”數(shù)據(jù)傳輸;內(nèi)置鎖相環(huán),提供MP3音頻時鐘和 USB 時鐘;兼容
29、 MultiMedia Card ( MMC )卡接口、 Atmel Data Flash SPI 接口、IDE/ATAPI (硬盤)接口 ;通道10位A/D轉(zhuǎn)換器,8kHz( 8位真有效值),包括電池電壓監(jiān)視和軟監(jiān) 控的錄音;AT89C51SNDIC內(nèi)部結(jié)構(gòu)簡化后實際就是64K80C51+MP3解碼器+USB,使用該芯片設(shè)計MP3播放系統(tǒng)具有很多優(yōu)點,如支持在系統(tǒng)編程不需要昂貴的仿真器,系統(tǒng)設(shè)計成本降低;內(nèi)置2304B的RAM,方便用戶增加復(fù)雜的功能。AT89C51SND1內(nèi)部主要資源如圖 3-3所示。1 A't&rnatft fUflEtlOtl$;圖3-3 AT89C51
30、SND1C內(nèi)部主要資源此外,由于該芯片內(nèi)部集成了大量的接口,所以只需要很少的外圍器件如DC-DC,音頻D/A轉(zhuǎn)換器和存儲器就可以實現(xiàn)系統(tǒng)的要求,這樣可以做到系統(tǒng)空間很小,這一點 正好適應(yīng)現(xiàn)代系統(tǒng)設(shè)計的纖小而功能全面的要求。該芯片共80引腳,封裝為TQFP80,就是四邊各20引腳的貼片封裝。圖 3-4 為AT89C51SND1的 引腳定義。對于功能復(fù)用的引腳要慎重考慮。本設(shè)計并沒有使用單片機的全部功能,部分沒有占用的10端口和MMC等專用借口都用擴展槽引出了,可以用來擴展其他電路。管腳說明: IO 端口P1-P3和8051功能相同。P1端口第二功能有 KIN3:0 SCL SDA P4 具有8-
31、bit內(nèi)部上拉10.第二功能 MISO MOSI SCK SS P5具有 4-bit內(nèi)部上拉 IO.時鐘信號管腳 X1 I輸入芯片上反向振蕩放大器專業(yè)資料整理WOR格式使用內(nèi)部振蕩器,晶振/諧振器電路連接到該管腳。如果使用一個外部振蕩器,其輸出被連接到 該管腳。X1是內(nèi)部的時間的時鐘脈沖源。 X2 O輸出片上振蕩器反相放大器使用內(nèi)部振蕩器,晶振 /諧振器電路連接到該管腳。如果外部振蕩器使用,給X2的懸空。 FILT I PLL 的低通濾波器輸入FILT員工接收PLL的低通濾波器的RC網(wǎng)絡(luò)。定時器信號說明: INTO I ( P3.2 )INTO的服務(wù)為定時器0 ,當(dāng)選定TCON中的位寄存器由
32、GATE0外部運行控制。INTO的輸入控制 TCON寄存器里的IE0位f (IT0=1 )位IE0被INTO 低電平f(IT0=0 )位IE0被INT0低電平觸發(fā). INT1 I ( P3.3)INT1的作為定時器1當(dāng)由GATE1 TCO N寄存器中的位選擇外部運行控制。INT1的輸入控制 TCON寄存器里的IE1位.If (IT仁1 )位IE1被INT1低電平f( IT仁0 )位IE1被INT1低電平觸發(fā). T0 I P3.4當(dāng)定時器0作為一個計數(shù)器運行,T0代引腳下降沿遞增計數(shù)。 T1I P3.5當(dāng)定時器1作為一個計數(shù) T1引腳上的下降沿遞增計數(shù)操作。VP ufi 0-5RHpo &
33、; CL £ AAs g“ > .fln Q > qn$|£nflLECE/1«SPw|2 ,g片 it*'!-04 iOsS1Ais? PSEtRHBET pi腳卿QEP«3ffl3N2rTFtJWffiHajzr pu*匚匚 PiEXP1 6/SCLCTP1 7/SDA 匚工VDDEZL ipvnnrrFOCT PVSSCXVSSCTX2EX X1 LX TSTIr UVDD =811AT89C51SND1C-RO (FLAS>AT83SND1C-RCi(ROlife AT80C51SND1C-RO (ROMLESS)LCM
34、trt UTH B 4樓L已 E宜臨血CM;NCME rsf'E瑪佗戯|再殲海罷rhE 再9 B4 412131415IBHI P4 5if円WpP2.3.A15 P2.4/A12S-P2 5/A1? fcl 14SwoUMOJCTT MDATH3 MCMDDRST3 SCU£XJDSEL j gtCLK tnijuT vss云VDO口?<HU0z< xaw 岀:< uu - - 廿匸焉£廿占I=+0圖 3-4 AT89C51SND1C 弓腳圖專業(yè)資料整理WOR格式3.2.1單片機最小系統(tǒng)單片機芯片,配以必要的外部器件就能構(gòu)成單片機最小系統(tǒng)。單片機
35、具有較強的外部擴展、通信能力,能方便地擴展至使用系統(tǒng)所要求的規(guī)模。當(dāng)使用帶ROM或EPROM的MCS-51系列單片機時,只要一個芯片即可構(gòu)成一個單片機的最小系統(tǒng)。選用AT89C51單片機作為主機,它具有 4K片內(nèi)ROM,128字節(jié)片內(nèi)RAM,片外ROM尋址范圍達(dá)64K, 2個16位計數(shù)器,5個中斷源,4個并行口,一個串行口。簡易自動樂曲播放器采用單片機最小系統(tǒng) 足以滿足系統(tǒng)設(shè)計要求,同時要設(shè)計單片機最小系統(tǒng)的晶振和復(fù)位電路。3.2.2 電源部分電源是整個播放器的重要組成部分,圖3-5是電源部分的電路,圖中AS1117是一款低壓差的線性穩(wěn)壓器,當(dāng)輸出1A電流時,輸入輸出的電壓差典型值僅為1.2V
36、。除了能提供各種穩(wěn)定電壓版本外(Vout=1.8V ,2.5V,2.85V,3.3V,5V),還提供可調(diào)端輸出版本,該版本能提供的輸出電壓范圍為 1.25V 13.8V。圖3-5 電源電路圖AS1117提供完善的過流保護和過熱保護功能(AS1117正常工作環(huán)境溫度范圍極寬,為-50 C140 C),確保芯片和電源系統(tǒng)的穩(wěn)定性。同時在產(chǎn)品生產(chǎn)中使用先進的修正技術(shù),確保 輸出電壓和參考精度在土 1%的精度范圍內(nèi)。AS1117的系統(tǒng)框圖如圖 3-6 所示。圖3-6 AS1117 系統(tǒng)框圖.'C LTt3.2.3 D/A轉(zhuǎn)換部分專業(yè)資料整理WOR格式當(dāng)MP3或者WMA等格式的音樂文件經(jīng)過主芯片
37、內(nèi)部解碼后為數(shù)字信號,而人耳所能識別的信號卻為模擬信號,系統(tǒng)利用 CS4331進行轉(zhuǎn)換。AT89C51SND1C從Flash 中讀取數(shù)據(jù)之后,將MP3格式的音樂在其內(nèi)部進行硬件解碼為二進制數(shù)據(jù),之后通過D/A轉(zhuǎn)換器CS4331來對這些數(shù)據(jù)進行數(shù)模轉(zhuǎn)換,轉(zhuǎn)換成人耳可以接受的音樂。主芯片AT89C51SND1C內(nèi)部有一個音頻輸出接口,支持不同格式的音頻數(shù)據(jù)流格式,女口PCM格式和I2S格式,該接口可以跟幾乎所有的通用音頻D/A 轉(zhuǎn)換器相連。CS4331在改善音頻質(zhì)量,降低信噪比等方面都很好。同時AT89C51SND1C內(nèi)部集成了 MP3軟件解碼器,系統(tǒng)不需要外接額外的解碼器。解碼后的數(shù)字信號經(jīng)過D
38、/A轉(zhuǎn)換后還原為模擬音頻信號。圖3-7為D/A轉(zhuǎn)換電路圖。圖3-7 D/A轉(zhuǎn)換電路圖音頻DA芯片在MP3播放器中承擔(dān)音頻信號的數(shù)字/模擬轉(zhuǎn)換功能,其性能直接影響最終的音樂效果和音質(zhì)。CS4331芯片沒有配置引腳,無需軟件配置。 CS4331的內(nèi)部框圖如下圖。SDATA是位流數(shù)據(jù)輸入,SCLK是位流時鐘,LRCK是聲道選擇時鐘,其頻率即采樣率。MCLK則是DAC電路所需的主時鐘。圖3-8為CS4331芯片內(nèi)部結(jié)構(gòu)圖。DEM/3CLKAQNDAOllTRMCLK圖3-8 CS4331 芯片內(nèi)部結(jié)構(gòu)3.2.4控制部分專業(yè)資料整理WOR格式播控系統(tǒng)的設(shè)置通過按鍵來選擇,AT89C51SND1C提供4個
39、按鍵輸入口,連接 USB前,短接了 DFU跳線,運行 BootLoader,進入到固件下載;接到 USB前,按下了 FORMAT,則格式化 U盤;連接到USB, 不按任何鍵,則進入 U盤功能。使用電池供電時,不按任何鍵,則進入MP3模式。MP3鍵盤由4個鍵組成,分別為 Play/Pause 鍵、Previous 鍵、Next 鍵和Func 鍵:Func,功能切換; Next,向后; Previous,向前;Play/Pause,播放 /暫停。用戶在使用播放器時可以方便地根據(jù)自己的喜好來選擇歌曲播放或暫停。操作狀態(tài)和設(shè)置信息通過LCD1602來顯示。LCD采用液晶顯示模塊,可顯示漢字及圖形。液晶
40、顯示具有厚度薄、適用于大規(guī)模集成電路直接驅(qū)動、易于實現(xiàn)全彩色顯示的特點,正好適應(yīng)MP3播放器的需求。圖3-9為鍵盤控制電路,圖3-10 為LCD顯示電路。Is3nISPT - I T 41- -It* 斗FLO KIaOPU KIN IPl 2KIN21 :. J .P13KIN3LCDD3Pl 4IL1T 1PI $:-LCBDf «a .dr ahT 1 丄斗 A nPL6SCL'' '尊亦麗呼PlJfiDA15L-n .1W JPT>D1舄 £ vLtDMWLC3圖3-9 鍵盤控制電路圖3-10 LCD 顯示電路系統(tǒng)整體電路圖如圖3-13
41、所示:圖3-13整體電路圖4 MP3播放器軟件設(shè)計及實現(xiàn)4.1 MP3播放器播放功能的設(shè)計MP3播放程序設(shè)計要和鍵盤配合起來使用。在主程序中,如果已經(jīng)處于播放狀態(tài),則調(diào)用Play MP3程序播放歌曲,直至播放到最后一首。在Play MP3程序里面,MP3解碼器一旦開始工作以后,就會一直向 CPU請求數(shù)據(jù),直至歌曲結(jié)束。如果用戶想切換歌曲,則可直接按暫停鍵,這樣 此程序函數(shù)就會提前結(jié)束,進入下一首歌曲的播放。其播放流程圖如圖4-1所示:專業(yè)資料整理WOR格式圖4-1播放器播放過程流程圖當(dāng)產(chǎn)生數(shù)據(jù)請求時,程序判斷是否產(chǎn)生請求中斷,當(dāng)產(chǎn)生了請求中斷時,數(shù)據(jù)讀取失敗。如果數(shù)據(jù)請求未產(chǎn)生中斷,重新載入數(shù)
42、據(jù)。產(chǎn)生中斷后,程序讀取下一個扇區(qū)中的數(shù)據(jù),如果程序不需要再讀取下一扇區(qū)的數(shù)據(jù),則將數(shù)據(jù)送入解碼器中。當(dāng)讀取到的數(shù)據(jù)已經(jīng)不足一扇區(qū)時,結(jié)束當(dāng)前所播放的歌曲,讀取下一首歌曲的數(shù)據(jù);如果所讀取的數(shù)據(jù)超過一扇區(qū),則將數(shù)據(jù)存入另一個扇區(qū),并讀取這個扇區(qū)的數(shù)據(jù)。將讀取后的數(shù)據(jù)送入解碼器中,解碼時,通過鍵盤控制。當(dāng)鍵盤位于暫停狀態(tài)時,解碼器暫時不工作,等待再次按下暫停鍵后繼續(xù)解碼。在播放過程中,如果需要選擇播放的歌曲時,按下選曲按鈕則結(jié)束當(dāng)前播放的歌曲,進入所選歌曲的播放過程。其主要程序代碼為:Void playMP3(unsigned char *SongName) 專業(yè)資料整理WOR格式Int i=O
43、,j=O;專業(yè)資料整理WOR格式/First 1024 Byte MP3 Datam=ReadSector(SongName,Page_Buf) ;/ 從當(dāng)前歌曲中讀取512 字節(jié)if(MP3STA1 &MPFREQ)/解碼器數(shù)據(jù)請求中斷產(chǎn)生時For(i=0;i<1024;i+)/第一次要向解碼器緩存中置入1024 字節(jié)if(j=512)/當(dāng)用完512字節(jié)時m=ReadSector(SongName,Page_Buf);/讀取當(dāng)前歌曲的下一個 512字節(jié)j=0;MP3DAT=Page_Bufj+;/向MP3解碼器數(shù)據(jù)寄存器送入一個數(shù)while(!PlayState); /如果是暫
44、停狀態(tài)則等待 while(ChangeSong)DataRead=0;ChangeSong=0;return; while(!(MP3STA1 &MPBREQ);/Other MP3 datawhile(1)while(MP3STA1 &MPFREQ)if(j=512)j=0;/如果選曲時,則重新播放當(dāng)前曲目/等待中斷再次產(chǎn)生0解碼器數(shù)據(jù)請求中斷產(chǎn)生時/ 當(dāng)用完512字節(jié)時if(m<512) NowPlaying+;return;/如果上一次從歌曲中讀取的數(shù)據(jù) /不足512時,則結(jié)束本歌曲播放m=ReadSector(SongName,Page_Buf);/讀取當(dāng)前歌曲的
45、下一個512字節(jié)MP3DAT=Page_Bufj+;/向MP3解碼器數(shù)據(jù)寄存器送入一個數(shù)while(!PlayState); /如果是暫停狀態(tài)則等待while(ChangeSong)DataRead=0;ChangeSong=0;return;/如果選曲時,則重新播放當(dāng)前曲目while(!(MP3STA1 &MPBREQ); /等待中斷再次產(chǎn)生4.2 MP3功能按鈕設(shè)計4-2當(dāng)執(zhí)行MP3程序的時候, 需要通過按鍵操作來控制 MP3歌曲的播放,當(dāng)鍵盤響應(yīng)流程圖如圖 所示。專業(yè)資料整理WOR格式產(chǎn)生鍵盤中斷判斷哪個鍵被按下播放向前向后功能切換置播放/暫根據(jù)所處功能不同設(shè)置不切換功冃匕停狀態(tài)
46、同寄存器的值清中斷標(biāo)志,等待下一 J次中斷圖4-2鍵盤相應(yīng)流程圖每個鍵對應(yīng)了一個鍵盤響應(yīng)函數(shù)。1) Func,功能切換。功能切換的作用是設(shè)置功能狀態(tài)。沒按下一次此鍵,貝U功能狀態(tài)計數(shù)器在 13之間輪換。源代碼如下:void Func() if(CurrentFun<3) CurrentFun+;在選曲/音量調(diào)節(jié)/音效調(diào)節(jié)三者之間切換else if(CurrentFun=3) CurrentFun=1;2) Next,向后。根據(jù)所處功能狀態(tài)的不同,按下此鍵時,將進行不同的操作,進而可以實現(xiàn)不同的功能。當(dāng)處于“音量控制(VOLUME) ”狀態(tài)時,則改變音量寄存器的值,從而控制音樂音量當(dāng)處于“
47、音效(EFFECTION )”狀態(tài)時,則改變音效寄存器的值。而如果處于“選曲(SELECTSON) ”狀態(tài)時,則切換到當(dāng)前 MP3歌曲列表中的下一曲。源代碼如下:void Next()switch(CurrentFun)case VOLUME if(MP3VOR>OxOO) MP3VOR-=0x01;/按下*下一首/音量減小*鍵時的處理/如果當(dāng)前處于音量調(diào)節(jié)功能/當(dāng)前音量沒有達(dá)到最小時/右聲道音量增大一檔/專業(yè)資料整理WOR格式break;case EFFECTION : lf(MP3BAS>7)MP3BAS-=7;MP3MED=0x0f; MP3TRE+=7; break;/如果
48、出于音效調(diào)節(jié)功能/降低重音效果case SELECTSONG :/如果處于MP3選曲功能if(NowPlaying=(NumofSong-1) NowPlayiing=0;/如果已經(jīng)處于最后一首了,則指向第一首else NowPlaying+; ChangeSong=1; break;default:break;3) Previous,向前。此鍵的功能和void previous。/switch(CurrentFun) case VOLUME :if(MP3VOR<0x1f)MP3VOR+=0x01; MP3VOL+=OxO1;break;case EFFECTION:If(MP3BAS
49、<0x1d) MP3BAS+=7; MP3MED=0x0f; MP3TRE-=7;break;/否則,指向下一首/置選曲標(biāo)志位Next 正好相對應(yīng)。源代碼如下:按下“上一首/音量增大”鍵時的處理/如果當(dāng)前處于音量調(diào)節(jié)功能/當(dāng)前音量沒有達(dá)到最大時/右聲道音量增大一檔/左聲道音量增大一檔/如果處于音效調(diào)節(jié)功能/增加重音效果/MP3專業(yè)資料整理WOR格式if(NowPlaying>0)NowPlaying-;/如果當(dāng)前播放歌曲不為第一首,則指向上一首else NowPlaying=NumofSong-1;/如果當(dāng)前已經(jīng)到達(dá)第一首,則指向最后一首ChangwSong=1;/置選曲標(biāo)志位br
50、eak;default:break;4) Play Pause,播放/暫停。每當(dāng)按下此鍵時,改變一下播放狀態(tài),配合在MP3播放函數(shù)中對此狀態(tài)的判斷,可以實現(xiàn) MP3播放過程中的暫停。源代碼如下:void PlayPause()PlayState=!PlayState; /按一下播放鍵時,改變播放狀態(tài)4.3 USB通信功能程序設(shè)計USB通信功能模塊用于對 Flash存儲器內(nèi)的文件進行管理,實現(xiàn)MP3文件的下載,由于AT89C51SND1C沒有外部中斷引腳,USB中斷沒有中斷向量地址入口,USB驅(qū)動程序采用中斷查詢工作方式。其流程圖如圖4-3所示。在USB控制器使用前,首先對其進行初始化,然后在主程序中循環(huán)讀取USB斷電中斷寄存器,當(dāng)查詢到有中斷產(chǎn)生時則進入到相應(yīng)的中斷處理程序,開始設(shè)備配置和數(shù)據(jù)傳輸。程序代碼如下:#include <REG52.H> /51單片機頭文件#include "CH375INC.H" / CH375 頭文件unsigned char CH375_RD_DAT_PORT( void )return( CH375_DAT_PORT );void CH375_Init()switch ( InterruptStatus)case USB_INT_BUS_RESE
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 勞務(wù)生產(chǎn)合同范本
- 保安帶電 自營合同范本
- 企業(yè)形象合同范本
- 公證送達(dá)合同范本
- 上船押金合同范本
- 共同領(lǐng)養(yǎng)寵物合同范本
- 勾調(diào)顧問合作協(xié)議合同范本
- 公司租賃民房合同范本
- 勞保中標(biāo)合同范本
- 農(nóng)田包地合同范本
- 《中國人口老齡化》課件
- 靜脈采血最佳護理實踐相關(guān)知識考核試題
- 檢驗檢測中心檢驗員聘用合同
- 腰椎后路減壓手術(shù)
- 商場扶梯安全培訓(xùn)
- 《全科醫(yī)學(xué)概論》課件-以家庭為單位的健康照顧
- 自來水廠安全施工組織設(shè)計
- 《跟單信用證統(tǒng)一慣例》UCP600中英文對照版
- 《醫(yī)院應(yīng)急培訓(xùn)》課件
- 提高教育教學(xué)質(zhì)量深化教學(xué)改革措施
- 招標(biāo)代理機構(gòu)遴選投標(biāo)方案(技術(shù)標(biāo))
評論
0/150
提交評論