?

基于 DM642語音處理系統研究與實現

2010-09-13 03:44崔麗珍馬勇王慧琴
通信技術 2010年11期
關鍵詞:驅動程序寄存器音頻

崔麗珍, 馬勇, 王慧琴

(內蒙古科技大學信息工程學院,內蒙古包頭 014010)

0 引言

語音通信是現代通信中一種最簡單便捷的方式,可以迅速的實現信息的傳遞,隨著通信技術的不斷發展和社會的不斷進步,人們對信息的需求也越來越豐富,不僅僅局限在語音方面,對圖像、視頻等多媒體技術需求更加廣泛,而語音處理作為通信技術中基礎的內容,要求更高,實現實時性更強、話音質量更逼真,所以對語音信號處理研究也成為一個熱點。DSP技術的發展為語音處理提供了有利的條件,其獨特的哈佛結構和快速實現各種數字信號處理算法的優點[1]。

1 硬件結構

現采用 TI的 TMS320DM642(簡稱 DM642)[2],該芯片是TI公司于2003年左右推出的一款 32位定點 DSP芯片,主要面向數字媒體,屬于 C6000系列 DSP芯片。DM642保留了C64x原有的內核結構,工作頻率由內部倍頻器設置,可以達到 500 MHz、600MHz、720 MHz。 DM652采用 TI公司第 2代增強型超長指令集(VelociT1.2)片上帶有多通道串行音頻接口,可同時處理 4路立體聲輸入/輸出音頻信號[3]。

TLV320AIC23B(簡稱 AIC23)是一款集成了模擬功能的高性能立體聲音頻編解碼器,支持 MIC和LINE IN兩種輸入方式,輸入/輸出都具有可編程增益。AIC23與 DM642的接口有兩個,一個是控制接口,用于設置 AIC23B的工作參數;另一個是數據口,用于輸入/輸出 AIC23的 A/D,D/A數據[4]。

1.1 硬件設計

AIC23和DM642的連接圖如圖 1所示,數據口可以與DM642的McASP接口實現無縫連接。在幀同步信號(LRCIN/LRCOUT)作用下,串行口先傳送左聲道數據,然后再傳送右聲道數據。DSP的 McASP口每接收(或送出)一個字(即當 XDATA或 RDATA標志位由 0跳變為 1時)其內部會自動觸發一次事件,進而觸發相應 EDMA通道開始一次數據傳輸。由鎖相環芯片 PLL1708提供音頻編解碼器的工作時鐘,時鐘頻率為 18.432MHz[5]。

圖 1 TLVAIC23B與 DM642接口連接

1.2 控制接口

TLV 320AIC23B的控制接口則通過I2C總線與DM642連接[6]。TLV320AIC23B內部有 11個可編程控制寄存器通過不同設置(見表 1),可以改變芯片的工作狀態,如采樣率、左右聲道音量等。這些寄存器都是通過AIC23B的控制接口來編程的??刂平涌诳蛇x擇采用 SPI或 I2C接口,外部引腳MODE的狀態決定采用哪種接口方式[7]。

表 1 AIC23B配置寄存器

2 DSP軟件設計

該系統實現了一個語音采集 -回放任務,用 48K/秒的采樣率采集立體聲音頻輸入,用給定的回聲控制參數疊加數字回聲播放出來。程序有單個任務組成(tsk AudioDemo),具體實現如數據流程圖如圖 2所示[8]。

圖2 數據流程

2.1 DSP/BIOS配置

在 Task Manager中,除了默認的 TSK_idle之外,根據需要建立一個 Task,即 tskAudio,對于 tskAudio,由于其存儲數據量大,將其堆棧分配到外部 SDRAM。堆棧的大小可以使用DSP/BIOS所提供的 Kernal/Object View工具查看實際需求來估計。該設計為 4 096。然后將task配置中的函數指定為源代碼中對應的函數。例如,源代碼中函數為tskAudio,則配置為_tskAudio。

2.2 具體驅動設計

首先,需要使用配置工具建立驅動程序的入口。在DSP/BIOSconfig下的 cdb文件中,依次選擇 Input/Output——Device Drivers— — User-defined Drivers[9],一 般已 經添加 了udevCodec,需要的話可以自己添加或編輯。右鍵單擊選擇Properties來編輯其屬性,其屬性應如下設置:

Comment:可以加入自己的注釋,Init function:鍵入_EVMDM642_EDMA_AIC23_init,Function table ptr:鍵入 _EVMDM642_EDMA_AIC23_Fxns,unction table type:選擇 IOM_Fxns,Device id:這一項會被自動忽略,因為 DM642EVM板上只有一塊 TLV320AIC23Device params ptr:這是 TLV320AIC23參數結構的入口指針,使用缺省參數時設為 0x0,Device global data ptr:必須設置為 0x0正確配置驅動程序入口后,就要按照需要設置相關的參數了。下面具體討論 TLV320AIC23參數的設置在一般的應用中,主要需要修改的是 aic23Config,它是TLV 320AIC23控制寄存器值的控制結構體,需要通過它來控制TLV 320AIC23的工作模式、輸入輸出選擇、采樣率等重要參數。

2.3 數字回聲算法程序主要代碼

3 結語

設計了一個通用的音頻處理系統,該系統主要運用TI提供的 CODEC驅動程序來實現語音數據的處理,并且實現了數字回聲處理,算法主要在數字回聲處理程序里,可以方便進行系統的修改和二次開發,具有較高的實用性。

[1]張健,吉立新,安克.基于 DSP和 FPGA的高速實時語音數據處理的設計與實現[J].通信技術,2008,41(02):71-72.

[2]王躍宗,劉京會.TMS320DM642DSP應用系統設計與開發[M]北京:人民郵電出版社,2009,10-25.

[3]莊益強,余輪.基于 DM642的 X264視頻監控系統的軟件實現[J].通信技術,2007,40(12):397-399.

[4]齊敏,王玲,韓韜.基于 TMS320DM642的實時語音處理系統[J].電聲技術,2009(01):65-67.

[5]涂水林,薛正明.TMS320DM642與音頻編解碼器的接口設計[J].電聲技術,2006(09):26-29.

[6]胡濤,陳超.TLV320AIC23B與 TMS320DM642的接口設計[J].儀表技術與傳感器,2006(06):36-37.

[7]TLV320AIC23B Stereo Audio CODEC.8-to 96-kHz,With Inegarated Headphone[EB/OL].(2004-02-01)[2010-02-01].http://www.ti.com.

[8]Audio Loopback/Echo Example[EB/OL].(2004-02-01)[2010-02-01].http://www.ti.com.

猜你喜歡
驅動程序寄存器音頻
STM32和51單片機寄存器映射原理異同分析
Lite寄存器模型的設計與實現
阻止Windows Update更新驅動程序
必須了解的音頻基礎知識 家庭影院入門攻略:音頻認證與推薦標準篇
基于Daubechies(dbN)的飛行器音頻特征提取
計算機硬件設備驅動程序分析
音頻分析儀中低失真音頻信號的發生方法
Pro Tools音頻剪輯及修正
Lx5280模擬器移植設計及實施
高速數模轉換器AD9779/AD9788的應用
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合