Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3820987
  • 博文数量: 197
  • 博客积分: 10086
  • 博客等级: 上将
  • 技术积分: 5145
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-13 10:50
文章分类

全部博文(197)

文章存档

2011年(2)

2009年(30)

2008年(165)

我的朋友

分类: LINUX

2008-05-21 00:21:45

网际协议话音通信(VoIP)的时代已经来临,它融合了电话和数据通信世界,在低成本的因特网上提供分组的语音并传送数据流。这种从电路交换到分组交换网 络的转变正飞快地进行着,从而能够支持超出了简单的语音传输的应用,并延伸到可以在相同的基础设施上传输数据的其它形式的应用。但是,这类嵌入式设计的难 点就在于选择一种低成本、易于配置而且性能适应市场需要可以扩展的处理解决方案。具体地说,嵌入式解决方案的“最佳点”就是采用一种能够实现低通道数量 VoIP解决方案而同时为增值能力和服务(例如视频、音乐、图像和系统控制等)留出足够空间的处理器。正如我们下面将要讨论的,美国模拟器件公司 (Analog Devices Inc.,简称ADI)的Blackfin处理器就提供了这样一种解决方案。

什么是VoIP?

  当今的话音网络——例如公共交换电话网(PSRN)——采用数字交换技术在呼叫方和接收方之间建立一条专用链路。虽然这种连接只能提供有限的带宽,但是它不采用复杂的编码算法就可以提供可接受的质量水平。

  另一方面,VoIP采用网际协议(IP)在因特网或专用网上发送数字化的话音服务。IP分组由一个控制头部和数据净荷组成。头部为分组提供网络导航信息,而净荷包含压缩的话音数据。

  和电路交换电话不同的是,数据传输是基于分组的,以便对数据块进行分组和压缩,然后通过网络发送出去,最终在接收端进行重新组装。换句话说,发送方和接收方之间无需专用链路。

  分组技术非常适合在网络上传输“数据”(例如,一个JPEG文件或电子邮件),因为传送降为“尽力服务”型。该网络可在相同的媒质上高效地传送 来自于多种信源的数据。但是,对于话音服务来说,“尽力服务”型是不够的,因为接收端解码得到的音频信号质量可能令人无法接受,因为当分组经过网络的延时 是不固定的。这就是为什么VoIP协议要通过服务质量(QoS)来致力于提供固定的网络带宽以便防止延时降低话音质量。

  分组话音包括在话音数据块中增加头部和尾部信息。分组开销必须最小以防止增加延时。因此,这个处理过程必须在最小的传输延时和最有效地利用网络带宽之间达到一个平衡。当然,分组尺寸越小发送分组越快,分组尺寸越大组合时间越长。但是,大的分组因为在较大的话音数据块中分摊头部和尾部信息,所以其网络带宽利用率要高于小分组的利用率。

  由于网络的特性,数据传输的速率变化很大。这种偏差称为抖动。通过将分组缓存足够长的时间,保证最慢的分组也能及时到达以便按照正确的顺序解码,从而达到消除抖动的目的。当然,抖动缓冲器也增加了对系统的总延时。

  延时是一个很重要的参数,因为它代表了经过IP网络系统的时间延迟。单向延时是指从电话发送端说话到电话另一端的人听到它的时间间隔。双向延时就是指两个单向延时的简单加和。在北美的PSTN电话系统中,双向延时不到150 ms。当然,延时越短,通话就越自然。

  对于VoIP系统,高达200 ms的单向延时认为是可以接受的。在VoIP系统中引起延时的最主要部分在网络和呼叫两端的网关。话音编解码器也增加了延时,但是相对来说通常是很小的(不到20 ms)。

  当话音网络应用中的延时很大时,主要的难题就是回波消除和叠音消除。回波消除与感知的质量直接相关,而且当双向延时超过50 ms时,它就会成为一个比较严重的问题。当单向延时超过250 ms时,话音重叠也成为一个较严重的问题。

