基于USB接口的VoIP手柄设计

发布时间:2010-7-24 23:50    发布者:conniede
关键词: 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、语音处理芯片MC145483,另外还包括拨号键盘部分、显示部分、电源处理部分等,其总体硬件框架结构如图1所示。其中拨号键盘主要采取编码方式,通过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语音芯片应用介绍

语音编码也是本设计的关键部分之一。语音编解码芯片选择的是MCl45483,这款芯片的特点主要体现在具有2 s补偿的13位线性PCM编码/解码滤波器,实现语音信号的数字化和重构;工作电压为3 V,功耗为8 mW,待机功耗仪为0.01 mW,只需单电源供电,因此减少了双电源供电所带来的电源干扰问题,提高了语声质量;该芯片还可以调节增益,设计简单,具体实现如图3所示。此设计能够很好地满足VoIP手柄的高质量语音编/解码功能的要求。

2 软件功能的设计与实现

2.1 AN2131QC的USB自举启动


当AN2131QC芯片复位(RESET)后,AN2131QC将自举启动检查I2C总线上的EEPROM的存在。如果检测到EEPROM,自举启动就会首先读取EEPROM的第一个字节来决定枚举的模式。不同的枚举模式是由EEPROM首字节的数值来决定的,如表1所列。



在读取EEPROM的首字节之前,自举启动必须没置EEPROM的地址计数器为0。它通过发送一个控制字节来选择EEPROM,紧跟着一个0地址来设置内部EEP-ROM地址指针为0。然后它发送一个控制字节,并且开始读取第1个EEPROM字节。

2.2 AN2131QC的USB传输

AN2131QC的USB传输分为块传输、控制传输和中断传输。

USB规范允许块传输的最大数据包尺寸为8、16、32、64字节,中断数据1~64字节。AN213lQC提供了8个IN端点和8个OUT端点,每一个端点具有最大64字节的缓冲区空间。其中第2、4、6个IN和OUT端点可以和它紧接着的端点提供双缓冲区,允许8051在处理一个数据包的同时另外一个数据包在USB总线上传输,即6个"端点对"(USBPAIR寄存器)控制双缓冲。8051在初始化时设置14个端点有效位,并且通知AN2131QC核哪一个端点有效。缺省时端点0总是有效,块数据出现在RAM中。每一个块端点保留了64字节的RAM空间,1位计数寄存器,2位控制和状态寄存器。8051能读取状态寄存器中的一位来决定端点是否为"忙"。在端点的"忙"位被设置时,8051将不能读写端点缓冲区和字节计数寄存器。当一个端点为8051操作准备好时,AN2131QC设置一个中断请求位。AN2131QC向量中断系统根据端点自动传输控制,从中断服务子程序分离出中断请求来响应端点请求服务。

端点0是AN2131QC芯片中唯一的控制端点。尽管控制端点是双向的,AN2131QC仍然提供了2个64字节的缓冲区IN0BUF和OUT0BUF。另外有一个附加的8字节缓冲区,对端点0来说是唯一的,这个缓冲区保存着在控制传输过程中的SETUP阶段到达时的数据。

中断传输是一种特殊的块传输。AN2131QC控制端点0接收特殊的SETUP令牌,它是一种主机用来处理设备控制信号的传输。主机通过端点0发送一系列标准设备清求表。

2.3 芯片固件程序

AN2131QC芯片的固件程序控制了整个硬件系统的运行。当上电或连接时,其将自动下载至芯片的RAM中,由8051执行。芯片固件程序负责处理主机发出的各种USB请求,流程如图4所示。首先初始化所有的内部状态变量,然后调用AN213lQC的初始化程序Init()进行初始化,并开中断。最后,芯片固件程序开始列举USB设备,直至在端点0上收到SETUP令牌包时为止。一旦接收到SETUP令牌,其将重复执行语音发送和接收VoiceRT()等功能。

2.4 驱动程序

驱动程序需要两个:一个专用于下载芯片的固件程序,另一个用于在PC端实现接收/发送USB数据功能和语音数据处理功能。下载的应用驱动程序包含WDM驱动程序所需的入口程序、即插即用程序、电源管理程序和卸载程序;而USB数据收发功能和语音数据处理驱动程序主要实现USB数据的接收、发送和语音信息的处理。这两个程序需要在首次使用手柄时装载到PC机上。

3 本设计的主要优点

◇遵循USB1.1规范,无需声卡,不需要外接电源。

◇兼容H.323、MGCP和SIP协议。

◇有LCD显示屏和VoIP来电显示功能。

◇采用了回音消除和噪声抑制技术。

◇采用全双工通信技术。

结 语

本文主要介绍了基于USB接口的VoIP手柄的硬件和软件设计方案,对USB接口通信方式作了较为详细的介绍。在计算机端实现了H.323和SIP协议及服务质量控制策略,保证了通话质量。随着计算机和Internet网络进入每个家庭,VoIP电话技术必定有着广阔的发展前景,人们将会得到更方便和更经济的通信服务。
本文地址:https://www.eechina.com/thread-16745-1-1.html     【打印本页】

本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。
您需要登录后才可以发表评论 登录 | 立即注册

厂商推荐

相关视频

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表