《電子技術(shù)應用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應用 > 基于音頻編解碼器TLV320AIC23與FPGA/CPLD的數(shù)字化語音處理系統(tǒng)
基于音頻編解碼器TLV320AIC23與FPGA/CPLD的數(shù)字化語音處理系統(tǒng)
袁 曄1,韓立金2,景曉軍1
摘要: 提供了基于FPGA/CPLD的數(shù)字化音頻處理系統(tǒng)的典型解決方案。該方案由語音芯片(TLV320AIC23)和處理器(FPGA/CPLD)兩部分組成。語音芯片完成模擬語音信號與數(shù)字信號之間的相互轉(zhuǎn)換,包括ADC和DAC;處理器則完成對經(jīng)模數(shù)轉(zhuǎn)換后的語音信號在數(shù)字域處理的過程。該方案可以充分發(fā)揮FPGA/CPLD所具有的靈活性好、實時性能高及并行處理能力強的特點。
Abstract:
Key words :

    摘  要: 提供了基于CPLD" title="FPGA/CPLD">FPGA/CPLD的數(shù)字化音頻處理系統(tǒng)的典型解決方案。該方案由語音芯片(TLV320AIC23)和處理器(FPGA/CPLD)兩部分組成。語音芯片完成模擬語音信號與數(shù)字信號之間的相互轉(zhuǎn)換,包括ADC和DAC;處理器則完成對經(jīng)模數(shù)轉(zhuǎn)換后的語音信號在數(shù)字域處理的過程。該方案可以充分發(fā)揮FPGA/CPLD所具有的靈活性好、實時性能高及并行處理能力強的特點。
    關(guān)鍵詞: 語音處理  音頻編解碼器  FPGA  SPI  DSP-Mode

       隨著人們消費水平的提高和全社會信息化、數(shù)字化程度的加快,數(shù)字化音頻處理被廣泛應用于各個領(lǐng)域。需要語音系統(tǒng)完成的功能越來越復雜,如語音加解密、語音識別、語音錄放、數(shù)字音效處理等;同時,對語音質(zhì)量的要求也越來越高,因此對語音芯片和處理器提出了更高的性能要求。

    TLV320AIC23是TI生產(chǎn)的集成模擬功能的高性能立體聲音頻編解碼器[2],而FPGA/CPLD有著強大的數(shù)字邏輯處理功能,并憑借其靈活性好、實時性高等特點在業(yè)界的應用越來越廣。本文設(shè)計并實現(xiàn)了基于TLV320AIC23與FPGA/CPLD的數(shù)字化語音處理系統(tǒng)。
1 系統(tǒng)方案介紹
    圖1所示數(shù)字化語音處理系統(tǒng)中,主要包括模擬語音信號采集、模數(shù)轉(zhuǎn)換器(ADC)、接收模塊(RX)、數(shù)字語音信號處理、發(fā)送模塊" title="發(fā)送模塊">發(fā)送模塊(TX)、數(shù)模轉(zhuǎn)換器(DAC)以及模擬語音信號輸出。其中模擬語音信號采集、模數(shù)轉(zhuǎn)換器(ADC)、數(shù)模轉(zhuǎn)換器(DAC)和模擬語音信號放大部分的功能可以由語音專用芯片完成;接收模塊(RX)、數(shù)字語音信號處理和發(fā)送模塊(TX)部分的功能則由處理器完成。

                             
1.1 語音芯片的選擇
    目前市場上的語音芯片種類繁多,各有特色。本系統(tǒng)從便攜性、移動性、高性能和低功耗等方面綜合考慮選用了TLV320AIC23[2]。此款芯片采用低功耗設(shè)計,各個功能模塊均有斷開功能,錄放模式下功率消耗小于23mW,并且具有TI特有的MicroStar JuniorTM封裝方式,占用的PCB面積僅為25mm2。另外這款芯片的ADC與DAC采用多位的∑-△技術(shù),并且內(nèi)部集成高采樣率的數(shù)字內(nèi)插濾波器,傳輸字長可以是16、20、24、32位,支持8kHz-96kHz的采樣率[2]。ADC的信噪比可達90dB,DAC的信噪比可達100dB,從而可在小型低功耗設(shè)計中實現(xiàn)高保真錄放音[2]。
