資料介紹
近二十年來,全球半導體產業的飛速發展帶動相關的軟件、硬件設計水平迅速提高,這些發展使得一大批性能優良的復雜的數字信號處理算法可以實時實現并在日常通信系統中得到廣泛應用,極大地提高了現有通信系統的可靠性和效率。因此,研究語音處理技術并將其用基于DSP芯片硬件系統實現有著非常重要的現實意義和廣闊的市場前景。本文介紹了語音編解碼硬件平臺的設計思路和編解碼算法在硬件平臺上的實現和優化過程,同時給出了硬件平臺結構和低功耗設計思路。
1 平臺中語音編解碼算法簡述
本文在TI C55x系列DSP上實現了0.3kbps至16kbps的多種不同速率的語音編解碼算法。其中16kps速率采用連續可變增量調制(CVSD)的波形編碼算法,8kps速率采用了ITU-T公布的G.729a標準算法。而低速率編解碼采用了正弦激勵線性預測(SELP)算法。SELP算法是建立在傳統的線性預測模型的基礎上,其中清音成分用白噪聲擬合,濁音成分在每個諧波處用一個頻率變化的正弦信號合成,整個激勵的濁音部分由一組不同幅度的正弦疊加而成,這也是SELP模型不同于傳統的線性預測的一個非常的重要方面,即激勵信號采用分帶混合正弦激勵。
2 語音編解碼算法在DSP數字處理芯片上的實現和優化
由于在DSP上運行的聲碼器必須要達到實時化的要求,而直接編譯的C程序遠無法達到。因此需要編寫和優化C55x的匯編代碼來提高聲碼器的運行效率。下面介紹幾點在算法硬件實現過程中的關鍵技術:
2.1 C程序和匯編程序的混編,函數的調用和參數傳遞
把一個模塊改寫為匯編函數,然后在C程序或者匯編程序中調用它。在C55x的開發中,函數的調用機制是這樣的:首先記錄下函數傳遞來的參數,和返回地址SP向低位移。然后再在堆棧中開出本地變量常量所需要的空間,SP再次向低位移。
(1)匯編函數的聲明:在匯編函數中定義的函數如果要想在C代碼中被調用,必須用.global語句加以聲明,這樣,對象或函數被定義為外部的(external)。比如:
.global _Rem_Dc
_Rem_Dc:
……
(2)參數傳遞:在函數調用的過程中,C代碼傳來的參數按照以下規則存放在特定的寄存器中:即16或23位的數據指針,先后存放在(X)AR0-(X)AR4中。16位的數據,先后存放在T0,T1,AR0-AR4中,32位的數據,先后存放在AC0,AC1和AC2中。如果參數個數超過寄存器個數,則存放在堆棧中。同時,函數的返回值如果是短整型(short)則存放在T0中,如果是長整型(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 標志位的設置
標志位是DSP芯片在計算時設置一些位置。它們存放在ST0_55~ST3_55中,在運算中主要用到的幾個有:
FRCT,當其值等于1時,乘法運算的結果將左移一位。等于零時,運算結果不變。
SATD,當其值等于1時,運算發生溢出時作飽和處理
SXMD,當其值等于1時,輸入操作數有符號擴展
SMUL,當其值等于1時,飽和模式開
他們分別存儲在ST1_55和ST3_55寄存器的位置如圖1所示:
圖1 C55x DSP關鍵標志位在寄存器中的位置
這幾個操作位的設置不對的話,會出現運算結果的錯誤。所以要根據程序的需要正確設置操作位,同時要在程序的前后保護和還原其初值。
psh *(ST1_55)
psh *(ST3_55)
……
pop *(ST3_55)
pop *(ST1_55)
3 語音編解碼硬件平臺簡述
本文設計的多模式語音編解碼系統基于C55x系列DSP和MCU的雙處理器設計,主芯片采用了TI公司的TMS320VC5510A數字信號處理器。其時鐘周期最高為200MHz。擁有160KWord片上RAM(其中包括8塊4KWord的DARAM和32塊4KWord的SARAM)、16KWord片上ROM、8MWord的最大擴展尋址能力。微控制器(MCU)選用TI公司的MSP430F149,主要完成系統啟動,電源管理,狀態監控,DSP程序加載,聲碼器二進制碼流位置重排等功能,并和DSP配合實現系統級加密機制。另外,硬件平臺的音頻編解碼芯片選用TLV320AIC10,而程序存儲部分采用的是SST39VF160 Flash,容量為1MWord,用來儲存程序和數據。本硬件平臺的框架結構圖如圖2所示。
圖2 多速率語音編解碼系統硬件平臺框架結構圖
4 低功耗設計
在數字集成電路設計中,CMOS電路的靜態功耗很低,與其動態功耗相比基本可以忽略不計,故暫不考慮。其動態功耗計算公式為:
? (1)
式中Pd為CMOS芯片的動態功耗;CT為CMOS芯片的負載電容;V為CMOS芯片的工作電壓;f為CMOS芯片的工作頻率。本硬件平臺的低功耗設計從選用有可變電壓和多電壓的器件、動態功耗管理、動態頻率控制三個方面入手。
4.1 選用有可變電壓和多電壓的器件
首先在文中的系統中,選用的單片機芯片TI公司的MSP430系列MCU是一款功耗相當低的器件,供電電壓1.8V~3.6V,運行模式下功耗280μA/MHz,待機模式下功耗1.6μA/MHz,禁用模式下功耗0.1μA/MHz。其次選用的DSP芯片TI的C5510 DSP采用兩種驅動電壓,內核電壓1.6V,I/O電壓3.3V,根據(1)式,IC器件的功耗和供電電壓的平方成正比,1.6V供電的器件比3.3V供電器件能降低一半以上的功耗。IC設計中通常都將降低電壓作為控制功耗的最直接的手段,通過采用低電壓供電的DSP,既能有效地降低內核動態功耗,還能兼顧I/O的電平兼容性。
4.2動態功耗管理
PCM編解碼芯片TLV320AIC11可以單獨將A/D或D/A部分禁用。當話筒PTT沒有按下時,表示沒有話音輸入,此時可以將A/D部分置為IDLE狀態。同樣的,當MODEM的CD信號為高時,表示沒有有效的數字碼流輸入聲碼器,故在此時可以將D/A部分設為IDLE狀態。通過將該芯片配置成低功耗模式,降低了系統的功耗。另外,C5510 DSP芯片內部劃出了五個獨立的IDLE域,分別負責CPU、DMA、CACHE、外設、時鐘生成器、EMIF接口的配置。每個域可以獨立地將該域管轄的多個部件設置成活動模式或IDLE模式以此降低DSP的功耗。針對本文設計,由于沒有使用到DMA、CACHE、時鐘生成器三個域中的外設,故將這三個域設置成了IDLE模式。EMIF域在DSP和MSP交換數據(為了調整發送和接收的比特流)時才被置為活動,其他時候被置為IDLE。通過這樣的設置,更加有效地控制了整個系統的運算功耗。
1 平臺中語音編解碼算法簡述
本文在TI C55x系列DSP上實現了0.3kbps至16kbps的多種不同速率的語音編解碼算法。其中16kps速率采用連續可變增量調制(CVSD)的波形編碼算法,8kps速率采用了ITU-T公布的G.729a標準算法。而低速率編解碼采用了正弦激勵線性預測(SELP)算法。SELP算法是建立在傳統的線性預測模型的基礎上,其中清音成分用白噪聲擬合,濁音成分在每個諧波處用一個頻率變化的正弦信號合成,整個激勵的濁音部分由一組不同幅度的正弦疊加而成,這也是SELP模型不同于傳統的線性預測的一個非常的重要方面,即激勵信號采用分帶混合正弦激勵。
2 語音編解碼算法在DSP數字處理芯片上的實現和優化
由于在DSP上運行的聲碼器必須要達到實時化的要求,而直接編譯的C程序遠無法達到。因此需要編寫和優化C55x的匯編代碼來提高聲碼器的運行效率。下面介紹幾點在算法硬件實現過程中的關鍵技術:
2.1 C程序和匯編程序的混編,函數的調用和參數傳遞
把一個模塊改寫為匯編函數,然后在C程序或者匯編程序中調用它。在C55x的開發中,函數的調用機制是這樣的:首先記錄下函數傳遞來的參數,和返回地址SP向低位移。然后再在堆棧中開出本地變量常量所需要的空間,SP再次向低位移。
(1)匯編函數的聲明:在匯編函數中定義的函數如果要想在C代碼中被調用,必須用.global語句加以聲明,這樣,對象或函數被定義為外部的(external)。比如:
.global _Rem_Dc
_Rem_Dc:
……
(2)參數傳遞:在函數調用的過程中,C代碼傳來的參數按照以下規則存放在特定的寄存器中:即16或23位的數據指針,先后存放在(X)AR0-(X)AR4中。16位的數據,先后存放在T0,T1,AR0-AR4中,32位的數據,先后存放在AC0,AC1和AC2中。如果參數個數超過寄存器個數,則存放在堆棧中。同時,函數的返回值如果是短整型(short)則存放在T0中,如果是長整型(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 標志位的設置
標志位是DSP芯片在計算時設置一些位置。它們存放在ST0_55~ST3_55中,在運算中主要用到的幾個有:
FRCT,當其值等于1時,乘法運算的結果將左移一位。等于零時,運算結果不變。
SATD,當其值等于1時,運算發生溢出時作飽和處理
SXMD,當其值等于1時,輸入操作數有符號擴展
SMUL,當其值等于1時,飽和模式開
他們分別存儲在ST1_55和ST3_55寄存器的位置如圖1所示:
圖1 C55x DSP關鍵標志位在寄存器中的位置
這幾個操作位的設置不對的話,會出現運算結果的錯誤。所以要根據程序的需要正確設置操作位,同時要在程序的前后保護和還原其初值。
psh *(ST1_55)
psh *(ST3_55)
……
pop *(ST3_55)
pop *(ST1_55)
3 語音編解碼硬件平臺簡述
本文設計的多模式語音編解碼系統基于C55x系列DSP和MCU的雙處理器設計,主芯片采用了TI公司的TMS320VC5510A數字信號處理器。其時鐘周期最高為200MHz。擁有160KWord片上RAM(其中包括8塊4KWord的DARAM和32塊4KWord的SARAM)、16KWord片上ROM、8MWord的最大擴展尋址能力。微控制器(MCU)選用TI公司的MSP430F149,主要完成系統啟動,電源管理,狀態監控,DSP程序加載,聲碼器二進制碼流位置重排等功能,并和DSP配合實現系統級加密機制。另外,硬件平臺的音頻編解碼芯片選用TLV320AIC10,而程序存儲部分采用的是SST39VF160 Flash,容量為1MWord,用來儲存程序和數據。本硬件平臺的框架結構圖如圖2所示。
圖2 多速率語音編解碼系統硬件平臺框架結構圖
4 低功耗設計
在數字集成電路設計中,CMOS電路的靜態功耗很低,與其動態功耗相比基本可以忽略不計,故暫不考慮。其動態功耗計算公式為:
? (1)
式中Pd為CMOS芯片的動態功耗;CT為CMOS芯片的負載電容;V為CMOS芯片的工作電壓;f為CMOS芯片的工作頻率。本硬件平臺的低功耗設計從選用有可變電壓和多電壓的器件、動態功耗管理、動態頻率控制三個方面入手。
4.1 選用有可變電壓和多電壓的器件
首先在文中的系統中,選用的單片機芯片TI公司的MSP430系列MCU是一款功耗相當低的器件,供電電壓1.8V~3.6V,運行模式下功耗280μA/MHz,待機模式下功耗1.6μA/MHz,禁用模式下功耗0.1μA/MHz。其次選用的DSP芯片TI的C5510 DSP采用兩種驅動電壓,內核電壓1.6V,I/O電壓3.3V,根據(1)式,IC器件的功耗和供電電壓的平方成正比,1.6V供電的器件比3.3V供電器件能降低一半以上的功耗。IC設計中通常都將降低電壓作為控制功耗的最直接的手段,通過采用低電壓供電的DSP,既能有效地降低內核動態功耗,還能兼顧I/O的電平兼容性。
4.2動態功耗管理
PCM編解碼芯片TLV320AIC11可以單獨將A/D或D/A部分禁用。當話筒PTT沒有按下時,表示沒有話音輸入,此時可以將A/D部分置為IDLE狀態。同樣的,當MODEM的CD信號為高時,表示沒有有效的數字碼流輸入聲碼器,故在此時可以將D/A部分設為IDLE狀態。通過將該芯片配置成低功耗模式,降低了系統的功耗。另外,C5510 DSP芯片內部劃出了五個獨立的IDLE域,分別負責CPU、DMA、CACHE、外設、時鐘生成器、EMIF接口的配置。每個域可以獨立地將該域管轄的多個部件設置成活動模式或IDLE模式以此降低DSP的功耗。針對本文設計,由于沒有使用到DMA、CACHE、時鐘生成器三個域中的外設,故將這三個域設置成了IDLE模式。EMIF域在DSP和MSP交換數據(為了調整發送和接收的比特流)時才被置為活動,其他時候被置為IDLE。通過這樣的設置,更加有效地控制了整個系統的運算功耗。
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- NANDFLASH快速BCH編解碼算法及便件實現
- PCM語音編解碼及原理圖下載 16次下載
- DSP芯片實現語音編解碼技術的設計方案 18次下載
- PCM語音編解碼的PCB原理圖免費下載 20次下載
- AP280語音編解碼芯片的數據手冊 3次下載
- 如何使用L9320實現ADPCM語音編解碼 24次下載
- 如何使用DSP和CPLD進行語音處理系統的設計資料說明 6次下載
- G.7xx語音編解碼模塊及在AD218X上的實現 0次下載
- 多制式數字視頻編碼器 55次下載
- 在DSP上G.729A算法的優化
- G.726語音編解碼器在SoPC中的實現
- 三代移動通信變速率語音編解碼AMR-WB+算法優化
- G.726語音編解碼器在SoPC中的實現
- 基于TMS320C6713的G.723.1語音編解碼的實時實
- 語音編解碼芯片MT8965在ALU中的應用
- 遙控編解碼芯片有哪些 1126次閱讀
- DSP 數字信號處理實驗箱操作丨有限沖激響應濾波器(FIR)算法(LCD顯示) 600次閱讀
- MAXQ3120在編解碼應用中的應用 841次閱讀
- 基于三態編解碼芯片實現無線數據通信裝置的設計 9297次閱讀
- 新唐科技音頻編解碼器簡介 1699次閱讀
- 新唐科技語音頻段編解碼器簡介 2306次閱讀
- 淺析基于嵌入式DSP的流媒體解決方案 1248次閱讀
- 基于TI Soc OMAP4430異構多核處理器的H264編解碼 1738次閱讀
- 關于音頻編解碼器EVS及用好要做的準備工作詳解 6074次閱讀
- FFMPEG視頻編解碼流程 H.264硬件編解碼實現 1.9w次閱讀
- 分析了各主流編解碼器的優勢與不足,并對編解碼器的選擇給出建議 1.4w次閱讀
- 宋利:解讀了編解碼器的現狀與未來趨勢 9206次閱讀
- 數字視頻編解碼技術回顧及展望 1096次閱讀
- 音頻編解碼器技術 5015次閱讀
- 基于DSP的雙通道數字語音監錄器設計 1307次閱讀
下載排行
本周
- 1DC電源插座圖紙
- 0.67 MB | 2次下載 | 免費
- 2AN158 GD32VW553 Wi-Fi開發指南
- 1.51MB | 2次下載 | 免費
- 3AN148 GD32VW553射頻硬件開發指南
- 2.07MB | 1次下載 | 免費
- 4AN111-LTC3219用戶指南
- 84.32KB | 次下載 | 免費
- 5AN153-用于電源系統管理的Linduino
- 1.38MB | 次下載 | 免費
- 6AN-283: Σ-Δ型ADC和DAC[中文版]
- 677.86KB | 次下載 | 免費
- 7SM2018E 支持可控硅調光線性恒流控制芯片
- 402.24 KB | 次下載 | 免費
- 8AN-1308: 電流檢測放大器共模階躍響應
- 545.42KB | 次下載 | 免費
本月
- 1ADI高性能電源管理解決方案
- 2.43 MB | 450次下載 | 免費
- 2免費開源CC3D飛控資料(電路圖&PCB源文件、BOM、
- 5.67 MB | 138次下載 | 1 積分
- 3基于STM32單片機智能手環心率計步器體溫顯示設計
- 0.10 MB | 130次下載 | 免費
- 4使用單片機實現七人表決器的程序和仿真資料免費下載
- 2.96 MB | 44次下載 | 免費
- 53314A函數發生器維修手冊
- 16.30 MB | 31次下載 | 免費
- 6美的電磁爐維修手冊大全
- 1.56 MB | 24次下載 | 5 積分
- 7如何正確測試電源的紋波
- 0.36 MB | 17次下載 | 免費
- 8感應筆電路圖
- 0.06 MB | 10次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935121次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
- 1.48MB | 420062次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233088次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191367次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183335次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81581次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73810次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65988次下載 | 10 積分
評論
查看更多