《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > 基于ARM的局域網IP電話設計(1)
基于ARM的局域網IP電話設計(1)
王前 黃勇 史宏逵
摘要: 前言由于計算機網絡技術發(fā)展與更新比PBX快,設備價格降幅大,建立一個以Internet(或Intranet)為基礎的IP電話網絡,以替代傳統(tǒng)電話設備系統(tǒng)成為企業(yè)的目標
Abstract:
Key words :

前言

由于計算機網絡技術發(fā)展與更新比PBX快,設備價格降幅大,建立一個以Internet(或Intranet)為基礎的IP電話網絡,以替代傳統(tǒng)電話設備系統(tǒng)成為企業(yè)的目標。

局域網IP電話

局域網IP電話使用統(tǒng)一的網絡通信設備和布線來傳輸話音和數據。 在傳統(tǒng)的PBX (專用小交換機)系統(tǒng)中,話音呼叫通過與辦公PBX連接的一系列標準話音線路進入辦公室,即通過一種專用設備在標準的電話配線上接收和疏導話音業(yè)務量。然而在LAN電話話音網絡中,話音呼叫通過基于IP的PBX進行接收和疏導,而這種IP PBX是與現有的數據網絡連接的。IPPBX可以是一種獨立的解決方案,也可以分解為幾種分散的裝置。具體功能框圖如圖1所示。

圖1 局域網IP電話功能模塊圖

該IP電話的主要優(yōu)點:

該IP電話的主要優(yōu)點:

  可方便的移動和增加終端設備;

  支持多媒體終端;

  有利于發(fā)展計算機電話集成技術;

  硬件平臺

通常硬件的基本設計要求是:高密度、低功耗和低成本。而VoIP的許多性能都對應特定的應用需求,諸如:(1)系統(tǒng)分割,包括分組數據包集合和路由;(2)定義產品功能的軟件性能;(3)滿足高可用性的網絡管理能力。

LAN電話產品工作在純IP方式下,所以話機在接入廣域網后,在網絡管理方面應該是兼容的。本方案的VoIP話機是一種網關下移的終端產品,無需通過網關就可將此設備直接接入以太網中,配置好相關的地址信息就可以使用。 它的開發(fā)基于Atmel公司的AT75C220開發(fā)板。AT75C220是專為各種因特網應用而設計的高性能處理器芯片。它的核心部件-ARM7TDMI微處理器運行能力為40MIPS,專門用于話音處理的OakDSPCore協處理器(圖2中的話音處理芯片),運行能力可達60MIPS.兩者之間信息的交互采用高效的雙端口mailbox機制。這就決定了AT75C220能綜合通用CPU的控制功能和專用CPU的信息處理功能,提高了系統(tǒng)的集成度,同時ARM處理器的操作指令比較簡單,降低了開發(fā)的復雜度。

AT75C220開發(fā)板除了具備用于連接計算機的標準串行接口和連接電話手柄的RJ11接口外,還有兩個標準RJ45以太網接口用于連接網守。ARM7TDMI核心處理器控制整個VoIP話機的運行,并提供通用I/O接口用于連接撥號鍵盤、液晶顯示器和振鈴電路。AT75C220的結構框圖如圖2所示。

圖2 AT75C220的結構框圖

開發(fā)板上裝有存儲應用程序的閃存(flash)。計算機利用超級終端程序通過開發(fā)板上的串行接口可以與AT75C220芯片進行信息交互,實現對flash的應用程序編程和其它軟件管理功能。開發(fā)AT75C220應用軟件的PC機必須啟動運行siap-mClinux操作系統(tǒng)。應用程序開發(fā)完畢后,通過220software set提供的工具將包含應用程序及操作系統(tǒng)內核的img文件下載到220開發(fā)板上的flash中,最終完成系統(tǒng)的開發(fā)。