1.2 處理器的可選方案
    MCU:通常的MCU數(shù)據(jù)處理能力較低,接口資源有限。
    DSP:DSP的數(shù)據(jù)處理能力強,工作頻率高;與TLV320AIC23的控制和數(shù)據(jù)傳輸接口可以直接匹配,但需要占用DSP有限的接口資源,且芯片成本相對較高。
    FPGA/CPLD:接口設(shè)計靈活,具備用戶自定義端口功能,并行處理能力強[1]。
    本文要實現(xiàn)數(shù)字語音處理系統(tǒng)的通用平臺,從可擴展性、設(shè)計靈活性和成本等方面綜合考慮,F(xiàn)PGA/CPLD是比較理想的選擇。但是在基于FPGA/CPLD與TLV320AIC23的數(shù)字語音處理系統(tǒng)中,由于TLV320AIC23和FPGA/CPLD之間沒有現(xiàn)成可用的固定接口,因而接口部分是系統(tǒng)設(shè)計和實現(xiàn)過程中的重點和難點。
2 數(shù)字化語音處理系統(tǒng)中硬件電路設(shè)計
2.1 語音芯片電路

    TLV320AIC23內(nèi)置耳機輸出放大器,支持MIC和LINEIN兩種輸入方式(二選一),且通過對相應寄存器設(shè)置可調(diào)節(jié)輸入和輸出的增益。TLV320AIC23具有11個可編程控制寄存器,通過不同的設(shè)置,可以改變芯片的工作狀態(tài)??刂平涌诰哂蠸PI(三線)和I2C(兩線)兩種工作方式,由MODE引腳選擇:MODE=0為I2C模式,MODE=1為SPI模式。TLV320AIC23與數(shù)字系統(tǒng)的數(shù)據(jù)傳輸接口支持4種數(shù)據(jù)格式:左對齊模式、右對齊模式,I2S模式和DSP模式[2]。
    TLV320AIC23的硬件電路如圖2所示。外圍模擬電路包含了MIC、LINEIN的輸入電路和LINEOUT、HEADPHONE的輸出電路,實現(xiàn)過程中兩路輸入是二選一的,兩路輸出并行。

                    
2.2 FPGA/CPLD與TLV320AIC23連接電路
    根據(jù)TLV320AIC23使用規(guī)則,需要提供控制接口和數(shù)據(jù)通信接口[2]??刂平涌谶x擇SPI方式,即TLV320A-IC23需要通過CS、SDIN、SCLK三線與FPGA/CPLD連接[2]。由FPGA/CPLD發(fā)送控制字" title="控制字">控制字到TLV320AIC23控制寄存器,使其按照寄存器設(shè)置進行工作。數(shù)據(jù)通信接口選擇DSP模式傳輸數(shù)據(jù),設(shè)置TLV320AIC23為主(Master)模式,F(xiàn)PGA/CPLD為從(Slave)模式。由文獻[3]可知,工作在Master模式下的TLV320AIC23將時鐘信號BCLK和幀同步" title="幀同步">幀同步信號LRCOUT、LRCIN提供給工作在Slave模式下的FPGA/CPLD。
    工作電路中,TLV320AIC23外接12.288MHz晶振,內(nèi)部ADC和DAC的采樣率設(shè)置為32kHz,數(shù)據(jù)字長為16位[2]。FPGA/CPLD以Altera公司器件EP1C3T144C8為例。系統(tǒng)連接結(jié)構(gòu)如圖3所示。

                       
