新聞中心

        EEPW首頁 > 消費電子 > 設計應用 > 基于DSP和ARM的音頻處理系統設計

        基于DSP和ARM的音頻處理系統設計

        作者: 時間:2007-08-02 來源:網絡 收藏
        1 引言

          隨著計算機技術、電子技術和通信技術的迅猛發展,技術也在眾多領域得到廣泛應用。如通信領域中的手機、IP電話,消費類電子產品中的MP3和CD播放器以及控制領域中的語音識別、聲控系統等[1]。針對強大的數字信號能力和器良好的實時性能,結合編解碼芯片TLV320AIC23的接口特點,本文闡述了由三者組成的統的硬件接口和軟件編程,提供了有效和實用的音頻處統方案。

          TLV320AIC23(簡稱AIC23)是TI公司的一款高性能立體聲音頻編解碼器Codec芯片。其內部集成的模數轉換器(ADCs)和數模轉換器(DACs)采用了帶有過采樣數字插補濾波的多位Sigma-Delta技術。數據傳輸字長為16、20、24、32位,支持采樣頻率范圍8kHz至96kHz。ADC和DAC的信噪比分別達到90dB和100dB。內置耳機輸出放大器,支持MIC和LINE IN兩種輸入方式,且對輸入和輸出都具有可編程增益調節。另外,AIC23功耗低,回放模式下功率僅為23mW,省電模式下更是小于15uW。因此,AIC23成為數字音頻應用

        領域中的理想選擇[2],在多種數碼產品中發揮著重要作用,比較典型的應用如手機、MP3、DV攝像機中的音頻編解碼。

          TMS320VC5402(簡稱VC5402)是TI公司的一款優秀16位定點,運算速度快,指令執行速度達到100MIPS。自帶片內存儲器和多種片上外設,廣泛應用于語音編解碼和通信領域[3]。

          S3C4510B(簡稱4510B)是Samsung公司的一款低成本、高性能的16/32位精簡指令集微控制器,其出色的7TDMI內核以及通用微處理器宏單元使其成為用戶定制應用開發的理想選擇[4]。

        2 系統硬件

          本音頻處統主要由前述三個處理芯片組成:控制單元,信號處理單元以及AIC23音頻采集單元。系統原理框圖如圖1。

        基于DSP和ARM的音頻處理系統原理框圖

          圖1 DSP和ARM的音頻處理系統原理框圖

          AIC23是可編程芯片,內部有11個16位寄存器,編程設置這些寄存器可得到所需的采樣頻率、輸入輸出增益和傳輸數據格式等。該控制接口有SPI和I2C兩種工作模式,由芯片上的MODE引腳進行選擇:MODE=0為I2C模式,MODE=1為SPI模式。因ARM 4510B上也有I2C接口,故選用I2C模式。AIC23的I2C接口地址由 引腳的狀態決定, =0時地址為0011010, =1時地址為0011011。其中SDIN與SDA為數據線,SCLK與SCL為串行時鐘線。VC5402有兩個多通道緩沖串口,選用其中的McBSP0與AIC23進行通信,信號連接如圖1所示。圖中AIC23工作在主模式,時鐘信號、DAC和ADC的幀同步信號BFSX0和BFSR0都由AIC23提供。而DSP VC5402與ARM 4510B的通訊是通過DSP上的HPI接口實現的。

        3 系統軟件

          系統由ARM系統和DSP系統兩大部分組成,ARM作為主控制器管理整個系統的工作進程,運行相關的應用程序,可對多個任務進行調度,完成與外部DSP系統或其他外設的通信。DSP則主要完成音頻數據的采集和信號處理,并將處理后的數據發送給ARM供應用程序調用。這樣的設計可以大大提高系統的工作效率,這也是當前嵌入式系統,各移動手持設備如PDA、手機等的典型設計方案。

          這里具體要做的是對AIC23的控制接口編程,使其工作在所需的模式下。然后初始化DSP的McBSP,進行AD、DA轉換和數據處理。

        3.1 ARM編程部分

          系統中對ARM的編程主要涉及對AIC23的初始化,使其進入正常工作狀態,對音頻數據進行采集和處理。這需要設置4510B的I2C總線特殊功能寄存器:控制狀態寄存器IICCON、預分頻寄存器IICPS和移位緩沖寄存器IICBUF,寄存器相關說明見表1[5]。

          表1 4510B I2C總線特殊功能寄存器
        4510B I2C總線特殊功能寄存器

          AIC23的11個控制寄存器相關設置的詳細描述參見文獻2。這里的設置為:左右聲道線路輸入靜音;耳機左右聲道音量為6dB;使能DAC,麥克風音量為20dB作為ADC輸入;使能ADC高通濾波;芯片各部分電路供電使能;芯片工作在主模式,采樣數據長度16位,采用DSP數據格式(同步幀后跟隨兩個數據字);采樣率88.2KHz(外部晶振為11.2896MHz);使能數字接口。

        對AIC23編程時的I2C總線時序如圖2所示。設置好I2C的時鐘頻率后,首先發送開始條件(SCLK為高電平時,SDI從高電平向低電平切換),然后發送AIC23的器件地址,器件地址發出后發送AIC23相應寄存器的地址,再發送對該寄存器設置的數據,最后發送停止條件(SCLK為高電平時,SDI從低電平向高電平切換)。注意,這里的寄存器地址為7位,寄存器數據為9位,而I2C總線以字節為單位傳送數據。因此在對AIC23的寄存器編程時,第一個字節包括了前7位的寄存器地址B15-B9以及設置數據的最高位B8,第二個字節為設置數據的后8位B7-B0。

        I2C時序

          圖2 I2C時序

        3.2 音頻數據采集與播放

          初始化AIC23后,再初始化DSP以及McBSP0,之后進行音頻數據的采集與播放。通過麥克風采集語音信號,經過數字濾波處理后由耳機輸出。使用McBSP0的接收中斷保存數據,通過FIR數字濾波子程序處理音頻數據。程序流程如圖3所示。

        音頻數據處理程序流程圖

          圖3 音頻數據處理程序流程圖

          初始化McBSP0使其與AIC23協調工作,這里要根據硬件設計和軟件要求來配置McBSP0的各個控制寄存器。本系統中串口的主要設置為:接收數據右對齊,帶符號擴展;接收中斷使能;由片外提供發送、接收幀信號和發送、接收時鐘信號;發送、接收幀同步信號低電平有效;在時鐘上升沿采樣發送、接收數

        據;每幀發送、接收兩個16位字數據[6]。

          數據接收部分可在DSP中斷程序中用如下語句實現:

          mvkd drr10,*ar5 ;保存數據

          pshd *ar5+% ;數據壓入堆棧

          popd new_ad ;從堆棧彈出數據到自定義的寄存器

          FIR濾波的相關程序如下:

          ld new_ad,a ;新數據加載至累加器

          stm #1,ar0 ;雙操作數增量

          stm #N,bk ;設置循環緩沖區長度,即FIR濾波級數(N為濾波級數)

          stl a,*ar3+% ;新數據送至ar3指向的緩沖區

          rptz a,#(N-1) ;重復執行N-1級的乘加運算

          mac *ar2+0%,*ar3+0%,a ;ar2為系數指針,結果在累加器高位中

        sth a,temp ;保存計算結果

          ld temp,a ;結果放入累加器低位

          … …

          stlm a,dxr10 ;將累加器地位中的數據送至串口發送寄存器

          … …

          前述對AIC23和DSP的相應設置,采用21級系數對稱FIR數字濾波,對經由麥克風輸入的語音信號進行濾波處理,濾波結果由耳機輸出,實際效果良好。所采集到的音頻數據還可通過HPI接口傳送至ARM供應用程序調用。

        3.3 語音識別應用測試

          語音識別的基本原理是對語音信號進行特征提取。目前常用的語音識別算法有模式匹配的動態時間規正法(DTW: Dynamic Time Warping)、基于統計模型的隱馬爾柯夫模型法(HMM: Hidden Markov Model)以及基于神經網絡的識別法(DNN、NPN、TDNN)等[7]。為便于系統應用測試,本文采用一種最簡易的方法對系統進行調試,即對英文元音的識別。基本原理是提取元音字母的頻率特征,各元音在其頻域響應中都有三個明顯的共振峰頻率,而最容易識別的是第一共振峰,由此可進行有效的元音識別。在提取第一共振峰頻率特征時采用“零交越”法(統計單幀信號波形穿越零點的次數――過零率),將信號頻率特征的分析轉換為時域分析,計算得到的過零率與理論值進行比較即可實現元音的識別。圖4所示分別為元音“A”的時域和頻域圖。
        元音A的時域圖 和頻域圖

          圖4 元音A的時域圖 和頻域圖

          由頻域采樣圖可以看到很明顯的第一共振峰,此時計算時域采樣中信號的過零率可較為準確的識別元音A,過零率的計算中近似等于零的采樣點通常是微弱的干擾,可以忽略不計。經驗證,這種簡易單元音識別法的識別率在80%以上,由此證明本系統音頻處理的實用性。

        4 結束語

          本文闡述了基于信號處理和嵌入式應用的音頻處理系統的設計和實現。論述了系統的硬件設計、軟件編程及其應用。通過ARM對音頻芯片AIC23的控制和DSP與AIC23的通信,實現了音頻信號采集、處理、輸出的功能以及簡單的語音識別。構建了基于ARM和DSP的音頻處理系統應用框架,對進一步的數據處理、控制應用等提供了切實可行的軟硬件方案。

        參考文獻

          1 張大波. 嵌入式系統原理、設計與應用. 北京:機械工業出版社,2004.11
          2 TLV320AIC23, Stereo Audio CODEC, 8- to 96-kHz, With Integrated Headphone Amplifier. Texas Instruments Incorporated, 2002
          3 TMS320VC5402, Fixed-Point Digital Signal Processor. Texas Instruments Incorporated, 2000
          4 S3C4510B User’s Manual. Samsung Electronics, 2001
          5 李駒光. ARM應用系統開發詳解:基于S3C4510B的系統設計. 北京:清華大學出版社, 2004
          6 TMS320C54xx McBSP to TLV320AIC24 Interface. Texas Instruments Incorporated, 2003
          7 黃濤,胡賓.基于SPCE061A單片機的非特定人語音識別設計.微計算機信息,2006,3-2:19-20



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 于都县| 长海县| 泗阳县| 长治市| 晋中市| 射阳县| 柏乡县| 永康市| 新民市| 克山县| 习水县| 太湖县| 青州市| 南岸区| 马关县| 潼南县| 洛扎县| 清远市| 华容县| 沁阳市| 富民县| 岳阳市| 诸暨市| 日喀则市| 铜梁县| 泰来县| 且末县| 彭阳县| 浠水县| 长治县| 安岳县| 无为县| 威远县| 洛阳市| 木兰县| 高淳县| 天峨县| 宣武区| 买车| 安达市| 桐城市|