基于TLV320AIC23和TMS320VC5416的語(yǔ)音系統(tǒng)設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
關(guān)鍵詞:數(shù)據(jù)采集;DSP;TLV320AIC23;TMS320VC5416
0引言
如今高速發(fā)展的語(yǔ)音信號(hào)處理技術(shù)已在音頻信息的處理、傳輸和存儲(chǔ)等方面得到廣泛應(yīng)用;同時(shí),隨著高性能DSP的日益普及,利用DSP對(duì)語(yǔ)音信號(hào)處理進(jìn)行算法研究和實(shí)時(shí)實(shí)現(xiàn)正成為新的熱點(diǎn)。因此,本文設(shè)計(jì)并實(shí)現(xiàn)了一種語(yǔ)音采集與處理系統(tǒng),目的是為語(yǔ)音信號(hào)處理的算法研究和實(shí)時(shí)實(shí)現(xiàn)提供一個(gè)通用平臺(tái)。
1芯片簡(jiǎn)介
TLV320AIC23(以下簡(jiǎn)稱AIC23)是TI公司的一款高性能Codec芯片。主要特性有:內(nèi)置耳機(jī)輸出放大器,支持MIC和LINE IN兩種輸入方式(二選一),且對(duì)輸入和輸出都具有可編程增益調(diào)節(jié);芯片中的A/D轉(zhuǎn)換器和D/A轉(zhuǎn)換器采用多位Sigma-Delta技術(shù),數(shù)據(jù)傳輸字長(zhǎng)為16、20、24、32bit,采樣率為8kHz~96kHz;在采樣率為96kHz的情況下A/D轉(zhuǎn)換器信噪比達(dá)到90dB,D/A轉(zhuǎn)換器達(dá)到100dB;回放模式下功率為23mW,省電模式下更是小于15uW;只占用25mm2的面積?;谏鲜鰞?yōu)點(diǎn),AIC23是可移動(dòng)的數(shù)字音頻播放和錄音使用中的模擬輸入輸出等應(yīng)用系統(tǒng)的理想選擇,例如MP3播放器等。
TMS320VC5416(以下簡(jiǎn)稱VC5416)是TI公司的一款16bit定點(diǎn)高性能DSP,是TMS320VC54x系列中的第3代芯片。主要特性有:速率最高達(dá)160MI/s;3條16bit數(shù)據(jù)存儲(chǔ)器總線和1條程序存儲(chǔ)器總線;1個(gè)40bit桶形移位器和2個(gè)40bit累加器;1個(gè)17×17乘法器和1個(gè)40bit專用加法器;最大8M×16bit的擴(kuò)展尋址空間,內(nèi)置128k×16bit的RAM和16k×16bit的ROM;3個(gè)多通道緩沖串口(McBSP);配有PCM3002,可對(duì)語(yǔ)音進(jìn)行A/D和D/A轉(zhuǎn)換。由于VC5416功耗低,性能高,其分開(kāi)的數(shù)據(jù)和指令空間使該芯片具有高度的并行操作能力,在單周期內(nèi)允許指令和數(shù)據(jù)同時(shí)存取,再加上高度優(yōu)化的指令集,使得該芯片具有很高的運(yùn)算速度并且該芯片本身具有豐富的片內(nèi)存儲(chǔ)器資源和多種片上外設(shè),因此在工程界得到廣泛應(yīng)用,尤其是在語(yǔ)音編碼和通信應(yīng)用方面。
2系統(tǒng)硬件結(jié)構(gòu)
2.1系統(tǒng)硬件結(jié)構(gòu)
語(yǔ)音采集與處理系統(tǒng)主要包括三個(gè)主要部分:以VC5416為核心的數(shù)據(jù)處理模塊;以AIC23為核心的語(yǔ)音采集與編解碼(CODEC)模塊;用戶根據(jù)需要擴(kuò)展的存儲(chǔ)器模塊。系統(tǒng)硬件結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)硬件結(jié)構(gòu)
2.1.1數(shù)字信號(hào)處理芯片
為滿足語(yǔ)音信號(hào)處理的實(shí)時(shí)性要求,語(yǔ)音信號(hào)采集與處理系統(tǒng)應(yīng)具有高速數(shù)據(jù)處理能力。本系統(tǒng)采用TMS320VC5416芯片作為信號(hào)處理芯片。
2.1.2音頻CODEC模塊
本系統(tǒng)的CODEC模塊以TLV320AIC23芯片為核心。
2.1.3電源模塊
VC5416屬于低功耗定點(diǎn)芯片,采用雙電源供電。電源由內(nèi)核電源(CVdd)和I/O電源(DVdd)兩部分構(gòu)成,其中內(nèi)核電源為1.8V,I/O電源為3.3V。內(nèi)核電源采用1.8V供電可以降低功耗;I/O電源采用3.3V供電使得芯片可以直接與外部低壓器件接口,而不需要額外的電平轉(zhuǎn)換電路。本系統(tǒng)采用TI公司的TPS73HD318(簡(jiǎn)稱HD318)作為電源輸入芯片,HD318提供的兩路輸出電壓一路為1.8V、一路為3.3V。另外該芯片提供的寬度為200ms的低電平復(fù)位脈沖還可以用來(lái)作為VC5416的上電復(fù)位信號(hào)。AIC23芯片具有單電源(5V電源)和雙電源(3V數(shù)字電源+5V模擬電源)兩種供電模式,本系統(tǒng)選擇雙電源供電模式,這樣AIC23和VC5416之間就可以直接聯(lián)接而不需要其它電平轉(zhuǎn)換芯片。
2.1.4 JTAG仿真接口
系統(tǒng)由硬件仿真器XDS510/PP通過(guò)JTAG仿真接口和計(jì)算機(jī)相連,用戶可以通過(guò)此接口向VC5416芯片加載程序并觀察芯片內(nèi)部存儲(chǔ)器的數(shù)據(jù),完成系統(tǒng)仿真及程序調(diào)試的任務(wù)。如果系統(tǒng)需要以脫機(jī)方式工作,可以用JTAG仿真接口將用戶程序燒錄到Flash Rom中,再通過(guò)設(shè)置啟動(dòng)方式引腳確定系統(tǒng)從片外ROM啟動(dòng)。
2.2硬件接口設(shè)計(jì)
VC5416有3個(gè)McBSP,可以方便地利用其中2個(gè)McBSP完成對(duì)AIC23的控制和通信,其中VC5416的McBSP0與AIC23的數(shù)據(jù)口相連,McBSP1與AIC23的控制口相連。
AIC23芯片是一個(gè)可編程芯片,內(nèi)部有11個(gè)16位寄存器,控制接口具有SPI和I2C工作方式,這兩種工作方式由MODE引腳來(lái)選擇,即:MODE=0為I2C模式;MODE=1為SPI模式。
AIC23與VC5416的接口電路見(jiàn)圖2。
圖2 AIC23與VC5416的接口電路
VC5416的2個(gè)多通道緩沖串口McBSP分別配置為I2C模式和SPI模式。McBSP0作為數(shù)據(jù)的發(fā)送和接收端口;McBSP1對(duì)CODEC寫(xiě)控制字,作為控制端口;AIC23作為從設(shè)備,因此設(shè)置為Slave模式,而VC5416則設(shè)置為Master模式,Codec采樣率設(shè)置為8kHz。
2.3 BOOTLOADER設(shè)計(jì)
VC5416片內(nèi)ROM中有固化的自加載程序(BOOTLOADER),但它對(duì)被加載程序的大小有限制。在使用8bit Flash的情況下,只能加載小于16KWord的內(nèi)容。而三個(gè)速率的SELP算法程序區(qū)和數(shù)據(jù)區(qū)的總數(shù)據(jù)量遠(yuǎn)遠(yuǎn)超過(guò)16KWord,顯然只使用片內(nèi)的BOOTLOADER是不能滿足需要的。所以必須自己寫(xiě)加載程序。首先由VC5416片內(nèi)的BOOTLOADER把自己寫(xiě)的加載程序加載到片內(nèi)RAM,然后執(zhí)行這段加載程序,加載其它部分。這里需要解決的一個(gè)主要問(wèn)題就是Flash數(shù)據(jù)和片內(nèi)地址空間的映射關(guān)系。由于SELP算法的程序數(shù)據(jù)總量很大,所以必須用到片內(nèi)擴(kuò)展的程序區(qū),也就是說(shuō)MP/MC標(biāo)志位需要設(shè)為0。從此時(shí)的Memory Map中可以看出,VC5416可以訪問(wèn)的每塊連續(xù)片外地址空間只有32K,所以Flash數(shù)據(jù)只能按照每頁(yè)32K的方式分頁(yè)映射到片內(nèi)地址空間。使用FPGA可以很方便地控制哪頁(yè)Flash數(shù)據(jù)映射到片內(nèi)中,這部分的原理框圖如圖3所示。
圖3 BOOTLOADER原理
3接口軟件設(shè)計(jì)
本系統(tǒng)的軟件采用C語(yǔ)言和匯編語(yǔ)言混合編寫(xiě)。由于是利用VC5416的McBSP口來(lái)控制AIC23芯片,且2個(gè)McBSP口設(shè)置成不同的工作方式,所以必須把McBSP初始化為符合AIC23芯片的控制命令時(shí)序和要求的工作模式。由于篇幅本文只列出對(duì)VC5416及AIC23芯片初始化設(shè)置時(shí)的部分代碼。
3.1 TMS320VC5416初始化
SWWSR=0x7fff;/程序、數(shù)據(jù)、I/O空間
SWCR=0x0001;/等待周期為7×2=14
BSCR=0x8006;/按32KW分區(qū),HD[7:0],D[15:0]Hold
CLKMD=PLL_DIV_INIT;
Waitloop(0x0400);
CLKMD=PLL_LOCK_INIT_X(5);
Waitloop(0x0400);
PMST=0x0168;/中斷向量表定位在0X100,MP/MC=1
OVLY=1,DROM=1;
3.2 TLV320AIC23初始化
為使AIC23正常工作并產(chǎn)生預(yù)期的音頻效果,必須對(duì)其相應(yīng)的寄存器進(jìn)行配置。首先對(duì)VC5416的I2C模塊初始化,將AIC23總線上的地址寫(xiě)入從機(jī)地址寄存器ICSAR;再把相應(yīng)的AIC23內(nèi)部映射寄存器的地址和待寫(xiě)數(shù)據(jù)合并為16bit控制字,逐次寫(xiě)入ICDXR,并通過(guò)I2C總線發(fā)送給AIC23,即可完成對(duì)AIC23的初始化配置。
AIC23初始化的部分源代碼:
Unsigned int codec_buf[9]={OX1e00,OXOc00,OxO81a,OxOaO4,OxOe01,0x1020,0x1021,0x0117,OxO5f9};
Port_sub_address=(unsigned int*)MCBSP_SPSA_ADDR(1);
Port_sub_index_reg=(unsigned int*)MCBSP_SPAD_ADDR(1);
*Port_sub_address=MCBSP_SPCR2_SUBADDR;
For(i=O;i<9;i++){
While(!(*Port_sub_index_reg&(MASK_BIT(XRDY))));
Set_codec_cs_low();
MCBSP1_DXR1=codec_buf[i];
While(!(*Port_sub_index_reg&(MASK_BIT(XRDY))));
Set_codec_cs_high();}
4結(jié)束語(yǔ)
本文的創(chuàng)新點(diǎn)是根據(jù)TI公司的DSP芯片TMS320VC5416和語(yǔ)音CODEC芯片TLV320AIC23的特性,設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)語(yǔ)音采集處理系統(tǒng)。該系統(tǒng)具有很強(qiáng)的處理能力和靈活的外圍接扣電路。實(shí)踐證明它能夠滿足實(shí)時(shí)信號(hào)處理的要求,可以作為一種語(yǔ)音信號(hào)處理算法研究和實(shí)時(shí)實(shí)現(xiàn)的通用平臺(tái)。
參考文獻(xiàn):
[1]張雄偉,曹鐵勇.DSP芯片的原理與開(kāi)發(fā)應(yīng)用(第二版)[M].北京:電子工業(yè)出版社,2OO0
[2]任麗香,馬淑芬,李方慧.TMS220600系列DSP的原理與應(yīng)用[M].北京:電子工業(yè)出版社,2OOO
[3]戴明禎,周建江.TMS320VC54x DSP結(jié)構(gòu)、原理及應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2001
[4]TMS320VC5416 Bootloader.SPRA602C.Texas Instrument, February 2001
[5]TMS320VC5416 Fixed-Point Digital Signal Processor Data Manual.TI Corporation,2003
[6]Stereo Audio CODEC,8kHz-96kHz,with Integrated Head Phone Amplifier TLV320AIC23.TI Corporation,2001
[7]郝軟層,徐金甫.基于DSP芯片的MELP聲碼器的算法實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2006,10-2:62-64