當前位置:首頁 > 消費電子 > 消費電子
[導讀]介紹了CIRRUS LOGIC公司生產(chǎn)的音頻解碼芯片CS43L42與嵌入式處理器EP7212的接口實現(xiàn)方法,分析了基于嵌入式處理器EP7212/7312和CS43L42芯片的MP3文件播放系統(tǒng),給出了由其組成的完整硬件連接圖和有效的軟件實現(xiàn)方法。

    摘要:介紹了CIRRUS LOGIC公司生產(chǎn)的音頻解碼芯片CS43L42與嵌入式處理器EP7212的接口實現(xiàn)方法,分析了基于嵌入式處理器EP7212/7312和CS43L42芯片的MP3文件播放系統(tǒng),給出了由其組成的完整硬件連接圖和有效的軟件實現(xiàn)方法。

    關鍵詞:嵌入式處理器;數(shù)字音頻接口DAI;CS43L42;MP3;EP7212

1 引言

目前存儲聲音信息的音頻數(shù)據(jù)格式主要有PCM文件、VOC文件、MIDI文件、MP3文件等。對導航系統(tǒng)來說,要實現(xiàn)音頻文件的播放,存儲器容量是一個需要考慮的問題。由于導航系統(tǒng)的存儲空間有限,所以要求存儲的文件壓縮率高。與其它文件格式相比,MP3音頻文件具有較高的壓縮率和不遜色于CD的音質(zhì),所以在導航系統(tǒng)中音頻文件的存儲選用MP3格式。

MP3的全稱為MPEG1 Layer-3音頻文件,MPEG?Moving Picture Experts Group?在漢語中譯為活動圖像專家組,特指活動影音壓縮標準。MPEG音頻文件是MPEG1標準中的聲音部分,也叫MPEG音頻層,它根據(jù)壓縮質(zhì)量和編碼復雜程度劃分為三層,即Layer1、Layer2、Layer3,分別對應MP1、MP2、MP3這三種聲音文件,并根據(jù)不同的用途,使用不同層次的編碼。MPEG音頻編碼的層次越高,編碼器越復雜,壓縮率也越高,MP1和MP2的壓縮率分別為4:1和6:1~8:1,而MP3的壓縮率則高達10:1~12:1,也就是說,一分鐘CD音質(zhì)的音樂,未經(jīng)壓縮需要10MB的存儲空間,而經(jīng)過MP3壓縮編碼后只有1MB左右。不過MP3對音頻信號采用的是有損壓縮方式,為了降低聲音失真度,MP3采取了“感官編碼技術”,即編碼時先對音頻文件進行頻譜分析,然后再用過濾器濾掉噪音電平,接著通過量化的方式將剩下的每一位重新排列,最后形成具有較高壓縮率的MP3文件,從而使壓縮后的文件在回放時能夠達到比較接近原音源的聲音效果。

    雖然MP3是一種有損壓縮方式,但它以極小的聲音失真換來較高的壓縮比,因此在較多的場合得以應用。尤其是隨著數(shù)字技術的發(fā)展,MP3壓縮方式在便攜式電子產(chǎn)品中得到了越來越廣泛的應用,深受追求時尚、新潮的青年朋友的喜愛。

2 CS43L42播放芯片

CS43L42是CIRRUS LOGIC公司生產(chǎn)的音頻解碼芯片,它可工作在1.8~3.3V,關掉線性放大器時功耗僅16mW?非常適合于MP3、MD播放器等低功耗場合的應用。該芯片是一款完全意義上的數(shù)模轉(zhuǎn)換器,它包括1bit D/A轉(zhuǎn)換、模擬濾波、音量控制、線性電壓輸出以及耳機放大器。通過改變主頻率,其允許的輸入采樣頻率可從2k~100kHz變化。該器件具有數(shù)字重音、峰值限制和去加重等特性。此外,由于采用了POPGUARD技術,CS43L42還可有效防止加電、斷電時產(chǎn)生的瞬間沖擊。

CS43L42具有DAI接口,能夠與嵌入式處理器EP7212/7312較好的配合。它具有三種模式:雙線模式、SPI模式、STAND ALONE模式。通過引腳CP/SA和AD0/CS/DEM0置相應狀態(tài)可以設置這三種模式。當CP/SA引腳為低電平時,芯片為STAND ALONE模式,當CP/SA為高電平時,只要檢測到引腳AD0/CS/DEM0電平從低到高變化,則進入SPI模式,否則為雙線模式。在STAND ALONE模式下,可用SCL/CCLK/DIF1和SDA/CDIN/DIF0引腳來設置數(shù)據(jù)、左/右時鐘以及主時鐘之間的關系。在雙線模式和SPI模式下,則可以通過對寄存器進行操作來實現(xiàn)靜音、聲道衰減和音量控制等功能。圖1是CS43L42的內(nèi)部原理圖,圖2是該芯片的引腳排列示意圖,各引腳的功能如下:

