新聞中心

EEPW首頁 > 手機與無線通信 > 設計應用 > 基于TIGER560B的USB網(wǎng)絡電話終端的實現(xiàn)

基于TIGER560B的USB網(wǎng)絡電話終端的實現(xiàn)

作者: 時間:2006-01-18 來源:網(wǎng)絡 收藏
摘要:IP技術(VOIP)作為一種綜合了傳統(tǒng)電信網(wǎng)絡和計算機網(wǎng)絡特點的技術已經(jīng)為人們所熟知。是黛助于計算機平臺,提供一種新型的、人性化的服務的設備。它通過即插即用的接口與計算機相連,從計算機網(wǎng)絡接口因特網(wǎng)內(nèi)語音通信,借助于網(wǎng)關設備可以與電信網(wǎng)普通電話通話,是長期使用計算機工作一族的好伴侶。本文介紹網(wǎng)絡電話的軟件和硬件設計方案及其過程。

關鍵詞:網(wǎng)絡電話;H.323協(xié)議;USB;網(wǎng)守

隨著因特網(wǎng)(也稱IP網(wǎng))技術的快速發(fā)展,IP網(wǎng)絡電話已經(jīng)得到廣泛使用。所謂IP網(wǎng)絡電話是指利用因特網(wǎng)以分組數(shù)據(jù)包形式傳輸語音/傳真等的新型電信業(yè)務,簡稱VoIP(Voice over IP:IP網(wǎng)絡承載語音業(yè)務)。它以低廉的價格,靈活的應用使傳統(tǒng)電信業(yè)務受到極大的挑戰(zhàn),截止2004年底,幾乎占到長途業(yè)務量的50%。當然,這主要指各大電信運營商推廣IP電話卡形式的IP電話長途業(yè)務,其特點是接入部分使用傳統(tǒng)電信(如電話機、手機),以特殊號碼形式識別(179XX),在主干線上以分組的數(shù)據(jù)包的形式在因特網(wǎng)上傳輸話音。

本文介紹的USB網(wǎng)絡電話(以下簡稱USB網(wǎng)絡電話),它采用即插即用的USB接口與計算機相連,不需要借助傳統(tǒng)電信終端,就可以直接接入因特網(wǎng)。不僅可以撥打長途電話,而且還可以撥打市話。如果用在局域網(wǎng)或者虛擬局域網(wǎng)內(nèi),通話完全免費。在因特網(wǎng)普及的今天,使用USB網(wǎng)絡電話能為大中型企業(yè)事業(yè)單位節(jié)約大量話費。

1 控制器

早期在計算機上話音通信主要采用純軟件形式,借助于網(wǎng)卡連接因特網(wǎng),聲卡通過麥克風和音響實現(xiàn)話音的輸入與輸出。但缺點首先是接聽或撥打電話都要操作計算機鍵盤,不僅復雜而且不符合人們使用電話的習慣;其次是來話從音箱播出既泄漏隱私又影響他人工作;還有,通話質(zhì)量差,易產(chǎn)生回音。的USB網(wǎng)絡電話終端可以克服上述缺點。

TIGER560B是Tiger Jet Network公司研制的專門用于低成本、高話音質(zhì)量的VoIP處理器,內(nèi)部包含USB接口。它的集成度很高,內(nèi)部集成有很多功能模塊,外部僅需少量元件就可實現(xiàn)VoIP功能。TIGER560B的功能及外圍引腳如圖1所示。

TIGER560B的主要組成部分有控制邏輯、音頻通道、USB接口、通常I/O接口、外設接口和配置控制接口。

控制邏輯是電路的核心,內(nèi)含專用處理器,用來協(xié)調(diào)整個電路的工作;音頻通道連接外部音頻編解碼器,完成音頻PCM數(shù)據(jù)流的輸入與輸出;USB接口與計算機的USB接口連接,配置控制TIGER560B芯片及TIGER560B連接的編解碼器,同時接收和發(fā)送計算機側(cè)音頻數(shù)據(jù)流,具有橋接通信作用;通用I/O接口可以控制指示燈、振鈴、液晶顯示;外設接口接收鍵盤號碼和連接編解碼器;配置控制接口采用硬件連接對TIGER560B在不同工作模式進行配置,以便加載不同的驅(qū)動程序。

TIGER560B的功能如下:

●支持鍵盤掃描、液晶顯示驅(qū)動、電話接口(SLIC);

●支持H.323協(xié)議和SIP協(xié)議,實現(xiàn)全部VoIP功能;

●不必安裝驅(qū)動,因為驅(qū)動都已經(jīng)嵌入到Windows操作系統(tǒng)中;

●能夠?qū)崿F(xiàn)PC到PC的點對點通話,實現(xiàn)因特網(wǎng)內(nèi)IP電話,通過網(wǎng)關實現(xiàn)與傳統(tǒng)電話通話;