新兴的和当前的基于VoIP的应用

  因为采用网络做传输机构,所以VoIP系统发挥的一个主要优势就是降低每次通信会话的成本。此外,VoIP通话使网络运营商避免了与电路交换电 话网络相关的大部分互连费用,而且完成一次VoIP通话需要增加的基础设施是最少的:它利用已经连接了家用或商用个人计算机(PC)的现有网络。另外,降 低成本的另一个原因就是数据网络运营商通常拥有未充分利用的带宽,所以增加VoIP服务实质上只是增加了无关紧要的附加开销。

  VoIP用户往往认为他们的连接像“免费”一样,因为每当他们想打电话时就可以呼叫世界上的任何地方,而每分钟仅需几分钱。但是,他们还需要向其因特网服务提供商支付月租费用,虽然这个费用可以对数据服务和话音服务分开。

  这种服务不仅比电路交换服务便宜,而且还提供许多新的功能。例如,在PSTN上打入的电话可以自动重新路由到用户的VoIP电话,只要它连接到 某个网络结点上就可以。这种优势超过了全球通用的蜂窝电话,因为不会需要漫游费用——从VoIP的角度看,终端用户的位置是无关紧要的,因为它仅仅被当成 另一个网络连接点。这就使得基于802.11标准的VoIP电话非常具有吸引力,从而允许在全球的WiFi热点地区内通话,而无需担心通信基础设施和传输 标准的失配。

  到目前为止我们所讨论的有关IP话音的所有内容可以扩展到其它形式的数据通信中;数据一旦被数字化并分组化,毕竟其内容是什么实际上是无关紧要的。因此,VoIP基础设施支持一系列全新的网络实时应用,例如:

?视频会议
?远程视频监视
?模拟电话适配器
?多信道广播
?即时通讯
?游戏
?电子白板

VoIP系统的详细描述

图1示出了一个VoIP系统的四个关键组成:信令、编码器和解码器、传输机构和交换网关。信令过程包括在结点间建立、维持和终止连接。

 

  为了降低网络带宽需求,在发送之前对音频和视频信号要进行压缩编码,在接收时再解码。这种压缩和转换过程由各种音频和视频流编码器和解码器(统称“编解码器”)标准来控制。

  压缩分组在一个或更多个传输协议的控制下在网络上传输。交换网关保证分组在其它的IP系统或PSTN系统中的目的地是能互操作的。在最终目的地,分组集被解码然后转换回音频信号,然后在当地通过接收方的耳机或扬声器播放出来。

图2描述了开放式系统互连(OSI)模型各层涉及到的一些协议,该模型规定了一种网络框架。

 

会话控制:H.323与SIP

  一个VoIP系统的最基本需求就是会话控制协议以便证实用户存在并定位用户,以及建立、修改或终止会话。目前有两种被广泛采用的协议。以前,这类协议中最早的就是H.3231,但是会话初始化协议(SIP)迅速发展成主要的标准。下面我们更详细地描述这两个协议。

H.323

  H.323是国际电信联盟电信标准化部门(ITU-T)最初为实时多媒体(话音和视频)会议及其辅助数据传送开发的一个标准。它发展得很快,可 以满足VoIP网络的需求。从技术上看它是一个容器,包罗了许多必需的和可选的网络和媒体编解码标准。H.323的连接信令部分由H.225协议控制,而 参数协商由H.245协议支持。

SIP

  会话初始化协议(SIP)由因特网工程工作小组(IETF)在RFC 3261规范中定义。尽管从很多方面都与H.323协议重复,但是SIP协议是一个更新的协议,而且是专门为IP电话和其它的因特网服务而开发的。因此,通常认为它是更新型的解决方案。

  SIP协议与会话描述协议(SDP)配合使用用于发现用户,而且它提供参数协商和呼叫管理。SDP本质上是一种用于描述会话发起和请求期间流媒体初始化参数的格式。SIP和SDP协议组有点类似于H.323中的H.225和H.245协议组。

  SIP可以用于只有两个终端而没有服务器设施的系统中。但是,在公用网上,需要利用专用代理和注册服务器来建立连接。在这样的配置中,每个客户端都会用一个服务器登记姓名,以便使呼叫方能从因特网上的任何地方找到他。

传输协议

  我们刚才讨论的信令协议负责配置网络中的多媒体会话。一旦连接建立起来,媒体数据就通过采用一个或多个数据传输协议(例如UDP或TCP)在网络结点间传送。

UDP

  用户数据报协议(UDP)是一个分组仅仅向外广播的网络协议。不能确认另一端是否接收到分组。这就是说交付是没有保障的,因此在网络的峰值负载期间,话音传输仅仅采用UDP是无法正常工作的。这就是为什么通常要在UDP上层采用一个类似于RTP的媒体传输协议。

