<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è) > EDA/PCB > 設計應用 > 基于DSP控制的音頻解碼系統設計

基于DSP控制的音頻解碼系統設計

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

摘要:文中以TI公司的C5000系列通用型芯片TMS320VC5509為核心,完成系統硬件平臺的設計與實(shí)現,并研究MP3的解碼算法以及其在該硬件平臺上的實(shí)現。整個(gè)系統的硬件平臺包括核心模塊、FLASH存儲器、音頻CODEC,電源等模塊。該系統通過(guò)USB接口與計算機通信,下載MP3格式的數據流,并將其存儲在Flash中,然后由讀取FLash中的MP3數據流,完成解碼工作,并通過(guò)CODEC播放。同時(shí)可以對DSP進(jìn)行其他解碼算法的軟件編程,實(shí)現多種數據流格式的音頻編、解碼,具有很強的軟件升級靈活性,還解決了的問(wèn)題。

本文引用地址:http://dyxdggzs.com/article/201610/308497.htm

關(guān)鍵詞:;;DSP;

(活動(dòng)圖像專(zhuān)家小組)是ISO/IEC組織的一個(gè)工作小組,負責制訂有關(guān)活動(dòng)圖像、音頻及其組合的壓縮和解壓縮處理等方面的技術(shù)標準。-1 Layer3(即MP3)是MPEG-1國際音頻標準(ISO/IEC 11172)中的第三層編、解碼算法,它具有壓縮比高、聲音還原質(zhì)量好、算法復雜度適中等優(yōu)點(diǎn),采用這種標準制作的MP3格式的音樂(lè )在數字音頻的存儲、互聯(lián)網(wǎng)上的多媒體音頻傳輸等領(lǐng)域得到了廣泛應用。

目前基于專(zhuān)用芯片的音頻編解碼方案軟件升級靈活性不高,基于DSP的音頻編解碼方案又多基于C54x平臺,而解決的技術(shù)方法是值得研究的問(wèn)題。

基于上述背景,文中提出了基于DSP的系統的研究與實(shí)現這一解決方案。本課題的主要目的是:以TI公司的C5000系列通用型DSP芯片TMS320VC5509為核心,完成系統硬件平臺的設計以及MP3的解碼算法在該硬件平臺上的實(shí)現。整個(gè)系統的硬件平臺包括DSP核心模塊、FLA SH存儲器、音頻CODEC,電源等模塊。該系統通過(guò)USB接口與計算機通信,下載MP3格式的數據流,并將其存儲在Flash中,然后由DSP讀取Flash中的MP3數據流,完成解碼工作,并通過(guò)CODEC播放。同時(shí)可以對DSP進(jìn)行其他解碼算法的軟件編程,實(shí)現多種數據流格式的音頻解碼,具有很強的軟件升級靈活性,還解決了低功耗的問(wèn)題。

1 硬件平臺的總體設計

目前業(yè)界對MP3解碼系統的解決辦法有兩個(gè)方案:一是使用將解碼算法固化到集成電路中去的專(zhuān)用芯片,這些芯片將一些片外資源集成到芯片內部,可以簡(jiǎn)化MP3解碼系統實(shí)現所需的片外電路,便于整個(gè)系統的開(kāi)發(fā),但由于其算法固化到芯片內部,不能通過(guò)軟件升級,而且此類(lèi)芯片普遍價(jià)格偏高。另外一個(gè)方案,就是使用通用的DSP來(lái)實(shí)現MP3解碼系統,這種解決方案對設計人員的軟硬件技能提出了很高的要求,不過(guò)其有很好的升級特性,而且可以更方便的改進(jìn)和優(yōu)化解碼算法,從而得到更好的音質(zhì)回放效果,并且和第一種解決方案一樣,其功耗比較低。

綜合各方面的優(yōu)劣條件,我們選擇了第二種解決方案,即基于通用DSP芯片來(lái)實(shí)現整個(gè)解碼系統的硬件平臺。其硬件系統實(shí)現框圖如圖1所示。

基于DSP控制的音頻解碼系統設計