3 用VHDL實現(xiàn)FPGA/CPLD和TLV320AIC23的接口設(shè)計
3.1 控制接口
    (1)時序分析
    SPI是一種同步串行接口,能實現(xiàn)全雙工通信,一般需要四線支持,即片選信號、時鐘信號SDCLK、主入從出信號MISO和主出從入信號MOSI。配置TLV320A-IC23的控制時序工作在單向SPI方式下,只需三線;工作在Master模式下的FPGA輸出:片選信號、時鐘信號SCLK和數(shù)據(jù)輸出信號SDOUT;工作在Slave模式下的TLV320AIC23三線均為輸入。SPI的時序如圖4所示[2]。

                     
    每一個控制字由16位數(shù)據(jù)構(gòu)成:7位地址[15..9]和9位數(shù)據(jù)[8..0],按照高位(MSB)在前的順序傳輸[2]。每一位數(shù)據(jù)在SCLK的上升沿" title="上升沿">上升沿鎖存進TLV320AIC23接收移位寄存器,每一個控制字發(fā)送結(jié)束時,要產(chǎn)生一個上升沿。
    (2)實現(xiàn)方案
    FPGA/CPLD實現(xiàn)SPI的功能框圖如圖5所示。SPI實現(xiàn)模塊包括兩個部分,即信號生成模塊和計數(shù)控制模塊。信號生成模塊輸出SCLK、和DATA信號,其中SCLK是通過對CLK時鐘分頻生成的恒定時鐘信號,它為片選信號發(fā)生器(_Generate)和數(shù)據(jù)發(fā)送器(DATA_Sending)部分提供工作時鐘。計數(shù)控制模塊包括位(Bit)計數(shù)器和字(Word)計數(shù)器。位計數(shù)器用于記錄串行發(fā)送數(shù)據(jù)個數(shù),字計數(shù)器用于記錄已發(fā)送控制字的個數(shù)。當FPGA/CPLD對TLV320AIC23的所有11個寄存器配置完成后,輸出停止整個控制字傳輸模塊工作的標志信號Stop。

                       
    為保證TLV320AIC23的SPI正常工作時序,F(xiàn)PGA/CPLD在SCLK的下降沿處通過SDOUT輸出數(shù)據(jù)位。在控制字最后1位數(shù)據(jù)輸出完成后的SCLK下降沿處,產(chǎn)生一個上升沿,結(jié)束一個控制字的傳輸并將下一個待發(fā)送的控制字鎖存到FPGA的發(fā)送移位寄存器中。當對TLV320AIC23的所有寄存器配置結(jié)束時,STOP信號產(chǎn)生一個上升沿,停止整個控制字傳輸模塊的工作,同時打開數(shù)據(jù)傳輸模塊,開始FPGA與TLV320AIC23的數(shù)據(jù)傳輸和音頻信號的數(shù)字處理過程。仿真時序如圖6所示。須注意的是計數(shù)器的遞增操作和對計數(shù)器值的判斷要分別在SCLK下降沿和上升沿進行,避免產(chǎn)生競爭。

                       
