基于A(yíng)RM的局域網(wǎng)IP電話(huà)設計
摘 要: 本文從應用角度提出了一種新的局域網(wǎng)IP電話(huà)的軟硬件設計方案,即以AT75C220開(kāi)發(fā)板作為硬件平臺,在mClinux操作系統下采用H.323協(xié)議棧開(kāi)發(fā)局域網(wǎng)IP電話(huà)終端,并對實(shí)現中的關(guān)鍵問(wèn)題列舉了一些高效的處理方法。
關(guān)鍵詞: IP電話(huà);網(wǎng)關(guān);實(shí)時(shí)操作系統;高級精簡(jiǎn)指令集計算機;
前言
由于計算機網(wǎng)絡(luò )技術(shù)發(fā)展與更新比PBX快,設備價(jià)格降幅大,建立一個(gè)以Internet(或Intranet)為基礎的IP電話(huà)網(wǎng)絡(luò ),以替代傳統電話(huà)設備系統成為企業(yè)的目標。
局域網(wǎng)IP電話(huà)
局域網(wǎng)IP電話(huà)使用統一的網(wǎng)絡(luò )通信設備和布線(xiàn)來(lái)傳輸話(huà)音和數據。 在傳統的PBX (專(zhuān)用小交換機)系統中,話(huà)音呼叫通過(guò)與辦公PBX連接的一系列標準話(huà)音線(xiàn)路進(jìn)入辦公室,即通過(guò)一種專(zhuān)用設備在標準的電話(huà)配線(xiàn)上接收和疏導話(huà)音業(yè)務(wù)量。然而在LAN電話(huà)話(huà)音網(wǎng)絡(luò )中,話(huà)音呼叫通過(guò)基于IP的PBX進(jìn)行接收和疏導,而這種IP PBX是與現有的數據網(wǎng)絡(luò )連接的。IPPBX可以是一種獨立的解決方案,也可以分解為幾種分散的裝置。具體功能框圖如圖1所示。
該IP電話(huà)的主要優(yōu)點(diǎn):
?可方便的移動(dòng)和增加終端設備;
?支持多媒體終端;
?有利于發(fā)展計算機電話(huà)集成技術(shù);
圖1 局域網(wǎng)IP電話(huà)功能模塊圖
圖2 AT75C220的結構框圖
圖3 IP話(huà)機構造圖
硬件平臺
通常硬件的基本設計要求是:高密度、低功耗和低成本。而VoIP的許多性能都對應特定的應用需求,諸如:(1)系統分割,包括分組數據包集合和路由;(2)定義產(chǎn)品功能的軟件性能;(3)滿(mǎn)足高可用性的網(wǎng)絡(luò )管理能力。
LAN電話(huà)產(chǎn)品工作在純IP方式下,所以話(huà)機在接入廣域網(wǎng)后,在網(wǎng)絡(luò )管理方面應該是兼容的。本方案的VoIP話(huà)機是一種網(wǎng)關(guān)下移的終端產(chǎn)品,無(wú)需通過(guò)網(wǎng)關(guān)就可將此設備直接接入以太網(wǎng)中,配置好相關(guān)的地址信息就可以使用。 它的開(kāi)發(fā)基于A(yíng)tmel公司的AT75C220開(kāi)發(fā)板。AT75C220是專(zhuān)為各種因特網(wǎng)應用而設計的高性能處理器芯片。它的核心部件—ARM7TDMI微處理器運行能力為40MIPS,專(zhuān)門(mén)用于話(huà)音處理的OakDSPCore協(xié)處理器(圖2中的話(huà)音處理芯片),運行能力可達60MIPS。兩者之間信息的交互采用高效的雙端口mailbox機制。這就決定了AT75C220能綜合通用CPU的控制功能和專(zhuān)用CPU的信息處理功能,提高了系統的集成度,同時(shí)ARM處理器的操作指令比較簡(jiǎn)單,降低了開(kāi)發(fā)的復雜度。
AT75C220開(kāi)發(fā)板除了具備用于連接計算機的標準串行接口和連接電話(huà)手柄的RJ11接口外,還有兩個(gè)標準RJ45以太網(wǎng)接口用于連接網(wǎng)守。ARM7TDMI核心處理器控制整個(gè)VoIP話(huà)機的運行,并提供通用I/O接口用于連接撥號鍵盤(pán)、液晶顯示器和振鈴電路。AT75C220的結構框圖如圖2所示。
AT75C220開(kāi)發(fā)板上裝有存儲應用程序的閃存(flash)。計算機利用超級終端程序通過(guò)開(kāi)發(fā)板上的串行接口可以與AT75C220芯片進(jìn)行信息交互,實(shí)現對flash的應用程序編程和其它軟件管理功能。開(kāi)發(fā)AT75C220應用軟件的PC機必須啟動(dòng)運行siap-mClinux操作系統。應用程序開(kāi)發(fā)完畢后,通過(guò)220software set提供的工具將包含應用程序及操作系統內核的img文件下載到220開(kāi)發(fā)板上的flash中,最終完成系統的開(kāi)發(fā)。
VoIP話(huà)機的構造如圖3所示。其用戶(hù)接口部分與普通話(huà)機無(wú)異,顯示器用來(lái)顯示相關(guān)的信息,如發(fā)起呼叫時(shí)所撥的號碼、來(lái)電顯示等。此外,VoIP話(huà)機可以由串行口與個(gè)人數字助理(PDA)設備相連,實(shí)現軟件升級、自動(dòng)撥號等功能。話(huà)音接口的功能是實(shí)現話(huà)音模擬信號與標準64Kbit/s PCM信號之間的相互轉換。網(wǎng)絡(luò )接口負責話(huà)音分組的發(fā)送和接收以及各種呼叫信令的交換。VoIP話(huà)機通過(guò)RJ45插頭與局域網(wǎng)上的網(wǎng)守相連。
圖4 H.323呼叫信令流程
軟件實(shí)現
該實(shí)現依賴(lài)于網(wǎng)絡(luò )協(xié)議棧和實(shí)時(shí)操作系統(RTOS)。多數應用系統需要RTOS以便同時(shí)處理多個(gè)流程和呼叫。 采用的RTOS應具有以下特點(diǎn)以滿(mǎn)足通信協(xié)議的復雜性:系統內核??;中斷處理時(shí)間短;連續運行時(shí)間長(cháng);多個(gè)毫秒級或微秒級定時(shí)器的處理能力。ARM-mClinux是非常優(yōu)秀的嵌入式實(shí)時(shí)操作系統,它提供了多種用于實(shí)時(shí)系統開(kāi)發(fā)、調試、和運行的功能,如多任務(wù)機制、內核可裁剪、網(wǎng)絡(luò )功能、實(shí)存儲器管理策略等。同時(shí),Linux的內核源代碼是完全公開(kāi)的,這對降低開(kāi)發(fā)成本、提高軟件開(kāi)發(fā)的復用度等方面無(wú)疑是十分有利的。
對于網(wǎng)絡(luò )協(xié)議棧,本方案采用標準的H.323協(xié)議棧,以便與公網(wǎng)進(jìn)行互連。從TCP/IP的分層觀(guān)點(diǎn)來(lái)看,H.323是一個(gè)應用層協(xié)議族,它包含了適用于各種媒體通信和信令控制的協(xié)議,建立的基礎是TCP或者UDP協(xié)議。根據實(shí)際的使用需求,本文重點(diǎn)討論的協(xié)議有語(yǔ)音編碼方面的G.723.1、G.711等和呼叫控制信令H.225和H.245等。在CPU的正常設計能力下,系統所有的進(jìn)程將會(huì )阻塞在各自的消息隊列中,只有處于最低的IDLE進(jìn)程處于運行狀態(tài),消息隊列中消息總數處于比較低的數量水平。增加進(jìn)程可能要增加共用的數據區和內部消息,相應的還要引入復雜的管理機制。
基于上述軟件要求,該VoIP話(huà)機要能與符合H.323標準的網(wǎng)關(guān)和網(wǎng)守互通,并實(shí)現VoIP話(huà)機與VoIP話(huà)機及VoIP話(huà)機與網(wǎng)關(guān)所帶的普通話(huà)機之間的話(huà)音通信功能。此外,VoIP話(huà)機還應具備一定的錄音與重放能力。
對于IP話(huà)機而言,主要軟件實(shí)現在話(huà)機和網(wǎng)守的通信以及話(huà)機之間的互通,其呼叫流程如圖4。
上述過(guò)程的通道實(shí)現機制是TCP或UDP。IP話(huà)機在成功登錄到網(wǎng)守后,其接續過(guò)程完全類(lèi)似于普通話(huà)機之間的接續,摘機后向網(wǎng)守發(fā)“呼叫請求”(udp),網(wǎng)守收到后發(fā)“是否運行主叫撥號”(tcp),如果不允許的話(huà),提示掛機;若允許的話(huà),主叫在收到撥號音后開(kāi)始撥號,向網(wǎng)守送“撥號信息”報文(tcp),網(wǎng)守向主叫發(fā)送“被叫空閑信息”報文(tcp),然后是分別向主叫和被叫送回鈴音和振鈴音。等待被叫摘機后,被叫向網(wǎng)守送“被叫摘機”報文(udp),網(wǎng)守向被叫送“停止振鈴”(tcp), 網(wǎng)守向主叫送“被叫摘機”報文(tcp),進(jìn)入通話(huà)(udp)狀態(tài)。有關(guān)話(huà)音的處理要涉及到220話(huà)音處理模塊。
網(wǎng)關(guān)向網(wǎng)守發(fā)送的報文:不管是高層用戶(hù)端向網(wǎng)守發(fā)送的登錄報文,還是IP話(huà)機或交換機側向網(wǎng)守發(fā)送的呼叫處理報文,都會(huì )先放置在名為mqRecvBottom的消息隊列中,然后根據報文所采用的傳送方式發(fā)往以下三個(gè)隊列:信令的TCP傳送_mqSendTCP;信令的UDP傳送_mqSendUDP;話(huà)音傳送_mqSendData(可以通過(guò)網(wǎng)守轉發(fā),也可以直接在兩個(gè)網(wǎng)關(guān)之間發(fā)送),然后再通過(guò)socket發(fā)送出去。
幾個(gè)關(guān)鍵問(wèn)題的解決
摘掛機檢測與號盤(pán)號碼接收
AT75C220提供若干用戶(hù)自定義的通用I/O接口。只需通過(guò)一定的硬件連接和軟件編程,就可以實(shí)現摘掛機狀態(tài)的檢測與用戶(hù)所撥號碼的接收。
來(lái)話(huà)振鈴
AT75C220內部寄存器中有專(zhuān)門(mén)指示有無(wú)來(lái)話(huà)的比特位。應用軟件定期檢測該比特,一旦發(fā)現有來(lái)話(huà),立即通過(guò)某一個(gè)事先編程確定的通用I/O口送出振鈴指示信號,該信號可作為振鈴電路的使能信號。
話(huà)音處理模塊
話(huà)音處理的功能均由ARM7TDMI控制OakDSPCore共同完成。
在進(jìn)行IP通話(huà)時(shí),將模擬前端電路送來(lái)的64Kbit/s PCM數字話(huà)音信號進(jìn)行壓縮,送至網(wǎng)絡(luò )接口模塊;同時(shí)將網(wǎng)絡(luò )接口模塊送來(lái)的壓縮話(huà)音信號進(jìn)行解壓,形成64Kbit/s PCM數字話(huà)音信號送至模擬前端。
通過(guò)對OakDSPCore的靈活編程,VoIP話(huà)機可以方便地實(shí)現語(yǔ)音留言的錄音和回放功能。
在用戶(hù)從號盤(pán)撥號時(shí),通過(guò)編程啟動(dòng)OakDSPCore的DTMF信號發(fā)生器功能,在用戶(hù)聽(tīng)筒里產(chǎn)生相應的雙音多頻信號。如果需要,該DTMF信號還可以象話(huà)音信號一樣經(jīng)壓縮編碼后發(fā)送出去。
話(huà)音壓縮和解壓采用G.723.1算法。為了執行有效的語(yǔ)音壓縮,必須考慮很多重要的因素。首先,當所有通道都工作時(shí),必須確保性能沒(méi)有任何下降。數據包必須是可配置的,以確保最大的靈活性。此外,本課題采用的G.723.1算法采用了話(huà)音激活檢測技術(shù),VAD技術(shù)是自適應增益控制的基礎,能進(jìn)一步實(shí)現帶寬壓縮功能,可以和自適應噪音發(fā)生器配套在一起使用。VAD技術(shù)使發(fā)送端能夠檢測本地發(fā)聲的間隙并在此期間不再發(fā)送完整的話(huà)音幀,而代之以比特量更少的靜態(tài)插入描述幀,此幀僅含有解碼器輸入端所需產(chǎn)生噪音的參數,使接收端據此產(chǎn)生適當的背景噪音,從而讓通話(huà)效果接近真實(shí)的條件,進(jìn)一步降低編碼速率。VAD門(mén)限值的確定是準確判斷有聲/無(wú)聲的關(guān)鍵因子。比如長(cháng)時(shí)間的連續講話(huà)會(huì )升高背景噪聲的估計值,以及相應的門(mén)限,從而使得緊接著(zhù)發(fā)生的低幅值的講話(huà)未被檢測到。一個(gè)解決辦法是當檢測到話(huà)音時(shí)改變低通濾波器的截止頻率,也就是在有聲/無(wú)聲時(shí)采用了不同的方法估計噪聲能量。
話(huà)音質(zhì)量
網(wǎng)絡(luò )延時(shí)和抖動(dòng)是影響語(yǔ)音質(zhì)量的關(guān)鍵因素。打包也是影響時(shí)延的重要因素,打包的實(shí)時(shí)性和打包效率是一對矛盾,聚集多少信息量再打包與帶寬緊密關(guān)聯(lián),必須找到一個(gè)恰當的門(mén)限?!岸秳?dòng)”是分組交換的特有現象。消除抖動(dòng)的方法是接收方采用“抖動(dòng)緩存器"來(lái)彌補分組網(wǎng)絡(luò )的不可靠。此緩存器可以是一個(gè)動(dòng)態(tài)隊列,接收方根據RTP時(shí)間戳來(lái)確定網(wǎng)絡(luò )的流量狀況,從而適時(shí)的改變緩存器的大小。具體實(shí)現時(shí)可建立一個(gè)環(huán)形隊列指針表來(lái)管理占用的緩存區。若要簡(jiǎn)單實(shí)現的話(huà)可以設定一個(gè)固定數目的數組,然后標識幾個(gè)標志位進(jìn)行管理控制即可。此外,回波抵消也是重要方面之一,好的回波對消器要具有較短的收斂時(shí)間和很小的殘留回波,可靠地檢測重音,且能處理背景噪聲和窄帶信號。本課題中運用了DSP中的G.165算法最大限度的消除話(huà)音回聲。
結語(yǔ)
局域網(wǎng)IP電話(huà)作為一種新興通信終端產(chǎn)品,有著(zhù)很大的發(fā)展空間,目前已出現多種樣品形式,但總的趨勢是:硬件簡(jiǎn)單、集成度高,軟件的實(shí)時(shí)性、可靠性好,同時(shí)還需要支持多種業(yè)務(wù)類(lèi)型。文中所提出的設計方案較好的把握了這一趨勢。該設備既能對用戶(hù)保持傳統電話(huà)的操作流程,又能與廣域網(wǎng)進(jìn)行無(wú)縫對接,大大降低了通信成本,具有很強的實(shí)用性?!?/p>
參考文獻
1 Oliver Hersent.David Gurle,Jean-Pierre Petit. IP電話(huà)----基于分組的多媒體通信系統[M].北京:人民郵電出版社.2000
2 苗蘭波.馮志勇.呂廷杰. IP電話(huà)網(wǎng)絡(luò )技術(shù)[M]. 北京:電子工業(yè)出版社.2001
3 Marcus Goncalves. IP網(wǎng)絡(luò )語(yǔ)音技術(shù)[M]. 北京:機械工業(yè)出版社.1999
4 ITU-T“ITU-T Recommendation H.323.Draft H.323v4”.2001
5 陳莉君.Linux操作系統內核分析[M].北京:人民郵電出版社.2000
linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)
linux相關(guān)文章:linux教程
交換機相關(guān)文章:交換機工作原理
低通濾波器相關(guān)文章:低通濾波器原理
評論