0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何在TDMoP产品上使用抖动缓冲器来补偿数据包延迟变化

星星科技指导员 来源:ADI 作者:ADI 2023-03-08 18:20 次阅读

DS34T10x和DS34S10x TDM分组(TDMoP)器件利用抖动缓冲器来补偿分组网络中存在的分组延迟变化(PDV)。本应用笔记解释了PDV及其对通信质量的影响。讨论了抖动缓冲器的功能和类型。本文还介绍了如何在TDMoP器件中设置抖动缓冲控制器参数,以最大程度地减少PDV的影响。

介绍

DS34T10x和DS34S10x系列TDM包带(TDMoP)器件使用抖动缓冲器来补偿分组网络中存在的数据包延迟变化(PDV)。这些缓冲区可基于每个捆绑包或每个连接独立配置。此外,它们是动态可调的,允许它们实时适应分组网络性能特征的变化。本应用笔记讨论抖动缓冲控制器以及如何设置其参数,以最大限度地降低TDM时钟恢复期间PDV的影响。

DS34T10x 包括 DS34T101、DS34T102、DS34T104 和 DS34T108;DS34S10x 包括 DS34S101、DS34S102、DS34S104 和 DS34S108。

TDM 网络中的时序

TDM 网络具有网络中所有设备使用的单时钟源。目标TDM器件从输入数据中获取时钟,并将其用于传输数据(环回时序),如图1所示。

poYBAGQCuRaABz9CAAAL1V2ae1U700.gif


图1.TDM 网络中的环回时序。

数据包到达时间的变化(称为抖动)是由于网络拥塞、时序漂移或路由更改而发生的。因此,当用一个IP/MPLS网络和两个TDMoP设备替换物理TDM连接时(如图2所示),接收TDMoP设备(从设备)接收TDMoP数据包,其到达时间延迟可变。

处理完数据包后,设备应以TDM网络的恒定速率将TDM数据发送到TDM侧,以最大程度地减少此抖动的影响。为了实现这种恒定的数据速率,该器件在时钟恢复模式下工作,以重建源TDM时钟,以便目标TDM器件仍然可以在环回定时模式下工作。

pYYBAGQCuReAP0pKAAAXMMh2iI4934.gif


图2.分组 TDM 网络中的定时。

抖动缓冲器

DS34T10x/DS34S10x利用抖动缓冲器将PDV对通信质量的影响降至最低。抖动缓冲区是一个共享内存区域,可以在其中收集、存储TDM数据包,并以均匀间隔的间隔发送到电路仿真引擎。抖动缓冲区位于TDM连接的发送端和接收端,有意延迟到达的数据包,以便最终用户体验到清晰的连接,几乎没有声音失真。

抖动缓冲器有两种:静态和动态。静态抖动缓冲区基于硬件,由制造商配置。动态抖动缓冲器基于软件,可由网络管理员进行配置,以适应网络延迟和 PDV 的变化。

DS34T10x/DS34S10x具有动态抖动缓冲器,位于SDRAM中。这些抖动缓冲器有两个主要作用:

补偿数据包延迟变化

在TDMoP从器件上重建远端TDM时钟

数据以从收到的以太网数据包到达时间派生的可变速率进入缓冲区。数据以恒定的TDM速率离开缓冲器。在时钟恢复模式下,抖动缓冲器的电平提供了时钟恢复机制的指示。

对于TDMoP协议(CESoPSN,SAToP和TDMoIP),捆绑包可以包含来自单个E64或T1的任意数量的1kbps时隙。捆绑包是单向流,通常与相反方向的捆绑包耦合,以实现全双工通信。可以在两个TDMoP边缘设备之间传输多个捆绑包。

DS34T10x/DS34S10x提供大抖动缓冲器(多达64束),可按每个束进行配置,以补偿IP/MPLS/以太网网络带来的延迟变化。每个捆绑包都可以分配给有效负载类型机器或 CPU 上的任何 TDM 端口。所有捆绑包都具有以下可独立配置的功能:

发送和接收队列

接收抖动缓冲深度

可选的连接级冗余(适用于 SAToP 和 CESoPSN)