3.2 數(shù)據(jù)通信接口
    (1)時序分析
    通過配置TLV320AIC23,使其數(shù)據(jù)接口工作在DSP模式。在DSP模式下工作的TLV320AIC23參與數(shù)據(jù)通信的信號有:兩個幀同步信號輸出LRCIN和LRCOUT、時鐘信號輸出BLCK以及數(shù)據(jù)輸入和輸出信號DIN、DOUT[2]。由于工作在主模式下的TLV320AIC23的兩個幀同步信號完全一致,因而工作在Slave模式下的FPGA只需一個幀同步信號輸入。
    DSP模式時序圖如圖7所示[2]。由此分析得出,TLV320AIC23在幀同步信號下降沿到來時開始傳輸數(shù)據(jù),在時鐘信號BCLK下降沿時,DIN和DOUT同時變化,雙向傳輸數(shù)據(jù),以先傳輸左聲道語音數(shù)據(jù)后傳輸右聲道語音數(shù)據(jù)(由控制字選擇)的順序與FPGA進行通信。

                      
    為保證數(shù)據(jù)傳輸?shù)恼_性,在BCLK的上升沿,F(xiàn)PGA/CPLD讀取TLV320AIC23的輸出數(shù)據(jù)(DOUT);在BCLK的下降沿,F(xiàn)PGA/CPLD寫數(shù)據(jù)到TLV320AIC的數(shù)據(jù)輸入端(DIN)。
    (2)實現(xiàn)方案
    由FPGA/CPLD實現(xiàn)DSP模式數(shù)據(jù)傳輸和數(shù)據(jù)處理的功能框圖如圖8所示,它由五部分組成:檢測模塊、數(shù)據(jù)接收模塊、數(shù)據(jù)發(fā)送模塊、標志控制模塊和數(shù)據(jù)處理模塊。其中檢測模塊用于檢測幀同步信號,并使能數(shù)據(jù)接收模塊和數(shù)據(jù)發(fā)送模塊;數(shù)據(jù)接收模塊和數(shù)據(jù)發(fā)送模塊在使能信號有效的情況下分別啟動數(shù)據(jù)接收和發(fā)送操作,傳輸時鐘都是BCLK;標志控制模塊用于在一幀數(shù)據(jù)發(fā)送和接收完成后,復位接收模塊和發(fā)送模塊,使其等待下一個幀同步信號的到來;數(shù)據(jù)處理模塊將接收到的并行數(shù)據(jù)經(jīng)過數(shù)字域處理后轉(zhuǎn)發(fā)給發(fā)送模塊。

                       
    在功能框圖中接收模塊(RX-Module)和發(fā)送模塊(TX-Module)的使能信號不同:對于接收模塊,使能信號在幀同步信號(LRCIN/LRCOUT)的下降沿產(chǎn)生,在此后的BCLK上升沿處讀取數(shù)據(jù),存放到接收寄存器中,如果一幀數(shù)據(jù)已經(jīng)接收完畢,則下一個BCLK的下降沿輸出完成信號(finish)。在BCLK的下降沿計數(shù)器計數(shù),記錄在前一個BCLK上升沿讀取的數(shù)據(jù)的個數(shù)。這種處理方式避免了競爭,保證在判斷時計數(shù)器值處于穩(wěn)態(tài),數(shù)據(jù)最后一位輸出穩(wěn)定后關(guān)閉傳輸模塊。而對于發(fā)送模塊,被發(fā)送的數(shù)據(jù)在BCLK的下降沿輸出,所以使能信號在幀同步信號(LRCIN/LRCOUT)的上升沿產(chǎn)生。SampleClk是一個高頻掃描信號,用于檢測幀同步信號,采用高頻信號檢測低頻信號可以減少毛刺的引入。
    基于本文所述的方案成功實現(xiàn)了Altera EP1C3T144C8對TLV320AIC23的配置、兩者間的數(shù)據(jù)通信以及對語音數(shù)據(jù)的處理,從而建立了由語音AD采集、傳輸、處理和DA語音輸出四個部分組成的結(jié)構(gòu)化數(shù)字語音處理系統(tǒng)開發(fā)平臺。本文通過對設(shè)計方案的分析與實現(xiàn)得出:在FPGA/CPLD中設(shè)計數(shù)據(jù)接口非常靈活,可按功能劃分模塊,由標志信號控制模塊啟閉,方便設(shè)計和調(diào)試。本文為基于FPGA/CPLD和TLV320AIC23的數(shù)字化語音處理提供了完善的、高擴展性的解決方案,通過改變數(shù)字處理模塊的功能即可實現(xiàn)各種數(shù)字語音系統(tǒng),如語音加密/解密、語音數(shù)據(jù)存儲、語音壓縮、數(shù)字音效處理等。
參考文獻
[1] WOLF W.FPGA-BASED System Design.Prentice Hall,2004.
[2] Texas Instrument Inc.TLV320AIC23B Stereo Audio CODEC 8- to 96-kHz,With Integrated Headphone Amplifier.
2004,2.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。