這個(gè)框圖大致的畫(huà)出了解碼系統的基本組成部分。在圖中,我們采用了512 k的串行EEPROM芯片用于實(shí)現bootloader,用CF卡存儲MP3音樂(lè )及解碼程序。核心的處理器采用了TI公司的TMS320VC5509 DSP芯片,考慮到其內部的RAM容量有256 kB,而我們的程序大小為80 kB,因此我們在此設計中沒(méi)有外擴RAM。

整個(gè)硬件平臺的工作流程如下:首先通過(guò)USB接口,從PC機中復制MP3音樂(lè ),拷貝在大容量CF卡中。然后DSP讀取CF卡的MP3數據進(jìn)行解碼,還原出PCM信號,再通過(guò)DSP的多通道帶緩沖串口(McBSP)傳送給音頻CODEC芯片,最終播放出MP3音樂(lè )。

1.1 硬件平臺的具體實(shí)現

1.1.1 核心DSP芯片介紹

本方案采用的TMS320C55x系列是TI公司推出的繼C5000系列C5x、C54x后的新型產(chǎn)品。它采用了增強型的哈佛結構,具有專(zhuān)門(mén)的硬件乘法器,使用流水線(xiàn)操作,提供特殊的DSP指令,可用來(lái)快速地實(shí)現各種數字信號處理算法。為方便實(shí)際中的應用,C55X系列DSP具有各自不同的硬件結構,如在片存儲器和片上外設等,可根據性?xún)r(jià)比和不同的應用場(chǎng)合靈活選用。由于采用了高度并行硬件結構、模塊化設計,使得C55X系列DSP具有功耗低、速度快等優(yōu)點(diǎn)。主要用在音頻壓縮、無(wú)線(xiàn)通訊等領(lǐng)域。

與5000系列其他芯片相比,TMS320VC5509以其獨有高性能低功耗和低價(jià)格特性,使得一推出就受到業(yè)內用戶(hù)的歡迎。

1.1.2 與計算機的接口設計

與計算機的接口設計使用的是當今十分流行的USB接口,實(shí)現從計算機下載數據,5509自帶的USB接口完全符合USB2.0全速接口標準,可與任何外部微控制器實(shí)現高速并行接口(12M比特/秒)。

基于DSP控制的音頻解碼系統設計

1.1.3 存儲器設計

CF卡被用來(lái)存儲音樂(lè )和數據文件,它通過(guò)DSP的外部存儲器接口(EMIF)與DSP相連,它丁作在True—IDE模式和3.3 V的電壓下。我們可以根據系統需要選擇任意容量的CF卡。選用Microchip Tethnology公司的64 kB的EEPROM 24LC512存放的是啟動(dòng)程序,每當上電時(shí),即將CF卡中的程序調入內存運行。

24LC512與DSP的接口采用I2C總線(xiàn)通信。I2C(Inter—Integrated Circuit)總線(xiàn)是一種由PHILIPS公司開(kāi)發(fā)的兩線(xiàn)式串行總線(xiàn),用于連接微控制器及其外圍設備。I2C總線(xiàn)是由數據線(xiàn)SDA和時(shí)鐘線(xiàn)SCL構成的串行總線(xiàn),可發(fā)送和接收數據。存CPU與被控IC之間、IC與IC之間進(jìn)行雙向傳送,最高傳送速率100 kbps。各種被控制電路均并聯(lián)在這條總線(xiàn)上,但就像電話(huà)機一樣只有撥通各自的號碼才能工作,所以每個(gè)電路和模塊都有唯一的地址,在信息的傳輸過(guò)程中,I2C總線(xiàn)上并接的每一模塊電路既是主控器(或被控器),又是發(fā)送器(或接收器),這取決于它所要完成的功能。CPU發(fā)出的控制信號分為地址碼和控制量?jì)刹糠?,地址碼用來(lái)選址,即接通需要控制的電路,確定控制的種類(lèi);控制量決定該調整的類(lèi)別(如音量等)及需要調整的量。這樣,各控制電路雖然掛在同一條總線(xiàn)上,卻彼此獨立,互不相關(guān)。其時(shí)序圖如圖4所示。