每个器件都提供具有 DS0 分辨率的内部束交叉连接功能。此外,每个捆绑包都可以配置为:从端口传输所有 T1/E1 数据;在每个数据包中传输配置的字节数 (SAToP);或传输 T1/E1 数据的特定时隙,T24 最多 1 个时隙,E31 最多 1 个时隙 (CESoPSN)。捆绑包可以包含来自单个 TDM 端口内任何时隙的数据。但是,一个时隙只能分配给单个捆绑包。对于 SAToP 和 CESoPSN 捆绑包,TDMoP 设备在抖动缓冲区范围内执行数据包重新排序。数据包丢失通过插入预配置的条件值或重播上次接收的值来补偿。

SAToP 和 CESoP 抖动缓冲器的分辨率不同。对于SAToP,精度以字节为单位,因此对于E4,变量的大小可以约为1μs,对于T5,则为1μs。对于CESoP,精度以帧为单位,因此E125和T1的变量可以按1μs的增量调整大小。由于在确定数据包是否良好之前必须存储整个数据包,因此抖动缓冲区的最小精度是数据包大小的函数。如果是小数据包(1 字节),则最小值为 1 字节。如果是大型 CES 数据包(1500 帧),则无论 PDV 如何,最小值为 187.5ms。

配置DS34T10x/DS34S10x抖动缓冲器

正确配置抖动缓冲区的参数可避免欠载和超限情况。当抖动缓冲区为空(输入速率低于现有速率)时,会发生欠载。当发生欠载事件时,芯片将调理数据而不是实际数据传输到TDM接口。当抖动缓冲区已满且没有空间输入新数据(输入速率超过现有速率)时,会发生溢出。欠载和超限需要IC硬件的特殊处理,具体取决于捆绑类型。

DS34T10x/DS34S10x在外部SDRAM中为数据和信令分配单独的区域。

在 8 端口低速模式下,数据和信令区域分为八个相同的部分,每个 E1/T1/Nx64 接口一个。

在E1/T1结构化模式下,每个数据部分包含E32的1个时隙或T24的1个时隙的数据;单个 E1/T1 时隙最多可分配 4kB 的空间。所有八个接口共有 256 个时隙和 1024kB 的空间。

每个信令部分分为多帧扇区,每个多帧扇区包含多达 32 个时隙的信令半字节。所有八个接口总共有 64kB。

在串行或 E1/T1 非结构化模式下,没有每个时隙的分配。抖动缓冲器分为八个相同的部分,每个接口一个。每个部分为每个 HDLC 束 512kB,否则为 128kB。

对于高速模式(E3/T3、STS-1),抖动缓冲器充当一个大型缓冲器,不划分为多个部分,总容量为512kB。

抖动缓冲区具有以下深度:

E1:长达 256 毫秒

T1 非成帧:长达 340 毫秒

T1 成帧:长达 256 毫秒

使用 CAS 进行 T1 框架:长达 192 毫秒

抖动缓冲区的最大深度(以时间为单位)根据以下公式计算:

每个接口 8/1 × 缓冲区 x (<> / 速率)(等式 <>)

poYBAGQCuRiAPFX5AAAALB3mm3k589.gif

其中:

½ = 缓冲区的两半
每个接口的缓冲区 = 单个高速接口为 512kB,低速接口为 128kB
8 = 每字节位数
= 传输速率(例如 2.048Mbps)

对于用CAS成帧的T1,将公式1的结果乘以0.75。

抖动缓冲区的深度由捆绑包配置表中的Rx_max_buff_size参数定义。当抖动缓冲区电平达到 Rx_max_buff_size 值时,将声明溢出情况。

Rx_pdvt参数(也可在捆绑包配置表中找到)定义要存储在抖动缓冲区中的数据量,以补偿网络延迟变化。动缓冲器参数如图3所示。Rx_pdvt参数有两个含义:

Rx_pdvt定义了IC对以太网网络延迟变化的免疫力

从网络到达的数据在发送到TDM线路之前会延迟Rx_pdvt

Rx_pdvt应小于 Rx_max_buff_size。此外,Rx_max_buff_size 和 Rx_pdvt 之间的差异必须大于重建数据包所需的时间;否则,数据包到达时可能会发生溢出。通常,Rx_max_buff_size的建议值为

2 × Rx_pdvt + PCT

(数据包创建时间)。这为延迟和突发数据包提供了相同的免疫力。

