基于嵌入式處理器的VoIP雙模語音網(wǎng)關(guān)設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
VoIP雙模網(wǎng)關(guān)是一種同時(shí)連接VoIP網(wǎng)絡(luò)和PSTN網(wǎng)絡(luò)并能在兩者之間互相轉(zhuǎn)換的用戶端網(wǎng)關(guān)設(shè)備。雙模網(wǎng)關(guān)能夠使用VoIP網(wǎng)絡(luò)節(jié)省大量通話成本,還能夠在VoIP網(wǎng)絡(luò)不可用(斷電或路由不可達(dá))時(shí)使用PSTN網(wǎng)絡(luò)保障電話線路永遠(yuǎn)暢通,而且使用雙模網(wǎng)關(guān)無需對(duì)PBX交換機(jī)做任何改變,用戶還能夠自由選擇或由網(wǎng)關(guān)自動(dòng)選擇使用VoIP網(wǎng)絡(luò)還是PSTN網(wǎng)絡(luò),具備很好的實(shí)用性和靈活性。
1 VoIP雙模網(wǎng)關(guān)的工作原理
網(wǎng)關(guān)在VoIP網(wǎng)絡(luò)中主要起協(xié)議轉(zhuǎn)換、控制及關(guān)守作用,例如呼叫控制和呼叫管理等。雙模網(wǎng)關(guān)在普通VoIP網(wǎng)關(guān)的基礎(chǔ)上增加了VoIP和PSTN之間的轉(zhuǎn)換。雙模網(wǎng)關(guān)系統(tǒng)從功能上可分為雙模轉(zhuǎn)換模塊、FXS接口電路模塊、語音處理模塊和軟件控制模塊,其系統(tǒng)框圖如圖1所示。各主要模塊功能描述如下:
(1)雙模轉(zhuǎn)換模塊
雙模轉(zhuǎn)換模塊主要包括FXO接口電路,由CODEC和數(shù)據(jù)處理陣列DAA(Data Access Arrangement)組成。其中的CODEC和FXS電路中的相同;DAA仿真了一部話機(jī),通過PSTN的環(huán)路閉合去除高壓直流分量,只讓PSTN線上的模擬交流信號(hào)通過。
(2)FXS接口電路模塊
外部交換站接口FXS(Foreign Exchange Station):電路直接和模擬話機(jī)連接,提供撥號(hào)音、饋電、鈴流電壓,并能夠檢測(cè)話機(jī)的摘掛機(jī)和環(huán)路閉合,完成模擬信號(hào)和數(shù)字信號(hào)之間的相互轉(zhuǎn)換。
外部交換局接口FXO(Foreign Exchange Office):在傳統(tǒng)的PSTN電話連接中,電話中央局端交換機(jī)提供饋電和鈴流,電話本身完成Tip/Ring電路來請(qǐng)求服務(wù)或應(yīng)答PSTN上的呼叫。
明白了FXS和FXO的原理也就理解了本網(wǎng)關(guān)設(shè)計(jì)的理念,就是將網(wǎng)關(guān)模擬成一個(gè)交換機(jī)。其內(nèi)部的FXS 電路將模擬電話局端交換的功能,為電話提供電源并進(jìn)行振鈴,同時(shí)檢測(cè)環(huán)路電流。而FXO 電路則模擬電話功能,提供環(huán)路關(guān)閉功能并檢測(cè)來話振鈴。
(3)語音處理模塊
網(wǎng)關(guān)的語音處理模塊負(fù)責(zé)對(duì)PCM數(shù)字語音信號(hào)進(jìn)行壓縮和解壓縮。壓縮算法的標(biāo)準(zhǔn)包括G.711、G.723.1和G.729等。不同的算法壓縮比不相同,占用的帶寬也不同。壓縮算法能夠用硬件DSP實(shí)現(xiàn),也能夠用純軟件實(shí)現(xiàn)[1]。
(4)軟件控制摸塊
軟件控制模塊實(shí)現(xiàn)網(wǎng)關(guān)的協(xié)議棧處理和路由處理等功能。協(xié)議棧負(fù)責(zé)將壓縮后的數(shù)據(jù)流進(jìn)行封裝,加上IP協(xié)議包頭,形成可在VoIP網(wǎng)絡(luò)中傳輸?shù)腎P數(shù)據(jù)包?,F(xiàn)在VoIP的協(xié)議棧主要基于H.323和SIP兩種標(biāo)準(zhǔn)。協(xié)議棧將數(shù)據(jù)流打成IP數(shù)據(jù)包后,選擇適當(dāng)路由經(jīng)過以太網(wǎng)接口發(fā)送到VoIP網(wǎng)絡(luò)中。接收端網(wǎng)關(guān)接收到IP數(shù)據(jù)包后,將數(shù)據(jù)包解壓縮并將解壓縮后的PCM數(shù)字信號(hào)解碼,恢復(fù)原始語音信號(hào)[2]。
2 VOIP雙模語音網(wǎng)關(guān)硬件設(shè)計(jì)
VOIP雙模網(wǎng)關(guān)的硬件原理如圖2 所示。
2.1 MCU
本網(wǎng)關(guān)設(shè)計(jì)的核心采用IP2022處理器,它不但要完成各部件的協(xié)同工作,還要做大量的計(jì)算處理(例如DSP處理后的編碼數(shù)據(jù)打包通過網(wǎng)絡(luò)傳輸)還要將網(wǎng)絡(luò)傳來的語音數(shù)據(jù)解包后經(jīng)解碼處理送到話機(jī)。
IP2022是美國(guó)UBICOM推出的一顆功能強(qiáng)大的網(wǎng)絡(luò)通信處理器,采用RISC結(jié)構(gòu),帶有片上Flash程序存儲(chǔ)器,具有在線和離線編程調(diào)試功能及單字節(jié)時(shí)鐘周期精簡(jiǎn)指令集,用4階段并行流水線方式執(zhí)行指令,有極高的代碼效率和指令運(yùn)行速度,速度可達(dá)120 MIPS。其內(nèi)部已集成了Flash/RAM、模擬比較器、定時(shí)器等多種功能部件,可以在通用I/O口上實(shí)現(xiàn)USB、SPI等各種接口。與SX系列不同,IP2022能實(shí)現(xiàn)物理層接口及多種網(wǎng)絡(luò)協(xié)議[3],這主要是因?yàn)樗鼉?nèi)含2個(gè)全雙工串化器/解串器(Ser/Des)和4個(gè)線性反饋移位寄存器(LFSR)。IP2022以軟件模塊(ipModules)形式實(shí)現(xiàn)外設(shè)通信和控制功能,比傳統(tǒng)硬件具有更大的系統(tǒng)設(shè)計(jì)靈活性。該軟件模塊加上緩沖器管理技術(shù)所編寫的代碼,其大小只是用Linux實(shí)現(xiàn)的20%。IP2022還提供有TCP/IP網(wǎng)絡(luò)協(xié)議棧,并具有一系列完整的端到端連通方案所必需的附加軟件。核心SDK軟件包便于開發(fā)者用IP2022網(wǎng)絡(luò)處理器設(shè)計(jì)嵌入式Internet應(yīng)用。它包含了很多通用連接應(yīng)用軟件,如網(wǎng)絡(luò)服務(wù)器、以太網(wǎng)、文件管理及Flash更新。高度集成的模塊及高效設(shè)計(jì)使ipModules代碼小、功能強(qiáng)健、可配置、可擴(kuò)展。開發(fā)者也可按照指導(dǎo)方案利用API庫增加自己的程序模塊。
2.2 DSP
DSP主要完成音頻、視頻的編解碼工作,因此在選擇DSP部分時(shí),既要考慮滿足目前的基本需求(如會(huì)話功能),又要考慮今后的需要(如視頻要求、VOCIE EAMIL功能等)。所以本設(shè)計(jì)采用了VoicePump公司的VP120產(chǎn)品。該低功耗、高性能DSP-1xx系列混合數(shù)字信號(hào)處理器專為針對(duì)話音處理的低密度語音網(wǎng)關(guān)、VoIP 的IAD設(shè)備(綜合接入設(shè)備)而設(shè)計(jì)[4]。它通過主處理器靈活的接口協(xié)議,每個(gè)語音通道都可以配置多種語音編碼和話音應(yīng)用,再加上已經(jīng)固化在DPS 內(nèi)部ROM上的各種應(yīng)用軟件,可以將傳統(tǒng)模擬語音信息和基于包處理的系列主機(jī)作無縫連接。[!--empirenews.page--]
2.3 電話接口(FXS)
SLIC接口電路主要是模擬PSTN電壓電平。檢測(cè)電話掛機(jī)還是摘機(jī),并生成高達(dá)120 V的振鈴電壓,本設(shè)計(jì)采用英國(guó)Silver Telecom公司的帶有DC-DC變換的Ag1170 系列SLIC接口模塊。其網(wǎng)關(guān)連接示意圖如圖3所示。
2.4 用戶線接口(FXO)
FXO接口由兩部分組成:
(1)編解碼電路。這部分的功能和前面FXS中的編解碼功能完全一樣,也是由DSP芯片VP120提供服務(wù),并由主CPU根據(jù)線路實(shí)際情況進(jìn)行FXS和FXO功能切換,以便判定語音信號(hào)是走互聯(lián)網(wǎng)絡(luò)還是PSTN線路;
(2)數(shù)據(jù)存取裝置(DAA)。其重要作用是去除高電壓直流偏置,將PSTN環(huán)路關(guān)閉,從而僅傳送來自PSTN的模擬交流信號(hào)。本設(shè)計(jì)采用Clare的CPC 56XX系列產(chǎn)品作為DAA功能的設(shè)計(jì)。CPC 56XX系列產(chǎn)品號(hào)稱是為工業(yè)上首創(chuàng)的單封裝的DAA(數(shù)據(jù)存取裝置),它包括一個(gè)芯片內(nèi)的隔離勢(shì)壘(額定均方根值1 500 V), 這種DAA還提供正常的交流和直流電話線端接、二至四線混合功能、掛機(jī)和摘機(jī)檢測(cè)、呼叫人身份識(shí)別,半波和全波振鈴檢測(cè)電路,可支持大部分編解碼器和DSP器件。適合于機(jī)頂盒和電話應(yīng)用的這種芯片可取代磁變壓器和各式各樣的其他分立元件,從而減少占用板上空間和成本,在本網(wǎng)關(guān)的設(shè)計(jì)中采用的是Clare公司推出的32腳SoC封裝的CPC 5622A。
3 基于SIP協(xié)議的雙模網(wǎng)關(guān)軟件設(shè)計(jì)
3.1 SIP協(xié)議棧的開發(fā)
為了設(shè)備互通、網(wǎng)絡(luò)互連等,需要開發(fā)相應(yīng)的基于應(yīng)用層的SIP協(xié)議棧。目前開源(開放源代碼)的SIP協(xié)議棧中比較常用的有VOCAL與OSIP,它們都是比較成熟和可商業(yè)化的SIP協(xié)議棧,其特點(diǎn)如表1所示。
本設(shè)計(jì)采用Libosip2進(jìn)行程序開發(fā),它是一種 GNU oSIP庫,OSIP封裝較好,操作簡(jiǎn)單、可讀性較好,缺點(diǎn)是BUG較多,需調(diào)試時(shí)改進(jìn)。
3.2 網(wǎng)關(guān)應(yīng)用軟件設(shè)計(jì)方案
軟件部分主要由嵌入式操作系統(tǒng)和應(yīng)用層軟件組成,可完成協(xié)議棧處理、路由處理和其他控制功能,軟件方案層次結(jié)構(gòu)如圖4所示。
應(yīng)用層的軟件主要由SIP協(xié)議棧處理模塊、路由處理模塊和DSP控制模塊組成。SIP協(xié)議棧負(fù)責(zé)呼叫控制和信令、音頻處理和媒體實(shí)時(shí)傳輸?shù)裙δ?。本系統(tǒng)采用開放源代碼的OSIP協(xié)議棧作為參考,應(yīng)用層上的功能模塊都是基于該協(xié)議棧研發(fā)的[5]。
路由尋址模塊主要負(fù)責(zé)路由尋址和路由管理,確定目的網(wǎng)關(guān)的IP地址,并選擇最好路由將IP數(shù)據(jù)包經(jīng)過IP網(wǎng)絡(luò)傳送到目的網(wǎng)關(guān)。DSP控制模塊主要是在應(yīng)用程序中根據(jù)通話流程編寫相應(yīng)的控制程序來控制DSP120的操作。網(wǎng)管模塊提供了Web網(wǎng)管和CLI命令行界面,很容易對(duì)雙模網(wǎng)關(guān)進(jìn)行配置和維護(hù)[6]。
在SIP協(xié)議處理上直接采用OSIP所給出的函數(shù)調(diào)用,實(shí)現(xiàn)基本的SIP 協(xié)議功能,屏蔽了協(xié)議處理的內(nèi)部細(xì)節(jié)。VP120 DSP處理器直接采用所提供的函數(shù)庫,可實(shí)現(xiàn)對(duì)DSP 的初始化和編解碼算法, 語音編解碼類型包括G.723.1、G.729、G.711a和G.711u。網(wǎng)關(guān)軟件主程序處理流程如圖5所示,網(wǎng)關(guān)語音包數(shù)據(jù)處理流程如圖6所示。
本文設(shè)計(jì)的VoIP雙模語音網(wǎng)關(guān),其硬件利用高性能嵌入式微處理器IP2022和專用語音處理芯片DSP120為核心構(gòu)成,軟件采用Libosip2程序開發(fā)及開源SIP協(xié)議棧為主,通過測(cè)試證明了其可行性。隨著目前無線WiFi的流行,本方案也可以直接升級(jí)為WiFi應(yīng)用,通過采用IP2K系列所配備的無線開發(fā)套件,可以開發(fā)出適合802.11 a/b/g功能的無線網(wǎng)關(guān),在無線應(yīng)用領(lǐng)域,值得參考和借鑒。