當(dāng)前位置:首頁(yè) > 電源 > 數(shù)字電源
[導(dǎo)讀]本文詳細(xì)描述了在TI (Texas Instruments) C55x系列DSP平臺(tái)上集成實(shí)時(shí)實(shí)現(xiàn)0.3kbps至16kbps多種速率語(yǔ)音編解碼算法的方法,及在現(xiàn)有C語(yǔ)言源代碼基礎(chǔ)上優(yōu)化匯編指令的技巧。

文摘:本文詳細(xì)描述了在TI (Texas Instruments) C55x系列DSP平臺(tái)上集成實(shí)時(shí)實(shí)現(xiàn)0.3kbps至16kbps多種速率語(yǔ)音編解碼算法的方法,及在現(xiàn)有C語(yǔ)言源代碼基礎(chǔ)上優(yōu)化匯編指令的技巧。介紹了在編寫C55x系列DSP匯編程序中的關(guān)鍵技術(shù),諸如函數(shù)調(diào)用中的參數(shù)傳遞,指令優(yōu)化,標(biāo)志位設(shè)置,宏使用等。文章同時(shí)給出了一種采用TI C55x系列DSP設(shè)計(jì)實(shí)現(xiàn)的能運(yùn)行多種語(yǔ)音編解碼算法硬件系統(tǒng)平臺(tái)。最后介紹了該硬件平臺(tái)的動(dòng)態(tài)調(diào)整功耗設(shè)計(jì),使系統(tǒng)的功耗在休眠狀態(tài)下最低僅為155.1mW。

Abstract:This paper detailed describes how to implement the real time multi-rate speech encoding and decoding algorithms between 0.3kbps to 16kbps on TI (Texas Instruments) C55x series DSP platform, and introduces methods of optimizing assembly language instructions based on the original C language source code. We introduce the key techniques during writing assembly programs like parameter transferring during function calling; instruction optimizing; status bits setting and macro application. The paper also design a hardware platform for general speech encoding and decoding based on C55x series DSP of TI Company. At last, the adaptive power design of the platform is presented, which reduce power of the system down to 155.1mW when in sleep running mode.

Keyword: Speech Coding; C55x; Assembly language

近二十年來(lái),全球半導(dǎo)體產(chǎn)業(yè)的飛速發(fā)展帶動(dòng)相關(guān)的軟件、硬件設(shè)計(jì)水平迅速提高,這些發(fā)展使得一大批性能優(yōu)良的復(fù)雜的數(shù)字信號(hào)處理算法可以實(shí)時(shí)實(shí)現(xiàn)并在日常通信系統(tǒng)中得到廣泛應(yīng)用,極大地提高了現(xiàn)有通信系統(tǒng)的可靠性和效率。因此,研究語(yǔ)音處理技術(shù)并將其用基于DSP芯片硬件系統(tǒng)實(shí)現(xiàn)有著非常重要的現(xiàn)實(shí)意義和廣闊的市場(chǎng)前景。本文介紹了語(yǔ)音編解碼硬件平臺(tái)的設(shè)計(jì)思路和編解碼算法在硬件平臺(tái)上的實(shí)現(xiàn)和優(yōu)化過(guò)程,同時(shí)給出了硬件平臺(tái)結(jié)構(gòu)和低功耗設(shè)計(jì)思路。

1        平臺(tái)中語(yǔ)音編解碼算法簡(jiǎn)述

