謝 華
(深圳信息職業技術學院電子通信技術系 深圳 518029)
隨著互聯網的飛速發展,傳統的信息傳輸方式正在經歷著根本性的變革,包括語音、圖像在內的各種日常通信信息越來越多地采用互聯網的方式進行傳輸,給使用者提供了方便、快捷、便宜的信息獲取渠道。全球著名的英飛凌(Infineon)科技公司適應社會發展需求,推出多種半導體芯片整體解決方案,其中ADM5120+PEB33322芯片組合在VoIP方面提供了一個高性能、低成本、設計簡單的用戶端設備(CPE)解決方案,很好地解決了VoIP語音網關中一系列技術問題,為今后VoIP用戶終端的快速發展提供了一種較好的解決方案。
英飛凌公司推出的VoIP芯片組合具有如下主要的特點和優勢:
·在一個芯片中集成了VoIP處理器、存儲器、電話接口電路和語音編解碼器,設計簡單,可靠性高,實時性好;
·具有VoIP系列產品支持,設計靈活,可擴展性好;
·體積小,成本低,技術成熟,在世界范圍內得到廣泛的應用。
筆者采用英飛凌公司生產的ADM5120+PEB33322芯片組合設計了一個用戶端VoIP語音網關,該網關采用SIP協議作為信令控制協議,可以通過標準的Z接口將普通模擬電話機接入局域網,實現VoIP通信。該VoIP系統組成如圖1所示。

語音網關由一個網絡控制器ADM5120和一個帶有SLIC(用戶線接口電路)的VoIP處理器PEB33322及其外圍配套電路組成。
PEB33322由 2個SLIC、1個語音編解碼器 (Codec)和1個數字信號處理器(DSP)組成。SLIC帶有1個DC/DC轉換器,可以提供標準的Z接口,連接模擬電話機;Codec完成模擬語音信號的PCM編碼和解碼;DSP微處理器完成語音信號的壓縮和解壓縮 (滿足G.723.1、G.729等標準)、信息封裝、線路回聲抵消 (LEC)、語音抖動緩沖(jitter buffer)、動態語音檢測(VAD)、舒適噪音產生(CNG)、主叫識別(CID)等功能,同時提供一個用于調試的JTAG接口。其結構如圖2所示。
PEB33322可以使用電話應用編程接口(telephone application programming interface,TAPI)來控制 Codec的工作,支持G.729 A/B/E格式的語音壓縮。
網絡控制器ADM5120是一個高性能、高靈活性的SOC網絡控制器,由高性能的嵌入式MIPS 4Kc CPU、嵌入式交換引擎、10/100 Mbit/s物理層接口、嵌入式USB接口和 PCI、UART、SDRAM、Flash接口組成,具有存儲器管理(MMU)功能,支持Linux操作系統,支持 DHCP服務器/客戶機工作模式,其結構如圖3所示。
ADM5120在語音網關中主要完成實現VoIP呼叫時SIP協議的控制、VoIP網關設備的系統管理、數據傳輸時TCP/IP協議控制等功能。
本語音網關在上述硬件平臺基礎上采用SIP協議實現語音傳輸的控制[1],包括呼叫建立、呼叫保持、呼叫釋放等過程。圖4是采用SIP協議完成一次基本呼叫控制的過程示意[2]。
ADM5120芯片能夠較好地支持嵌入式Linux操作系統,支持 SIP信令協議[3],因此本語音網關的軟件設計也是基于Linux而設計的,其結構包括應用軟件、軟件接口和Linux Kernel三大部分,其軟件結構示意如圖5所示。
·Linux Kernel層主要提供網絡驅動、硬件配置和驅動、TCP/IP協議棧等功能,為上層提供必要的調用接口函數;