1腳(RST):復位信號,低有效。

2腳(LRCK):左/右?guī)健?/P>

3腳(SDATA):串行音頻數(shù)據(jù),數(shù)據(jù)隨串行時鐘引入。

4腳(AD0/CS/DEM0):在SPI模式下,用于使能控制端口。

5腳(SCLK/DEM1):位時鐘,等于MCLK的1/2,每幀有128位。

6腳(VL):數(shù)字電源電壓,典型值為1.8V~3.3V。

7腳(MCLK):2x過采樣時鐘,僅在從模式下輸入。

圖3

    8腳(SCL/CCLK/DIF1):串行控制接口時鐘。

9腳(SDA/CDIN/DIF0):串行控制數(shù)據(jù)輸入輸出。

10腳(N.C.):無連接,懸空。

11腳(CP/SA):控制模式和等待模式控制。

12腳(VQ_HP):耳機靜態(tài)電壓接口。

13腳(REF_GND):連接到模擬地。

14腳(FILT+):正向基準電壓,用于內(nèi)部采樣電路。

15腳(VQ_LINE):線輸出靜態(tài)電壓接口。

16?21腳(HP_A,HP_B):耳機輸出。

17腳(GND):連接到模擬地。

18腳(VA):模擬電源電壓,典型值為1.8V~3.3V。

19腳(VA_LINE):線性擴音器電源端,典型值在1.8V~3.3V。

20腳(VA_HP):耳機放大電源端,典型值為0.9V~3.3V。

22,23腳(AOUTB? AOUTA):模擬輸出端。

24腳(MUTEC):靜音控制。

3 CS43L42的硬件連接電路

如系統(tǒng)中芯片工作在STAND_ALONE模式,則將DIF1、DIF0分別設置為低、高電平表示接收左起有效的24位數(shù)據(jù)。圖3是CS43L42的典型外圍連接電路。圖中的電容C由下式給出:

C=(RL+560)/[4π Fs(RL·560)]

4 MP3播放軟件設計

MP3文件播放的軟件設計任務如下:

(1)初始化EP7212 的DAI接口。

(2)將MP3文件解碼成PCM文件并存放于開辟的兩個緩沖區(qū)(左、右兩個聲道)。

(3)在FIQ(快速中斷請求)中將PCM格式的數(shù)據(jù)寫到DAI接口,同時播放聲音(未有數(shù)據(jù)時播放靜音)。

4.1 EP7212的DAI接口介紹和初始化

a. DAI接口

EP7212/7312的數(shù)字音頻接口(DAI)主要用于支持高質(zhì)量立體聲的音頻處理。圖4是CS43L42與嵌入式微處理器EP7212的DAI接口電路。該接口主要由以下五個信號組成:

(1)LRCK,左/右?guī)健?/P>

(2)SCLK,位時鐘,等于MCLK的1/2,每幀有128位。

(3)MCLK,2x過采樣時鐘,僅在從模式下輸入。

(4)SDOUT,數(shù)字音頻數(shù)據(jù)輸出。

(5)SDIN,數(shù)字音頻數(shù)據(jù)輸入。

用MSB/Left數(shù)據(jù)調(diào)整格式意味著數(shù)據(jù)在幀同步信號(LRCK)電位改變后立即被計時。MSB在第一位時是左調(diào)整,這與I2S格式相比有些不同,I2S格式的數(shù)據(jù)在改變電位后要延遲一個時鐘。數(shù)據(jù)幀每幀是128位長,這樣每個聲道64位長。幀的大小和LRCK的運行周期在EP7212/7312中不能被設置。SCLK可從MCLK中得到,頻率等于1/2 MCLK。缺省模式中,DAI處于主模式。該模式下自己產(chǎn)生的MCLK時鐘等于9.216MHz。這樣,SCLK等于4.608MHz。對于需要SCLK有不同速率的應用,DAI可以被設置成從模式。在從模式下,外部源通過MCLK引腳給MCLK提供主時鐘,然后分成兩半生成SCLK。不管DAI模式如何設置,SCLK和LRCK通常都設置成輸出。數(shù)據(jù)一般在SCLK的上升沿鎖入,在下降沿釋放。

DAI接口是一種高質(zhì)量的數(shù)字音頻接口,可以連接與DAI接口兼容的音頻設備。EP7212 的DAI接口通過位時鐘和幀同步時鐘產(chǎn)生128bit幀數(shù)據(jù)。數(shù)字音頻數(shù)據(jù)的接收和發(fā)送均采用全雙工方式,對應于12采樣深度的接收FIFO和8采樣深度的發(fā)送FIFO。在DAI 接口信號中,MCLK是主時鐘,它是音頻采樣頻率的256倍,SCLK為音頻采樣頻率的128倍,LRCK固定為采樣頻率。由于本系統(tǒng)中的MCLK連接外部時鐘發(fā)生器,頻率為11.2896MHz?所以采樣頻率為44.1KHz。其DAI接口時序圖如圖5所示。