pYYBAGQCuRmAK1HMAAAU21sp4Ws502.gif


图3.抖动缓冲器参数。

抖动缓冲控制器 (JBC) 使用 64 位 x 32 位捆绑包时隙表来标识每个活动捆绑包的分配时隙。表的索引是捆绑包编号。软件必须配置每个活动分发包条目。对于非结构化分发包,必须设置整个分发包条目(32 位) — 设置位意味着为此分发包分配了相应的时隙。

JBC 统计信息存储在包含 128 个条目的表中。每个 TDM 端口有 32 个专用条目,每个时隙一个。抖动缓冲区状态表存储每个活动捆绑包的活动抖动缓冲区的统计信息。名为 Jitter_buffer_index 的可配置参数(位于 TSA 表中)定义表中存储抖动缓冲区统计信息以及从中读取抖动缓冲区统计信息的条目。

软件根据Jitter_buffer_index访问抖动缓冲区状态表。状态表包含当前抖动缓冲区状态,例如抖动缓冲器级别和状态(例如正常、欠载或超限)。它还包含两个变量,用于报告抖动缓冲区的最小和最大电平。这些变量为用户提供有关网络特征的信息。例如,使用这些值,用户可以计算抖动缓冲区顶部(Rx_max_buff_size)和底部的裕量。如果有备用容量,用户可能希望减少Rx_pdvt,以限制抖动缓冲区对传入数据增加的延迟。

用户应按如下方式定义Jitter_buffer_index的值:

对于 AAL1/HDLC/RAW 结构化捆绑包,Jitter_buffer_index是接口编号 (2 Msbits) 和捆绑包中最低时隙编号的串联。例如,如果捆绑包由第三个接口上的时隙 2、4 和 17 组成,则Jitter_buffer_index为 10_00010[bin],即 42[十六进制]。

对于非结构化捆绑包,jitter_buffer_index是接口编号(2 Msbits)和 0 个“<>”的串联。

对于 AAL2 捆绑包,每个时隙数据存储在其自己的抖动缓冲区中;因此,Jitter_buffer_index是接口号(2 Msbits)和时隙号的串联。例如,如果捆绑包由第一个接口上的时隙 2、4 和 17 组成,则有三个抖动缓冲区(每个时隙一个),Jitter_buffer_index值分别为 2[十六进制]、4[十六进制] 和 11[十六进制]。

有效负载类型的计算机通过序列号错误 (AAL1/RAW) 或 UUI 错误 (AAL2) 检测数据包是否丢失。如果数据包丢失,调节数据将插入抖动缓冲区,以补偿丢失的数据并保持位完整性。简单来说,插入抖动缓冲器的位数必须等于远端传输的位数。

如果数据包在 RAW 捆绑包中排序错误(例如,序列号为 N 的数据包在序列号为 N+1 的数据包之后到达),则 RAW 有效负载类型的计算机会对其进行重新排序。数据包的数据入到抖动缓冲区中的适当位置,假设此位置中的数据尚未传输到TDM域。

结论

抖动缓冲区临时存储到达的数据包,以最大程度地减少延迟变化。如果数据包到达得太晚,则它们将被丢弃。有时抖动缓冲区配置错误,导致它们太小或太大。如果抖动缓冲区太小,则可能会丢弃过多的数据包,这可能导致呼叫质量下降。如果抖动缓冲区太大,则额外的延迟可能会导致会话困难。正确配置抖动缓冲器参数可避免这些欠载和超限情况。

审核编辑:郭婷

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

    关注

    112

    文章

    15223

    浏览量

    171192
  • 缓冲器
    +关注

    关注

    6

    文章

    1566

    浏览量

    44879
  • TDM
    TDM
    +关注

    关注

    0

    文章

    54

    浏览量

    15524
