基于USB接口的VoIP手柄设计
扫描二维码
随时随地手机看文章
VoIP是指将语音信号进行编码、压缩和分包等处理,通过IP网络进行传输,实现计算机一计算机、普通电话普通电话、计算机与普通电话之间进行话音通信的技术。现代数字信号处理技术和语音压缩编码技术的进步,在技术上保证了IP电话在Internet网上传输的可行性;而H.323标准的颁布和SIP协议的应用,使得IP语音业务能够在Internet网上迅速开展起来,并有望成为一种核心和关键技术。这种通信方式的经济性和软交换的特点,使它具有非常广阔的发展前景。
USB接口是一种应用在计算机领域的新型接口技术,最早由Compaq、Intel、Microsoft等多家公司在1994年11月共同提出的,其目的是用USB来取代PC现有的各种外围接口,使外围设备的连接具有单一化、即插即用、热插拔、速率高和易扩展等特点。本文介绍的基于PC终端USB接口的VoIP手柄(话机),就是利用USB接口的特点得以实现的。
1 VoIP手柄的方案设计
本机的实现包括硬件设计和软件编程两部分。
1.1 硬件总体方案
VoIP手柄的通话是通过USB接口来实现的,所以硬件主要包括USB接口芯片AN2131QC、语音处理芯片MCl45483,另外还包括拨号键盘部分、显示部分、电源处理部分等,其总体硬件框架结构如图l所示。其中拨号键盘主要采取编码方式,通过AN2131QC的I/O检测获得按键信息。显示部分为液晶显示,可以显示呼叫号码、呼叫状态、时间、日期和星期等信息。串行EEPROM的主要功能是存储制造商信息、产品信息和设备信息。当上电时,如果主控芯片的核检测到EEPROM连接在I2C总线上,将首先处理这些信息。
1.2 AN2131QC芯片应用介绍
本设计选择的控制芯片是EZ_USB系列的AN2131QC。此芯片提供了基于RAM的,允许无限制设置和升级的解决方案,支持全速USB总线吞吐量的传输。在芯片内核中提供大量的辅助指令,简化了编码,同时也加快了对USB特性的开发。芯片的简化结构如图2所示。AN2132QC内部有一个核:它由串行接口引擎(SIE)和USB接口两部分组成。SIE负责和USB收发器、USB接口进行数据交换,以实现串行数据的编/解码、差错控制、位填充等与USB协议相关的功能。
1.3 MCl45483语音芯片应用介绍
语音编码也是本设计的关键部分之一。语音编解码芯片选择的是MC145483,这款芯片的特点主要体现在具有2 s补偿的13位线性PCM编码/解码滤波器,实现语音信号的数字化和重构;工作电压为3 V,功耗为8 mW,待机功耗仅为O.01 mW,只需单电源供电,因此减少了双电源供电所带来的电源干扰问题,提高了语声质量;该芯片还可以调节增益,设计简单,具体实现如图3所示。此设计能够很好地满足VoIP手柄的高质量语音编/解码功能的要求。
2 软件功能的设计与实现
2.1 AN2131QC的USB自举启动
当AN213lQC芯片复位(RESET)后,AN2131QC将自举启动检查I2C总线上的EEPROM的存在。如果检测到EEPROM,自举启动就会首先读取EEPROM的第一个字节来决定枚举的模式。不同的枚举模式是由EEPROM首字节的数值来决定的,如表1所列。
在读取EEPROM的首字节之前,自举启动必须设置EEPROM的地址计数器为O。它通过发送一个控制字节来选择EEPROM,紧跟着一个O地址来设置内部EEP-ROM地址指针为0。然后它发送一个控制字节,并且开始读取第1个EEPROM字节。
2.2 AN2131QC的USB传输
AN213lQC的USB传输分为块传输、控制传输和中断传输。
USB规范允许块传输的最大数据包尺寸为8、16、32、64字节,中断数据l~64字节。AN2131QC提供了8个IN端点和8个OUT端点,每一个端点具有最大64字节的缓冲区空间。其中第2、4、6个IN和OUT端点可以和它紧接着的端点提供双缓冲区,允许8051在处理一个数据包的同时另外一个数据包在USB总线上传输,即6个“端点对”(USBPAIR寄存器)控制双缓冲。805l在初始化时没置14个端点有效位,并且通知AN213lQC核哪一个端点有效。缺省时端点O总是有效,块数据出现在RAM中。每一个块端点保留了64字节的RAM空间,l位计数寄存器,2位控制和状态寄存器。8051能读取状态寄存器中的一位来决定端点是否为“忙”。在端点的“忙”位被设置时,8051将不能读写端点缓冲区和字节计数寄存器。当一个端点为8051操作准备好时,AN2131QC设置一个中断请求位。AN2131QC向量中断系统根据端点自动传输控制,从中断服务子程序分离出中断请求来响应端点请求服务。
端点O是AN2131QC芯片中唯一的控制端点。尽管控制端点是双向的,AN2131QC仍然提供了2个64字节的缓冲区INOBuF和OUToBUF。另外有一个附加的8字节缓冲区,对端点O来说是唯一的,这个缓冲区保存着在控制传输过程中的SETUP阶段到达时的数据。
中断传输是一种特殊的块传输。AN2131QC控制端点O接收特殊的SETUP令牌,它是一种主机用来处理设备控制信号的传输。主机通过端点。发送一系列标准设备请求表。
2.3 芯片固件程序
AN2131QC芯片的固件程序控制了整个硬件系统的运行。当上电或连接时.其将自动下载至芯片的RAM中,由8051执行。芯片固件程序负责处理主机发出的各种USB请求,流程如图4所示。首先初始化所有的内部状态变量,然后调用AN2131QC的初始化程序Init()进行初始化,并开中断。最后,芯片固件程序开始列举USB设备,直至在端点0上收到SETUP令牌包时为止。一旦接收到SETUP令牌,其将重复执行语音发送和接收VoiceRT()等功能。
2.4 驱动程序
驱动程序需要两个:一个专用于下载芯片的固件程序,另一个用于在PC端实现接收/发送USB数据功能和语音数据处理功能。下载的应用驱动程序包含WDM驱动程序所需的入口程序、即插即用程序、电源管理程序和卸载程序;而USB数据收发功能和语音数据处理驱动程序主要实现USB数据的接收、发送和语音信息的处理。这两个程序需要在首次使用手柄时装载到PC机上。
3 本设计的主要优点
◇遵循USBl.1规范,无需声卡,不需要外接电源。
◇兼容H.323、MGCP和SIP协议。
◇有LCD显示屏和VoIP来电显示功能。
◇采用了回音消除和噪声抑制技术。
◇采用全双工通信技术。
结语
本文主要介绍了基于USB接口的VoIP手柄的硬件和软件设计方案,对USB接口通信方式作了较为详细的介绍。在计算机端实现了H.323和SIP协议及服务质量控制策略,保证了通话质量。随着计算机和Internet网络进入每个家庭,VoIP电话技术必定有着广阔的发展前景,人们将会得到更方便和更经济的通信服务。