●支持USB供電節(jié)電模式和遠端喚醒功能;

●音頻功能

支持USB音頻類設備模式;

使用Windows音頻USB驅(qū)動;

支持8bit μ-Law編解碼器接口;

支持音量調(diào)節(jié)、閉音控制;

●PCM接口支持

Silicon Labs公司的Si3210用戶接口電路,華邦公司的W681511型音頻編解碼器和Motorola公司的MC145480型音頻編解碼器;

支持TDM、IOM2、GCI;

長幀模式和短幀模式;

●USB接口

全速12Mb/ps,兼容USB101協(xié)議;

鎖相環(huán)、MAC、PHY、收發(fā)器集成在芯片上;

內(nèi)有3.3V調(diào)節(jié)器;

●支持SPI 4線接口總線;

支持外設總線接口;8bit數(shù)據(jù)總線、6根地址線、22根通用I/O線、讀寫復位線等;

●單12MHz晶振、5V工作電壓,100引腳PQFP封裝。

TIGER560B幾乎集成了IP電話終端必備的所有功能,外部僅需連接PCM音頻編解碼器和鍵盤等就可以實現(xiàn)VoIP功能。

2 系統(tǒng)組成、工作原理和H.323協(xié)議

2.1 USB網(wǎng)絡電話的結(jié)構(gòu)

圖2為TIGER560B VoIP處理器的USB網(wǎng)絡電話模塊框圖。

以TIGER560B為核心的USB網(wǎng)絡電話有3種組成形式。

(1)用TIGER560B和音頻編解碼器(W681511)組成的USB網(wǎng)絡電話相當于一個USB外置聲卡,沒有操作鍵盤,不需要安裝任何額外驅(qū)動軟件,使用計算機鍵盤操作電話的撥出和接口。

(2)TIGER560B、音頻編解碼器、鍵盤和振鈴電路組成的USB網(wǎng)絡電話是一個完整的網(wǎng)絡電話,使用方法和使用傳統(tǒng)電話機撥打、接聽完全一樣。這種形式需要附加鍵盤掃描驅(qū)動軟件和振鈴控制驅(qū)動軟件。若沒有安裝附加驅(qū)動則使用計算機鍵盤操作。另外,如果需要,還可以增加液晶顯示。

(3)TIGER560B和用戶接口電路(ProSLIC:Si3210)組成的USB網(wǎng)絡電話。此種形式為一單接口小網(wǎng)關,通過它把一個標準的普通電話接入因特網(wǎng),實現(xiàn)網(wǎng)絡電話的功能,能夠識別摘機/掛機操作、接收雙音多頻(DTMF)電話號碼,提供全工雙向通話。這種形式網(wǎng)絡電話需要安裝附加驅(qū)動軟件。本文主要對第二種形式加以說明。

2.2 USB網(wǎng)絡電話的工作原理

由于USB接口具有即插即用功能,因此,USB網(wǎng)絡電話與計算機的連接十分方便,也可以隨身攜帶。

把USB網(wǎng)絡電話直接插入計算機USB接口,并安裝相應的驅(qū)動軟件,就可以在計算機“設備管理”――“人體學輸入設備”中看到“USB人體學輸入設備”;在“聲音、視頻和游戲控制”中看到“USB Audio Device”,同時在計算機桌面出現(xiàn)信息窗口。

作為主叫撥打電話時,直接按“摘掛機鍵”,接著輸入電話號碼,TIGER560B對鍵盤直接掃描,將輸入的摘掛機信息和電話號碼傳送到計算機,進行呼叫,被叫摘機進入通話狀態(tài)。此時,主叫話音由話機手柄麥克風輸入,音頻編解碼器將模擬信號變成PCM格式的數(shù)據(jù)信號,送入TIGER560B進行處理,再由TIGER560B的USB接口送到計算機,計算機采用H.323協(xié)議處理,最后通過網(wǎng)絡接口連接到因特網(wǎng)。

被叫是主叫的逆過程。如果有振鈴,按“摘掛機鍵”,直接接聽。此時,從因特網(wǎng)來的話音,經(jīng)計算機處理后從USB接口送到TIGER560B,然后由TIGER560B將話音信息變成PCM數(shù)據(jù)格式送到音頻編解碼器,再由音頻編解碼器將PCM數(shù)據(jù)格式話音變成模擬話音后,送到被叫話機手柄的耳筒。

不論作為主叫還是被叫,都是全雙工、雙向?qū)崟r通信。呼叫、通話、掛機等各種狀態(tài)在計算機界面都有指示,撥打或者接聽電話與使用傳統(tǒng)電話完全相同,無需操作鍵盤進行干預。

2.3 H.323協(xié)議實現(xiàn)網(wǎng)絡電話過程