本文在TI C55x系列DSP上實(shí)現(xiàn)了0.3kbps至16kbps的多種不同速率的語(yǔ)音編解碼算法。其中16kps速率采用連續(xù)可變?cè)隽空{(diào)制(CVSD)的波形編碼算法,8kps速率采用了ITU-T公布的G.729a標(biāo)準(zhǔn)算法。而低速率編解碼采用了正弦激勵(lì)線性預(yù)測(cè)(SELP)算法。SELP算法是建立在傳統(tǒng)的線性預(yù)測(cè)模型的基礎(chǔ)上,其中清音成分用白噪聲擬合,濁音成分在每個(gè)諧波處用一個(gè)頻率變化的正弦信號(hào)合成,整個(gè)激勵(lì)的濁音部分由一組不同幅度的正弦疊加而成,這也是SELP模型不同于傳統(tǒng)的線性預(yù)測(cè)的一個(gè)非常的重要方面,即激勵(lì)信號(hào)采用分帶混合正弦激勵(lì)。

2        語(yǔ)音編解碼算法在DSP數(shù)字處理芯片上的實(shí)現(xiàn)和優(yōu)化

由于在DSP上運(yùn)行的聲碼器必須要達(dá)到實(shí)時(shí)化的要求,而直接編譯的C程序遠(yuǎn)無(wú)法達(dá)到。因此需要編寫和優(yōu)化C55x的匯編代碼來(lái)提高聲碼器的運(yùn)行效率。下面介紹幾點(diǎn)在算法硬件實(shí)現(xiàn)過(guò)程中的關(guān)鍵技術(shù):

2.1 C程序和匯編程序的混編,函數(shù)的調(diào)用和參數(shù)傳遞

把一個(gè)模塊改寫為匯編函數(shù),然后在C程序或者匯編程序中調(diào)用它。在C55x的開(kāi)發(fā)中,函數(shù)的調(diào)用機(jī)制是這樣的:首先記錄下函數(shù)傳遞來(lái)的參數(shù),和返回地址SP向低位移。然后再在堆棧中開(kāi)出本地變量常量所需要的空間,SP再次向低位移。

(1)匯編函數(shù)的聲明:在匯編函數(shù)中定義的函數(shù)如果要想在C代碼中被調(diào)用,必須用.global語(yǔ)句加以聲明,這樣,對(duì)象或函數(shù)被定義為外部的(external)。比如:

    .global _Rem_Dc

_Rem_Dc:

    ……

(2)參數(shù)傳遞:在函數(shù)調(diào)用的過(guò)程中,C代碼傳來(lái)的參數(shù)按照以下規(guī)則存放在特定的寄存器中:即16或23位的數(shù)據(jù)指針,先后存放在(X)AR0-(X)AR4中。16位的數(shù)據(jù),先后存放在T0,T1,AR0-AR4中,32位的數(shù)據(jù),先后存放在AC0,AC1和AC2中。如果參數(shù)個(gè)數(shù)超過(guò)寄存器個(gè)數(shù),則存放在堆棧中。同時(shí),函數(shù)的返回值如果是短整型(short)則存放在T0中,如果是長(zhǎng)整型(long)則存放在AC0中,如果是指針則存放在(X)AR0中。

例如:

①int fn(int i1, long l2, int *p3);

則fn->T0; il->T0, l2->AC0, p3->AR0

②long fn(int *p1, int i2, int i3, int i4);

則fn->AC0, p1->AR0, i2->T0, i3->T1, i4->AR1

③void fn(long l1, long l2, long l3, long l4, int i5);

則l1->AC0, l2->AC1, l3->AC2, l4->堆棧, i5->T0

④void fn(long l1, long l2, long l3, int *p4, int *p5, int *p6, int *p7, int *p8, int i9, int i10);

則l1->AC0,l2->AC1,l3->AC2,p4->AR0,p5->AR1, p6->AR2, p7->AR3, p8->AR4, i9->T0,i10->T1

2.2 標(biāo)志位的設(shè)置

    標(biāo)志位是DSP芯片在計(jì)算時(shí)設(shè)置一些位置。它們存放在ST0_55~ST3_55中,在運(yùn)算中主要用到的幾個(gè)有:

    FRCT,當(dāng)其值等于1時(shí),乘法運(yùn)算的結(jié)果將左移一位。等于零時(shí),運(yùn)算結(jié)果不變。

SATD,當(dāng)其值等于1時(shí),運(yùn)算發(fā)生溢出時(shí)作飽和處理

SXMD,當(dāng)其值等于1時(shí),輸入操作數(shù)有符號(hào)擴(kuò)展

SMUL,當(dāng)其值等于1時(shí),飽和模式開(kāi)

他們分別存儲(chǔ)在ST1_55和ST3_55寄存器的位置如圖1所示:

圖1 C55x DSP關(guān)鍵標(biāo)志位在寄存器中的位置

    這幾個(gè)操作位的設(shè)置不對(duì)的話,會(huì)出現(xiàn)運(yùn)算結(jié)果的錯(cuò)誤。所以要根據(jù)程序的需要正確設(shè)置操作位,同時(shí)要在程序的前后保護(hù)和還原其初值。

psh *(ST1_55)

psh *(ST3_55)

……

pop *(ST3_55)

pop *(ST1_55)

3        語(yǔ)音編解碼硬件平臺(tái)簡(jiǎn)述

本文設(shè)計(jì)的多模式語(yǔ)音編解碼系統(tǒng)基于C55x系列DSP和MCU的雙處理器設(shè)計(jì),主芯片采用了TI公司的TMS320VC5510A數(shù)字信號(hào)處理器。其時(shí)鐘周期最高為200MHz。擁有160KWord片上RAM(其中包括8塊4KWord的DARAM和32塊4KWord的SARAM)、16KWord片上ROM、8MWord的最大擴(kuò)展尋址能力。微控制器(MCU)選用TI公司的MSP430F149,主要完成系統(tǒng)啟動(dòng),電源管理,狀態(tài)監(jiān)控,DSP程序加載,聲碼器二進(jìn)制碼流位置重排等功能,并和DSP配合實(shí)現(xiàn)系統(tǒng)級(jí)加密機(jī)制。另外,硬件平臺(tái)的音頻編解碼芯片選用TLV320AIC10,而程序存儲(chǔ)部分采用的是SST39VF160 Flash,容量為1MWord,用來(lái)儲(chǔ)存程序和數(shù)據(jù)。本硬件平臺(tái)的框架結(jié)構(gòu)圖如圖2所示。

圖2  多速率語(yǔ)音編解碼系統(tǒng)硬件平臺(tái)框架結(jié)構(gòu)圖

4        低功耗設(shè)計(jì)

在數(shù)字集成電路設(shè)計(jì)中,CMOS電路的靜態(tài)功耗很低,與其動(dòng)態(tài)功耗相比基本可以忽略不計(jì),故暫不考慮。其動(dòng)態(tài)功耗計(jì)算公式為:

               (1)

式中Pd為CMOS芯片的動(dòng)態(tài)功耗;CT為CMOS芯片的負(fù)載電容;V為CMOS芯片的工作電壓;f為CMOS芯片的工作頻率。本硬件平臺(tái)的低功耗設(shè)計(jì)從選用有可變電壓和多電壓的器件、動(dòng)態(tài)功耗管理、動(dòng)態(tài)頻率控制三個(gè)方面入手。

4.1 選用有可變電壓和多電壓的器件

    首先在文中的系統(tǒng)中,選用的單片機(jī)芯片TI公司的MSP430系列MCU是一款功耗相當(dāng)?shù)偷钠骷?,供電電?.8V~3.6V,運(yùn)行模式下功耗280μA/MHz,待機(jī)模式下功耗1.6μA/MHz,禁用模式下功耗0.1μA/MHz。其次選用的DSP芯片TI的C5510 DSP采用兩種驅(qū)動(dòng)電壓,內(nèi)核電壓1.6V,I/O電壓3.3V,根據(jù)(1)式,IC器件的功耗和供電電壓的平方成正比,1.6V供電的器件比3.3V供電器件能降低一半以上的功耗。IC設(shè)計(jì)中通常都將降低電壓作為控制功耗的最直接的手段,通過(guò)采用低電壓供電的DSP,既能有效地降低內(nèi)核動(dòng)態(tài)功耗,還能兼顧I/O的電平兼容性。

