IP電話的VoIP語(yǔ)音網(wǎng)關(guān)設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
近年來(lái),Internet得到了飛速發(fā)展和普及應(yīng)用,而作為其核心技術(shù)的IP協(xié)議體系在數(shù)據(jù)網(wǎng)絡(luò)架構(gòu)中的統(tǒng)治地位已得到了廣泛認(rèn)同。同時(shí),隨著基于IP技術(shù)上各種應(yīng)用技術(shù)的提出,尤其是VoIP技術(shù)的提出,使得數(shù)據(jù)網(wǎng)絡(luò)通信逐漸的融入了傳統(tǒng)的話音業(yè)務(wù)領(lǐng)域。
VoIP(Voice over IP)俗稱IP電話(Internet Protocol Phone),是利用IP網(wǎng)絡(luò)實(shí)現(xiàn)語(yǔ)音通信的一種先進(jìn)通信手段,是一種完全基于IP網(wǎng)絡(luò)的語(yǔ)音傳輸技術(shù)。它利用語(yǔ)音網(wǎng)關(guān),軟交換平臺(tái),網(wǎng)守等設(shè)備將模擬信號(hào)數(shù)字化,然后將數(shù)據(jù)壓縮成數(shù)據(jù)包,通過(guò)IP網(wǎng)絡(luò)傳輸?shù)秸Z(yǔ)音的目的地址。目的地址接收到數(shù)據(jù)包后,將數(shù)據(jù)重組,解壓縮后再還原成模擬信號(hào)。這樣,一次完整的通話過(guò)程就在IP網(wǎng)絡(luò)中實(shí)現(xiàn)了。本文將討論如何在嵌入式μClinux環(huán)境下設(shè)計(jì)出在IP網(wǎng)絡(luò)中承擔(dān)數(shù)據(jù)壓縮、解壓和傳輸?shù)戎匾δ艿脑O(shè)備——VoIP語(yǔ)音網(wǎng)關(guān)。
1 IP電話系統(tǒng)的基本組成
IP電話系統(tǒng)一般由三部份組成:電話(phone)、語(yǔ)音網(wǎng)關(guān)(gateway)和網(wǎng)守(gatekeeper),如圖1所示。
電話是指可以通過(guò)電話網(wǎng)或一線通(ISDN)連到本地網(wǎng)關(guān)的電話終端。
語(yǔ)音網(wǎng)關(guān)是指通過(guò)IP網(wǎng)絡(luò)提供電話之間完成話音通信的關(guān)鍵設(shè)備,即Internet網(wǎng)絡(luò)與電話網(wǎng)和一線通(ISDN)網(wǎng)之間的接口設(shè)備。它完成語(yǔ)音壓縮(將64 Kb/s的語(yǔ)音信號(hào)壓縮成低碼率的語(yǔ)音信號(hào))和尋址與呼叫控制,并具有IP網(wǎng)絡(luò)與電話(PSTN)或一線通(ISDN)互連的接口功能。
網(wǎng)守即網(wǎng)絡(luò)管理者,負(fù)責(zé)用戶注冊(cè)、計(jì)費(fèi)等管理功能.
2 VolP語(yǔ)音網(wǎng)關(guān)
IP電話系統(tǒng)設(shè)計(jì)的核心為VoIP語(yǔ)音網(wǎng)關(guān)。根據(jù)VoIP語(yǔ)音網(wǎng)關(guān)的功能需求以及市場(chǎng)上的成熟技術(shù),筆者采用“硬件+嵌入式操作系統(tǒng)+應(yīng)用層軟件”的系統(tǒng)架構(gòu)來(lái)設(shè)計(jì)VolP語(yǔ)音網(wǎng)關(guān)。
對(duì)于硬件平臺(tái),以VolP主芯片為核心附以必要的外圍設(shè)備。主芯片采用Texas Inslruments生產(chǎn)的TI TMS320VC549 DSP和Samsung公司ARM7TDMI核的雙內(nèi)核結(jié)構(gòu)。
VolP軟件部分分為兩層:嵌入式操作系統(tǒng)和應(yīng)用層軟件。利用開(kāi)放源代碼的實(shí)時(shí)操作系統(tǒng)μClinux作為嵌入式操作系統(tǒng),采用模塊化設(shè)計(jì),開(kāi)發(fā)平臺(tái)友好。根據(jù)功能需求,在應(yīng)用層軟件中包括語(yǔ)音包處理模塊、電話信令網(wǎng)關(guān)模塊、路由尋址模塊和網(wǎng)絡(luò)管理模塊。
2.1 硬件實(shí)現(xiàn)
VolP語(yǔ)音網(wǎng)關(guān)由主芯片、存儲(chǔ)器、以太網(wǎng)接口、音頻接口和I/0擴(kuò)展電路等幾部分組成,硬件框圖如圖2所示。
(1)主芯片
主芯片框圖如圖3所示。主芯片由TMS320VC549DSP和ARlM7TDMI雙內(nèi)核構(gòu)成。
ARM7TDMI內(nèi)核使用50 MHz主頻和單周期精簡(jiǎn)指令,內(nèi)建8 KB RAM、DMA控制器和中斷控制器,并支持各種總線擴(kuò)展。其內(nèi)部的SIM (System Integrated Module)單元集成了豐富的通用模塊,包括2個(gè)異步串口,2個(gè)32位的計(jì)數(shù)器和以太網(wǎng)控制器等。
TI公司的16位高速定點(diǎn)DSP TMS320VC549,其處理速度高達(dá)100MIPS且功能十分強(qiáng)大,可支持所有高壓縮/低時(shí)延編解碼(G.711、G.729、G.729a和G.723.1),并完全支持回聲抵消、語(yǔ)音狀態(tài)檢測(cè)、靜音壓縮、抖動(dòng)緩沖和舒適噪音產(chǎn)生等功能,保證統(tǒng)一、高質(zhì)量的語(yǔ)音交互。
本硬件設(shè)計(jì)采用雙內(nèi)核結(jié)構(gòu),使VoIP語(yǔ)音網(wǎng)關(guān)在功耗和應(yīng)用的復(fù)雜度之間建立了良好的平衡。采用雙內(nèi)核的優(yōu)勢(shì)如下:
① 提高語(yǔ)音處理的實(shí)時(shí)性,避免傳統(tǒng)單內(nèi)核設(shè)計(jì)功耗太大的缺點(diǎn)。若全部工作都由ARM7TDMI核來(lái)完成,負(fù)擔(dān)過(guò)重,實(shí)時(shí)性能受到影響,將會(huì)造成語(yǔ)音質(zhì)量下降,且限制了通信的會(huì)話路數(shù),不能滿足大量用戶通信的要求。現(xiàn)由DSP處理器完成實(shí)時(shí)的語(yǔ)音信號(hào)壓縮、DTMF信號(hào)的檢測(cè)與產(chǎn)生、回波消除等工作,既減輕了ARM核的負(fù)擔(dān),同時(shí)又提供了多個(gè)話路,降低了功耗,使網(wǎng)關(guān)為多用戶提供服務(wù)成為可能。
② 實(shí)現(xiàn)復(fù)雜的系統(tǒng)功能。采用32位ARM核作為控制管理中心,能穩(wěn)定的運(yùn)行嵌入式實(shí)時(shí)操作系統(tǒng),能支持各種網(wǎng)絡(luò)協(xié)議棧如TCP/IP,使語(yǔ)音數(shù)據(jù)能夠在網(wǎng)絡(luò)中有效地傳輸。
(2)存儲(chǔ)器
系統(tǒng)包括1片8 MB的Flash,用于存儲(chǔ)嵌入式實(shí)時(shí)操作系統(tǒng)內(nèi)核和應(yīng)用程序代碼的壓縮文件,還有1片512KB的SDRAM。系統(tǒng)啟動(dòng)時(shí),ARM核將Flash中的壓縮文件調(diào)入SDRAM進(jìn)行解壓,然后執(zhí)行。
(3)音頻解碼器
編解碼器芯片負(fù)責(zé)對(duì)DSP解壓縮后送來(lái)的PCM數(shù)據(jù)進(jìn)行解碼,并將濾波后的模擬語(yǔ)音信號(hào)送給用戶端;同時(shí),編解碼器芯片還負(fù)責(zé)將模擬語(yǔ)音信號(hào)進(jìn)行PCM編碼,然后送到DSP芯片進(jìn)行壓縮處理。在設(shè)計(jì)中,編解碼器芯片采用IDT公司的4通道PCM編解碼芯片IDT821034。該芯片具有可編程增益設(shè)置、主時(shí)鐘頻率為2.048MHz,最大支持128個(gè)可編程時(shí)隙、A律/μ律可選、內(nèi)置數(shù)字濾波器、串行控制接口和低功耗等特點(diǎn)。
(4)以太網(wǎng)控制器
采用由Realtek公司生產(chǎn)的以太網(wǎng)芯片,它具有10/100M自適應(yīng)收發(fā)功能,支持全雙工操作,符合802.3協(xié)議。由它負(fù)責(zé)處理有關(guān)以太網(wǎng)數(shù)據(jù)幀的發(fā)送和接收,包括曼徹斯特編碼、沖突檢測(cè)、幀頭的產(chǎn)生和檢測(cè)、CRC校驗(yàn)碼的生成和驗(yàn)證以及數(shù)據(jù)重發(fā)等。
(5)其他外圍
系統(tǒng)中還包括LCD液晶顯示、鍵盤、AC—DC電源等模塊。
2.2 軟件實(shí)現(xiàn)
圖4是軟件系統(tǒng)的總體設(shè)計(jì)和層次及模塊劃分的框圖。下面對(duì)各個(gè)層次和模塊進(jìn)行介紹。
2.2.1 嵌入式操作系統(tǒng)和驅(qū)動(dòng)程序的設(shè)計(jì)
嵌入式操作系統(tǒng)采用μClinux,包含F(xiàn)ile模塊、GUI模塊和NET模塊等。μClinux是針對(duì)無(wú)內(nèi)存管理單元處理器定制的Linux操作系統(tǒng),具有源代碼公開(kāi)、內(nèi)核可裁剪和易于移植等特點(diǎn)。本系統(tǒng)用C語(yǔ)言進(jìn)行開(kāi)發(fā),μClinux強(qiáng)大的應(yīng)用程序庫(kù)μCLibc對(duì)應(yīng)用軟件層的開(kāi)發(fā)提供了支持,節(jié)省了系統(tǒng)開(kāi)發(fā)的時(shí)間。File模塊是文件系統(tǒng)模塊。GUI模塊是一個(gè)圖形管理模塊,支持LCD和觸摸屏,用于開(kāi)發(fā)人機(jī)界面。NET模塊即網(wǎng)絡(luò)模塊,實(shí)現(xiàn)了TCP/IP協(xié)議棧,用于提供網(wǎng)絡(luò)語(yǔ)音通信的功能。
根據(jù)硬件平臺(tái)的要求,還需要開(kāi)發(fā)適應(yīng)硬件平臺(tái)的驅(qū)動(dòng)程序,包括BSP板級(jí)包,串口驅(qū)動(dòng)程序和以太網(wǎng)口驅(qū)動(dòng)程序。BSP板級(jí)包貫穿著硬件級(jí)、操作系統(tǒng)級(jí)和應(yīng)用程序級(jí)多層,與μClinux一起為應(yīng)用程序提供服務(wù)。BSP板級(jí)包的編寫是實(shí)現(xiàn)μClinux系統(tǒng)移植的關(guān)鍵。在BSP板級(jí)包上開(kāi)發(fā)和完成硬件初始化,中斷的處理和產(chǎn)生,硬件時(shí)鐘管理,本地和總線的內(nèi)存映射等功能。在串口驅(qū)動(dòng)設(shè)計(jì)中,實(shí)現(xiàn)了單字符發(fā)送、字符串發(fā)送、單字符讀取等基本功能,達(dá)到通過(guò)串口收發(fā)字符串的目的。網(wǎng)口驅(qū)動(dòng)相對(duì)簡(jiǎn)單,實(shí)現(xiàn)了芯片初始化、網(wǎng)絡(luò)包發(fā)送、網(wǎng)絡(luò)包接收和芯片復(fù)位等基本功能,達(dá)到通過(guò)網(wǎng)絡(luò)口發(fā)送和接收網(wǎng)絡(luò)數(shù)據(jù)包的目的。
2.2.2 應(yīng)用軟件模塊
應(yīng)用層的軟件由系統(tǒng)應(yīng)用層協(xié)議棧H.323和各個(gè)功能模塊組成。
系統(tǒng)的應(yīng)用層協(xié)議棧H.323實(shí)現(xiàn)通過(guò)VoIP網(wǎng)關(guān)實(shí)時(shí)傳送數(shù)據(jù)的功能。H.323通信協(xié)議棧負(fù)責(zé)IP電話中尋找被叫方、建立應(yīng)答、并且按照彼此的數(shù)據(jù)處理能力發(fā)送數(shù)據(jù),在網(wǎng)絡(luò)中進(jìn)行實(shí)時(shí)語(yǔ)音傳輸。應(yīng)用層協(xié)議棧H.323是系統(tǒng)應(yīng)用層軟件的基礎(chǔ),應(yīng)用層的軟件模塊在這個(gè)協(xié)議棧的基礎(chǔ)上進(jìn)行開(kāi)發(fā)。
應(yīng)用層軟件功能模塊包括語(yǔ)音包處理模塊,電話信令網(wǎng)關(guān)模塊,路由尋址模塊和網(wǎng)絡(luò)管理模塊。
語(yǔ)音包處理模塊主要是在數(shù)字信號(hào)處理器(DSP)芯片上運(yùn)行,可實(shí)現(xiàn)以下的功能。
① 語(yǔ)音的編碼及解碼。
②靜音檢測(cè)。通過(guò)對(duì)無(wú)話音時(shí)的噪聲進(jìn)行檢測(cè),從而判斷所接收的信號(hào)是否含有語(yǔ)音信號(hào),如果沒(méi)有檢測(cè)到語(yǔ)音信號(hào),將會(huì)反饋至“語(yǔ)音包處理器”,讓它發(fā)出一個(gè)含有“靜音”的信息包,從而最大限度節(jié)省通信帶寬。
③回音抵消。基于國(guó)際標(biāo)準(zhǔn)G.165/G.168實(shí)現(xiàn)語(yǔ)音通信中的回音抵消,以改善語(yǔ)音的通信質(zhì)量。
④自適應(yīng)語(yǔ)音恢復(fù)。通過(guò)一個(gè)緩沖器,對(duì)接收到的延后語(yǔ)音包信號(hào)進(jìn)行語(yǔ)音恢復(fù),從而達(dá)到抗“延時(shí)”、抗“時(shí)延抖動(dòng)”的目的;并且可以“自適應(yīng)”地調(diào)節(jié)時(shí)延值,達(dá)到語(yǔ)音傳輸時(shí)延最小的目的,改善語(yǔ)音通信質(zhì)量。同時(shí)支持“內(nèi)插”算法,即當(dāng)語(yǔ)音包在傳輸過(guò)程中丟失時(shí),能夠利用“內(nèi)插”技術(shù)進(jìn)行恢復(fù)。
⑤語(yǔ)音包處理。對(duì)經(jīng)過(guò)編碼后的語(yǔ)音信號(hào)進(jìn)行“語(yǔ)音打包”處理,或者是對(duì)接收到的語(yǔ)音包進(jìn)行“拆包”處理,從而完成封裝協(xié)議的處理。
電話信令網(wǎng)關(guān)模塊主要實(shí)現(xiàn)信令轉(zhuǎn)換的功能。VoIP語(yǔ)音網(wǎng)關(guān)提供了與公共電話網(wǎng)(PSTN)的接口,因此VoIP語(yǔ)音網(wǎng)關(guān)要實(shí)現(xiàn)的一個(gè)重要功能就是信令的解釋和轉(zhuǎn)換,即把來(lái)自公共電話網(wǎng)(PSTN)的呼叫控制信令翻譯成IP電話網(wǎng)內(nèi)部可以識(shí)別的信令格式,然后通過(guò)IP網(wǎng)絡(luò)進(jìn)行傳輸。
路由尋址模塊主要完成路由尋址及路由管理的功能。它將各個(gè)地區(qū)的電話區(qū)號(hào)映射為相應(yīng)網(wǎng)關(guān)的IP地址,存放在數(shù)據(jù)庫(kù)中,當(dāng)在用戶撥打長(zhǎng)途電話時(shí),網(wǎng)關(guān)根據(jù)電話區(qū)號(hào)的數(shù)據(jù)庫(kù)資料,確立相應(yīng)網(wǎng)關(guān)的IP地址,并將此IP地址加入到IP數(shù)據(jù)包中,同時(shí)選擇出最佳的路由以減少傳輸延遲,把IP數(shù)據(jù)包經(jīng)過(guò)Internet傳送到目的網(wǎng)關(guān)。
網(wǎng)絡(luò)管理模塊(SNMP/WEB/CLI)提供一個(gè)語(yǔ)音管理的接口,實(shí)現(xiàn)對(duì)VoIP語(yǔ)音網(wǎng)關(guān)的配置和維護(hù)。網(wǎng)絡(luò)管理信息是基于國(guó)際標(biāo)準(zhǔn)ASN.1和SNMP(簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議)的要求建立的,針對(duì)系統(tǒng)開(kāi)發(fā)了三種模式管理:基于WEB的管理,基于SNMP(簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議)的管理和基于命令行的管理。這使用戶對(duì)VoIP語(yǔ)音網(wǎng)關(guān)的配置和維護(hù)更加簡(jiǎn)單和有效。
結(jié) 語(yǔ)
本文分析了基于嵌入式VoIP語(yǔ)音網(wǎng)關(guān)系統(tǒng)的體系結(jié)構(gòu),并分析了系統(tǒng)軟、硬件模塊結(jié)構(gòu),利用了以太網(wǎng)協(xié)議豐富和開(kāi)放性強(qiáng)的特點(diǎn),采用TCP和H.323協(xié)議設(shè)計(jì),充分滿足了實(shí)際應(yīng)用的需求。目前,VoIP設(shè)備正從基于PC的初級(jí)產(chǎn)品發(fā)展為大規(guī)模、高可靠性的、高性能的電信級(jí)網(wǎng)絡(luò)運(yùn)營(yíng)設(shè)備。在技術(shù)上,綜合現(xiàn)有的電話網(wǎng)信令技術(shù),可將話音、數(shù)據(jù)、傳真以及多媒體融合到一個(gè)統(tǒng)一的網(wǎng)絡(luò)之中。IP電話在降低網(wǎng)絡(luò)基礎(chǔ)設(shè)施成本的同時(shí),為用戶提供了極其豐富的新業(yè)務(wù)功能。