本文所述網(wǎng)絡電話是計算機的一種輔助外部設備,其網(wǎng)絡協(xié)議和實現(xiàn)網(wǎng)絡電話的多媒體協(xié)議H.323均在計算機上實現(xiàn)。

實現(xiàn)網(wǎng)絡電話可以采用H.323協(xié)議和SIP協(xié)議。目前我國主要采用前者。

H.323協(xié)議是ITU-T(國際電聯(lián))制定的因特網(wǎng)多媒體實時通信協(xié)議簇,由呼叫控制、媒體編碼、管理控制、網(wǎng)絡安全等系列協(xié)議組成,其全稱是“基于分組交換的多媒體通訊系”。H.323協(xié)議提供基于因特網(wǎng)的聲音、視頻和數(shù)據(jù)傳送的相關標準,定義了4種基本的構(gòu)成單元:終端(terminal)、網(wǎng)關(gateway)、網(wǎng)守(gatekeeper)和多點控制單元(MCU)。其中網(wǎng)關和網(wǎng)守是網(wǎng)絡電話系統(tǒng)的關鍵。網(wǎng)關實現(xiàn)因特網(wǎng)和網(wǎng)守是網(wǎng)絡電話系統(tǒng)的關鍵。網(wǎng)關實現(xiàn)因特網(wǎng)電話與傳統(tǒng)電信網(wǎng)電話的連接,網(wǎng)守負責因特網(wǎng)內(nèi)電話呼叫、計費和管理等。USB網(wǎng)絡電話僅是網(wǎng)絡電話終端的一種形式。其協(xié)議軟件構(gòu)架如圖3規(guī)范,而網(wǎng)絡電話僅涉及到音頻通信部分,因此,多點控制單元MCU不作為其必備設備。

計算機中的軟件設計:音頻編解碼部分能夠與USB網(wǎng)絡電話手柄通過USB接口收發(fā)G..722、G.729、G..723.1等編碼,由網(wǎng)絡接口傳送。提供了網(wǎng)絡電話與網(wǎng)守、網(wǎng)關及其他終端之間必需的控制接口,采用H.225.0呼叫控制、H.245信道控制、RTCP實時控制協(xié)議來實現(xiàn)。

網(wǎng)守是網(wǎng)絡電話系統(tǒng)必備的管理單元,終端上電后首先向網(wǎng)守注冊,將其IP地址和電話號碼送到網(wǎng)守(電話號碼也可以由網(wǎng)守分配),接受網(wǎng)守管理。每次呼叫某個電話,首先與網(wǎng)守交換信息,從網(wǎng)守得到被叫的IP地址,接著與被叫直接通信。通話結(jié)束,必須與網(wǎng)守通信,使網(wǎng)守得到本次通話結(jié)束信息,作為計費依據(jù)或作為歷史記錄標志。如果僅把USB網(wǎng)絡電話用在點對點通話時,那么可以直接呼叫對方IP地址,而不需要網(wǎng)守。

網(wǎng)關是兩種不同網(wǎng)絡之間的互通設備,完成信令格式、內(nèi)容轉(zhuǎn)換、通信協(xié)議轉(zhuǎn)換、流媒體格式轉(zhuǎn)換。它是網(wǎng)絡電話與傳統(tǒng)電話互通的必備設備。如果網(wǎng)絡電話僅使用在局域網(wǎng)或者虛擬局域網(wǎng)等小范圍,可以不需要網(wǎng)關設備,如圖4所示。

3 硬件電路設計

USB網(wǎng)絡電話機使用TIGER560B型專用控制器,外圍硬件電路很少。確保電路成本低,可靠性高。具體電路如圖5所示。

圖5僅給出TIGER560B的主要連接線,如音頻編解碼器、鍵盤、USB接口、振鈴電路、晶振電路和工作指示。其他如模式配置,電源線、地線、電阻器連接等具體內(nèi)容可參閱參考文獻[4]。采用TIGER560B設計的網(wǎng)絡電話,電路非常簡單,不需要編制電話機內(nèi)軟件,所有設置、驅(qū)動和應用軟件均在計算機上運行,便于批量生產(chǎn)。

TIGER560B能夠產(chǎn)生MC14LC5480的時序,如圖6所示。使用短幀模式。不需要額外時序產(chǎn)生電路。作為主叫時,MC14LC5480將手柄送來的模擬信號變成PCM數(shù)據(jù)碼流(符合G..711編碼規(guī)范),然后送到TIGER560B進行處理,TIGER560B通過USB接口將PCM碼流送入計算機,計算機將其進行音頻編碼,轉(zhuǎn)換為G..729、G.723.1、G..722(可在計算機使用界面可設置),再將其從計算機網(wǎng)絡接口送到因特網(wǎng);作為被叫時,MC14LC5480把逆向傳來的PCM編碼變成模擬信號,送向手柄話筒。

