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