收藏 人收藏

    评论

    相关推荐

    扇出缓冲器中的附加抖动测量

    ,得到的结果将大体相同,会让我们认为附加抖动可以忽略。因此,您在比较不同厂商时钟缓冲器产品说明书时,务必要查看参数说明(或者给应用工程师打个电话),了解抖动如何测量。如果时钟源的噪声
    发表于 09-13 10:11

    测量时钟缓冲器的附加抖动

    需求。作为该最新博客系列的开篇文章,我将帮助您了解如何正确测量时钟缓冲器的附加抖动。为什么抖动很重要?在当今数据通信、有线及无线基础设施以及其它高速应用等高级系统中,时钟
    发表于 09-13 14:38

    怎么跟踪每个连接间隔的数据包

    你好,我想知道是否有一种方法跟踪每个连接间隔发送的数据包的数量。实际使用一个延迟等于我的连接间隔的计时计算我使用BLE堆栈API推送
    发表于 09-16 06:14

    如何检测数据包丢失?

    问题:我想做一个RFC2544速度测试。有人知道如何检测数据包丢失吗?数据中是否有UNIQ标识符(什么是RF2544数据包结构?)……我找不到这个信息。谢谢。
    发表于 03-13 08:56

    缓冲器电路拓扑w/o补偿原理是什么?

    缓冲器电路拓扑w/o补偿原理是什么?CMOS放大器与Aol有什么注意事项?如何对放大器进行瞬态稳定性测试?
    发表于 04-13 06:42

    测量扇出缓冲器中的附加抖动怎么计算?

    测量扇出缓冲器中的附加抖动怎么计算?
    发表于 05-06 07:02

    如何测量扇出缓冲器中的附加抖动

    。时钟缓冲器产生的附加抖动主要影响时钟的宽频带噪声。它可使用图 2 中所示的方根公式进行计算。图 2. 时钟扇出缓冲器的级联为驱动器件带来的附加抖动附加
    发表于 11-21 07:25

    如何获得ESP32端接收到的数据包数量?

    我们目前正在开发基于ESP32的新产品,我们想做一些认证。我们正在使用 ESP RF 工具在 Tx 数据包、Rx 等中设置产品。这部分按预期工作。我们使用 ESP RF 工具进行适应性测试
    发表于 04-13 07:25

    使用TDMoP产品抖动缓冲器补偿报文时延差异(PDV)

    摘要:DS34T10x和DS34S10x系列TDM-over-Packet (TDMoP)芯片采用抖动缓冲器补偿包网络中存在的报文时延差异。本应用笔记将解释PDV的含义以及它如何影响
    发表于 04-20 10:51 528次阅读
    使用<b class='flag-5'>TDMoP</b><b class='flag-5'>产品</b>的<b class='flag-5'>抖动</b><b class='flag-5'>缓冲器</b><b class='flag-5'>补偿</b>报文时延差异(PDV)

    缓冲器,缓冲器是什么?

    缓冲器,缓冲器是什么? buffer   中文译名: 缓冲缓冲器缓冲液  解释:1、 电信设备。在
    发表于 03-08 13:30 2272次阅读

    自适应抖动缓冲器-下载产生码

    自适应抖动缓冲器-下载产生码
    发表于 04-12 16:47 3次下载
    自适应<b class='flag-5'>抖动</b><b class='flag-5'>缓冲器</b>-下载产生码

    LTC6955:超低抖动、7.5 GHz、11输出扇出缓冲器系列数据

    LTC6955:超低抖动、7.5 GHz、11输出扇出缓冲器系列数据
    发表于 05-27 20:57 9次下载
    LTC6955:超低<b class='flag-5'>抖动</b>、7.5 GHz、11输出扇出<b class='flag-5'>缓冲器</b>系列<b class='flag-5'>数据</b>表

    自适应抖动缓冲器-下载产生码

    自适应抖动缓冲器-下载产生码
    发表于 06-16 11:08 4次下载
    自适应<b class='flag-5'>抖动</b><b class='flag-5'>缓冲器</b>-下载产生码

    使用IDT时钟缓冲器提升应用设计

      IDT 还提供另一个更简单的 CMOS 缓冲器系列,即5PB11xx系列,由五个时钟扇出缓冲器成员组成,其中最后两位数字代表输出数量。这些缓冲器是非常高性能、低抖动、低偏移和传播
    的头像 发表于 05-05 15:41 1552次阅读
    使用IDT时钟<b class='flag-5'>缓冲器</b>提升应用设计

    测量扇出缓冲器中的附加抖动

    测量扇出缓冲器中的附加抖动
    发表于 11-04 09:52 0次下载
    测量扇出<b class='flag-5'>缓冲器</b>中的附加<b class='flag-5'>抖动</b>