转载:利用Blackfin处理器设计自己的VoIP解决方案
关注Unicoi解决方案(www.unicoi.com)
介绍
IP网络上的语音通信(VoIP)的时代已经来临,它融合了电话和数据通信,在低成本的因特网上提供分组的语音和传真数据流。这种从电路交换到分组交换网络的转变正飞快地进行着,从而能够支持超出了简单的语音传输的应用,并延伸到可以在相同的基础设施上传输数据的其它形式的应用。
嵌入式系统设计人员面临的VoIP挑战就在于选择一种性价比高、易于配置而且性能适应市场需要可以扩展的处理解决方案。具体地说,嵌入式解决方案的“最佳点”就是采用一种能够实现低通道数量基本的VoIP解决方案而同时为增值能力和服务(例如视频、音乐、图像和系统控制等)留出足够空间的处理器。正如我们下面将要讨论的,ADI公司的Blackfin处理器就提供了这样一种解决方案。
什么是VoIP?
当今的话音网络——例如公共交换电话网(PSRN)——采用数字交换技术在呼叫方和接收方之间建立一条专用链路。虽然这种连接只能提供有限的带宽,但是它不采用复杂的编码算法就可以提供可接受的质量水平。
另一方面,VoIP采用网际协议(IP)在因特网或专用网上发送数字化的话音服务。IP分组由一个控制头部和数据净荷组成。头部为分组提供网络导航信息,而净荷包含压缩的话音数据。
和电路交换电话处理整个消息不同的是,基于VoIP的数据传输是基于分组的,因此对数据块进行分组(分成单元进行传输)和压缩,然后通过网络发送出去,最终在接收端进行重新组装。关键是,发送方和接收方之间无需专用链路。
分组技术非常适合在网络上传输“数据”(例如,一个JPEG文件或电子邮件),因为传送降为非实时“尽力服务”型。该网络可在相同的媒质上高效地传送来自于多种信源的数据。但是,对于话音服务来说,“尽力服务”型是不够的,因为接收端解码得到的音频信号质量可能令人无法接受,因为当分组经过网络的延时是不固定的。这就是为什么VoIP协议要通过服务质量(QoS)来致力于管理网络带宽以便防止延时降低话音质量。
分组话音包括在话音数据块中增加头部和尾部信息。分组开销必须最小以防止增加延时。因此,这个处理过程必须在最小的传输延时和最有效地利用网络带宽之间达到一个平衡。当然,分组尺寸越小发送分组越快,分组尺寸越大组合时间越长。但是,大的分组因为在较大的话音数据块中分摊头部和尾部信息,所以其网络带宽利用率要高于小分组的利用率。
由于网络的特性,数据传输的速率变化很大。这种偏差称为抖动。通过将分组缓存足够长的时间,保证最慢的分组也能及时到达以便按照正确的顺序解码,从而达到消除抖动的目的。当然,抖动缓冲器也增加了对系统的总延时。
如上所述,延时代表着经过IP网络系统的时间延迟。单向延时是指从电话发送端说话到电话另一端的人听到它的时间间隔。双向延时就是指两个单向延时的简单加和。延时越短,通话听起来越自然,在北美的PSTN电话系统中,双向延时不到150ms。
对于VoIP系统,高达200 ms的单向延时认为是可以接受的。在VoIP系统中引起延时的最主要部分在网络和呼叫两端的网关。话音编解码器也增加了延时,但是相对来说通常是很小的(不到20 ms)。
当话音网络应用中的延时很大时,主要的难题就是回波消除和叠音消除。回波消除与感知的质量直接相关,而且当双向延时超过50 ms时,它就会成为一个比较严重的问题。当单向延时超过200 ms时,话音重叠也成为一个较严重的问题。
由于在话音交谈中流逝的大部分时间是"静音时间"——期间没有说话者讲话——编码解码器利用这个的静音时间,不传输任何数据。,这种"静音压缩"技术检测活动语音,并在没有语音激活时停止传输数据,并产生"舒适"噪声,以确保无人交谈时仍感觉线路畅通。
在标准的PSTN电话系统中,致使接听质量下降的回波原因多种多样。两个最主要的原因是电路交换网阻抗失配("线路回波")以及麦克风与讲话者之间的声音耦合("声学回波")。当在网络中进行两线-四线转换时(如模拟信号转换为T1系统的情况),线路回波是常见的。
由于VoIP系统可以链接PSTN,它们必须能够处理线路回波,而IP电话还受到声学回波的影响。可以对回声消除器进行优化,从而消除线路回波以及声学回波。消除的有效性直接取决于所用算法的质量。
回波消除器的一个重要参数是其使用的包长度。简言之,回波消除器保持对传输信号的复制。在信号发送的制定时间内,回波消除器试图校正并抽取源自返回反射信号的传输信号——当然,该信号有延迟并且幅度有所减少。为了有效消除回波,回波消除器通常能够利用标准的校正窗口尺寸(如32 ms、64 ms或128 ms),但较大的尺寸可能更有必要。
当前以及新出现的基于VoIP的应用
由于高速网络是作为一个整体(而不是一个专用信道)用作传输设备,因此VoIP系统的一个主要优势是每个通信会话的成本较低。此外,VoIP 呼叫允许网络操作人员避免与电路交换电话网络有关的大多数互联负荷;实现VoIP电话呼叫要求增加的基础设施是最小的,因为它利用已经就位的家庭或企业现有的个人计算机。成本较低的另一个原因是数据网络操作人员通常不会使用所有的可用带宽,因此附加的VoIP服务正带来不合理的成本超支负担。
VoIP用户往往认为其连接是免费的,因为就如同他们经常认为的那样,他们可以在世界各地进行呼叫,每分钟只要几个便士。虽然他们每月也向因特网服务供应商付费,但是无论数据还是话音服务都可以分期付款。
除了相对于电路交换领域的低成本,IP服务的许多新的特性都已成为现实。例如,只要与网络节点连接,PSTN中的来电呼叫可以自动地转入的用户的VoIP电话中。同全球通手机相比,这个特性具有明显的优势,因为从VoIP的角度看,不需要漫游费,终端用户的位置毫无关系;可以简单地将其看作是另一个网络连接点。在应用无线局域网(LAN) 的地方,这非常有用;IEEE-标准-802.11支持的VoIP手机允许在世界各地的Wi-Fi热点进行会话,而不必担心通信基础设施以及传输标准不匹配的问题。
迄今为止讨论的与VoIP相关的每件事都可以扩展至其他形式的基于数据的通信。毕竟,一旦数据经过数字化与分组后,内容的特性就不再要紧,只要能够以足够的带宽进行适当的编码与解码。因此,VoIP基础设施促进了全新的网络化实时应用,诸如:
· 视频会议
· 远程视频监视
· 模拟电话适配器
· 多信道广播
· 即时通讯
· 游戏
· 电子白板
透视VoIP系统
图1示出了一个VoIP系统的四个关键组成部分:信令、编码器和解码器、传输机构和交换网关。
图1. (a)IP电话网络连接示意图
(b)端点之间的信号流与传输流
信号过程包括建立、保持以及中止结点之间的连接
为了降低网络带宽需求,在发送之前对音频和视频信号要进行编码,在接收时再解码。这种压缩和转换过程由各种音频和视频流编码器和解码器(统称“编解码器”)标准来控制的。
压缩分组在一个或更多个传输协议的控制下在网络上传输。交换网关保证分组在其它的IP系统或PSTN系统中的目的地是能互操作的。在最终目的地,分组集被解码然后转换回音频/视频信号,然后在当地通过接收方的扬声器/或显示器件播放出来。
图2给出的开放式系统互连(OSI)七层模型规定了网络框架。如果双方进行通信会话,则在每方最上面的启动层产生数据,然后通过各层进行各种所需的配置与处理I,最后提交给物理层在媒质之间进行传输。在目的地,进行反向处理,直到数据包最终重组并向第二个用户提供数据。
会话控制: H.323与SIP
一个VoIP系统的最基本需求就是会话控制协议以便证实用户存在并定位用户,以及建立、修改或终止会话。目前有两种被广泛采用的协议。以前,这类协议中最早的就是H.323*,但是会话初始化协议(SIP)迅速发展成主要的标准。下面我们更详细地描述这两个协议。
国际电信联盟(ITU) 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不是一个适合实时流媒体传输的传输控制协议。
图2给出TCP/IP因特网模型及其相关的协议是如何与OSI模型的不同层进行比较与使用