基于DSP控制的音頻解碼系統設計

1.1.4 音頻解碼接口設計

音頻CODEC芯片采用的是TI公司的TLV320AIC23。它的主要作用是將DSP解碼后的PCM音頻流通過(guò)D/A變換,轉換成模擬聲音信號進(jìn)行播放。

TLV320AIC23 DSP Codec是德州儀器公司2001年推出的高性能單片立體聲編碼解碼器,數據轉換字長(cháng)16/20/24/32可選,工作電壓與TMS320C55xDSP的核心和I/O電樂(lè )兼容,可實(shí)現與C55x DSP串行口的無(wú)縫連接,功耗很低,帶有的I2C和SPI總線(xiàn)兼容控制接口能使AIC23編碼譯碼器與其他微處理器共同使用。

其主要特點(diǎn)如下:

1)高性能立體聲編碼解碼器:支持8~96 kHz采樣頻率,90DB ADC,100DB DAC轉換信噪比,1.42~3.6 V內核數字供電電壓,2.7~3.6 V模擬供電電壓均與C55x DSP兼容。

2)可編程多種串行口數據傳輸標準:支持I2C和SPI串口數據傳輸模式,均可以與C55x DSP的McBSP口兼容。

3)內置放大的立體聲輸入輸出(增益可調節),耳機放大模塊輸出((30mW)。

4)低功耗電源管理:錄音重放模式下19 mW,備用狀態(tài)小于150 uW,停止狀態(tài)小于15 uW。

音頻CODEC與DSP的硬件接口電路如圖5所示。

基于DSP控制的音頻解碼系統設計

由上圖我們可以看出,DSP VC5509與AIC23的接口可分成兩部分:控制接口部分(MeBSP1)和音頻數據接口部分(MeBSP0)。其中DSP的McBSP1口完成AIC23的控制部分功能,此控制口配置為常用的SPI接口模式;而McBSP0口完成音頻數據的傳輸功能,此數據口配置為DSP格式。

AIC23的數字音頻接口支持4種數據格式:Right—Justified;Left—Justified;I2S格式;DSP格式??刂平涌诘腟PI模式時(shí)序以及數字音頻接口的DSP模式時(shí)序分別如圖6和圖7所示。

基于DSP控制的音頻解碼系統設計

1.1.5 電源模塊設計

在電源模塊中,我們選用了TI公司的三款芯片,分別是TPS61103,TPS60500,TPS73601。其中TPS61103用于將電池輸入的1到3 V電壓轉換為固定的3.3 V,它為DSP的I/O及其他外設供電。TPS60500用于將3.3 V轉換為DSP需要的內核電壓1.6 V。此系統當通過(guò)USB接口與計算機相連時(shí),就可以通過(guò)適當的跳線(xiàn)設置不用接電池,TPS73601用于將USB接口提供的5V電壓轉換為3.3V。

2 軟件研究及算法實(shí)現

2.1 文件系統的實(shí)現

由于實(shí)現了FAT32文件系統,因此當此系統通過(guò)USB連接到PC機時(shí),在Windows操作系統下將看到它作為一個(gè)獨立的存儲器出現,可是通過(guò)復制粘貼操作將音樂(lè )文件拷貝到CF卡上。

2.2 MP3解碼算法的實(shí)現

本方案進(jìn)行軟件的開(kāi)發(fā)平臺是TI公司的C5000系列的集成開(kāi)發(fā)環(huán)境Code Composer Studio 2.0??紤]到MP3解碼軟件的復雜度和可讀性,整個(gè)解碼軟件采用DSP的C語(yǔ)言編寫(xiě)。DSP的C語(yǔ)言具有與標準ANSI C語(yǔ)言相同的語(yǔ)法特點(diǎn),同時(shí)還和DSP硬件相結合,能夠直接控制DSP的在片或外圍設備資源。隨著(zhù)數字信號處理技術(shù)的不斷發(fā)展,DSP的C語(yǔ)言編譯器的編譯效率也越來(lái)越高,5000系列的C語(yǔ)言編譯器效率能達到

