摘 要:介紹以ARM9 (S3C2410)微處理器為核心的基于SIP協(xié)議的IP電話終端。從技術(shù)的角度分析IP電話的發(fā)展歷程并在此基礎(chǔ)上提出了一種獨立式IP電話設(shè)計方案,采用在ARM9 (S3C2410)微處理器上移植μC/OS-Ⅱ操作系統(tǒng)完成多任務(wù)管理,通過設(shè)計的硬件平臺和軟件系統(tǒng),使用一個RJ-45以太網(wǎng)接口直接連接Internet,實現(xiàn)和其他IP電話的通話。
關(guān)鍵詞:IP電話;SIP協(xié)議;ARM9;μC/OS-Ⅱ
中圖分類號:TN919 文獻標(biāo)識碼:A
文章編號:1004-373X(2008)11-176-03
Research of IP Phone Based on Internet
JIANG Lai,WANG Renbo
(Department of Electronic Engineering and Automation,East China Institute of Technology,F(xiàn)uzhou,344000,China)
Abstract:This paper introduces an IP phone terminal based on ARM9(S3C2410) microprocessor using SIP protocol. The angle from the technology analyses development process of IP phone is presented,then a detached IP phone is put forward,transplanting embedded real-time operating system μC/OS-Ⅱ on ARM9 (S3C2410) microprocessor accomplishing the multitasking management. By the hardware platform and software system design,using a RJ-45 ether net interface,it can access Internet directly and communication with others IP phone.
Keywords:IP phone;SIP protocol;ARM9;μC/OS-Ⅱ
收稿日期:2007-11-15
1 引 言
IP電話是多媒體技術(shù)和互聯(lián)網(wǎng)技術(shù)相結(jié)合的產(chǎn)物, 它以其通話費低、方便集成和智能等明顯的優(yōu)勢激起了眾多消費者的極大興趣, 對原有固定電話運營者的長途電話和國際電話業(yè)務(wù)造成了巨大沖擊[1]。
IP電話的發(fā)展已經(jīng)歷了三代。1995年2月以色列的VocalTEL公司推出了第一個實用的IP電話終端Internet Phone標(biāo)志第一代IP電話的開始,其后出現(xiàn)了Microsoft公司的Netmeeting和NetSpeak公司的WebPhone,它們都是基于PC的專用軟件,通過因特網(wǎng)實現(xiàn)計算機到計算機(PC-PC)的實時語音通信,但使用不方便,語音質(zhì)量受網(wǎng)絡(luò)擁塞程度的影響很大。第二代IP電話采用普通電話機作為終端,通過IP電話網(wǎng)關(guān)接入因特網(wǎng),它的缺點是既占用因特網(wǎng)資源又占用本地電話網(wǎng)資源。第三代IP電話是因特網(wǎng)普及的產(chǎn)物,目前,以太網(wǎng)接口直接入戶已經(jīng)越來越普遍,有必要開發(fā)一種帶有RJ-45以太網(wǎng)接口、直接連入因特網(wǎng)、使用更加方便的IP電話。用戶在打電話時,可以直接撥叫遠端的電話號碼,通過關(guān)守(Gate Keeper)把所撥的電話號碼轉(zhuǎn)換成遠端IP電話的IP地址,從而建立起通話連接。與第二代IP電話終端不同的是,第三代IP電話終端直接把輸入語音信號數(shù)字化,并按照一定的語音壓縮編碼標(biāo)準(zhǔn)算法(如G.728,G.729等)完成對輸入語音信號的實時壓縮,使帶寬從64 kb/s減少降低到8 kb/s甚至8 kb/s以下,大大提高了信道的利用率,IP電話終端遵循SIP(或者H.323)協(xié)議。第三代IP電話系統(tǒng)通過網(wǎng)關(guān)(Gateway)可實現(xiàn)IP電話和普通電話的互通[2]。
2 系統(tǒng)介紹
2.1 整體概述
IP電話通信的基本原理,就是利用數(shù)字通信技術(shù),對語音信號進行數(shù)字壓縮編碼處理,然后按TCP/IP標(biāo)準(zhǔn)進行打包,再經(jīng)過互聯(lián)網(wǎng)絡(luò)把數(shù)據(jù)包發(fā)送到接收地;接收端將這些語音數(shù)據(jù)包串起來,經(jīng)過解碼解壓縮處理后恢復(fù)成原來的語音信號,從而達到由互聯(lián)網(wǎng)傳送語音的目的。IP電話的基本組成如圖1所示。
IP電話系統(tǒng)有4個基本組件:網(wǎng)絡(luò)電話機(IPPhone),網(wǎng)關(guān)(Gateway),多點控制單元MCU(Multipoint Control Unit)和網(wǎng)閘(Gatekeeper)。
網(wǎng)絡(luò)電話機 是一個IP電話客戶終端,多以硬件形式出現(xiàn)。它可以直接連接在IP網(wǎng)上時宜行實時的語音或多媒體通信。
網(wǎng)關(guān) 是通過IP網(wǎng)絡(luò)提供PHONE-TO-PHONE語音通信的關(guān)鍵設(shè)備,是IP網(wǎng)絡(luò)和PSTN/ISDN/PRX網(wǎng)絡(luò)接口設(shè)備。
網(wǎng)閘 又稱網(wǎng)守或關(guān)守,用來提供對整個電話系統(tǒng)端點和呼叫的管理功能。主要功能包括地址翻譯,呼叫接納控制,呼叫管理,呼叫權(quán)限。在H.323建議中,網(wǎng)閘是一個可選部分,但是對于實際運行的局域網(wǎng)IP電話系統(tǒng)來說,網(wǎng)閘是個重要部件。在本系統(tǒng)中,網(wǎng)閘設(shè)立在IP地址的一個終端上。網(wǎng)閘對所有終端用戶的姓名和IP地址進行統(tǒng)一登記和管理,并預(yù)先給每個終端用戶分配一個類似電話分機的虛擬電話號碼,以便其他終端用戶進行呼叫。主叫用戶無需知道被叫用戶終端的IP地址,只需輸入其對應(yīng)的虛擬電話號碼或真實姓名即可。
多點控制單位(MCU) 它的功能在于利用IP網(wǎng)絡(luò)實現(xiàn)多點通信,使得IP電話能夠支持諸如網(wǎng)絡(luò)會議這樣一對多的通信應(yīng)用。
圖1 IP電話的基本組成
2.2 單機的軟硬件設(shè)計
2.2.1 單機框圖
IP電話分為接收方和呼叫方。發(fā)起通話請求的一端稱為呼叫方,另一端為接收方。根據(jù)不同的應(yīng)用場景呼叫方和接收方可以調(diào)換角色,也就是說任意一方都可以發(fā)起通話請求,呼叫方發(fā)起通話請求輸入接收方IP地址,兩方通過網(wǎng)絡(luò)連接成功后利用麥克風(fēng)和聽筒就可以進行談話了。
對于單機的主要工作部分在網(wǎng)絡(luò)電話機單機部份。由于現(xiàn)在ARM技術(shù)的高度發(fā)達和日趨成熟,我們選擇了ARM9和μC/OS-Ⅱ搭建平臺來制作網(wǎng)絡(luò)電話單機部分,其單機的基本框圖如圖2所示。
圖2 單機的基本框圖
2.2.2 單機硬件功能模塊
CPU內(nèi)核模塊 其主要功能是為搭建一個帶CPU及存儲器的工作核心。處理器采用三星的S3C2410(ARM920T),F(xiàn)LASH采用的是SST公司的SST39VF160的NOR FLASH,SDRAM采用Hynix公司的HY57V641620HG。
以太網(wǎng)接口 主要幫助CPU完成TCP/IP數(shù)據(jù)包的接收和發(fā)送,這里采用RTL8019AS。RTL8019AS是一種全雙工即插即用的以太網(wǎng)控制器,它兼容RTL8019控制軟件和NE2000 8 b或16 b的傳輸,支持UTP,AUI,BNC和PNP自動檢測模式,支持外接閃爍存儲器讀寫操作,支持I/O口地址的完全解碼,具有LED指示功能。其接口符合Ethernet2和E802.3,10Base5,10Base2,10BaseT標(biāo)準(zhǔn)。
顯示模塊 采用一塊普通數(shù)顯LCD,主要是用來完成電話號碼的顯示及一些本機工作狀態(tài)的顯示。
鍵盤模塊和E2PROM 主要提供網(wǎng)絡(luò)電話機的撥號鍵盤,完成撥號和電話機的功能設(shè)置。EEPROM主要完成參數(shù)的設(shè)置。
語音模塊 飛利浦半導(dǎo)體公司的UDA1341TS音頻編解碼器。
上位機接口 完成一些參數(shù)的設(shè)定和一些已經(jīng)被記錄的參數(shù)的讀取。
2.2.3 系統(tǒng)的軟件設(shè)計
軟件設(shè)計是基于μC/OS-Ⅱ的,那么軟件方面的工作主要集中在驅(qū)動程序的編寫和任務(wù)的劃分、任務(wù)的編寫等三個方面的工作。由于μC/OS-Ⅱ基本上不提供API接口庫,需要額外向其購買,那么在我們要設(shè)計的網(wǎng)絡(luò)電話機中,主要要寫的驅(qū)動庫有:TCP/IP,液晶驅(qū)動,E2PROM驅(qū)動,鍵盤驅(qū)動,IO驅(qū)動,USB驅(qū)動。這些驅(qū)動的編寫有固定的模式和套路,這里不多做介紹。
任務(wù)的劃分和優(yōu)先級的安排的如圖3所示。
圖3 任務(wù)的劃分和優(yōu)先級的安排
從圖3中,可以看出共分8個任務(wù),3個任務(wù)鏈,其中待機任務(wù)鏈的優(yōu)先及最高。8個任務(wù)分別是:監(jiān)聽來電任務(wù),監(jiān)聽服務(wù)器任務(wù),監(jiān)視本機工作狀態(tài)和設(shè)置任務(wù),返回握手信號任務(wù),接聽電話任務(wù),獲取對方IP任務(wù),按IP與對方取得握手任務(wù)。
2.2.4 IP電話軟件結(jié)構(gòu)
IP電話軟件集成了完成語音通話所需的所有功能。該軟件按功能可以劃分為4部分,如圖4所示。
呼叫處理模塊 主要完成呼叫的建立與拆除功能。呼叫控制采用SIP協(xié)議建立會話。呼叫建立過程如下:一個SIP終端首先向本地的代理服務(wù)器發(fā)出呼叫請求;本地的代理服務(wù)器通過查詢本地的重定向服務(wù)器找到下一個代理服務(wù)器的地址,并向其轉(zhuǎn)發(fā)呼叫請求;下一個代理服務(wù)器收到呼叫請求后,通過定向服務(wù)器找到被叫所在網(wǎng)絡(luò)的代理服務(wù)器,然后向該代理服務(wù)器轉(zhuǎn)發(fā)呼叫請求;被叫所在網(wǎng)絡(luò)的代理服務(wù)器確定被叫終端,并向被叫終端轉(zhuǎn)發(fā)呼叫請求;被叫終端應(yīng)答,從而實現(xiàn)連接。
圖4 軟件功能模塊圖
語音編碼/解碼模塊 語音采集得到的PCM編碼數(shù)據(jù)雖然能夠提供相當(dāng)好的長途通信語音質(zhì)量,但是其速率過高,占用網(wǎng)絡(luò)帶寬資源過高。為此需要對語音數(shù)據(jù)進一步壓縮,以降低語音編碼的速率。相應(yīng)地在接收端也需要同樣的解壓算法來恢復(fù)成原始語音數(shù)據(jù)。這部分代碼編制時主要采用現(xiàn)在比較成熟的語音編解碼算法,并進行一定的改進,以提高語音通話質(zhì)量。
數(shù)據(jù)封包/拆包模塊 此部分代碼對壓縮編碼后的語音數(shù)據(jù)進行打包,添加包頭、時標(biāo)和其他信息后形成語音包。在接收時,要進行相應(yīng)的拆包提取語音壓縮包。
數(shù)據(jù)傳輸模塊 該模塊主要完成語音包的發(fā)送和接收。把音頻數(shù)據(jù)實時地傳輸給對方是保證實時語音通信的關(guān)鍵,所以在考慮可靠性和實時性方面更注重速度和實時性。在選擇協(xié)議時采用UDP協(xié)議,在編程時對應(yīng)地使
用數(shù)據(jù)報套接字。
3 結(jié) 語
該系統(tǒng)是利用現(xiàn)有的計算機網(wǎng)絡(luò)資源組成電話通信系統(tǒng),無需鋪設(shè)電話線路和購置電話通信網(wǎng)絡(luò)設(shè)備,節(jié)省大量建設(shè)電話網(wǎng)絡(luò)的設(shè)備費、線路費和工程費等費用,可取得顯著的經(jīng)濟效益。在不需要鋪設(shè)電話線路的情況下,方便地實現(xiàn)電話通信,增加電話用戶,縮短安裝工程周期。提高計算機網(wǎng)絡(luò)資源利用率,擴大電話的普及范圍,使用戶受益,加大信息傳遞量,可收到良好的社會效益。
參 考 文 獻
[1]苗蘭波,馮志勇,呂廷杰.IP電話網(wǎng)絡(luò)技術(shù)[M].北京:電子工業(yè)出版社,2001.
[2]糜正琨.IP網(wǎng)絡(luò)電話技術(shù)[M].北京:人民郵電出版社,2000.
[3]LABROSSE J J.嵌入式實時操作系統(tǒng)μC/OS-Ⅱ[M].2版.邵貝貝,譯.北京:北京航空航天大學(xué)出版社,2003.
[4]鄭羽,王金海,常海峰.基于局域網(wǎng)內(nèi)的IP網(wǎng)絡(luò)電話系統(tǒng)設(shè)計[J].微型電腦應(yīng)用,2004,20(6):19-21.
[5]汪一鳴,黃旭,胡子漣.基于以太局域網(wǎng)的IP電話系統(tǒng)[J].計算機應(yīng)用,2004,24(4):130-131.
注:本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文。