使用Blackfin处理器设计您自己的VoIP解决方案

描述

作者:David Katz, Tomasz Lukasiak, Rick Gentile, and Wayne Meyer

互联网协议语音(VoIP)的时代已经到来,它将电话和数据通信结合在一起,提供通过低成本互联网链路流式传输的分组语音和传真数据。从电路交换到分组交换网络的过渡,现在正以惊人的速度继续,正在鼓励远远超出简单语音传输的应用,拥抱其他形式的数据,并允许它们都通过相同的基础设施传输。

嵌入式系统设计人员面临的VoIP挑战是选择一种经济高效、易于部署且性能可扩展的处理解决方案。“最佳点”嵌入式解决方案方法是使用一个平台进行设计,该平台可以实现低通道数的基本VoIP解决方案,同时保留足够的增值功能和服务容量,如视频,音乐,成像和系统控制。下面的讨论表明,ADI公司的Blackfin处理器系列提供了如此有吸引力的解决方案。

什么是网络电话?

当今的语音网络(如公用电话交换网 (PSTN))利用数字交换技术在呼叫者和接收者之间建立专用链路。虽然此连接仅提供有限的带宽,但它确实提供了可接受的质量级别,而没有复杂编码算法的负担。

VoIP替代方案使用互联网协议(IP)通过互联网或专用网络发送数字化语音流量。IP 数据包由包含控制标头和数据有效负载的数字序列组成。标头提供数据包的网络导航信息,有效负载包含压缩的语音数据。

虽然电路交换电话处理整个消息,但基于VoIP的数据传输是基于分组的,因此数据块被分组(分成传输单元),压缩并通过网络发送,并最终在指定的接收端重新组装。关键是发射器和接收器之间不需要专用链路。

数据包化非常适合通过网络传输数据(例如,JPEG 文件或电子邮件),因为传递属于非时间关键型“尽力而为”类别。网络通过同一介质有效地从多个来源移动数据。然而,对于语音应用,“尽力而为”是不够的,因为数据包通过网络时的可变长度延迟会降低接收端解码音频信号的质量。出于这个原因,VoIP协议通过QoS(服务质量)技术,专注于管理网络带宽,以防止延迟降低语音质量。

打包语音数据涉及将标头和尾部信息添加到数据块。必须减少数据包开销(此过程引入的额外时间和数据),以最大程度地减少增加的延迟(通过系统的时间延迟)。因此,该过程必须在最小化传输延迟和最有效地使用网络带宽之间取得平衡 - 较小的大小允许更频繁地发送数据包,而较大的数据包需要更长的时间来组成。另一方面,较大的数据包将标头和尾部信息分摊到较大的语音数据块中,因此它们比较小的数据包更有效地使用网络带宽。

就其性质而言,网络导致数据传输速率变化很大。这种变化称为抖动,通过缓冲数据包足够长的时间来消除,以确保最慢的数据包及时到达,以便以正确的顺序进行解码。当然,较大的抖动缓冲区会导致更多的整体系统延迟。

如上所述,延迟表示通过 IP 系统的时间延迟。单向延迟是从说出单词到呼叫另一端的人听到它的时间。往返延迟只是两个单向延迟的总和。延迟值越低,对话听起来越自然。对于北美的 PSTN 电话系统,往返延迟小于 150 毫秒。

对于 VoIP 系统,长达 200 毫秒的单向延迟被认为是可以接受的。VoIP系统中延迟的最大因素是呼叫两端的网络和网关。语音编解码器(编码器-解码器)会增加一些延迟,但相比之下,延迟通常很小(<20 毫秒)。

当语音网络应用中的延迟很大时,主要挑战是消除回声并消除重叠。回声消除直接影响感知质量;当往返延迟超过 50 毫秒时,这一点变得很重要。当单向延迟超过 200 毫秒时,语音重叠成为一个问题。

由于语音对话期间经过的大部分时间都是“死区时间”(在此期间没有说话人说话),因此编解码器通过在这些间隔内不传输任何数据来利用这种静音。这种“静音压缩”技术检测语音活动,并在没有语音活动时停止传输数据,而是产生“舒适”噪声,以确保在没有人说话时线路不会显得死机。

在标准 PSTN 电话系统中,由于各种原因,可能会发生降低感知质量的回声。最常见的两个原因是电路交换网络中的阻抗不匹配(“线路回声”)和电话中麦克风和扬声器之间的声学耦合(“声学回声”)。当网络中存在两线到四线转换时(例如,将模拟信号转换为T1系统),线路回波很常见。

