基于USB接口的VoIP手柄设计

2008-05-20 14:04:52来源: 单片机及嵌入式系统应用

  引 言

  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电话技术必定有着广阔的发展前景,人们将会得到更方便和更经济的通信服务。

关键字:USB总线  USB接口  VoIP  芯片  USB设备  固件程序  字节  手柄  状态寄

编辑:孙树宾 引用地址:http://www.eeworld.com.cn/gykz/2008/0520/article_983.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
USB总线
USB接口
VoIP
芯片
USB设备
固件程序
字节
手柄
状态寄

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved