- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于TIGER560B的USB网络电话终端的实现
摘要:IP网络电话技术(VOIP)作为一种综合了传统电信网络和计算机网络特点的技术已经为人们所熟知。USB网络电话是黛助于计算机平台,提供一种新型的、人性化的网络电话服务的终端设备。它通过即插即用的USB接口与计算机相连,从计算机网络接口实现因特网内语音通信,借助于网关设备可以与电信网普通电话通话,是长期使用计算机工作一族的好伴侣。本文介绍USB网络电话的软件和硬件设计方案及其实现过程。
关键词:网络电话;H.323协议;USB;网守
随着因特网(也称IP网)技术的快速发展,IP网络电话已经得到广泛使用。所谓IP网络电话是指利用因特网以分组数据包形式传输语音/传真等的新型电信业务,简称VoIP(Voice over IP:IP网络承载语音业务)。它以低廉的价格,灵活的应用使传统电信业务受到极大的挑战,截止2004年底,几乎占到长途业务量的50%。当然,这主要指各大电信运营商推广IP电话卡形式的IP电话长途业务,其特点是接入部分使用传统电信终端(如电话机、手机),以特殊号码形式识别(179XX),在主干线上以分组的数据包的形式在因特网上传输话音。
本文介绍基于TIGER560B的USB网络电话终端(以下简称USB网络电话),它采用即插即用的USB接口与计算机相连,不需要借助传统电信终端,就可以直接接入因特网。不仅可以拨打长途电话,而且还可以拨打市话。如果用在局域网或者虚拟局域网内,通话完全免费。在因特网普及的今天,使用USB网络电话能为大中型企业事业单位节约大量话费。
1 TIGER560B控制器
早期在计算机上实现话音通信主要采用纯软件形式,借助于网卡连接因特网,声卡通过麦克风和音响实现话音的输入与输出。但缺点首先是接听或拨打电话都要操作计算机键盘,不仅复杂而且不符合人们使用电话的习惯;其次是来话从音箱播出既泄漏隐私又影响他人工作;还有,通话质量差,易产生回音。基于TIGER560B的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网络电话一定会有很好的开发前景。
作者:西安邮电学院计算机系 李 哲 陕西西安骊山微电子公司 李 凯 来源:国外电子元器件