4.2動(dòng)態(tài)功耗管理

PCM編解碼芯片TLV320AIC11可以單獨(dú)將A/D或D/A部分禁用。當(dāng)話筒PTT沒(méi)有按下時(shí),表示沒(méi)有話音輸入,此時(shí)可以將A/D部分置為IDLE狀態(tài)。同樣的,當(dāng)MODEM的CD信號(hào)為高時(shí),表示沒(méi)有有效的數(shù)字碼流輸入聲碼器,故在此時(shí)可以將D/A部分設(shè)為IDLE狀態(tài)。通過(guò)將該芯片配置成低功耗模式,降低了系統(tǒng)的功耗。另外,C5510 DSP芯片內(nèi)部劃出了五個(gè)獨(dú)立的IDLE域,分別負(fù)責(zé)CPU、DMA、CACHE、外設(shè)、時(shí)鐘生成器、EMIF接口的配置。每個(gè)域可以獨(dú)立地將該域管轄的多個(gè)部件設(shè)置成活動(dòng)模式或IDLE模式以此降低DSP的功耗。針對(duì)本文設(shè)計(jì),由于沒(méi)有使用到DMA、CACHE、時(shí)鐘生成器三個(gè)域中的外設(shè),故將這三個(gè)域設(shè)置成了IDLE模式。EMIF域在DSP和MSP交換數(shù)據(jù)(為了調(diào)整發(fā)送和接收的比特流)時(shí)才被置為活動(dòng),其他時(shí)候被置為IDLE。通過(guò)這樣的設(shè)置,更加有效地控制了整個(gè)系統(tǒng)的運(yùn)算功耗。