由于VoIP系统可以链接到PSTN,因此它们必须能够处理线路回声,而IP电话也可能成为声学回声的受害者。回声消除器可以优化为在线回声、声学回声或两者兼而有之。取消的有效性直接取决于所用算法的质量。

回声消除器的一个重要参数是它运行的数据包的长度。简而言之,回声消除器保留已传输信号的副本。在信号发送后的给定时间内,它试图从返回的反射信号中关联和减去传输的信号 - 当然,该信号的幅度会延迟和减小。为了实现有效的取消,通常使用标准相关窗口大小(例如,32 ms、64 ms 或 128 ms)就足够了,但可能需要更大的大小。

新兴和当前基于 VoIP 的应用

由于高速网络作为一个整体(而不是专用通道)用作传输机制,因此VoIP系统的一个主要优点是每个通信会话的成本较低。此外,VoIP呼叫使网络运营商能够避免与电路交换电话网络相关的大多数互连费用;完成VoIP电话呼叫所需的额外基础设施很少,因为它使用家庭或企业个人计算机(PC)已经存在的现有网络。降低成本的另一个原因是数据网络运营商通常没有使用所有可用带宽,因此额外的VoIP服务目前会产生无关紧要的额外成本开销负担。

VoIP用户倾向于认为他们的连接是“免费的”,因为他们可以在世界任何地方拨打电话,只要他们愿意,每分钟只需几美分。虽然他们也每月向互联网服务提供商支付费用,但可以通过数据和语音服务摊销。

除了相对于电路交换域的低成本之外,IP服务的许多新功能也变得可用。例如,PSTN 上的传入电话呼叫可以自动重新路由到用户的 VoIP 电话,只要它连接到网络节点即可。与支持全球的手机相比,这种安排具有明显的优势,因为不涉及漫游费用——从VoIP的角度来看,最终用户的位置无关紧要;它只是被视为另一个网络连接点。这在无线局域网 (LAN) 可用的情况下特别有用;支持 IEEE-Standard-802.11 的 VoIP 听筒允许在全球 Wi-Fi 热点进行对话,而无需担心不匹配的通信基础设施和传输标准。

到目前为止,与IP语音相关的所有讨论也扩展到其他形式的基于数据的通信。毕竟,一旦数据被数字化和打包,内容的性质就无关紧要了,只要它以足够的带宽进行适当的编码和解码。正因为如此,VoIP基础设施促进了一组全新的网络实时应用程序,例如:

视频会议

远程视频监控

模拟电话适配器

组 播

即时通讯

赌博

电子白板

仔细观察VoIP系统

图 1 显示了 VoIP 系统的关键组件:信令过程、编码器/解码器、传输机制和交换网关。

处理器

图1.(a) 简化可能的IP电话网络连接的表示。(b) 端点之间的信令和传输流。

信令过程涉及创建、维护和终止节点之间的连接。

为了降低网络带宽要求,音频和视频在传输前进行编码,在接收时进行解码。此压缩和转换过程受音频和视频流的各种编解码器标准的控制。

压缩的数据包在由一个或多个传输协议控制的网络中移动。交换网关确保数据包集在目标上可与另一个基于 IP 的系统或 PSTN 系统互操作。在最终目的地,数据包集被解码并转换回音频/视频信号,此时它通过接收器的扬声器和/或显示单元播放。

OSI(开放系统互连)七层模型(图 2)指定了一个网络框架。如果通信会话有两方,则每一方生成的数据从顶部开始,通过各层进行任何所需的配置和处理,最后传递到物理层以进行跨介质传输。在目的地,处理以相反的方向进行,直到数据包最终重新组装并将数据提供给第二个用户。

会话控制:H.323 与 SIP

VoIP 系统中的第一个要求是会话控制协议,用于建立状态和定位用户,以及设置、修改和终止会话。目前有两种广泛使用的协议。从历史上看,这些协议中的第一个是H.323*,但SIP(会话初始协议)正迅速成为主要标准。让我们来看看每个角色所扮演的角色。

国际电信联盟(ITU)H.323

H.323是国际电联最初为实时多媒体(语音和视频)会议和补充数据传输而开发的标准。它已迅速发展以满足VoIP网络的要求。从技术上讲,它是许多必需和可选的网络和媒体编解码器标准的容器。H.323 的连接信令部分由 H.225 协议处理,而特征协商由 H.245 支持。

SIP(会话初始协议)

