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