60%~70%,C6x系列的編譯器效率高達80%。因此采用C語(yǔ)言來(lái)對DSP進(jìn)行編程是必然的趨勢。

本方案在LIBMAD的基礎上對軟件進(jìn)行設計。MAD(LIBMAD)是一個(gè)開(kāi)源的高精度MPEG音頻解碼庫,支持MPEG-1(Laver I,Laver II和Laver III)。LIBMAD提供24-hit的PCM輸出,完全是定點(diǎn)計算,非常適合在沒(méi)有浮點(diǎn)支持的平臺上使用。使用LIBMAD提供的一系列API,就可以非常簡(jiǎn)單地實(shí)現MP3數據解碼工作。在LIBMAD的源代碼文件目錄下的mad.h文件中,可以看到絕大部分該庫的數據結構和API等。

基于DSP控制的音頻解碼系統設計

MP3解碼算法雖然復雜,但是整個(gè)解碼過(guò)程分成各個(gè)模塊進(jìn)行,各個(gè)模塊之間相對比較獨立。在整個(gè)解碼軟件的設計過(guò)程中,對各個(gè)模塊采用子函數,各個(gè)模塊之間的聯(lián)系就表現為函數的參數傳遞。整個(gè)解碼軟件由一個(gè)主函數控制,調度各個(gè)模塊的有序運行。

解碼軟件的程序流程如圖9所示。從圖中我們可以看到對輸入音頻流解碼先經(jīng)過(guò)幀同步,讀入同步頭的信息,得到該MP3碼流的采樣頻率、碼流速率等參數,并記錄現在所解碼的MP3碼流的幀數。然后獲得粒度信息、主信息及定標因子,根據同步頭中所得的MP3碼流的壓縮類(lèi)型來(lái)讀取信息,獲得對應于各自顆粒中的各自通道的相關(guān)參數。

基于DSP控制的音頻解碼系統設計

然后對一幀中的兩個(gè)顆粒進(jìn)行解碼,首先是從比特流中獲取每個(gè)顆粒對應的定標因子,并對每個(gè)顆粒下的數據進(jìn)行哈夫曼解碼,這個(gè)哈夫曼解碼過(guò)程需要32個(gè)哈夫曼碼表之一來(lái)進(jìn)行解碼,可以根據邊帶信息中含有每個(gè)顆粒選擇碼表的信息來(lái)進(jìn)行選擇。經(jīng)過(guò)哈夫曼解碼的數據,接下來(lái)要經(jīng)過(guò)反量化取樣,在這步中,各個(gè)子帶的數據根據所使用窗的類(lèi)型,利用在邊帶信息中獲得的參數反量化。接下來(lái)就是重排序和立體聲處理模塊,在這個(gè)模塊中根據MP3碼流所采用的壓縮類(lèi)型來(lái)進(jìn)行相應的處理。

這樣當處理完一個(gè)顆粒中所有通道的數據后,就可以把這一顆粒已解碼好的數據輸出到輸出緩沖區中,當把下一顆粒的數據解碼完畢并輸出后,這樣一幀數據就解碼完成。這幀數據就可以輸入到D/A部分進(jìn)行播放,并將輸出緩沖區清空,等待下一幀的解碼數據的輸入。解碼程序一直到在比特流中再也找不到一幀的同步頭時(shí),就完成了這一音頻流的解碼。

3 結束語(yǔ)

MP3解碼算法比較復雜,并且市面上大部分便攜式MP3播放器都采用的是硬件解碼器,也就是采用專(zhuān)門(mén)的音頻解碼芯片來(lái)實(shí)現的,然而隨著(zhù)數字信號處理技術(shù)的飛速發(fā)展,使得采用通用數字信號處理器(DSP)實(shí)現這一解碼算法成為可能,而且存性?xún)r(jià)比、低功耗和軟件升級靈活性上都優(yōu)于采用硬件解碼方案的mp3播放器,成為未來(lái)MP3市場(chǎng)的發(fā)展方向。



關(guān)鍵詞: MPEG 音頻解碼 DSP 低功耗

評論


相關(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>