TCP

  传输控制协议(TCP)采用一种客户端-服务器的通信模型。客户端向网络中的另一台计算机(或服务器)请求(或被提供)服务。每个客户端请求都是单独处理的,与先前的任何请求都无关。这样就保证了“空闲的”网络通路可用于其它的通道。

  TCP创建比较小的分组,可以在发送到因特网上并被呼叫另一端的TCP层接收,这样分组就会被“重装”回原始消息。IP层处理每个分组的地址字段以便使它可以到达正确的目的地。

  和UDP不同的是,TCP要保证接收端能完整地接收分组。然而,它是通过分组重传来实现的,重传增加了延时,这对实时话音通信是不利的。换句话 说,因为重传引起的延迟分组和丢失的分组一样严重。因为这个特性,通常都认为TCP不是一个适合实时流媒体传输的传输控制协议。

媒体传输

  如前所述,直接在传输协议上发送媒体数据对于实时通信来说并不是很有效。这就是为什么通常要采用媒体传输层来有效地处理这类数据。

实时传输协议(RTP)
 


RTP帧的头部结构和净荷

  RTP为实时的分组音频和视频数据提供传送服务。它是IP网络上传输实时数据的标准方式。该协议位于UDP之上以便将分组头部开销最小,但是这 样是要付出代价的,因为无法保证可靠性和分组的顺序。与TCP相比,RTP的可靠性较低,但是分组的传输延时较小,因为TCP的分组头部开销要比RTP大 得多。

  为了保证一定的QoS等级,RTP给每个发送的分组采用了时间戳、顺序编号以及交付证实。它还支持许多纠错方案以提高鲁棒性,还有一些基本的安全选项用于加密的数据分组。

 

RTCP

  RTP控制协议(RTCP)是一个补充协议,用于通信控制信息,例如发送和丢失的分组数量、抖动、延时以及终端的描述等。它主要用于管理会话时基和分析RTP流的QoS。它还可提供一个反向通道用于限制RTP分组的重传。

媒体编解码器

  VoIP协议栈的最后一部分负责处理需要传输的实际媒体数据。有许多可能的音频和视频编解码器都会进入媒体传输层。
高效的语音编码和解码对使网络带宽利用率最大是很重要的。语音编码器和解码器分别用于将语音压缩为数据分组和将数据分组解压缩为语音。所有的压缩技术都会根据带宽权衡质量。但是,许多因素都有助于确定一个语音编解码器的理想程度,包括它如何有效利用可用的系统带宽,如何处理分组丢失,以及与之相关的成本(知识产权费等)。

  因为一个语音通话期间大多数时间都是没有人说话的“静音时间”,编解码器可以利用这个事实在这些时间间隔内不传送任何的数据。因此,“静音压 缩”包括检测话音激活的方式,当没有话音活动时停止发送数据的方式,以及产生“舒适”噪声的方法——保证在无人说话时线路不会静默。

  在标准的电路交换系统中,会因为各种原因产生回声,降低服务质量。最常见的原因就是电路交换PSTN网络中的阻抗失配(线路回声)。另一个常见 的原因就是电话机中传声器和扬声器之间的声音耦合(“声学回声”)。当网络中存在二线到四线转换(例如,模拟信令转换到T1系统)时,线路回声是很普遍 的。

  因为VoIP系统可以连接到PSTN,所以它们必须能够处理线路回声。另外,当扬声器和传声器之间有反馈时,IP电话中也存在声学回声。

  回声消除标准(例如G.168)用于消除来自系统的回声。回声消除器可用于处理线路回声、声学回声或者二者均可。消除的效率直接取决于采用的算法质量。

  回声消除器的一个重要参数就是它进行运算的分组长度。最简单的情况,回声消除器会保存一份发送信号。当信号发送后经过一定的时间,它就会在返回 的反射信号和发送信号之间建立关联并进行相减。当然,这样的话接收信号就被延迟了,而且还减小了幅度。典型的相关窗口时间长度值为32 ms,64 ms或128 ms。当一个回声到达窗口外时,回声消除器就不能适当地抵消该回声了。


