《電子技術(shù)應用》
您所在的位置:首頁 > 通信與網(wǎng)絡 > 設計應用 > 雙DSP實現(xiàn)IP分組語音通信
雙DSP實現(xiàn)IP分組語音通信
劉 兵 徐家愷 劉 陽
摘要: 提出一種以2塊TMS320VC54x DSP為核心處理器的IP分組語音通信解決方案,并著重說明了語音處理模塊與以太網(wǎng)接口模塊的設計思路及2模塊的集成方法。
關(guān)鍵詞: DSP 分組語音通信 TMS320VC54x TI
Abstract:
Key words :

  摘  要: 提出一種以2塊title="TMS320VC54x">TMS320VC54x DSP為核心處理器的IP分組語音通信解決方案,并著重說明了語音處理模塊與以太網(wǎng)接口模塊的設計思路及2模塊的集成方法。
  關(guān)鍵詞: 分組語音通信  DSP  CODEC  以太網(wǎng)接口  HPI

   分組語音通信是當前網(wǎng)絡技術(shù)發(fā)展的一個熱點。雖然PC機早已可以通過軟件實現(xiàn)IP網(wǎng)絡通話,但是用戶卻需要像電話一樣小巧而方便的終端。嵌入式技術(shù)的不斷進步讓用戶的這個需求變成了現(xiàn)實。通常的IP分組語音通信解決方案是采用1塊MCU芯片作為系統(tǒng)主控CPU,用1塊DSP芯片進行語音信號處理、壓縮編解碼,再用CODEC、以太網(wǎng)接口和存儲器等構(gòu)成外圍電路。此外也有將MCU和DSP集成在一起的芯片,如TI生產(chǎn)的OMAP平臺DSP就采用了ARM+DSP構(gòu)架。集成化不僅可以降低成本,還可以降低功耗并提高可靠性。筆者在設計中使用了2塊DSP,分別作為主控和語音處理,同樣實現(xiàn)了IP的分組語音通信。
1 IP分組語音通信
  分組語音技術(shù)是指將語音信號轉(zhuǎn)化為一定長度的數(shù)字化語音包,采用存儲-轉(zhuǎn)發(fā)的方式,以IP包的形式進行交換和傳輸?shù)募夹g(shù)。傳統(tǒng)的電話網(wǎng)以電路交換的方式傳輸語音,它需要的基本帶寬為64Kbps,而在面向無連接的分組網(wǎng)絡上傳輸?shù)姆纸M語音需要的帶寬僅為10Kbps左右。由于互聯(lián)網(wǎng)并不能對傳輸帶寬提供保證,因此語音包在傳輸過程中就會產(chǎn)生延遲、抖動、包丟失等影響語音質(zhì)量的因素。近年來由于低速率編解碼算法的出現(xiàn)和軟硬件性能的提高,人們開始注意到分組語音技術(shù)的商業(yè)價值。
  分組語音信道模型如圖1所示。發(fā)送端語音在經(jīng)過模擬信號、數(shù)字信號、語音包的處理過程后,再經(jīng)過網(wǎng)絡傳輸,在接收端對語音包進行相反的處理,還原出語音。


2 語音處理模塊設計
  該模塊實現(xiàn)了語音信號的驅(qū)動放大,A/D、D/A變換,壓縮編解碼等信號處理功能。
2.1 模塊硬件設計
  語音處理模塊硬件框圖如圖2所示。該模塊的核心是TMS320VC5402(以下簡稱C5402)數(shù)字信號處理器。TLC320AD50是模/數(shù)接口芯片,采用Σ-Δ調(diào)制方式,為DSP提供語音CODEC接口。TLC2272和LM386分別作為TLC320AD50的輸入前置放大和輸出驅(qū)動。在發(fā)送端,TLC2272運算放大器對輸入語音信號進行放大,TLC320AD50模擬接口芯片對模擬信號進行A/D變換,使之成為數(shù)字信號,C5402對數(shù)字信號進行壓縮編碼,得到低速率的語音數(shù)據(jù),并送給作為主控制器的另一塊DSP。在接收端,語音處理模塊從主控DSP處得到壓縮的低速率語音數(shù)據(jù),由DSP進行解碼,TLC320AD50進行 D/A變換,LM386進行信號放大后驅(qū)動揚聲器,還原出模擬語音信號。


  C5402利用多通道緩沖串行口(Multichannel Buffered Serial Port,McBSP)和TLC320AD50連接。TLC320AD50工作在主機模式下,它提供與C5402進行串行通信的8kHz的幀同步信號FS#和8.192MHz的移位時鐘信號SCLK。C5402的BFS和BCLK設為輸入狀態(tài)。TLC320AD50每125ns輸出1幀16位的數(shù)據(jù),并以DMA方式與C5402交換數(shù)據(jù),以減少CPU資源的占有。
2.2 壓縮編解碼算法
  壓縮編碼方式的標準由ITU-T統(tǒng)一制定,分為波形編碼和參數(shù)編碼二類。常用的波形編碼標準有G.711和G.726,其中G.711是PSTN電話網(wǎng)廣為使用的64Kbps的PCM編碼,G.726采用32Kbps的ADPCM方式。常用的參數(shù)編碼標準有G.728、G.729、G.729A和G.723.1。本文采用的是G.723.1標準,它是H.323協(xié)議標準缺省的語音編碼方式。
  G.723.1是目前分組語音通信中常用的壓縮比最高的編碼方式。它使用雙速率LPAS聲碼器,其低速率采用代數(shù)碼本激勵線性預測(ACELP),編碼速率為5.3Kbps,高速率(6.3Kbps)采用多脈沖最大似然量化(MP-MLQ)激勵。G.723.1標準基于碼激勵線性預測(Code Excited Linear Prediction,CELP)編碼模型對語音進行編碼。線性預測采用前饋型前向自適應,并使用預視。其輸入數(shù)據(jù)是經(jīng) 8kHz采樣的16位線性 PCM語音信號,幀長為30ms(240個樣點),分為4個子幀,即每個子幀含有60個抽樣信號,預視7.5ms。編碼端對原始語音進行分析,提取出CELP參數(shù)(LSP參數(shù)、碼本索引和增益等),并將這些參數(shù)編碼傳輸。在解碼端,再用這些參數(shù)構(gòu)造激勵信號和合成濾波器,將激勵信號通過合成濾波器重建語音信號。G.723.1需要40MIPS以上的DSP才能保證語音編解碼的質(zhì)量。C5402運算能力可以達到100MIPS,完全可滿足系統(tǒng)要求。
3  以太網(wǎng)接口模塊設計
  該模塊由主控DSP直接控制以太網(wǎng)接口芯片,進行IP語音數(shù)據(jù)包的收發(fā)。以太網(wǎng)驅(qū)動芯片采用的是RTL8019AS,它是臺灣Realtek公司生產(chǎn)的一款兼容NE2000的8/16位網(wǎng)卡適配器,支持ISA總線結(jié)構(gòu)。由于其性能優(yōu)良,價格低廉,因此在10Mbps網(wǎng)卡市場中占有相當大的份額。RTL8019AS有16KB的RAM用于數(shù)據(jù)收發(fā)緩存,分成64頁,每頁256B,每頁存儲1幀以太網(wǎng)數(shù)據(jù)包。它內(nèi)部有4頁寄存器,對應著偏移量為0x00~0x0F的16個輸入/輸出地址,控制器通過讀寫這些寄存器,控制數(shù)據(jù)的收發(fā)。此外,0x10~0x17是遠程DMA讀寫端口地址,0x18~0x1F是復位端口地址。RTL8019AS中主要的寄存器如下。
  CR:控制以太網(wǎng)驅(qū)動器操作,同時用于選擇寄存器頁。
  PSTART:接收緩沖區(qū)的起始頁地址。
  PSTOP:接收緩沖區(qū)的結(jié)束頁地址。
  TPSR:發(fā)送緩沖區(qū)的起始頁地址。
  BNRY:指向最后一個已讀取頁地址。
  CURR:指向當前的接收頁地址。
  ISR:中斷狀態(tài)寄存器。
  RCR:接收參數(shù)配置。
  TCR:發(fā)送參數(shù)配置。
  DCR:數(shù)據(jù)參數(shù)配置。
  IMR:中斷屏蔽寄存器。
  RSAR0、RSAR1:遠程DMA起始地址。
  RBCR0、RBCR1:遠程DMA字節(jié)計數(shù)器。
  PAR0~PAR5:設置本地MAC地址。
  MAR0~MAR7:用于設置多點播送的參數(shù)。
3.1 模塊硬件設計
  主控C5402的I/O資源豐富,可以很容易地將RTL8019AS映射為它的I/O空間。DSP與RTL8019AS的硬件連接如圖3所示。RTL8019AS的I/O電壓為5V,而DSP的I/O電壓是3.3V,二者連接時需要轉(zhuǎn)換電平。本設計選用SN74LVTH16244作為地址總線緩沖器,選用SN74LVTH16245雙向總線收發(fā)器作為數(shù)據(jù)總線緩沖器。

 


  DSP采用查詢方式和RTL8019AS通信。DSP的XF為RTL8019AS提供硬件復位脈沖,通過A4~A0共5根地址線來訪問RTL8019AS的0x00~0x1F寄存器和端口空間,以太網(wǎng)驅(qū)動器的基地址由A19~A5確定,其值是0x300。RTL8019AS的讀寫控制信號由DSP的IOSTRB#、R/W#及A15通過圖中所示的邏輯提供。很顯然,RTL8019AS被映射到了DSP低32K字的I/O空間。
3.2 模塊軟件設計
  模塊采用以太網(wǎng)的封裝格式協(xié)議(兼容IEEE802.3)、IP協(xié)議和UDP協(xié)議作為系統(tǒng)的通信協(xié)議。該部分軟件包括2部分:以太網(wǎng)驅(qū)動器的初始化和收發(fā)數(shù)據(jù)處理。
  RTL8019AS硬件或軟件復位后即進行初始化工作,包括設置接收緩沖區(qū)和發(fā)送緩沖區(qū),設置本地MAC地址,配置接收參數(shù)、發(fā)送參數(shù)和數(shù)據(jù)參數(shù),給寫入頁指針和讀取頁指針賦初值,清除中斷狀態(tài)位等。
  數(shù)據(jù)發(fā)送前,要將語音數(shù)據(jù)封裝成以太網(wǎng)幀,就是在語音數(shù)據(jù)前依次加上UDP包頭、IP包頭和以太網(wǎng)包頭;對接收到的數(shù)據(jù)包,要用相反的過程解包,依次去掉各種包頭后,取出語音數(shù)據(jù)。
  以太網(wǎng)接口模塊數(shù)據(jù)收發(fā)軟件流程如圖4所示。發(fā)送時,DSP首先將語音數(shù)據(jù)封裝打包,然后用遠程DMA方式寫入RTL8019AS的發(fā)送緩沖區(qū),并將數(shù)據(jù)包傳到網(wǎng)上。接收時,通過查詢ISR確定是否收到數(shù)據(jù),如果收到,則以遠程DMA方式逐頁讀出接收緩沖區(qū)中的數(shù)據(jù)幀,并去掉包頭,恢復出語音數(shù)據(jù)。每讀1幀,將BNRY指向下一頁緩沖區(qū),如此反復,直到讀出RTL8019AS接收緩沖區(qū)中的所有數(shù)據(jù)幀。

 


4  系統(tǒng)集成和測試
  對上述2個模塊測試成功后,要將這2個模塊集成為1個端機系統(tǒng),實現(xiàn)局域網(wǎng)環(huán)境下點到點的實時雙向分組語音通信。
主從DSP的硬件連接如圖5所示。主控DSP與語音處理模塊DSP通過8位增強型HPI接口(Host-Port Interface)進行通信。C5402的HPI由1個8位數(shù)據(jù)總線和一組控制信號組成,通過HPI地址寄存器(HPIA)、HPI數(shù)據(jù)寄存器(HPID)、HPI控制寄存器(HPIC)和主機建立通信連接。


  主控DSP的A1、A2與HPI寄存器選擇信號HCNTL0,1相連。當A2A1=00b時,選擇HPIC寄存器;當A2A1=01b時,選擇HPIA寄存器;當A2A1=10b時,選擇HPID寄存器,且每次讀寫時HPIA加1;當A2A1=11b時,選擇HPID寄存器,讀寫不影響HPIA。主控DSP的A0用于選擇通信的高或低字節(jié);IOSTRB#、A15、IS#按照圖示的邏輯關(guān)系組成數(shù)據(jù)傳輸?shù)钠x,此時從DSP位于主DSP高32K字的I/O空間,避開了RTL8019AS的空間;HR/W#和主DSP的R/W#直接連接;HINT#和HRDY用于向主DSP的發(fā)送中斷請求和準備好狀態(tài)信號。
  語音處理模塊的DSP按照G.723.1進行壓縮編碼,每30ms生成1幀語音數(shù)據(jù),放入編碼緩存區(qū),產(chǎn)生1次HPI中斷。主DSP得到該中斷請求后,先將接收到的語音數(shù)據(jù)幀通過HPI口寫入從DSP的解碼緩存區(qū)供其解碼,然后主DSP將從DSP編碼緩存區(qū)中待發(fā)送的數(shù)據(jù)讀出,封裝后發(fā)送到網(wǎng)上。從DSP在30ms的時間間隔內(nèi),一方面要壓縮編碼TLC320AD50傳輸過來的語音數(shù)據(jù),另一方面要將主機送來的數(shù)據(jù)進行擴展解碼,然后送給TLC320AD50,恢復出模擬的語音信號。
  經(jīng)過實驗測試,語音處理模塊和以太網(wǎng)接口模塊協(xié)調(diào)工作,在局域網(wǎng)上2臺終端通信的話音質(zhì)量良好,達到了預期的效果。
5  結(jié)束語
  本文采用2塊C5402 DSP作為系統(tǒng)核心,加上CODEC和NIC等外圍電路,實現(xiàn)了局域網(wǎng)上的IP分組語音通信,是一個全新的VOIP解決方案。筆者認為,采用更高運算能力的DSP,有望實現(xiàn)單DSP方案的分組語音通信。
參考文獻
1   Texas Instruments.TMS320VC54x DSP Reference Set.1999
2   Realtek.RTL8019AS Datasheet.2000
3   張雄偉,曹鐵勇.DSP 芯片的原理與開發(fā)應用(第2版).北京:電子工業(yè)出版社,2000
4   糜正琨.IP網(wǎng)絡電話技術(shù).北京:人民郵電出版社,2000
 

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