SIP 由 IETF(互联网工程任务组)根据 RFC 3261 定义。它是专门为 IP 电话和其他互联网服务开发的,尽管它在许多方面与 H.323 重叠,但它通常被认为是一种更简化的解决方案。

SIP与SDP(会话描述协议)一起使用,用于用户发现;它提供功能协商和呼叫管理。SDP 本质上是一种描述会话公告和邀请期间流媒体初始化参数的格式。SIP/SDP 对有点类似于 H.225 标准中设置的 H.245/H.323 协议。

SIP 可用于只有两个端点且没有服务器基础结构的系统。但是,在公共网络中,使用特殊的代理和注册器服务器来建立连接。在这样的设置中,每个客户端都向服务器注册自己,以便调用方可以从 Internet 上的任何地方找到它。

传输层协议

上述信令协议负责配置网络中的多媒体会话。建立连接后,将利用一个或多个数据传输协议(如 UDP 或 TCP)建立网络节点之间的媒体流。

UDP(用户数据报协议)

UDP 是一种网络协议,仅涵盖广播出的数据包。没有确认另一端已收到数据包。由于无法保证交付,因此当网络上存在峰值负载时,语音传输将无法很好地单独使用 UDP。这就是为什么媒体传输协议(如 RTP)通常运行在 UDP 之上的原因。

TCP(传输控制协议)

TCP 使用客户端/服务器通信模型。客户端请求(并由网络中的另一台计算机(服务器)提供服务。每个客户端请求都是单独处理的,与之前的任何请求无关。这可确保“空闲”网络路径可供其他通道使用。

TCP创建较小的数据包,这些数据包可以通过Internet传输并由呼叫另一端的TCP层接收,以便数据包被“重新组装”回原始消息。IP 层解释每个数据包的地址字段,使其到达正确的目的地。

与UDP不同,TCP确实保证在接收端完全接收数据包。但是,它通过允许数据包重新传输来实现这一点,这会增加对实时数据没有帮助的延迟。对于语音,由于重新传输而导致的延迟数据包与丢失的数据包一样糟糕。由于这一特性,TCP通常不被认为是实时流媒体传输的合适传输。

图 2 显示了 TCP/IP 因特网模型及其相关协议如何与 OSI 模型的各个层进行比较和利用。

处理器

图2.开放系统互连和 TCP/IP 模型。

媒体传输

如上所述,直接通过传输协议发送媒体数据对于实时通信不是很有效。因此,媒体传输层通常负责以有效的方式处理此数据。

RTP(实时传输协议)

RTP提供实时分组音视频数据的投递服务。这是通过 IP 网络传输实时数据的标准方式。该协议驻留在 UDP 之上,以最大限度地减少数据包标头开销,但需要付出代价;不保证可靠性或数据包排序。与 TCP 相比,RTP 的可靠性较低,但它在数据包传输方面的延迟更少,因为它的数据包标头开销比 TCP 小得多(图 3)。

处理器

图3.RTP 帧的标头结构和有效负载。

为了保持给定的 QoS 级别,RTP 对发送的每个数据包使用时间戳、序列号和传递确认。它还支持许多纠错方案以提高健壮性,以及一些用于加密数据包的基本安全选项。

图 4 比较了 UDP、RTP 和 TCP 的性能和可靠性。

处理器

图4.性能与可靠性。

RTCP (RTP 控制协议)

RTCP 是一种补充协议,用于传达控制信息,例如发送和丢失的数据包数、抖动、延迟和端点描述。它对于管理会话时基和分析 RTP 流的 QoS 最有用。它还可以为 RTP 数据包的有限重传提供反向通道。

媒体编解码器

VoIP堆栈的顶部是处理正在传输的实际媒体的协议。可能有相当多的音频和视频编解码器可以馈送到媒体传输层。最常见的示例可以在本文最后一页的侧边栏中找到。

许多因素有助于确定编解码器的理想程度,包括它如何有效地利用可用系统带宽、如何处理数据包丢失以及与之相关的成本,包括知识产权版税。

黑鳍金枪鱼VoIP抵押品

与利用两个处理器内核提供VoIP功能的传统VoIP嵌入式解决方案不同,Blackfin处理器在统一内核架构中提供融合解决方案,允许语音和视频信号处理与RISC MCU处理同时进行,以处理网络和用户界面需求。这种在单个融合处理器上提供完整 VoIP 功能的独特能力提供了统一的软件开发环境、更快的系统调试和部署以及更低的整体系统成本。

例如,ADSP-BF537 Blackfin处理器系列为VoIP部署提供了必要的集成度和性能,并且功耗更低。它具有多个集成串行端口(用于无缝连接到音频模数 (A/D) 和数模 (D/A) 转换器)、外部内存控制器、用于 LCD 或视频编码器/解码器连接的并行外设接口 (PPI) 以及 10/100BaseT 以太网 MAC。如有必要,可以通过外部存储器接口容纳第二个以太网 MAC。

完整的通信通道(包括语音和网络堆栈)使用的处理带宽不到 75 MIPS。ADSP-BF537性能高达600 MHz,在多媒体压缩或解压缩等功能变得必要的情况下,VoIP产品组合中有足够的可用处理器“马力”。相比之下,竞争的专用VoIP选择通常性能有限,并且很少或根本没有添加功能或差异化的能力。

对于VoIP应用,基于Blackfin的设计以高质量、低通道数的VoIP解决方案为目标,其处理余量以适应音乐、视频和图像传输等附加功能,以及整体系统控制。以下是可用的VoIP产品示例,从开源解决方案到大批量OEM参考设计:

黑鳍金枪鱼/林音

Blackfin VoIP系统可以使用基于μClinux的开源软件进行设计,μClinux是流行的GNU/Linux操作系统的嵌入式版本。一个这样的通用公共许可证(GPL许可)IP电话包,称为Linphone,基于SIP套件,已被移植到Blackfin处理器的μClinux,允许Blackfin参考设计与任何SIP兼容端点进行通信。在具有适当 SIP 服务器和网关基础结构的公共网络中,此系统甚至可用于连接到 PSTN 节点上的电话。对于语音编码和解码,Linphone目前的Blackfin实现支持:G.711(A-law和m-law),GSM(全球移动通信系统)和Speex音频压缩格式。

Blackfin Linphone参考设计中使用的主要组件包括:

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

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

oRTP:为Linphone开发并在LGPL许可证下发布的RTP堆栈的实现。

oSIP:根据 LGPL 许可证发布的 SIP 协议的线程安全实现。

Speex:Speex编解码器的开源参考实现。对定点 Speex 实现的特定于 Blackfin 的优化已反馈到主线代码分支。

Unicoi Systems 基于 Blackfin 的融合语音网关

Fusion 语音网关(图 5)是 Unicoi Systems 的完整语音网关/终端适配器参考设计。凭借在单核Blackfin处理器上运行的路由器功能和功能齐全的SIP电话,Fusion语音网关允许终端适配器快速上市。

处理器

图5.Unicoi Systems的基于Blackfin的Fusion Voice Gateway。

Fusion语音网关具有强大的功能,包括G.168回声消除和多个G.7xx语音编解码器。Fusion 参考设计还结合了互联网路由器、4 端口以太网交换机和 VoIP 网关功能,包括功能齐全的电话和路由器功能。

Unicoi Systems 基于 Blackfin 的融合 IP 电话

Unicoi Systems的Fusion IP电话是一个完整的软件/芯片解决方案,提供了一个功能齐全的平台,支持当前和新兴的IP电话标准,并具有产品差异化的扩展能力。

Fusion IP 电话参考设计可降低 BOM 成本,并降低通常与开发 IP 电话相关的时间和复杂性。该参考设计软件围绕ADSP-BF536设计,提供构建基本或高级IP电话所需的关键处理(例如实时操作系统、呼叫管理器、语音算法、全双工免提电话的回声消除)、通信协议(TCP/IPv4/v6、SIP、RTP等)和外设功能(LCD和键盘控制器等)。

黑鳍金枪鱼网络语音参考设计

ADI公司黑鳍金枪鱼布拉沃唰唰��网络电话和可视电话参考设计是完整的系统解决方案,适用于构建功能丰富、高性能、低成本 VoIP 桌面电话、可视电话和电话适配器的 OEM。这些设计包括用于VoIP应用的全套软件,全部由一套全面的应用程序接口(API)控制,用于定制和控制核心系统功能。

对于音频,这些设计支持多种 G.7xx 音频编解码器、符合 G.168 标准的网络回声消除和声学回声消除,以提高音频清晰度。或者,设计中可以包含RF收发器,以提供无线音频功能。这些设计支持符合 H.323 和 SIP 标准的软件堆栈。

在视频方面,BRAVO 宽带音频/视频通信参考设计(图 6)提供高达 30 帧/秒的通用中间格式 (CIF) 彩色视频,包括支持 ITU 标准的 H.263 和 H.264 视频编解码器、画中画、带叠加的高分辨率图形、Alpha 和色度键控以及防闪烁滤波。

处理器

图6.Blackfin BRAVO 宽带音频/视频通信参考设计,功能图。

结论

显然,VoIP技术有可能彻底改变人们的沟通方式 - 无论他们是在家里还是在工作中,插入或不受束缚,支持视频还是只是普通的音频思维。Blackfin处理器的强大功能和多功能性,与各种标准配合使用,将使VoIP在嵌入式环境中越来越普遍,在许多尚未体验到这项令人兴奋的技术优势的市场创造增值功能。

*确切地说,会话控制和启动的任务位于 H.225.0 和 H.245 域中,它们是 H.323 伞形协议的一部分。

媒体编解码器标准

音频编解码器

G.711

G.1988 于 711 年推出,是在 64 kbps 信道上编码电话音频的国际标准,是此处介绍的选项中最简单的标准。G.711 中唯一使用的压缩是压缩(使用 m 定律或 A 定律标准),它将每个数据样本压缩为 8 位字,产生 64 kbps 的输出比特率。H.323标准规定G.711必须作为语音通信的基线。

G.723.1

G.723.1 是一种基于代数代码激励线性预测 (ACELP) 的双比特率编解码器,于 1996 年发布,面向 VoIP 应用。G.723.1 的编码时间范围为 30 毫秒。每个帧可以编码为 20 字节或 24 字节,从而分别转换为 5.3 kbps 或 6.3 kbps 流。通过语音活动检测和舒适噪声生成,可以有效降低比特率。该编解码器对网络缺陷(如丢失帧和位错误)具有良好的免疫力。G.723.1适用于视频会议应用,如多媒体通信国际标准H.324系列所述。

G.729

1996 年发布的另一种语音编解码器是低延迟 G.729 音频数据压缩算法,该算法将语音划分为 10 毫秒的帧。它使用一种称为共轭结构ACELP(CS-ACELP)的算法。G.729 将通过 16 ms 帧以 8 kHz 采样的 10 位信号压缩为 8 kbps 的标准比特率,但它也支持 6.4 kbps 和 11.8 kbps 速率。此外,它还支持语音活动检测和舒适噪音生成。

全球通用系统

GSM语音编解码器在世界各地的手机系统中都有使用。这些标准的管理机构是欧洲电信标准协会(ETSI)。自第一个GSM全速率(GSM-FR)以来,该领域的标准已经发展。该标准使用称为常规脉冲激励线性预测编码器(RPELPC)的CELP变体。输入语音信号分为 20 毫秒帧。每帧编码为 260 位,从而产生 13 kbps 的总比特率。免费的GSM-FR实现在某些限制下可用。

斯皮克斯

Speex是一种专为语音编解码器设计的开源/自由软件音频压缩格式,由 Xiph.org 发布,目标是成为完全无专利的语音解决方案。与许多其他语音编解码器一样,Speex基于带有残留编码的CELP。它可以将 8 kHz、16 kHz 和 32 kHz 线性 PCM 信号编码为 2 kbps 至 44 kbps 的比特率。Speex 可灵活应对网络错误,并支持语音活动检测。除了允许可变比特率外,Speex还具有立体声编码的独特功能。源代码可从 Speex.org 获得,其中包括窄带压缩的汇编级优化,以及基于Blackfin的回声消除器。

视频编解码器

H.261

该标准于1990年开发,是第一个广泛使用的视频编解码器。它引入了将帧分割成16×16个“宏块”的想法,这些宏块在帧之间跟踪以建立运动补偿向量。它主要针对ISDN线路上的视频会议应用(p × 64 kbps,其中p范围为1至30)。输入帧通常为 CIF(352 × 288),每秒 30 帧 (fps),输出压缩帧占用 64 kbps 至 128 kbps,分辨率为 10 fps。虽然今天仍在使用,但它在很大程度上已被H.263取代。尽管如此,H.323 指定 H.261 必须作为视频通信的基线存在。

H.263

此编解码器在视频会议中无处不在,在所有比特率下都优于 H.261。输入源通常是四分之一通用中间格式 (QCIF) (176 × 144) 或 30 fps 的 CIF,输出比特率在 28 fps 时可以小于 8.10 kbps,性能与 H.261 相同。因此,H.261需要ISDN(综合业务数字网络)线路,而H.263可以使用普通电话线。H.263 用于视频电话和网络监控等终端市场,并且在基于 IP 的应用中很受欢迎。

审核编辑:郭婷

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分