图2. 开放系统互联与TCP/IP模型
媒体传输
如前所述,直接在传输协议上发送媒体数据对于实时通信来说并不是很有效。这就是为什么通常要采用媒体传输层 来有效地处理这类数据。
RTP (实时传输协议)
RTP为实时的分组音频和视频数据提供传送服务。它是IP网络上传输实时数据的标准方式。该协议位于UDP之上以便将分组头部开销最小,但是这样是要付出代价的,因为无法保证可靠性和分组的顺序。与TCP相比,RTP的可靠性较低,但是分组的传输延时较小,因为TCP的分组头部开销要比RTP大得多(图3)。

图3.RTP帧的报头结构与载荷
为了保证一定的QoS等级,RTP给每个发送的分组采用了时间戳、顺序编号以及交付确认。它还支持许多纠错方案以提高鲁棒性,还有一些基本的安全选项用于加密的数据分组。
图4比较了UDP、RTP以及TCP的性能与可靠性

图4.性能与可靠性对比
RTCP (RTP控制协议)
RTCP控制协议(RTCP)是一个补充协议,用于控制信息通信,例如发送和丢失的分组数量、抖动、延时以及终端的描述等。它主要用于管理会话时间基准和分析RTP流的QoS。它还可提供一个反向通道用于有限的RTP分组的重传。
媒体编解码器
VoIP协议栈的最后一部分负责处理需要传输的实际媒体数据。有许多可能的音频和视频编解码器都可以进入媒体传输层。在这篇文章最后一页的工具条中可以看到最常见的编解码器实例。
许多因素都有助于确定一个语音编解码器的理想程度,包括它如何有效利用可用的系统带宽,如何处理分组丢失,以及与之相关的成本(知识产权费等)。
BLACKFIN用于VoIP中
不像传统的VoIP嵌入式解决方案那样利用两颗处理器内核来提供VoIP功能,Blackfin处理器在一个统一的内核体系结构中提供了一种会聚的解决方案——适合于语音处理的数字信号处理器(DSP)和适合于网络及用户接口需求的RISC精简指令微控制器(MCU)功能。这种在单颗会聚处理器中提供完整VoIP功能的独特功能有利于单一的软件开发环境、加快系统的调试和配置,并降低系统总成本。
例如,ADSP-BF537Blackfin处理器系列为VoIP的配置提供了必需的集成度、高性能和低功耗。它具有多个集成的串行端口(可以无缝连接到音频模数转换器和数模转换器),一个外部存储器控制器,一个并行外围接口(PPI)用于连接液晶显示器或视频编解码器,还有10/100BaseT的以太网媒体访问控制器(MAC)。如果需要的话,还可以通过外部的存储器接口提供第二个以太网MAC。
一个完整的通信信道——包括语音和网络协议栈——只占用不到75 MHz的处理器带宽。同类的专用VoIP产品通常只有有限的性能而且没有能力增加功能或变化。因为Blackfin处理器具有高达600 MHz的性能,所以有足够的处理带宽扩展VoIP产品种类,当多媒体压缩或解压缩等功能需要扩展时。
对于VoIP应用,基于Blackfin的设计适合于高质量、低通道数量的VoIP解决方案,具有适应增加功能(例如音乐、视频和图像传输以及系统总控制)的处理余量。下面我们来看看可提供的的VoIP产品实例,从开源解决方案到大批量的原始设备制造商(OEM)参考设计:
Blackfin/Linphone
Blackfin VoIP系统在设计时可以采用基于μClinux操作系统(流行的GNU-Linux操作系统的嵌入式版本)的开源软件。一个这样的GPL许可软件包,称为Linphone软件,它已经将Blackfin处理器连接到μClinux。它基于SIP协议套件,使得该Blackfin参考设计可以与任何兼容SIP的终端通信。在具有合适的SIP服务器和网关设施的公用网络上,该系统甚至可以用于连接一个PSTN结点上的电话。对于语音编码和解码,目前的Linphone软件在Blackfin的实现支持G.711(A律和μ率),GSM和Speex。
Blackfin Linphone参考设计中采用的主要组成部分:
kLinux TCP/IP网络协议栈:包括必需的传输和控制协议,例如TCP和UDP。
Linphone:主要的VoIP应用软件,包括基于Blackfin处理器的G.711和GSM编解码器实现。对于台式PC有图形用户界面(GUI),对于非图形化的嵌入式系统,有简单的命令行应用软件。
oRTP:为Linphone开发的RTP协议栈实现,经LGPL许可发布。
oSIP:SIP协议的线程安全实现,经LGPL许可发布。
Speex:编解码器的开源参考代码实现。对定点Speex实现的Blackfin专用优化已经送回到主线代码分支。
Unicoi系统基于Blackfin处理器的Fusion语音网关
Fusion语音网关(图5)是Unocoi系统中完整的语音网关和终端适配器参考设计。Fusion语音网关具有路由器功能和全功能的SIP电话,运行在单内核的Blackfin处理器上,它使得终端适配器可以迅速面市。

