崔麗珍, 馬勇, 王慧琴
(內(nèi)蒙古科技大學(xué)信息工程學(xué)院,內(nèi)蒙古包頭 014010)
語音通信是現(xiàn)代通信中一種最簡單便捷的方式,可以迅速的實(shí)現(xiàn)信息的傳遞,隨著通信技術(shù)的不斷發(fā)展和社會(huì)的不斷進(jìn)步,人們對(duì)信息的需求也越來越豐富,不僅僅局限在語音方面,對(duì)圖像、視頻等多媒體技術(shù)需求更加廣泛,而語音處理作為通信技術(shù)中基礎(chǔ)的內(nèi)容,要求更高,實(shí)現(xiàn)實(shí)時(shí)性更強(qiáng)、話音質(zhì)量更逼真,所以對(duì)語音信號(hào)處理研究也成為一個(gè)熱點(diǎn)。DSP技術(shù)的發(fā)展為語音處理提供了有利的條件,其獨(dú)特的哈佛結(jié)構(gòu)和快速實(shí)現(xiàn)各種數(shù)字信號(hào)處理算法的優(yōu)點(diǎn)[1]。
現(xiàn)采用 TI的 TMS320DM642(簡稱 DM642)[2],該芯片是TI公司于2003年左右推出的一款 32位定點(diǎn) DSP芯片,主要面向數(shù)字媒體,屬于 C6000系列 DSP芯片。DM642保留了C64x原有的內(nèi)核結(jié)構(gòu),工作頻率由內(nèi)部倍頻器設(shè)置,可以達(dá)到 500 MHz、600MHz、720 MHz。 DM652采用 TI公司第 2代增強(qiáng)型超長指令集(VelociT1.2)片上帶有多通道串行音頻接口,可同時(shí)處理 4路立體聲輸入/輸出音頻信號(hào)[3]。
TLV320AIC23B(簡稱 AIC23)是一款集成了模擬功能的高性能立體聲音頻編解碼器,支持 MIC和LINE IN兩種輸入方式,輸入/輸出都具有可編程增益。AIC23與 DM642的接口有兩個(gè),一個(gè)是控制接口,用于設(shè)置 AIC23B的工作參數(shù);另一個(gè)是數(shù)據(jù)口,用于輸入/輸出 AIC23的 A/D,D/A數(shù)據(jù)[4]。
AIC23和DM642的連接圖如圖 1所示,數(shù)據(jù)口可以與DM642的McASP接口實(shí)現(xiàn)無縫連接。在幀同步信號(hào)(LRCIN/LRCOUT)作用下,串行口先傳送左聲道數(shù)據(jù),然后再傳送右聲道數(shù)據(jù)。DSP的 McASP口每接收(或送出)一個(gè)字(即當(dāng) XDATA或 RDATA標(biāo)志位由 0跳變?yōu)?1時(shí))其內(nèi)部會(huì)自動(dòng)觸發(fā)一次事件,進(jìn)而觸發(fā)相應(yīng) EDMA通道開始一次數(shù)據(jù)傳輸。由鎖相環(huán)芯片 PLL1708提供音頻編解碼器的工作時(shí)鐘,時(shí)鐘頻率為 18.432MHz[5]。
圖 1 TLVAIC23B與 DM642接口連接
TLV 320AIC23B的控制接口則通過I2C總線與DM642連接[6]。TLV320AIC23B內(nèi)部有 11個(gè)可編程控制寄存器通過不同設(shè)置(見表 1),可以改變芯片的工作狀態(tài),如采樣率、左右聲道音量等。這些寄存器都是通過AIC23B的控制接口來編程的。控制接口可選擇采用 SPI或 I2C接口,外部引腳MODE的狀態(tài)決定采用哪種接口方式[7]。
表 1 AIC23B配置寄存器
該系統(tǒng)實(shí)現(xiàn)了一個(gè)語音采集 -回放任務(wù),用 48K/秒的采樣率采集立體聲音頻輸入,用給定的回聲控制參數(shù)疊加數(shù)字回聲播放出來。程序有單個(gè)任務(wù)組成(tsk AudioDemo),具體實(shí)現(xiàn)如數(shù)據(jù)流程圖如圖 2所示[8]。
圖2 數(shù)據(jù)流程
在 Task Manager中,除了默認(rèn)的 TSK_idle之外,根據(jù)需要建立一個(gè) Task,即 tskAudio,對(duì)于 tskAudio,由于其存儲(chǔ)數(shù)據(jù)量大,將其堆棧分配到外部 SDRAM。堆棧的大小可以使用DSP/BIOS所提供的 Kernal/Object View工具查看實(shí)際需求來估計(jì)。該設(shè)計(jì)為 4 096。然后將task配置中的函數(shù)指定為源代碼中對(duì)應(yīng)的函數(shù)。例如,源代碼中函數(shù)為tskAudio,則配置為_tskAudio。
首先,需要使用配置工具建立驅(qū)動(dòng)程序的入口。在DSP/BIOSconfig下的 cdb文件中,依次選擇 Input/Output——Device Drivers— — User-defined Drivers[9],一 般已 經(jīng)添加 了udevCodec,需要的話可以自己添加或編輯。右鍵單擊選擇Properties來編輯其屬性,其屬性應(yīng)如下設(shè)置:
Comment:可以加入自己的注釋,Init function:鍵入_EVMDM642_EDMA_AIC23_init,Function table ptr:鍵入 _EVMDM642_EDMA_AIC23_Fxns,unction table type:選擇 IOM_Fxns,Device id:這一項(xiàng)會(huì)被自動(dòng)忽略,因?yàn)?DM642EVM板上只有一塊 TLV320AIC23Device params ptr:這是 TLV320AIC23參數(shù)結(jié)構(gòu)的入口指針,使用缺省參數(shù)時(shí)設(shè)為 0x0,Device global data ptr:必須設(shè)置為 0x0正確配置驅(qū)動(dòng)程序入口后,就要按照需要設(shè)置相關(guān)的參數(shù)了。下面具體討論 TLV320AIC23參數(shù)的設(shè)置在一般的應(yīng)用中,主要需要修改的是 aic23Config,它是TLV 320AIC23控制寄存器值的控制結(jié)構(gòu)體,需要通過它來控制TLV 320AIC23的工作模式、輸入輸出選擇、采樣率等重要參數(shù)。
設(shè)計(jì)了一個(gè)通用的音頻處理系統(tǒng),該系統(tǒng)主要運(yùn)用TI提供的 CODEC驅(qū)動(dòng)程序來實(shí)現(xiàn)語音數(shù)據(jù)的處理,并且實(shí)現(xiàn)了數(shù)字回聲處理,算法主要在數(shù)字回聲處理程序里,可以方便進(jìn)行系統(tǒng)的修改和二次開發(fā),具有較高的實(shí)用性。
[1]張健,吉立新,安克.基于 DSP和 FPGA的高速實(shí)時(shí)語音數(shù)據(jù)處理的設(shè)計(jì)與實(shí)現(xiàn)[J].通信技術(shù),2008,41(02):71-72.
[2]王躍宗,劉京會(huì).TMS320DM642DSP應(yīng)用系統(tǒng)設(shè)計(jì)與開發(fā)[M]北京:人民郵電出版社,2009,10-25.
[3]莊益強(qiáng),余輪.基于 DM642的 X264視頻監(jiān)控系統(tǒng)的軟件實(shí)現(xiàn)[J].通信技術(shù),2007,40(12):397-399.
[4]齊敏,王玲,韓韜.基于 TMS320DM642的實(shí)時(shí)語音處理系統(tǒng)[J].電聲技術(shù),2009(01):65-67.
[5]涂水林,薛正明.TMS320DM642與音頻編解碼器的接口設(shè)計(jì)[J].電聲技術(shù),2006(09):26-29.
[6]胡濤,陳超.TLV320AIC23B與 TMS320DM642的接口設(shè)計(jì)[J].儀表技術(shù)與傳感器,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.