基于Infineon芯片组的VoIP CPE设计*
2010-06-27谢华
谢 华
(深圳信息职业技术学院电子通信技术系 深圳 518029)
1 引言
随着互联网的飞速发展,传统的信息传输方式正在经历着根本性的变革,包括语音、图像在内的各种日常通信信息越来越多地采用互联网的方式进行传输,给使用者提供了方便、快捷、便宜的信息获取渠道。全球著名的英飞凌(Infineon)科技公司适应社会发展需求,推出多种半导体芯片整体解决方案,其中ADM5120+PEB33322芯片组合在VoIP方面提供了一个高性能、低成本、设计简单的用户端设备(CPE)解决方案,很好地解决了VoIP语音网关中一系列技术问题,为今后VoIP用户终端的快速发展提供了一种较好的解决方案。
英飞凌公司推出的VoIP芯片组合具有如下主要的特点和优势:
·在一个芯片中集成了VoIP处理器、存储器、电话接口电路和语音编解码器,设计简单,可靠性高,实时性好;
·具有VoIP系列产品支持,设计灵活,可扩展性好;
·体积小,成本低,技术成熟,在世界范围内得到广泛的应用。
笔者采用英飞凌公司生产的ADM5120+PEB33322芯片组合设计了一个用户端VoIP语音网关,该网关采用SIP协议作为信令控制协议,可以通过标准的Z接口将普通模拟电话机接入局域网,实现VoIP通信。该VoIP系统组成如图1所示。
2 语音网关硬件组成
语音网关由一个网络控制器ADM5120和一个带有SLIC(用户线接口电路)的VoIP处理器PEB33322及其外围配套电路组成。
PEB33322由 2个SLIC、1个语音编解码器 (Codec)和1个数字信号处理器(DSP)组成。SLIC带有1个DC/DC转换器,可以提供标准的Z接口,连接模拟电话机;Codec完成模拟语音信号的PCM编码和解码;DSP微处理器完成语音信号的压缩和解压缩 (满足G.723.1、G.729等标准)、信息封装、线路回声抵消 (LEC)、语音抖动缓冲(jitter buffer)、动态语音检测(VAD)、舒适噪音产生(CNG)、主叫识别(CID)等功能,同时提供一个用于调试的JTAG接口。其结构如图2所示。
PEB33322可以使用电话应用编程接口(telephone application programming interface,TAPI)来控制 Codec的工作,支持G.729 A/B/E格式的语音压缩。
网络控制器ADM5120是一个高性能、高灵活性的SOC网络控制器,由高性能的嵌入式MIPS 4Kc CPU、嵌入式交换引擎、10/100 Mbit/s物理层接口、嵌入式USB接口和 PCI、UART、SDRAM、Flash接口组成,具有存储器管理(MMU)功能,支持Linux操作系统,支持 DHCP服务器/客户机工作模式,其结构如图3所示。
ADM5120在语音网关中主要完成实现VoIP呼叫时SIP协议的控制、VoIP网关设备的系统管理、数据传输时TCP/IP协议控制等功能。
3 SIP协议呼叫控制过程
本语音网关在上述硬件平台基础上采用SIP协议实现语音传输的控制[1],包括呼叫建立、呼叫保持、呼叫释放等过程。图4是采用SIP协议完成一次基本呼叫控制的过程示意[2]。
4 语音网关软件结构
ADM5120芯片能够较好地支持嵌入式Linux操作系统,支持 SIP信令协议[3],因此本语音网关的软件设计也是基于Linux而设计的,其结构包括应用软件、软件接口和Linux Kernel三大部分,其软件结构示意如图5所示。
·Linux Kernel层主要提供网络驱动、硬件配置和驱动、TCP/IP协议栈等功能,为上层提供必要的调用接口函数;
·软件接口层主要提供各种应用程序库,主要包括SIP协议栈、RTP传输控制、资源设备管理等库函数,为上层提供必要的调用接口函数;
·应用软件层使用软件接口层提供的接口函数实现电话终端的通信任务、电话终端常用业务以及基本参数配置和各种驱动初始化。
5 语音网关的实现
根据上述硬件、软件设计原理,笔者完成了如图1所示的语音网关设计,实现了话机A与B的VoIP功能。在系统实现过程中主要解决了如下几个问题。
(1)语音抖动的处理
为了解决好VoIP中的语音抖动问题,在系统中采用了一个抗抖动数据缓冲区,该数据缓冲区的大小不仅影响抗抖动的效果,还会影响到语音数据传输的时延。若数据缓冲区过大,就会大大增加语音数据的传输时延;反之,若数据缓冲区过小,就会减弱抗抖动的效果。在系统实现中将抗抖动数据缓冲区的大小分为三档,当数据抖动较小时,采用第一档较小的数据区,以减少数据传输时延;当系统检测发现接收到的数据有较大的抖动时,系统会自动增加抖动数据缓冲区档次,以减小数据的抖动。
(2)网络回声消除的实现
为了实现回声消除功能,必须考虑近端回声消除和远端回声消除两部分。在系统实现过程中发现远端回声消除的效果有限,近端的回声消除起主要作用。究其原因是由于系统中采用了G.729语音压缩算法,该算法是码激励线性预测编码(CELP),用线性预测提取声道参数,用一个适当的激励矢量作为激励参数来实现。本地回声信号经过编码和解码,在远地的波形与未编码的波形相比,发生了较大的变化,很难实现波形匹配,对远端返回的回声难以消除。因此,在系统实现中主要在本地对近端回声进行消除处理。
(3)丢包处理方法
为了解决数据包丢失问题,减小其对语音的影响,必须采用丢包补偿技术。在本系统中采用RTP作为数据实时传输协议,由于该协议没有提供丢包控制机制,因此必须在应用层解决丢包问题。数据包丢失可分为小范围丢包和大范围丢包两种情况。对于前一种情况本系统根据前后相邻帧的相关性来补偿丢失的数据包;而对后一种情况,本系统采用前后数据块进行补偿的方法,即事先建立三个一定长度的动态数据块,当发生较大范围的数据丢失时,通过前后数据块的内容补偿丢失数据块的内容。数据块的大小是动态可调的,且必须与抗抖动缓冲区的大小配合使用。
(4)呼叫处理流程设计
呼叫处理软件主要完成通过语音网关实现VoIP呼叫所需的各种呼叫处理任务。呼叫处理软件主要由GW应用模块、SIP模块、管理模块和RTP模块组成。其中GW应用模块主要负责外接话机与内部各模块的接口;SIP模块主要负责呼叫的建立、保持和释放;管理模块主要负责内部资源的分配和管理;RTP模块主要负责实时语音数据的传送。各个模块的功能主要通过呼叫控制API函数的调用来实现。其发送端、接收端软件处理流程示意如图6所示。
6 结束语
本文介绍的基于英飞凌公司芯片的VoIP系统设计方案,包括系统硬件组成和呼叫处理软件实现流程,经过实际安装调试,在SIP协议控制下,采用G.729语音压缩标准,实现了VoIP通话的建立、维护以及拆除,较好地完成了VoIP语音通话等基本功能,声音清晰、连续;回声消除比较理想;时延较小;在模拟环境下的丢包影响较小,充分体现了该系统一体化结构的优越性能,具有设计简单,对SIP协议有很强的支持能力等特点,成为VoIP解决方案中一个成功的案例。
1 张智江.SIP协议及其应用.北京:电子工业出版社,2005
2 会话初始协议(SIP)技术要求.北京:中华人民共和国信息产业部,2006
3黄永峰.下一代网络核心控制协议——SIP及其应用.北京:人民邮电出版社,2009
4 周海华.SIP原理与应用.北京:机械工业出版社,2006
5 Gonzalo Camarillo.SIP揭密.北京:人民邮电出版社,2003