图5. Unicoi系统公司研制的基于Blackfin处理器的Fusion话音网关
Fusion语音网关具有鲁棒性功能,包括G.168回声消除和多种G.7xx语音编解码器。Fusion参考设计还包括了全功能电话和路由器功能,集成了因特网路由器,一个四端口的以太网交换端口和VoIP网关功能。
Unicoi Systems公司基于Blackfin处理器的Fusion IP电话
Unicoi Systems公司的Fusion IP电话是完整的软件/硅解决方案,提供支持当前与新出现的IP电话标准的全功能平台,并可以根据产品的差异进行扩展。
Fusion IP电话参考设计降低了与开发IP电话有关的材料清单(BOM)成本、时间以及复杂度。这个参考设计采用ADSP-BF536处理器,参考设计软件提供构件基本或高级IP电话所需的关键处理(如实时操作系统、呼叫管理、语音算法、全双工扬声器的声学回波消除)、通信协议(TCP/IPv4/v6, SIP, RTP等)以及外设功能(LCD与键盘控制器等)。
Blackfin BRAVO VoIP参考设计
ADI公司的Blackfin BRAVOTM VoIP和可视电话参考设计是完整的系统解决方案,适合OEM用于建立高级功能、高性能、低成本的VoIP台式电话、可视电话和电话适配器。这些设计包括了适合VoIP应用的完整软件套件,(它们都可以通过一整套定制的应用程序接口(API)来控制)以及对内核系统功能的控制。
对于音频应用,这些设计支持多种G.7xx音频编解码器, G.168标准的网络回声消除,以及用于增强音频清晰度的声学回声消除。此外,设计中还包括了RF收发器以便提供无线音频功能。这些设计都支持H.323和SIP的两种软件协议栈。
在视频前端,BRAVO宽带音频视频通信参考设计可提供高达30 fps的彩色CIF格式视频,包括支持ITU标准H.263和H.264视频编解码、画中画、高分辨率图形覆盖、透明和色度控键,以及抗闪烁滤波等。
图6.Blackfin BRAVO宽带音频/视频通信参考设计功能框图
结论
显然,VoIP技术有可能彻底改变人们通信的方式——不管他们是在家里还是在工作,有线的,无线的,能支持视频的,还是只支持简单的音频。强大而且多功能的Blackfin处理器,和其他的一系列标准,将使VoIP技术不断深入嵌入式环境,这样会在许多新的市场中创造增值功能。