基于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设备
固件程序
字节
手柄
状态寄

小广播

独家专题更多

迎接创新的黄金时代 无创想,不奇迹
迎接创新的黄金时代 无创想,不奇迹
​TE工程师帮助将不可能变成可能,通过技术突破,使世界更加清洁、安全和美好。
TTI携TE传感器样片与你相见,一起传感未来
TTI携TE传感器样片与你相见,一起传感未来
TTI携TE传感器样片与你相见,一起传感未来
富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved