新聞中心

        EEPW首頁 > 消費電子 > 設計應用 > 基于TLV320AIC23和TMS320VC5416的語音系統設計

        基于TLV320AIC23和TMS320VC5416的語音系統設計

        作者: 時間:2008-04-14 來源:網絡 收藏
        摘要: 這兩種芯片并實現了一種語音采集與處理系統。該系統具有強大的數據處理能力并配有靈活的接口電路,可以作為一種語音信號處理算法研究和實時實現的通用平臺。
        關鍵詞:數據采集;DSP;

        0引言

        如今高速發展的語音信號處理技術已在音頻信息的處理、傳輸和存儲等方面得到廣泛應用;同時,隨著高性能DSP的日益普及,利用DSP對語音信號處理進行算法研究和實時實現正成為新的熱點。因此,本文并實現了一種語音采集與處理系統,目的是為語音信號處理的算法研究和實時實現提供一個通用平臺。

        1芯片簡介

        (以下簡稱AIC23)是TI公司的一款高性能Codec芯片。主要特性有:內置耳機輸出放大器,支持MIC和LINE IN兩種輸入方式(二選一),且對輸入和輸出都具有可編程增益調節;芯片中的A/D轉換器和D/A轉換器采用多位Sigma-Delta技術,數據傳輸字長為16、20、24、32bit,采樣率為8kHz~96kHz;在采樣率為96kHz的情況下A/D轉換器信噪比達到90dB,D/A轉換器達到100dB;回放模式下功率為23mW,省電模式下更是小于15uW;只占用25mm2的面積。上述優點,AIC23是可移動的數字音頻播放和錄音使用中的模擬輸入輸出等應用系統的理想選擇,例如MP3播放器等。

        (以下簡稱VC5416)是TI公司的一款16bit定點高性能DSP,是TMS320VC54x系列中的第3代芯片。主要特性有:速率最高達160MI/s;3條16bit數據存儲器總線和1條程序存儲器總線;1個40bit桶形移位器和2個40bit累加器;1個1717乘法器和1個40bit專用加法器;最大8M16bit的擴展尋址空間,內置128k16bit的RAM和16k16bit的ROM;3個多通道緩沖串口(McBSP);配有PCM3002,可對語音進行A/D和D/A轉換。由于VC5416功耗低,性能高,其分開的數據和指令空間使該芯片具有高度的并行操作能力,在單周期內允許指令和數據同時存取,再加上高度優化的指令集,使得該芯片具有很高的運算速度并且該芯片本身具有豐富的片內存儲器資源和多種片上外設,因此在工程界得到廣泛應用,尤其是在語音編碼和通信應用方面。

        2系統硬件結構

        2.1系統硬件結構

        語音采集與處理系統主要包括三個主要部分:以VC5416為核心的數據處理模塊;以AIC23為核心的語音采集與編解碼(CODEC)模塊;用戶根據需要擴展的存儲器模塊。系統硬件結構如圖1所示。

        圖1 系統硬件結構

        2.1.1數字信號處理芯片

        為滿足語音信號處理的實時性要求,語音信號采集與處理系統應具有高速數據處理能力。本系統采用芯片作為信號處理芯片。

        2.1.2音頻CODEC模塊

        本系統的CODEC模塊以芯片為核心。

        2.1.3電源模塊

        VC5416屬于低功耗定點芯片,采用雙電源供電。電源由內核電源(CVdd)和I/O電源(DVdd)兩部分構成,其中內核電源為1.8V,I/O電源為3.3V。內核電源采用1.8V供電可以降低功耗;I/O電源采用3.3V供電使得芯片可以直接與外部低壓器件接口,而不需要額外的電平轉換電路。本系統采用TI公司的TPS73HD318(簡稱HD318)作為電源輸入芯片,HD318提供的兩路輸出電壓一路為1.8V、一路為3.3V。另外該芯片提供的寬度為200ms的低電平復位脈沖還可以用來作為VC5416的上電復位信號。AIC23芯片具有單電源(5V電源)和雙電源(3V數字電源+5V模擬電源)兩種供電模式,本系統選擇雙電源供電模式,這樣AIC23和VC5416之間就可以直接聯接而不需要其它電平轉換芯片。

        2.1.4 JTAG仿真接口

        系統由硬件仿真器XDS510/PP通過JTAG仿真接口和計算機相連,用戶可以通過此接口向VC5416芯片加載程序并觀察芯片內部存儲器的數據,完成系統仿真及程序調試的任務。如果系統需要以脫機方式工作,可以用JTAG仿真接口將用戶程序燒錄到Flash Rom中,再通過設置啟動方式引腳確定系統從片外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作為數據的發送和接收端口;McBSP1對CODEC寫控制字,作為控制端口;AIC23作為從設備,因此設置為Slave模式,而VC5416則設置為Master模式,Codec采樣率設置為8kHz。

        2.3 BOOTLOADER設計

        VC5416片內ROM中有固化的自加載程序(BOOTLOADER),但它對被加載程序的大小有限制。在使用8bit Flash的情況下,只能加載小于16KWord的內容。而三個速率的SELP算法程序區和數據區的總數據量遠遠超過16KWord,顯然只使用片內的BOOTLOADER是不能滿足需要的。所以必須自己寫加載程序。首先由VC5416片內的BOOTLOADER把自己寫的加載程序加載到片內RAM,然后執行這段加載程序,加載其它部分。這里需要解決的一個主要問題就是Flash數據和片內地址空間的映射關系。由于SELP算法的程序數據總量很大,所以必須用到片內擴展的程序區,也就是說MP/MC標志位需要設為0。從此時的Memory Map中可以看出,VC5416可以訪問的每塊連續片外地址空間只有32K,所以Flash數據只能按照每頁32K的方式分頁映射到片內地址空間。使用FPGA可以很方便地控制哪頁Flash數據映射到片內中,這部分的原理框圖如圖3所示。

        圖3 BOOTLOADER原理

        3接口軟件設計

        本系統的軟件采用C語言和匯編語言混合編寫。由于是利用VC5416的McBSP口來控制AIC23芯片,且2個McBSP口設置成不同的工作方式,所以必須把McBSP初始化為符合AIC23芯片的控制命令時序和要求的工作模式。由于篇幅本文只列出對VC5416及AIC23芯片初始化設置時的部分代碼。

        3.1 TMS320VC5416初始化

        SWWSR=0x7fff;/程序、數據、I/O空間

        SWCR=0x0001;/等待周期為72=14

        BSCR=0x8006;/按32KW分區,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總線發送給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;i9;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結束語

        本文的創新點是根據TI公司的DSP芯片TMS320VC5416和語音CODEC芯片TLV320AIC23的特性,設計并實現了一個語音采集處理系統。該系統具有很強的處理能力和靈活的外圍接扣電路。實踐證明它能夠滿足實時信號處理的要求,可以作為一種語音信號處理算法研究和實時實現的通用平臺。

        參考文獻:

        [1]張雄偉,曹鐵勇.DSP芯片的原理與開發應用(第二版)[M].北京:電子工業出版社,2OO0

        [2]任麗香,馬淑芬,李方慧.TMS220600系列DSP的原理與應用[M].北京:電子工業出版社,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



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 溧水县| 江源县| 金堂县| 六盘水市| 定结县| 定边县| 汤原县| 平凉市| 怀远县| 阆中市| 陈巴尔虎旗| 哈尔滨市| 黔西县| 景宁| 河曲县| 鹤岗市| 镶黄旗| 元江| 青河县| 灵寿县| 大连市| 浮山县| 黔东| 凯里市| 龙游县| 怀宁县| 襄垣县| 防城港市| 安义县| 育儿| 鹰潭市| 鞍山市| 邵阳县| SHOW| 宁阳县| 雷波县| 科技| 怀来县| 乌兰浩特市| 民权县| 邹城市|