鍵盤上有摘/掛機按鍵、號碼鍵、音量控制器、號碼修改鍵、閉音鍵等,撥打、接聽電話不需要操作計算機鍵盤。與使用傳統(tǒng)電話完全一樣,方便實用。如果有來話,蜂鳴器將發(fā)現(xiàn)“嘟嘟聲”提示,計算機屏幕也有指示。

4 軟件設計

USB網(wǎng)絡電話的音頻驅(qū)動軟件已經(jīng)嵌入微軟的WINDOWS操作系統(tǒng)中,可以實現(xiàn)即插即用功能??梢允褂猛ㄓ玫木W(wǎng)絡語音通信軟件如MSN、QQ、OPENPHONE等進行語音交流。此時,USB網(wǎng)絡電話相當一個外置聲卡,各種操作需要借助于計算機鍵盤和相應語音軟件完成,不能實現(xiàn)鍵盤掃描和振鈴功能。如果要實現(xiàn)完整的電話功能,必須另外開發(fā)驅(qū)動軟件。

本文設計的網(wǎng)絡電話軟件包括用戶界面設計和鍵盤掃描/振鈴驅(qū)動兩部分。界面設計主要以簡潔、實用、美觀為主,不作為重點介紹。

設計鍵盤掃描、振鈴驅(qū)動部分使用Tiger Jet Network公司提供的SDK開發(fā)包,通過編寫驅(qū)動軟件控制TIGER560B內(nèi)部寄存器實現(xiàn)。軟件流程框圖如圖7所示。H.323協(xié)議軟件使用SDK開發(fā)包提供的庫函數(shù),網(wǎng)絡協(xié)議軟件使用WINDOWS操作系統(tǒng)中的協(xié)議。

鍵盤掃描和振鈴驅(qū)動軟件子程序如下:

#include "stdafx.h"

#include"TjIpApi.h"

#include"Tj560Bhandset.h"

#ifdef _DEBUG

#define new DEBUG_NEW

#undef THIS_FILE

static char THIS_FILE[]=_FILE_;

#endif

CTj560Bhandset_Hid::CTj560Bhandset_Hid()

{

}

CTj560Bhandset_Hid::~CTj560Bhandset_Hid()

{

}

BOOL CTj560Bhandset_Hid::InitTjHardware()

{

return TRUE;

}

BOOL CTj560BhandsetKeypad_Hid::InitTjHardware()

{

tjoutp(0x0b,100);//default is 48,now set to

100 ==> period =100/2=50ms

InitBuzzer();

Return TRUE;

}

char CTj560BhandsetKeypad_Hid::MapHardwareKeyToUserKey(WORD wHardwareKey)

{

char cNewKey=0;

switch(wHardwareKey)

{

case 0xb0;

case 0xb1;

case 0xb2;

case 0xb3;

case 0xb4;

case 0xb5;

case 0xb6;

case 0xb7;

case 0xb8;

case 0xb9;

cNewKey= (char) (wHardwareKey -0xb0)+'0';

break;

case 0xba:

cNewKey=(char)VK_MULTIPLY; // '*' key

break;

case 0xbb:

cNewKey=(char)VK_POUND; //'*' key

break;

case 0x26:

cNewKey=(char)VK_ALT_U;//hangup

break;

case 0x31: //Enter key

cNewKey=(char)VK_RETURN;

break;

case 0x2f:

cNewKey=(char)VK_ALT_TCD;

break;

case 0x51;

VK_DOWN; //down

break;

case 0x52;

cNewkey=(char)VK_UP; //up

break;

case 0x20:

cNewKey=(char)0;

break;

default:

break;

}

return cNewKey;

}

BOOL CTj560B Hand set Key pad_Hid::Ring(BOOLbOn)

{

SetBuzzerFreq(2400); //default to 2.4kHz

TurnBuzzerOn(bOn);

Return TRUE;

}

軟件還包括USB通信協(xié)議,計算機側(cè)使用WINDOWS支持的USB驅(qū)動軟件,USB網(wǎng)絡電話側(cè)協(xié)議軟件以微碼形式固化在TIGER560B中,不需再寫軟件。

5 結(jié)束語

本項目日前已經(jīng)完成實驗和測試。測試結(jié)果表明其話音質(zhì)量好,工作穩(wěn)定,可以作為計算機附件。

整個USB網(wǎng)絡電話以TIGER560B為控制核心,外接語音編解碼器,硬件電路簡單,軟件運行在計算機上,充分利用了計算機的優(yōu)勢,把計算機變成了一個標準的基于H.323協(xié)議的VoIP終端。如果在運營商提供基于純因特網(wǎng)上的網(wǎng)絡電話業(yè)務,本文所述的USB網(wǎng)絡電話一定會有很好的開發(fā)前景。



評論


相關推薦

技術專區(qū)

關閉