DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 956|回复: 0
打印 上一主题 下一主题

[待整理] 基于USB接口的VoIP手柄设计

[复制链接]
跳转到指定楼层
楼主
发表于 2014-10-13 14:15:05 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
引 言
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电话技术必定有着广阔的发展前景,人们将会得到更方便和更经济的通信服务。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-11-16 20:35 , 耗时 0.091954 秒, 22 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表