·軟件接口層主要提供各種應用程序庫,主要包括SIP協議棧、RTP傳輸控制、資源設備管理等庫函數,為上層提供必要的調用接口函數;
·應用軟件層使用軟件接口層提供的接口函數實現電話終端的通信任務、電話終端常用業務以及基本參數配置和各種驅動初始化。
根據上述硬件、軟件設計原理,筆者完成了如圖1所示的語音網關設計,實現了話機A與B的VoIP功能。在系統實現過程中主要解決了如下幾個問題。
(1)語音抖動的處理
為了解決好VoIP中的語音抖動問題,在系統中采用了一個抗抖動數據緩沖區,該數據緩沖區的大小不僅影響抗抖動的效果,還會影響到語音數據傳輸的時延。若數據緩沖區過大,就會大大增加語音數據的傳輸時延;反之,若數據緩沖區過小,就會減弱抗抖動的效果。在系統實現中將抗抖動數據緩沖區的大小分為三檔,當數據抖動較小時,采用第一檔較小的數據區,以減少數據傳輸時延;當系統檢測發現接收到的數據有較大的抖動時,系統會自動增加抖動數據緩沖區檔次,以減小數據的抖動。
(2)網絡回聲消除的實現

為了實現回聲消除功能,必須考慮近端回聲消除和遠端回聲消除兩部分。在系統實現過程中發現遠端回聲消除的效果有限,近端的回聲消除起主要作用。究其原因是由于系統中采用了G.729語音壓縮算法,該算法是碼激勵線性預測編碼(CELP),用線性預測提取聲道參數,用一個適當的激勵矢量作為激勵參數來實現。本地回聲信號經過編碼和解碼,在遠地的波形與未編碼的波形相比,發生了較大的變化,很難實現波形匹配,對遠端返回的回聲難以消除。因此,在系統實現中主要在本地對近端回聲進行消除處理。
(3)丟包處理方法
為了解決數據包丟失問題,減小其對語音的影響,必須采用丟包補償技術。在本系統中采用RTP作為數據實時傳輸協議,由于該協議沒有提供丟包控制機制,因此必須在應用層解決丟包問題。數據包丟失可分為小范圍丟包和大范圍丟包兩種情況。對于前一種情況本系統根據前后相鄰幀的相關性來補償丟失的數據包;而對后一種情況,本系統采用前后數據塊進行補償的方法,即事先建立三個一定長度的動態數據塊,當發生較大范圍的數據丟失時,通過前后數據塊的內容補償丟失數據塊的內容。數據塊的大小是動態可調的,且必須與抗抖動緩沖區的大小配合使用。
(4)呼叫處理流程設計
呼叫處理軟件主要完成通過語音網關實現VoIP呼叫所需的各種呼叫處理任務。呼叫處理軟件主要由GW應用模塊、SIP模塊、管理模塊和RTP模塊組成。其中GW應用模塊主要負責外接話機與內部各模塊的接口;SIP模塊主要負責呼叫的建立、保持和釋放;管理模塊主要負責內部資源的分配和管理;RTP模塊主要負責實時語音數據的傳送。各個模塊的功能主要通過呼叫控制API函數的調用來實現。其發送端、接收端軟件處理流程示意如圖6所示。
本文介紹的基于英飛凌公司芯片的VoIP系統設計方案,包括系統硬件組成和呼叫處理軟件實現流程,經過實際安裝調試,在SIP協議控制下,采用G.729語音壓縮標準,實現了VoIP通話的建立、維護以及拆除,較好地完成了VoIP語音通話等基本功能,聲音清晰、連續;回聲消除比較理想;時延較小;在模擬環境下的丟包影響較小,充分體現了該系統一體化結構的優越性能,具有設計簡單,對SIP協議有很強的支持能力等特點,成為VoIP解決方案中一個成功的案例。
1 張智江.SIP協議及其應用.北京:電子工業出版社,2005
2 會話初始協議(SIP)技術要求.北京:中華人民共和國信息產業部,2006
3黃永峰.下一代網絡核心控制協議——SIP及其應用.北京:人民郵電出版社,2009
4 周海華.SIP原理與應用.北京:機械工業出版社,2006
5 Gonzalo Camarillo.SIP揭密.北京:人民郵電出版社,2003