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