基于SPCA751A的MP3播放器的研究與實(shí)現(xiàn)
關(guān)鍵詞: MP3播放器;編碼器;解碼器;MPEG
引言
MP3壓縮音樂的方式是通過一個(gè)運(yùn)算法則,去掉聲音中高頻與低頻的部分,大幅刪減不必要的容量浪費(fèi),同時(shí)保留了人類所能感受到的音頻部分。因此,它的好處在于大幅降低了數(shù)字聲音文件的容量,而不會(huì)破壞原來的音質(zhì)。在MP3的運(yùn)算法則下,音質(zhì)越低的聲音可以得到越高的壓縮比例。以CD音質(zhì)的Wave文件來說,如抽樣分辨率為16bit,抽樣頻率為44.1kHz,聲音模式為立體聲,那么存儲(chǔ)1秒鐘CD音質(zhì)的Wave文件,必須要用掉16bit×44100×2=1411200bit,也就是相當(dāng)于1411.2kbit的存儲(chǔ)容量,存儲(chǔ)介質(zhì)的負(fù)擔(dān)很大。而通過MP3格式壓縮后,文件便可以壓縮為原來的
1/10到1/12,每一秒鐘的MP3只需大約U2-128kbit就可以了。
MP3播放系統(tǒng)分為便攜式和非便攜式兩種。對(duì)于非便攜式,要考慮和其他CD音樂格式的共容性。對(duì)于便攜式系統(tǒng),主要考慮的是其體積小巧、低功耗、高容量、低價(jià)格。
系統(tǒng)簡介
便攜式MP3播放器的系統(tǒng)框圖如圖1所示,各部分的功能說明如下:
1. 解碼部分:這是MP3播放器的核心部件,采用硬件解碼技術(shù)。
2. 存儲(chǔ)部分:目前一般采用32MB的FLASH存儲(chǔ)器,32MB的存儲(chǔ)器能夠存儲(chǔ)36分鐘128kbps(達(dá)到CD音質(zhì))的音樂,如果是播放16kbps的壓縮話音,可以存儲(chǔ)4個(gè)小時(shí)的內(nèi)容。
3. 接口部分:一般通過PC的并口或USB口進(jìn)行MP3文件的下載,并口的傳輸速率較低,USB口的傳輸速率可以高達(dá)12Mbps。
4.電源管理:便攜式MP3的體積小,只用1到2只AAA電池供電,因此采用低電壓以及進(jìn)行有效的功率管理是非常必要的。
音頻解碼芯片內(nèi)部結(jié)構(gòu)
SPCA751A是凌陽科技公司生產(chǎn)的單片信號(hào)處理芯片,是一個(gè)MPEG Layer2.5音頻專用解碼芯片,已經(jīng)廣泛應(yīng)用于一些便攜式的MP3播放器設(shè)計(jì)中。它可支持對(duì)8—320Kbps基本數(shù)據(jù)流的解碼,支持的取樣頻率范圍為8KHz—48KHz,非常適合于MPEG的音頻解碼,并帶有數(shù)字語音錄音的MPEG播放模塊,具有很高的性能/價(jià)格比。解碼后的信號(hào)是可以直接輸出到DAC的立體聲、單聲道或雙聲道的數(shù)字信號(hào),SPCA751A與DAC的接口是可編程的。只要通過通用的串行I/O口和控制接口就能對(duì)MPEG比特流進(jìn)行輸入/輸出和回放控制,系統(tǒng)控制器能很輕易的對(duì)MPEG音頻信號(hào)進(jìn)行解碼。通過一個(gè)通用的可編程I2S接口,就能把一解碼的音頻PCM數(shù)據(jù)輸出到外部的DAC中,因此,大多數(shù)常用的音頻DAC都能和SPCA751A兼容。
對(duì)于嵌入式的語音錄音,SPCA751A具有高品質(zhì)的10位8KHz采樣頻率的ADC?;赟ACM_S480或者SACM_S3200的運(yùn)算法則,語音可以分別被壓縮到4.8Kbps和32Kbps,而保持原始的語音效果。
SPCA751A使用的電源為3.0V~3.6V,它可以從其本身使用的16.934MHz晶振通過鎖相環(huán)與系統(tǒng)時(shí)鐘同步。SPCA751A信號(hào)處理器的工作頻率可以達(dá)到34MHz而功耗很少,這就使得SPCA751A特別適合于便攜式系統(tǒng)。
SPCA751A芯片的內(nèi)部功能如圖2所示,其主控制器只要具有足夠的I/O口、能訪問閃存和驅(qū)動(dòng)LCD即可。
為了適合數(shù)字錄音應(yīng)用的需要,SPCA751A有一個(gè)適合于語音波段的Σ-ΔADC,轉(zhuǎn)換器的電路包括兩個(gè)主要模塊:ADC模塊和內(nèi)部參考偏置電壓模塊,后者為一個(gè)帶有10位諧和音的15位數(shù)據(jù)格式。
ADC模塊包括麥克風(fēng)放大器、一個(gè)可編程增益放大器(PGA)、一個(gè)模擬過采樣調(diào)節(jié)器和十進(jìn)制數(shù)據(jù)濾波器。PGA增益可以從-12dB到12dB(-12,-6,0,6,12dB),當(dāng)過采樣信號(hào)頻率為1.024MHz時(shí),調(diào)節(jié)器是一個(gè)Σ-Δ反饋回路,它完成微分模擬信號(hào)輸入到脈沖密度調(diào)整單比特?cái)?shù)字信號(hào)輸出的轉(zhuǎn)換。
圖1 便攜式MP3播放器系統(tǒng)框圖
圖2 SPCA751A內(nèi)部功能圖
圖3 MPEG音頻播放器系統(tǒng)框圖
圖4 SPCA751A與主控制器的連接
圖5 對(duì)SPCA751A編程流程圖
CEI表示主控制器是否可以接收數(shù)據(jù)
設(shè)置初始化參數(shù):IDF+512字節(jié)數(shù)據(jù)
設(shè)置比特流:ID6+512字節(jié)比特流
設(shè)置命令:ID(低位字節(jié))+命令(高位字節(jié))
硬件設(shè)計(jì)
SPCA751A是單片的CMOS微處理器,是實(shí)時(shí)的MPEG音頻解碼和語音錄音的專用芯片。主處理器通過串行控制口/I/O接口的命令控制SPCA751A對(duì)MPEG語音數(shù)據(jù)進(jìn)行解碼,主處理器也可以根據(jù)該接口檢測(cè)解碼過程。MPEG音頻播放器系統(tǒng)框圖如圖3所示。SPCA751A與主控制器的連接如圖4所示。
軟件設(shè)計(jì)
SPCA751A工作于兩種模式,MP3模式和數(shù)字語音錄音(DVR)模式。在MP3模式,SPCA751A解碼輸入的比特流,發(fā)送到SPCA751A的數(shù)據(jù)作為輸入數(shù)據(jù)。當(dāng)FCEB1為高電平(缺省)時(shí),主處理器發(fā)送比特流到SPCA751A;當(dāng)FCEB1為低電平時(shí),表明SPCA751A處于忙碌狀態(tài),這時(shí),主處理器不能發(fā)任何數(shù)據(jù)到SPCA751A。在DVR模式,SPCA751A編/解碼錄入的數(shù)字比特流,如果FCEB1為高電平,主處理器能從SPCA751A接收數(shù)據(jù);當(dāng)FCEB1為低電平時(shí),主處理器不能從SPCA751A獲得比特流。對(duì)SPCA751A進(jìn)行編程的流程圖如圖5所示。
結(jié)語
MP3為了取得較好的壓縮效果而采用了相對(duì)復(fù)雜的技術(shù),而且寬帶音頻信號(hào)的取樣率也較高(一般為44.1kHz以上),所以MP3編解碼的運(yùn)算量和數(shù)據(jù)量都相當(dāng)龐大。例如,在定點(diǎn)DSP平臺(tái)上以匯編語言編寫的解碼程序,在128kbps、立體聲的條件下,需要近40Mbps進(jìn)行實(shí)時(shí)解碼,并需耗用15kB程序/設(shè)計(jì)空間。這就是目前便攜式MP3已在市場(chǎng)上流行,而能實(shí)時(shí)編碼的同類產(chǎn)品尚不多見的原因之一。不過,隨著硬件性能的不斷提高和軟件算法的不斷改進(jìn),MP3實(shí)時(shí)編碼器也必將取得進(jìn)一步的發(fā)展。
參考文獻(xiàn)
1 Pan D. A Tutorial on MPEG/Audio Compression. IEEE Trans. on Multimedia.1995,2.pp60-74