新聞中心

        EEPW首頁 > 手機與無線通信 > 設計應用 > 基于TIGER560B的USB網絡電話終端的實現

        基于TIGER560B的USB網絡電話終端的實現

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

        關鍵詞:網絡電話;H.323協議;USB;網守

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

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

        1 控制器

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

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

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

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

        TIGER560B的功能如下:

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

        ●支持H.323協議和SIP協議,實現全部VoIP功能;

        ●不必安裝驅動,因為驅動都已經嵌入到Windows操作系統中;

        ●能夠實現PC到PC的點對點通話,實現因特網內IP電話,通過網關實現與傳統電話通話;

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

        ●音頻功能

        支持USB音頻類設備模式;

        使用Windows音頻USB驅動;

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

        支持音量調節、閉音控制;

        ●PCM接口支持

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

        支持TDM、IOM2、GCI;

        長幀模式和短幀模式;

        ●USB接口

        全速12Mb/ps,兼容USB101協議;

        鎖相環、MAC、PHY、收發器集成在芯片上;

        內有3.3V調節器;

        ●支持SPI 4線接口總線;

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

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

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

        2 系統組成、工作原理和H.323協議

        2.1 USB網絡電話的結構

        圖2為TIGER560B VoIP處理器的USB網絡電話模塊框圖。

        以TIGER560B為核心的USB網絡電話有3種組成形式。

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

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

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

        2.2 USB網絡電話的工作原理

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

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

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

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

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

        2.3 H.323協議實現網絡電話過程

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

        實現網絡電話可以采用H.323協議和SIP協議。目前我國主要采用前者。

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

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

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

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

        3 硬件電路設計

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

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

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

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

        4 軟件設計

        USB網絡電話的音頻驅動軟件已經嵌入微軟的WINDOWS操作系統中,可以實現即插即用功能。可以使用通用的網絡語音通信軟件如MSN、QQ、OPENPHONE等進行語音交流。此時,USB網絡電話相當一個外置聲卡,各種操作需要借助于計算機鍵盤和相應語音軟件完成,不能實現鍵盤掃描和振鈴功能。如果要實現完整的電話功能,必須另外開發驅動軟件。

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

        設計鍵盤掃描、振鈴驅動部分使用Tiger Jet Network公司提供的SDK開發包,通過編寫驅動軟件控制TIGER560B內部寄存器實現。軟件流程框圖如圖7所示。H.323協議軟件使用SDK開發包提供的庫函數,網絡協議軟件使用WINDOWS操作系統中的協議。

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

        #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通信協議,計算機側使用WINDOWS支持的USB驅動軟件,USB網絡電話側協議軟件以微碼形式固化在TIGER560B中,不需再寫軟件。

        5 結束語

        本項目日前已經完成實驗和測試。測試結果表明其話音質量好,工作穩定,可以作為計算機附件。

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



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 临湘市| 三台县| 永城市| 苍溪县| 宁德市| 白玉县| 正定县| 长汀县| 布尔津县| 阿鲁科尔沁旗| 四子王旗| 泰宁县| 张家港市| 萝北县| 徐闻县| 吉首市| 西林县| 和平县| 渝北区| 崇州市| 堆龙德庆县| 丰台区| 正安县| 仙居县| 靖宇县| 陇川县| 许昌县| 木里| 高青县| 皮山县| 鲁山县| 兴隆县| 新乡市| 平塘县| 水富县| 望都县| 梅河口市| 鹤峰县| 古浪县| 芷江| 团风县|