VoIP話機的構造如圖3所示。其用戶接口部分與普通話機無異,顯示器用來顯示相關的信息,如發(fā)起呼叫時所撥的號碼、來電顯示等。此外,VoIP話機可以由串行口與個人數字助理(PDA)設備相連,實現軟件升級、自動撥號等功能。話音接口的功能是實現話音模擬信號與標準64Kbit/s PCM信號之間的相互轉換。網絡接口負責話音分組的發(fā)送和接收以及各種呼叫信令的交換。VoIP話機通過RJ45插頭與局域網上的網守相連。

 圖3 IP話機構造圖

軟件實現

該實現依賴于網絡協議棧和實時操作系統(tǒng)(RTOS)。多數應用系統(tǒng)需要RTOS以便同時處理多個流程和呼叫。 采用的RTOS應具有以下特點以滿足通信協議的復雜性:系統(tǒng)內核小;中斷處理時間短;連續(xù)運行時間長;多個毫秒級或微秒級定時器的處理能力。ARM-mClinux是非常優(yōu)秀的嵌入式實時操作系統(tǒng),它提供了多種用于實時系統(tǒng)開發(fā)、調試、和運行的功能,如多任務機制、內核可裁剪、網絡功能、實存儲器管理策略等。同時,Linux的內核源代碼是完全公開的,這對降低開發(fā)成本、提高軟件開發(fā)的復用度等方面無疑是十分有利的。 [page]  對于網絡協議棧,本方案采用標準的H.323協議棧,以便與公網進行互連。從TCP/IP的分層觀點來看,H.323是一個應用層協議族,它包含了適用于各種媒體通信和信令控制的協議,建立的基礎是TCP或者UDP協議。根據實際的使用需求,本文重點討論的協議有語音編碼方面的G.723.1、G.711等和呼叫控制信令H.225和H.245等。在CPU的正常設計能力下,系統(tǒng)所有的進程將會阻塞在各自的消息隊列中,只有處于最低的IDLE進程處于運行狀態(tài),消息隊列中消息總數處于比較低的數量水平。增加進程可能要增加共用的數據區(qū)和內部消息,相應的還要引入復雜的管理機制。

基于上述軟件要求,該VoIP話機要能與符合H.323標準的網關和網守互通,并實現VoIP話機與VoIP話機及VoIP話機與網關所帶的普通話機之間的話音通信功能。此外,VoIP話機還應具備一定的錄音與重放能力。

對于IP話機而言,主要軟件實現在話機和網守的通信以及話機之間的互通,其呼叫流程如圖4.

 圖4 H.323呼叫信令流程

上述過程的通道實現機制是TCP或UDP.IP話機在成功登錄到網守后,其接續(xù)過程完全類似于普通話機之間的接續(xù),摘機后向網守發(fā)“呼叫請求”(udp),網守收到后發(fā)“是否運行主叫撥號”(tcp),如果不允許的話,提示掛機;若允許的話,主叫在收到撥號音后開始撥號,向網守送“撥號信息”報文(tcp),網守向主叫發(fā)送“被叫空閑信息”報文(tcp),然后是分別向主叫和被叫送回鈴音和振鈴音。等待被叫摘機后,被叫向網守送“被叫摘機”報文(udp),網守向被叫送“停止振鈴”(tcp), 網守向主叫送“被叫摘機”報文(tcp),進入通話(udp)狀態(tài)。有關話音的處理要涉及到220話音處理模塊。

網關向網守發(fā)送的報文:不管是高層用戶端向網守發(fā)送的登錄報文,還是IP話機或交換機側向網守發(fā)送的呼叫處理報文,都會先放置在名為mqRecvBottom的消息隊列中,然后根據報文所采用的傳送方式發(fā)往以下三個隊列:信令的TCP傳送_mqSendTCP;信令的UDP傳送_mqSendUDP;話音傳送_mqSendData(可以通過網守轉發(fā),也可以直接在兩個網關之間發(fā)送),然后再通過socket發(fā)送出去。

幾個關鍵問題的解決

摘掛機檢測與號盤號碼接收