Blackfin用于VoIP中

  不像传统的VoIP嵌入式解决方案那样利用两颗处理器内核来提供VoIP功能,Blackfin处理器在一个统一的内核体系结构中提供了一种会 聚的解决方案——适合于语音处理的数字信号处理器(DSP)和适合于网络及用户接口需求的RISC精简指令微控制器(MCU)功能。这种在单颗会聚处理器 中提供完整VoIP功能的独特功能有利于单一的软件开发环境、加快系统的调试和配置,并降低系统总成本。

  例如,ADSP-BF537 Blackfin处理器系列为VoIP的配置提供了必需的集成度、高性能和低功耗。它具有多个集成的串行端口(可以无缝连接到音频模数转换器和数模转换 器),一个外部存储器控制器,一个并行外围接口(PPI)用于连接液晶显示器或视频编解码器,还有10/100BaseT的以太网媒体访问控制器 (MAC)。如果需要的话,还可以通过外部的存储器接口提供第二个以太网MAC。

  一个完整的通信信道——包括语音和网络协议栈——只占用不到75 MHz的处理器带宽。同类的专用VoIP产品通常只有有限的性能而且没有能力增加功能或变化。因为Blackfin处理器具有高达600 MHz的性能,所以有足够的处理带宽扩展VoIP产品种类,当多媒体压缩或解压缩等功能需要扩展时。

Blackfin VoIP 附属应用

  对于VoIP应用,基于Blackfin的设计适合于高质量、低通道数量的VoIP解决方案,具有适应增加功能(例如音乐、视频和图像传输以及 系统总控制)的处理余量。下面我们来看看可提供的的VoIP产品实例,从开源解决方案到大批量的原始设备制造商(OEM)参考设计。

Blackfin/Linphone

  Blackfin VoIP系统在设计时可以采用基于uClinux操作系统(流行的GNU-Linux操作系统的嵌入式版本)的开源软件。一个这样的GPL许可软件包,称为Linphone软 件,它已经将Blackfin处理器连接到uClinux。它基于SIP协议套件,使得该Blackfin参考设计可以与任何兼容SIP的终端通信。在具 有合适的SIP服务器和网关设施的公用网络上,该系统甚至可以用于连接一个PSTN结点上的电话。对于语音编码和解码,目前的Linphone软件在Blackfin的实现支持G.711(A律和μ率),GSM和Speex。


  Blackfin Linphone参考设计中采用的主要组成部分:

  Linux TCP/IP网络协议栈:包括必需的传输和控制协议,例如TCP和UDP。

  Linphone:主要的VoIP应用软件,包括基于Blackfin处理器的G.711和GSM编解码器实现。对于台式PC有图形用户界面(GUI),对于非图形化的嵌入式系统,有简单的命令行应用软件。

  oRTP:为Linphone开发的RTP协议栈实现,经LGPL许可发布。

  oSIP:SIP协议的线程安全实现,经LGPL许可发布。

  Speex:Speex编解码器的开源参考代码实现。对定点Speex实现的Blackfin专用优化已经送回到主线代码分支。

  Unicoi系统基于Blackfin处理器的Fusion语音网关

  Fusion语音网关是Unocoi系统中完整的语音网关和终端适配器参考设计。Fusion语音网关具有路由器功能和全功能的SIP电话,运行在单内核的Blackfin处理器上,它使得终端适配器可以迅速面市。

  Fusion语音网关是具有市场上最低的原材料成本(BOM),但是具有鲁棒性功能,包括G.168回声消除和多种G.7xx语音编解码器。Fusion参考设计还包括了全功能电话和路由器功能,集成了九个路由器,一个四端口的以太网交换端口和VoIP网关功能。
http://www.unicoi.com/Documentation/ProductBriefs/voicegateway_unicoi_blackfin.pdf

 

Blackfin BRAVO VoIP参考设计

  ADI公司的Blackfin® BRAVO™ VoIP和可视电话参考设计是完整的系统解决方案,适合OEM用于建立高级功能、高性能、低成本的VoIP台式电话、可视电话和电话适配器。这些设计包括 了适合VoIP应用的完整软件套件,(它们都可以通过一整套定制的应用程序接口(API)来控制)以及对内核系统功能的控制。

  对于音频应用,这些设计支持多种G.7xx音频编解码器, G.168标准的网络回声消除,以及用于增强音频清晰度的声学回声消除。此外,设计中还包括了RF收发器以便提供无线音频功能。这些设计都支持H.323和SIP的两种软件协议栈。

  在视频前端,BRAVO宽带音频视频通信参考设计可提供高达30 fps的彩色CIF格式视频,包括支持ITU标准H.263和H.264视频编解码、画中画、高分辨率图形覆盖、透明和色度控键,以及抗闪烁滤波等。


 

结论

  显然,VoIP技术有可能彻底改变人们通信的方式——不管他们是在家里还是在工作,有线的,无线的,能支持视频的,还是只支持简单的音频。 Blackfin处理器稳键地使VoIP技术不断深入嵌入式环境,这样会在许多新的市场中创造增值功能,同时也利用了这种现有的技术。

阅读(959) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~