圖5

    DAI的幀長128bit?其中包括一個音頻采樣數(shù)據(jù),在這128bit中,僅有32bit為實際的音頻數(shù)據(jù),其余輸出均為零。左/右時鐘作為幀同步信號,左/右時鐘從高到低表示右聲道的16bit數(shù)據(jù),從低到高表示左聲道的16bit數(shù)據(jù)。

b. DAI接口初始化

DAI初始化程序中首先應設置控制寄存器, 接著選擇外部時鐘有效以及在左發(fā)送FIFO數(shù)據(jù)少于一半時產(chǎn)生中斷。然后清除狀態(tài)寄存器上溢、下溢位,之后使DAI接口、發(fā)送FIFO和接收FIFO有效。最后打開DAI中斷。

4.2 MP3文件的解碼

ARM公司提供有基于ARM處理器音頻文件解碼庫,它能夠有效地解碼MP3格式的歌曲,而輸出16bit立體聲PCM數(shù)據(jù)。

a. 解碼庫所定義的結(jié)構(gòu)

·tSampleRate定義了解碼數(shù)據(jù)PCM的采樣率

typedef enum tagSampleRate

{

SR 11 025kHz?

SR 12kHz?

SR 44 1kHz?

SR 48kHz?

SR 32kHz?

SR Reserved

} tSampleRate ?

·tMPEGStatus 給出了MP3函數(shù)返回狀態(tài)值。

typedef enum tagMPEGStatus

{

eNoErr?

eNoSyncword?

eCRCError?

eBrokenFrame?

eEndOfBitstream?

eDataOverflow?

} tMPEGStatus ?

·tMPEGBitstream?給出MPEG比特流的指針,bufptr定義為比特流的字指針,bitidx定義為字中的索引(0-31)。

typedef struct tagMPEGBitstream

{

unsigned int * bufptr?

unsigned int bitidx?

} tMPEGBitstream?

·tMPEGHeader?包括MPEG音頻報頭信息,sam-ple_rate為PCM采樣頻率,samplesperchannel為每個聲道的采樣數(shù),numchans為聲道數(shù),packed info為報頭信息,bits required為下一次調(diào)用函數(shù)需要bit數(shù),free format是指比特流的格式。

typedef struct tagMPEGHeader

{

tSampleRate sample rate?

unsigned int samplesperchannel?

unsigned int numchans?

unsigned int packed info?

unsigned int bits required?

unsigned int free format?

} tMPEGHeader?

    b. MP3解碼庫所提供的函數(shù)

·InitMP3Audio?tMPEGInstance *inst?

功能:初始化解碼器解碼指針。

·MP3SearchForSyncword?tMPEGInstance *inst?tM-PEGBitstream *bs?length?

功能:查找MPEG數(shù)據(jù)中的同步字。

·MP3DecodeInfo?tMPEGInstance * inst?tMPEGBit-stream * bs?tMPEGHeader * pmpeg hdr?

功能:從MPEG幀中獲得報頭的信息。

·MP3DecodeData?tMPEGInstance *inst? short *left?short * right? tMPEGBitstream * bs?

功能:從MP3數(shù)據(jù)解碼成PCM數(shù)據(jù),并將其存到left、right指向的緩沖區(qū)中。

c. MP3程序解碼流程及在FIQ中斷中的實現(xiàn)

圖6所示是該系統(tǒng)中MP3文件的解碼流程。該文件可在FIQ中斷中實現(xiàn)播放。由于DAI FIFO對應于FIQ中斷,因此,它可以通過控制寄存器來設置FIFO的中斷方式,并可在程序中將產(chǎn)生中斷的位置設置在左發(fā)送FIFO中少于四個采樣數(shù)據(jù)時。由于在FIQ中斷中保存有MP3解碼緩沖區(qū)的地址,因此,若在進入FIQ后各寫四個采樣數(shù)據(jù)到左右FIFO中,那么,對于44.1kHz文件來說,FIQ發(fā)生的速率將為11kHz。為了保證左右FIFO的正確填充,一般需要交替寫兩個FIFO。此時如果MP3緩沖區(qū)無數(shù)據(jù),則可寫0(靜音)到兩個FIFO中,這樣,程序就可以跳出FIFO中斷接著處理數(shù)據(jù)。需要說明的是:無論程序是否需要錄音,都要從接收緩沖區(qū)讀四個數(shù)據(jù),這樣可確保DAI FIFO處于同步狀態(tài)而不會產(chǎn)生失真。另外,在FIQ處理程序的最后,還要清除溢出狀態(tài)位,這樣可以防止FIQ始終中斷。

本站聲明: 本文章由作者或相關機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