IP電話的發(fā)展已經(jīng)歷了三代。第三代IP電話是Internet普及的產(chǎn)物,目前,以太網(wǎng)接口直接入戶已經(jīng)越來越普遍,有必要開發(fā)一種帶有RJ-45以太網(wǎng)接口、直接連入Internet、使用更加方便的IP電話。用戶在打電話時(shí),可以直接撥叫遠(yuǎn)端的電話號(hào)碼,通過網(wǎng)閘把所撥的電話號(hào)碼轉(zhuǎn)換成遠(yuǎn)端IP電話的IP地址,從而建立起通話連接。與第二代IP電話終端不同的是,第三代IP電話終端直接把輸入語音信號(hào)數(shù)字化,并按照一定的語音壓縮編碼標(biāo)準(zhǔn)算法(如G.728,G.729等)完成對(duì)輸入語音信號(hào)的實(shí)時(shí)壓縮,使帶寬從64kbps降低到8kbps甚至8kbps以下,大大提高了信道的利用率,IP電話終端遵循SIP(或者H.323)協(xié)議。第三代IP電話系統(tǒng)通過網(wǎng)關(guān),可實(shí)現(xiàn)IP電話和普通電話的互通。
系統(tǒng)介紹
整體概述
IP電話系統(tǒng)有4個(gè)基本組件:網(wǎng)絡(luò)電話機(jī)(IP Phone),網(wǎng)關(guān)(Gateway),多點(diǎn)控制單元MCU(Multipoint Control Unit)和網(wǎng)閘(Gatekeeper)。
(1)網(wǎng)絡(luò)電話機(jī):是一個(gè)IP電話客戶終端,多以硬件形式出現(xiàn)。它可以直接連接在IP剛上,實(shí)現(xiàn)實(shí)時(shí)的語音或多媒體通信。
(2)網(wǎng)關(guān):是通過IP網(wǎng)絡(luò)提供PHONE-TO-PHONE語音通信的關(guān)鍵設(shè)備,是IP網(wǎng)絡(luò)和PSTN/ISDN/PBX網(wǎng)絡(luò)接口設(shè)備。
(3)網(wǎng)閘:又稱網(wǎng)守或關(guān)守,用來提供對(duì)整個(gè)電話系統(tǒng)端點(diǎn)和呼叫的管理功能。主要功能包括地址翻譯、呼叫接納控制、呼叫管理、呼叫權(quán)限。在H.323建議中,網(wǎng)閘是一個(gè)可選部分,但是對(duì)于實(shí)際運(yùn)行的局域網(wǎng)IP電話系統(tǒng)來說,網(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)行呼叫。主叫用戶無需知道被叫用戶終端的IP地址,只需輸人其對(duì)應(yīng)的虛擬電話號(hào)碼或真實(shí)姓名即可。
(4)多點(diǎn)控制單位:它的功能在于利用IP網(wǎng)絡(luò)實(shí)現(xiàn)多點(diǎn)通信。使得IP電話能夠支持諸如網(wǎng)絡(luò)會(huì)議這樣一對(duì)多的通信應(yīng)用。 單機(jī)的軟硬件設(shè)計(jì)
單機(jī)框圖
本文選擇了ARM9和μC/OS-II搭建的平臺(tái)來制作網(wǎng)絡(luò)電話單機(jī)部分。其單機(jī)的基本框圖如圖1所示。
單機(jī)硬件功能模塊
1.CPU內(nèi)核模塊:其主要功能是搭建一個(gè)帶CPU及存儲(chǔ)器的工作核心。處理器采用三星的S3C2410(ARM920T),F(xiàn)lash采用的是SST公司的SST39VF160,SDRAM采用Hynix公司的HY57V641620HG。
2.以太網(wǎng)接口:幫助CPU完成TCP/IP數(shù)據(jù)包的接收和發(fā)送。這里采用的是RTL8019AS。RTL8019AS是一種全雙工即插即用的以太網(wǎng)控制器,它兼容RTL8019控制軟件和NE2000的8bit或16bit傳輸,支持UTP、AUI、BNC和PNP自動(dòng)檢測模式,支持外接閃存讀寫操作,支持I/O口地址的完全解碼,具有LED指示功能。其接口符合Ethernet2和E802.3、10Base5、10Base2、10BaseT標(biāo)準(zhǔn)。
3.顯示模塊:采用一塊普通數(shù)顯LCD,主要用來完成電話號(hào)碼及一些本機(jī)工作狀態(tài)的顯示。
4.鍵盤模塊和EEPROM:主要提供網(wǎng)絡(luò)電話機(jī)的撥號(hào)鍵盤,完成撥號(hào)和電話機(jī)的功能設(shè)置。EEPROM主要完成參數(shù)的設(shè)置。
5.語音模塊:采用UDA1341TS音頻編解碼器。
6.上位機(jī)接口:完成一些參數(shù)的設(shè)定和一些已經(jīng)被記錄的參數(shù)的讀取。
系統(tǒng)的軟件設(shè)計(jì)
軟件設(shè)計(jì)是基于μC/OS-II的,軟件方面的工作主要集中在驅(qū)動(dòng)程序的編寫、任務(wù)的劃分、任務(wù)的編寫等。由于μC/OS-II不提供API接口庫或者需要額外購買,那么在需要設(shè)計(jì)的網(wǎng)絡(luò)電話機(jī)中,主要寫的驅(qū)動(dòng)庫有:TCP/IP、液晶驅(qū)動(dòng)、EEPROM驅(qū)動(dòng)、鍵盤驅(qū)動(dòng)、I/O驅(qū)動(dòng)和USB驅(qū)動(dòng)。這些驅(qū)動(dòng)的編寫有固定的模式和套路。這里不多做介紹。
任務(wù)的劃分和優(yōu)先級(jí)的安排如圖2所示。從圖2可以看出共分8個(gè)任務(wù)、3個(gè)任務(wù)鏈,其中待機(jī)任務(wù)鏈的優(yōu)先級(jí)最高。8個(gè)任務(wù)分別是:監(jiān)聽來電、監(jiān)聽服務(wù)器、監(jiān)視本機(jī)工作狀態(tài)和設(shè)置、返回握手信號(hào)、接聽電話、獲取對(duì)方IP、按IP與對(duì)方取得握手等。
IP電話軟件結(jié)構(gòu)
IP電話軟件集成了完成語音通話所需的所有功能。該軟件按功能可以劃分為4部分。
1、呼叫處理模塊:主要完成呼叫的建立與拆除功能。呼叫控制采用SIP協(xié)議建立會(huì)話。呼叫建立過程如下:一個(gè)SIP終端首先向本地的代理服務(wù)器發(fā)出呼叫請求:本地的代理服務(wù)器通過查詢本地的重定向服務(wù)器找到下一個(gè)代理服務(wù)器的地址,并向其轉(zhuǎn)發(fā)呼叫請求:下一個(gè)代理服務(wù)器收到呼叫請求后,通過定向服務(wù)器找到被叫所在網(wǎng)絡(luò)的代理服務(wù)器,然后向該代理服務(wù)器轉(zhuǎn)發(fā)呼叫請求:被叫所在網(wǎng)絡(luò)的代理服務(wù)器確定被叫終端,并向被叫終端轉(zhuǎn)發(fā)呼叫請求:被叫終端應(yīng)答,從而實(shí)現(xiàn)連接。
2、語音編/解碼模塊:語音采集得到的PCM編碼數(shù)據(jù)雖然能夠提供相當(dāng)好的長途通信語音質(zhì)量,但是其速率過高,占用網(wǎng)絡(luò)帶寬資源過多。為此需要對(duì)語音數(shù)據(jù)進(jìn)一步壓縮,以降低語音編碼的速率。相應(yīng)地,在接收端也需要同樣的解壓算法來恢復(fù)成原始語音數(shù)據(jù)。這部分代碼編制時(shí)主要采用比較成熟的語音編解碼算法,并進(jìn)行一定的改進(jìn),以提高語音通話質(zhì)量。
3、數(shù)據(jù)封包/拆包模塊:此部分代碼對(duì)壓縮編碼后的語音數(shù)據(jù)進(jìn)行打包,添加包頭、時(shí)標(biāo)和其他信息后形成語音包。在接收時(shí),要進(jìn)行相應(yīng)的拆包,提取語音壓縮包。
4、數(shù)據(jù)傳輸模塊:該模塊主要完成語音包的發(fā)送和接收。把音頻數(shù)據(jù)實(shí)時(shí)地傳輸給對(duì)方是保證實(shí)時(shí)語音通信的關(guān)鍵。所以在考慮可靠性和實(shí)時(shí)性方面更注重速度和實(shí)時(shí)性。這里采用UDP協(xié)議。
結(jié)語
本文介紹的系統(tǒng)利用現(xiàn)有的計(jì)算機(jī)網(wǎng)絡(luò)資源組成電話通信系統(tǒng),無需鋪設(shè)電話線路和電話通信網(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)電話通信,增加電話用戶,縮短安裝工程周期。
作者:東華理工大學(xué) 電子與機(jī)械工程學(xué)院 江來 王仁波 來源: 《電子設(shè)計(jì)應(yīng)用》