4.3動(dòng)態(tài)頻率控制

根據(jù)(1)式,IC器件的功耗和頻率成正比,因此,將IC器件的頻率控制在剛剛好滿足運(yùn)算處理要求的情況,可以大大減小系統(tǒng)功耗。這種方法的關(guān)鍵是算法運(yùn)算量的大小,動(dòng)態(tài)的調(diào)整芯片的運(yùn)行頻率,從而達(dá)到節(jié)省功耗的目的。在本文設(shè)計(jì)的平臺(tái)上運(yùn)行的六種速率的低速率語(yǔ)音編解碼算法中,600bps、1200bps、2400bps、8000bps、16kbps的峰值運(yùn)算量分別為37.4MIPS、59.2MIPS、44.8MIPS、18.6MIPS、<1MIPS,因此將DSP的工作頻率分別設(shè)置在40.096MHz、65.536MHz、49.152MHz、24.576MHz。這樣處理能夠很有效地降低DSP的內(nèi)核功耗,最大限度地有效利用運(yùn)算資源。

通過(guò)以上幾個(gè)方面的優(yōu)化設(shè)計(jì),我們達(dá)到了應(yīng)用場(chǎng)合對(duì)功耗的要求。表1是本系統(tǒng)在不同運(yùn)行模式下的功耗統(tǒng)計(jì)。

表1  不同模式下DSP功耗

工作方式

功耗

全速運(yùn)行(80MHz)

521.4mW

低速運(yùn)行(2MHz)

264mW

低速運(yùn)行/DSP外設(shè)休眠

214.5mW

低速運(yùn)行/DSP外設(shè)休眠/外圍芯片休眠

155.1mW

5        小結(jié)

本文中介紹了針對(duì)語(yǔ)音編解碼算法在TI C55x系列DSP上的實(shí)現(xiàn)方法。結(jié)合作者在實(shí)際開(kāi)發(fā)過(guò)程中的經(jīng)驗(yàn)與體會(huì)總結(jié)了編寫匯編程序中的主要技巧。目前C55x的高性能低功耗特點(diǎn)能大幅度提高便攜式設(shè)備的處理能力和電池的使用壽命,將會(huì)廣泛應(yīng)用于語(yǔ)音處理的各個(gè)領(lǐng)域。本文介紹的方法和經(jīng)驗(yàn)具有廣闊的推廣價(jià)值。

本文的創(chuàng)新點(diǎn):1.指出了多種在TI C55x系列DSP平臺(tái)上匯編語(yǔ)言的開(kāi)發(fā)經(jīng)驗(yàn)與技巧。2.實(shí)現(xiàn)了一個(gè)可同時(shí)加載多種速率制式語(yǔ)音編解碼的嵌入式硬件平臺(tái)。 3.采用多種方案實(shí)現(xiàn)了對(duì)該硬件平臺(tái)的低功耗設(shè)計(jì),很大程度上節(jié)約了系統(tǒng)的運(yùn)行功耗。

 

參考文獻(xiàn) (References)
[1]    田秋玲,崔慧娟,唐昆. 高質(zhì)量0.6Kb/s聲碼器的TMS320VC55x實(shí)現(xiàn)[J]. 電聲技術(shù),2005,8:50-53
[2]    詹杰,唐昆,崔慧娟. 基于TMS320VC5510的低功耗加密型語(yǔ)音硬件平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[J],微計(jì)算機(jī)信息,2005/25:63-65
[3]    TMS320C55x DSP Programmer’s Guide (spru376a) [R]. Texas Instruments, July 2001
[4]    TMS320C55x DSP Mnemonic Instruction Set Reference Guide (spru374g) [R]. Texas Instruments, October 2002
[5]    趙永剛,高攀峰,崔慧娟,等.聲碼器通用硬件平臺(tái)的實(shí)現(xiàn)[J].電聲技術(shù),2004,7:24-26.
[6]    荊元利,樊曉椏,高德遠(yuǎn),等.一種數(shù)字信號(hào)處理器的動(dòng)態(tài)功耗管理方案[J]. 微電子學(xué)與計(jì)算機(jī),2003,9:60-63.
[7]    TI. MSP430X1XX FAMILY USER GUIDE. [R]. Texas Instruments, January 2003

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

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

關(guān)鍵字: 阿維塔 塞力斯 華為

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

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

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

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

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

關(guān)鍵字: 騰訊 編碼器 CPU

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

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

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

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

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

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

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

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

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

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