AT75C220提供若干用戶自定義的通用I/O接口。只需通過一定的硬件連接和軟件編程,就可以實現摘掛機狀態(tài)的檢測與用戶所撥號碼的接收。

來話振鈴

AT75C220內部寄存器中有專門指示有無來話的比特位。應用軟件定期檢測該比特,一旦發(fā)現有來話,立即通過某一個事先編程確定的通用I/O口送出振鈴指示信號,該信號可作為振鈴電路的使能信號。

話音處理模塊

話音處理的功能均由ARM7TDMI控制OakDSPCore共同完成。

在進行IP通話時,將模擬前端電路送來的64Kbit/s PCM數字話音信號進行壓縮,送至網絡接口模塊;同時將網絡接口模塊送來的壓縮話音信號進行解壓,形成64Kbit/s PCM數字話音信號送至模擬前端。

通過對OakDSPCore的靈活編程,VoIP話機可以方便地實現語音留言的錄音和回放功能。

在用戶從號盤撥號時,通過編程啟動OakDSPCore的DTMF信號發(fā)生器功能,在用戶聽筒里產生相應的雙音多頻信號。如果需要,該DTMF信號還可以象話音信號一樣經壓縮編碼后發(fā)送出去。

話音壓縮和解壓采用G.723.1算法。為了執(zhí)行有效的語音壓縮,必須考慮很多重要的因素。首先,當所有通道都工作時,必須確保性能沒有任何下降。數據包必須是可配置的,以確保最大的靈活性。此外,本課題采用的G.723.1算法采用了話音激活檢測技術,VAD技術是自適應增益控制的基礎,能進一步實現帶寬壓縮功能,可以和自適應噪音發(fā)生器配套在一起使用。VAD技術使發(fā)送端能夠檢測本地發(fā)聲的間隙并在此期間不再發(fā)送完整的話音幀,而代之以比特量更少的靜態(tài)插入描述幀,此幀僅含有解碼器輸入端所需產生噪音的參數,使接收端據此產生適當的背景噪音,從而讓通話效果接近真實的條件,進一步降低編碼速率。VAD門限值的確定是準確判斷有聲/無聲的關鍵因子。比如長時間的連續(xù)講話會升高背景噪聲的估計值,以及相應的門限,從而使得緊接著發(fā)生的低幅值的講話未被檢測到。一個解決辦法是當檢測到話音時改變低通濾波器的截止頻率,也就是在有聲/無聲時采用了不同的方法估計噪聲能量。

話音質量網絡延時和抖動是影響語音質量的關鍵因素。打包也是影響時延的重要因素,打包的實時性和打包效率是一對矛盾,聚集多少信息量再打包與帶寬緊密關聯,必須找到一個恰當的門限。“抖動”是分組交換的特有現象。消除抖動的方法是接收方采用“抖動緩存器”來彌補分組網絡的不可靠。此緩存器可以是一個動態(tài)隊列,接收方根據RTP時間戳來確定網絡的流量狀況,從而適時的改變緩存器的大小。具體實現時可建立一個環(huán)形隊列指針表來管理占用的緩存區(qū)。若要簡單實現的話可以設定一個固定數目的數組,然后標識幾個標志位進行管理控制即可。此外,回波抵消也是重要方面之一,好的回波對消器要具有較短的收斂時間和很小的殘留回波,可靠地檢測重音,且能處理背景噪聲和窄帶信號。本課題中運用了DSP中的G.165算法最大限度的消除話音回聲。

結語

局域網IP電話作為一種新興通信終端產品,有著很大的發(fā)展空間,目前已出現多種樣品形式,但總的趨勢是:硬件簡單、集成度高,軟件的實時性、可靠性好,同時還需要支持多種業(yè)務類型。文中所提出的設計方案較好的把握了這一趨勢。該設備既能對用戶保持傳統(tǒng)電話的操作流程,又能與廣域網進行無縫對接,大大降低了通信成本,具有很強的實用性。

此內容為AET網站原創(chuàng),未經授權禁止轉載。