Moku 千兆数据流器通过高速 SFP 或 QSFP 接口,在 Moku:Delta 和 Linux 主机之间提供快速、确定性的采样数据流传输,并支持同时进行发送和接收操作。本指南将介绍如何配置和使用千兆数据流器,以在 Moku 和主机系统之间可靠地传输数据,内容涵盖流设置、数据包结构以及发送和接收工作流程中的实际注意事项。

介绍

Moku 千兆音频流传输器通过高速 SFP(小型可插拔)和 QSFP(四通道小型可插拔)接口,在 Moku:Delta 和主机之间提供快速、确定性的采样数据流传输。它支持在同一端口上同时进行发送和接收操作,从而实现实时录制和回放工作流程。

Moku Gigabit Streamer 有两个版本,分别是 Gigabit Streamer 和 Gigabit Streamer+,两者均采用相同的包结构和流媒体模型,区别仅在于物理连接和最大数据速率。

千兆数据流传输器采用两个SFP接口,每个端口能够以高达5 Gbit/s的数据速率传输两通道实值样本数据。它适用于需要直接、高效数据路径的高带宽采集和实时数据流传输应用。

Gigabit Streamer+ 通过 QSFP 接口扩展了这些功能,可在多仪器模式下实现双通道流传输,或在独立运行时实现最多四个通道的流传输,总数据速率高达 80 Gbit/s。这非常适合超高速采集、要求苛刻的硬件在环系统以及大规模数据处理工作流程。 

两个版本均采用基于 IPv4 的用户数据报协议 (UDP) 和符合 DIFI 标准的 VITA 49.2 数据包结构,具有固定速率传输、低延迟和可预测的时序。在多仪器模式下,Moku 千兆流媒体播放器可实现实时采集、波形回放、传感器模拟以及使用外部系统进行分布式处理。

本指南全面概述了如何配置、验证和操作 Moku:Delta 与主机之间的高速流媒体链路。它涵盖了基本的传输概念、数据包结构以及发送和接收操作的实际设置步骤。本指南基于 Linux 操作系统,以便实现更灵活的网络配置;如果您使用的是其他操作系统,请相应地进行修改。

下载应用说明

硬件设置

Moku:Delta 提供两个 SFP 端口和一个 QSFP 端口,用于高速数据传输。Moku 千兆流媒体播放器使用 SFP 接口,而 Moku 千兆流媒体播放器+ 则通过 QSFP 接口运行。

  • 标准版,有两个 10 Gbit/s SFP 端口
  • 高速版,采用 100 Gbit/s QSFP 端口

在 Moku:Delta 上,SFP 和 QSFP 端口连接到 FPGA 的专用区域。由于这种固定的硬件布线,千兆音频流器和千兆音频流器+在多仪器模式下使用时必须放置在指定的插槽中。与大多数 Moku 仪器不同,它们不能随意放置在任何插槽中。

用于高速数据流的千兆流媒体播放器

图 1 3 插槽多仪器模式下的千兆流式传输器和千兆流式传输器+分配

表 1 三槽多仪器模式下的仪器映射

多仪器模式插槽 仪器 物理端口
插槽1 高速信号采集记录回放仪(Gigabit Streamer) SFP1
插槽2 高速信号采集记录回放仪+(Gigabit Streamer+) QSFP
插槽3 高速信号采集记录回放仪(Gigabit Streamer) SFP2
 
用于高速数据流的千兆流媒体播放器

图 2 5 槽多仪器模式下的千兆流媒体分配

 

表 2 三槽多仪器模式下的仪器映射

多仪器模式插槽 仪器 物理端口
插槽2 高速信号采集记录回放仪(Gigabit Streamer) SFP1
插槽4 高速信号采集记录回放仪(Gigabit Streamer) SFP2

Gigabit Streamer+ 也可以在独立模式下运行,在此模式下,它会占用整个 FPGA 架构,并且始终通过 QSFP 端口运行。

主机建议

高速率UDP流需要主机具备足够的输入输出速率和处理能力,以接收和存储连续数据而不中断。本节提供适用于持续高速率UDP接收的主机配置指南。具体要求可能随线路速率和应用程序负载而变化。整体性能取决于网络接口卡(NIC)、CPU、系统内存和存储设备能否协同工作,避免出现瓶颈。

网络接口

主机需要为 Moku 千兆流媒体播放器配备 SFP+ 或 SFP28 网卡,或为千兆流媒体播放器+ 配备 QSFP28 网卡。这些接口必须支持直连铜缆 (DAC),因为流媒体传输需要 DAC 连接。

网卡应安装在带宽足以满足预期链路速率的 PCIe 插槽中。

CPU 和中断处理

高速率UDP数据包捕获依赖于主机CPU来接收数据包、缓冲传入数据并将样本传递给用户空间。为了保证可靠的数据流传输,主机系统应提供足够的处理能力来跟上传入的数据速率。

在实践中,实现这一目标的最佳方法是:

  • 一款具有良好单线程性能的多核CPU
  • 支持接收端缩放的网络接口卡驱动程序
  • 合理分配中断,确保处理负载在 CPU 内核之间分担。

对于更高速率的 QSFP 链路,工作站级或服务器级处理器可提供额外的余量,尤其适用于长时间或连续采集。

系统内存

缓冲传入的网络数据依赖于可用的系统内存来吸收短小的数据包突发,并适应将数据写入磁盘时的瞬时延迟。提供充足的内存有助于维持连续、无损的数据流传输。

存储吞吐量

可靠的存储吞吐量有助于在整个采集过程中保持流畅的数据流,合适的存储配置取决于目标流速率和预期的采集时长。对于大多数高速流应用,这可以通过使用支持以所需吞吐量进行连续大块顺序写入的存储解决方案来实现。在更高的线路速率下,额外的存储带宽可能更有益,例如使用更高性能的设备或多个驱动器协同工作。

连接硬件

主机到 Moku 的流媒体传输使用 Moku 和主机之间的直接点对点以太网连接。此连接不需要任何网络交换机或路由器,并且配置为用于高速数据流传输的专用链路。

使用支持的 DAC 线缆,将主机网卡直接连接到 Moku:Delta 上对应的 SFP 或 QSFP 端口。如果主机没有原生 SFP 或 QSFP 端口,请安装操作系统支持的兼容适配器。

适用于 Moku 千兆流媒体播放器(SFP 版本):

  • 兼容的 10G SFP+ 或 SFP28 DAC 线缆
  • 一台配备支持 DAC 电缆的 SFP+ 或 SFP28 网卡的主机

适用于 Moku Gigabit Streamer+(QSFP 版本):

  • 兼容的 100G QSFP28 DAC 线缆
  • 一台配备支持 DAC 电缆的 QSFP28 网卡的主机

连接建立后,Moku 前面板上的 LED 3 会变为蓝色,表示连接已建立。您也可以通过主机网络接口确认连接状态。以下示例使用名为“enp5s0f0np0”的接口,请将其替换为您实际的网络接口名称。

  1. 找到以下接口:

ip addr

查找与连接到 Moku:Delta 的 SFP 或 QSFP 端口相对应的条目,例如:

enp5s0f0np0 : <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 ...

UP 和 LOWER_UP 表示接口已启用且有连接。

  1. 检查链路状态和速度

绝大部分储备使用 ethtool 确认物理链路处于活动状态并读取协商速度:

sudo ethtool enp5s0f0np0

需要检查的关键字段:

    • 检测到链接:是
    • 速度:10000Mb/s 或 100000Mb/s(取决于 SFP 或 QSFP 链路)
    • 复式:全套

Moku Gigabit Streamer+ 的 QSFP 配置

Moku:Delta 上的 QSFP 接口不使用前向纠错 (FEC)。如果主机网卡默认启用 FEC,则链路可能无法建立。大多数网卡允许禁用 FEC,具体操作步骤如下:首先关闭接口,然后禁用 FEC,最后重新启用接口。 <interface> 使用您的接口名称,例如 enp7s0f0np0.

sudo ip link set <interface> down

sudo ethtool --set-fec <interface> encoding off

sudo ip link set <interface> up

现在界面应该会报告已检测到链路以及配置的速度。物理链路稳定后,即可进行 IP 配置和千兆流媒体设备设置。

使用静态IP地址的传输配置

Moku 千兆流媒体播放器使用 Moku:Delta 与主机之间直接的固定参数 UDP 链路进行高速数据流传输。SFP 和 QSFP 端口用于通过点对点以太网连接进行数据流传输,并且只有配置的对端才能在该端口上发送或接收数据包。这种方式可提供可预测的传输时序、低协议开销和稳定的吞吐量。

千兆流媒体播放器在其流媒体端口上使用静态IP地址。这些端口配置为确定性数据传输,因此不使用ARP或DHCP等自动地址发现机制。

为了确保正常运行,Moku 和主机必须配置位于同一子网的 IP 地址,以便进行流媒体传输。

传输模式(Moku 到主机):
主机通过配置的 IP 地址与 Moku 设备通信,并在指定的端口接收 UDP 数据包。此配置直接通过 Moku App 完成,通常无需在主机端进行额外的网络配置。

接收模式(主机到Moku):
要向 Moku 发送数据,除了在 Moku 应用中配置流媒体端口外,主机还必须使用静态邻居条目将 Moku 流媒体 IP 地址与其对应的 MAC 地址关联起来。这样可以确保数据包通过直连链路正确传输。

每次建立接收模式流媒体连接时都需要进行此关联,例如在重新连接电缆或重新启动主机或 Moku 之后。

要检查主机上的当前邻居表,请运行:

ip neighbor | grep <moku_NIC_IP>

如果条目是 INCOMPLETE替换为运行:

sudo ip neigh replace <moku_NIC_IP> lladdr <moku_MAC> dev <interface> nud permanent

例如,假设您在 Moku 应用中配置了千兆流媒体播放器:

  • 本地IP地址:10.10.1.1
  • 本地 MAC 地址:70:69:79:b2:02:69

如果主机使用网络接口 enp5s0f0np0 向 Moku:Delta 传输数据,则必须添加静态邻居条目,以便主机可以将 Moku:Delta 的 IP 地址解析为其 MAC 地址:

sudo ip neigh replace 10.10.1.1 lladdr 70:69:79:b2:02:69 dev enp5s0f0np0 nud permanent

这样可以确保发送到 10.10.1.1 的数据包能够传输到指定接口上的正确目标 MAC 地址。

数据包和数据结构

Moku 千兆流媒体播放器使用符合 DIFI 标准的 VITA-49.2 数据包格式来传输和接收所有样本数据,并通过 IPv4 上的 UDP 协议进行传输。它使用两种数据包类型:上下文数据包,用于描述数据流的配置;以及数据包,用于承载样本有效载荷。两种数据包类型都遵循固定的布局,主机必须正确解析它们才能解释和重建数据流。

采样数据以固定速率连续传输为 UDP 数据包流。流速率由选定的采样率、采样大小、通道数和配置的最大传输单元 (MTU) 决定。MTU 决定了 UDP 有效载荷的最大大小,从而决定了每个数据包中包含的采样数量。

流媒体链路的运行不依赖于任何可靠性或流量控制机制,例如确认、重传或以太网暂停帧。数据包以配置的速率在流的持续时间内传输,主机系统需要能够以该速率持续接收和处理数据。

数据包解释序列

千兆流媒体数据流是通过按一致顺序处理数据包来定义和解释的:

  1. 上下文包

首先处理上下文包,它决定后续数据包的解析方式。上下文包提供流标识符、采样率、数据格式、缩放参数和数据包有效载荷格式。这些字段描述了样本类型、项大小、分数大小、通道标记和向量大小,它们共同定义了每个数据包中样本的打包方式。

  1. 数据包头部

然后读取每个数据包头,使用流标识符将数据包与活动上下文信息关联起来。

  1. 数据包有效载荷

样本值根据定义的打包格式进行解包。对于多通道流,样本按照上下文包描述的顺序进行解交错。

  1. 应用上下文参数

从上下文包中获取采样率、缩放和增益信息,用于确定样本的时间位置并重建物理信号值。

这种排序方式也体现在以下章节描述的数据包结构和布局中。

整体数据包结构

千兆流媒体传输器传输的样本数据和流元数据封装在标准的以太网、IP 和 UDP 报头中。图 3 展示了这种封装层次结构,并突出显示了每个数据包相关的协议开销。

用于高速数据流的以太网数据包结构

图 3 Moku 千兆流媒体数据包结构,遵循 DIFI 协议栈数据包结构。


以太网帧

以太网帧提供最外层的链路层封装。它由以太网帧头和承载 IP 数据包的以太网帧有效载荷组成。图 3 中所示的所有协议开销都包含在以太网帧有效载荷中。

互联网协议层

互联网协议层封装了UDP数据报,并在Moku:Delta和主机之间提供逻辑寻址。固定的报头大小增加了每个以太网帧的整体协议开销。

用户数据报协议(UDP)层

UDP层提供VITA数据包的轻量级传输。UDP头部位于UDP有效载荷之前,有效载荷包含一个VITA数据包。

VITA 层

VITA 层定义了流内容的结构和解释方式。每个 UDP 有效载荷都包含一个 VITA 数据包,该数据包由 VITA 头部和 VITA 有效载荷组成。

VITA 头部大小固定为七个 32 位字,存在于所有 VITA 数据包中。VITA 有效载荷携带上下文信息或信号采样数据,具体取决于数据包类型。这种区别在 VITA 头部本身中有所体现。

数据包开销和有效载荷大小

如图 3 所示,在使用 IPv4 时,以太网、IP、UDP 和 VITA 帧头组合在一起,会在每个以太网帧中占用 56 字节(56 八位字节)的固定开销。以太网帧有效载荷中的剩余空间决定了可用信号数据有效载荷的最大大小。由于每个数据包都遵循相同的结构,因此选择更大的 MTU 可以降低相对帧头开销,并提高整体流媒体传输效率。

上下文包

上下文数据包定义了与当前流媒体会话相关的元数据。它会在每个千兆流媒体会话开始时发送。上下文数据包不包含示例数据,而是提供解码后续数据包的有效载荷格式和时序所需的信息。

Moku 千兆流媒体播放器的布局遵循 VITA-49.2 上下文数据包类 0x0001 结构,详情如下:

高速数据流的上下文包结构

图 4 Moku 千兆流媒体上下文包结构


表 3 Moku 千兆流媒体上下文包字段定义

领域 描述
数据包计数 每次传输上下文数据包时递增(模 16)。
流标识符 用于标识特定数据流。在同一流会话中,上下文数据包和相应的数据包的流标识符必须匹配。
整数秒时间戳 自纪元(时间零点)以来经过的秒数,纪元定义为仪器部署或上次重置的时间。
参考水平 产生全量程数字化正弦波的正弦波交流电源( 峰值振幅±2N-1),哪里 N 是相对于 50 Ω 负载的位数。
物品包装尺寸 指定流中每个项目分配的比特数,编码为 (采样位宽 - 1)

普通模式使用 15 (0b001111),精确模式使用 31 (0b011111)。

数据项大小 指定每个样本实际使用的位数,编码为 (采样位宽 - 1)

普通模式使用 15 (0b001111),精确模式使用 31 (0b011111)。

矢量尺寸 频道数减 1(单频道流媒体为 0,双频道流媒体为 1)
 

数据包

每个数据包都以一个简洁的头部开始,该头部描述了样本有效载荷的排列方式。头部结构与上下文数据包头部相同,并提供正确解包和解释样本块所需的参数。这些字段定义了各个样本的编码方式以及有效载荷中包含的样本数量。

图 5 详细说明了 Moku Gigabit Streamer 中使用的数据包结构,该结构与 DIFI 数据包类 0x0000(标准流信号数据包)紧密对应。

图 5 Moku 千兆流媒体数据包结构。


表 4 Moku 千兆流媒体数据包字段定义

领域 描述
数据包计数 每次传输上下文数据包时递增(模 16)。
流标识符 表示特定的数据流。上下文包和数据包中的数据流标识符必须匹配。
整数秒时间戳 自纪元(时间零点)以来经过的秒数,纪元是指仪器部署或上次重置的时间。

有效载荷格式示例

数据有效载荷包含一系列样本值,这些样本值根据上下文包和数据包头中描述的参数进行编码。千兆流传输器根据抽取模式,使用 16 位或 32 位表示形式传输实值样本。样本打包是确定性的,每个数据包中的样本数量由所选的 MTU 和样本大小决定。

信道按数据包顺序交错传输。例如,在双信道数据流中,有效载荷的排列方式如下:

CH1[0]、CH2[0]、CH1[1]、CH2[1]、……

这种交错方法适用于所有多通道配置,包括 Gigabit Streamer+ 四通道流。

将数据从 Moku 传输到主机

在定义了数据包结构和流格式之后,本节重点介绍如何配置从 Moku 到主机的数据传输。千兆流媒体播放器支持在同一流媒体接口上同时进行发送和接收操作;但是,本节中的配置步骤仅描述发送操作,接收设置将在下一节中介绍。

在传输模式下,Moku 通过专用的 SFP 或 QSFP 链路传输采样数据,使用在 Moku App 或 API 中配置的固定网络和流参数。以下步骤概述了如何设置传输路径以及如何准备主机以接收和解析传入的数据流。

Moku 配置(发送)

待传输的信号可以通过多乐器模式进行路由,或者默认作为独立乐器通过模拟输入传输至千兆音频流媒体播放器+。如果信号通过模拟端口输入,请先确认输入范围、耦合和衰减设置是否适合源信号。

点击千兆流媒体播放器界面中的地球图标,配置网络参数。这些参数定义了Moku接口的网络标识以及主机上的目标地址。

本地:

  • IP地址
    为 SFP/QSFP 端口分配一个静态 IP 地址,该地址必须与主机位于同一子网内。
  • UDP端口
    仅用于接收。
  • MAC地址
    Moku 已将其修复,使其与所使用的特定 SFP/QSFP 端口相匹配。

远程目的地:

  • IP地址
    将其设置为主机网卡的 IP 地址。
  • UDP端口
    将此值设置为主机软件将监听的端口。
  • MAC地址
    请输入连接到 Moku 的主机网卡的 MAC 地址。千兆流媒体播放器不执行 ARP 协议,因此必须显式设置此字段。

寄出的包裹:

  • 网络 MTU
    选择支持的 MTU 大小之一,使用您的网络基础设施和主机支持的最大 MTU。
  • UDP有效载荷
    根据 MTU 和样本量计算得出。
  • 每包样品数
    根据 MTU 和样本量计算得出。

UDP端口用于标识主机应用程序中的目标端口。千兆流媒体设备可以选择任何未使用的端口进行操作。在VITA-49及相关的VRT工作流程中,通常使用端口4991,但这并非强制要求。千兆流媒体设备会在任何配置的端口上发送或接收数据包。

样本格式和抽取

千兆流媒体包含一个抽取模块,用于设置输出流的采样率和采样宽度。所有路由到流媒体的数据在打包之前都会经过此模块。抽取过程通过采样模式和抽取因子进行配置。

抽取模式

抽取模式设置每个输出样本的数值格式:

  • 正常模式:
    生成 16 位实数采样。
    下采样是通过直接下采样实现的,其中每个第 D 个输入样本都被保留而不进行滤波。
  • 精确模式:
    生成 32 位实数采样。
    下采样采用分块平均法,其中每个输出样本是 D 个连续输入样本的平均值。这可以在较低的有效采样率下提高数值精度。

抽取因子

抽取因子 D 决定了输入采样率的降低程度。千兆流媒体播放器支持以下两种抽取因子:

  • 2 的幂(1、2、4、8、16、32……),或
  • 16 的倍数(16、32、48、64、80、96……)

对于任何有效的因子 D,抽取模块都会产生一个速率为的输出流:

(有效速率(Sa/s)= 输入速率(Sa/s)⁄ D)

网络吞吐量为:

(流速率(比特/秒)=有效速率(Sa/秒)×采样大小(比特/Sa)×通道数)

此计算确定所需的主机端带宽。

使用抽取时,混叠会影响最终信号的带宽。对于宽带或高频信号,选择合适的抽取和采样模式设置有助于保持所需的频率成分。

从主机向 Moku 接收数据

对于传感器仿真、闭环控制测试和宽带波形回放等应用,千兆流器可以以接收模式使用,将外部生成或预先录制的数据馈送到 Moku:Delta 中。

接收路径与发送路径的网络要求不同,因为Moku不参与ARP协议,也不会在链路上宣告自身的存在。发送数据的主机必须构建符合千兆流媒体播放器预期格式的数据包,并将其直接发送到流媒体接口。

主机配置

主机接口

使用以下命令确定所需的主机网络参数,包括连接到 Moku 的网卡的 IP 地址和 MAC 地址:

ip addr

此命令显示所有网络接口及其分配的 IP 地址和硬件(MAC)地址。

您还可以为直接连接到 Moku 的主机网卡分配静态 IP 地址:

sudo ip addr add <sub_net> dev <interface>

sudo ip link set dev <interface> up

这将配置所选接口上的指定子网,并确保发往该子网的流量通过正确的网卡进行路由。

MTU 配置

与千兆流媒体播放器使用的 MTU 相匹配,请注意 Moku 可接受的最大 MTU 为 1500 字节。

sudo ip link set dev <interface> mtu 1500

MTU 不匹配会导致丢包。

静态邻居条目(ARP 替代)

Moku 的接收端口不支持 ARP 解析。如果主机尝试使用基于 ARP 的 MAC 地址映射发送数据包,则数据包将处于未完成状态,无法到达 Moku。因此,主机在向 Moku 发送数据包时必须使用静态 MAC 地址。

首先检查邻居表:

ip neighbor | grep <moku_NIC_IP>

如果出现不完整的条目,请将其替换为静态条目:

ip neighbor replace < moku_NIC_IP> lladdr <MOKU_MAC> dev <interface> nud permanent

Moku 配置(接收)

千兆流媒体设备可以通过点对点(单播)或组播传输方式接收数据。以下各节将分别介绍每种传输方式的配置流程,概述所需的主机网络设置和千兆流媒体设备设置,以确保数据在每种情况下都能传输到正确的接口和地址。

点对点(单播)

在仅接收工作流程中,只有本地 IP、本地 UDP 端口和本地 MAC 地址字段是相关的,而远程目标设置不会被使用,并且可以保持未配置状态。

点击千兆流媒体播放器界面中的地球图标,配置网络参数。这些参数定义了Moku接口的网络标识以及主机上的目标地址。

本地:

  • IP地址
    为 Moku 的 SFP/QSFP 端口分配一个静态 IP 地址,该地址必须与主机位于同一子网内。
  • 多播地址
    下文将详细介绍。
  • UDP端口
    主机必须向此端口发送数据包,VITA-49.2 约定是使用端口 4991,但任何 UDP 端口都是有效的,只要它与传输数据包中的目标端口匹配即可。
  • MAC地址
    由 Moku 固定到特定的 SFP/QSFP 端口。

远程目标(如果仅用于接收模式,则可以不配置):

  • IP地址
    可选,与主机端口 IP 地址匹配。
  • UDP端口
    (可选)将其设置为主机软件将监听的端口。
  • MAC地址
    (可选)输入连接到 Moku 的主机网卡的 MAC 地址。

寄出的包裹:

  • 网络 MTU
    选择支持的 MTU 大小之一,Moku 接受最大 1500 字节的 MTU。
  • UDP有效载荷
    根据 MTU 和样本量计算得出。
  • 每包样品数
    根据 MTU 和样本量计算得出。

多播

千兆流媒体播放器还支持组播流媒体传输,允许主机使用组播 IP 地址向一个或多个接收器传输数据。要使用组播,必须将主机操作系统配置为将选定的组播流量路由到正确的网络接口,并且主机和千兆流媒体播放器上必须配置相同的组播地址。

首先,配置主机将组播流量路由到所需的网络接口。例如:

sudo ip route add 224.1.2.0/24 dev enp129s0f0np0

此命令将 224.1.2.X 范围内的所有组播流量重定向到网络接口 enp129s0f0np0。/24 前缀指定地址中必须匹配的最高有效位的位数。可以使用 224.0.0.0/4 路由更广泛的范围以覆盖所有组播地址,或者可以使用 /32 指定单个组播地址,例如 224.1.2.3/32。

接下来,通过在组播 IP 地址字段中输入所需的组播 IP 地址(例如 224.1.2.3)来配置千兆流媒体播放器。

最后,像往常一样从主机发送数据,但使用配置的多播 IP 地址作为目标地址。千兆流媒体设备将通过配置的接口接收发送到此多播地址的数据包。

从主机发送数据

当主机向 Moku 发送数据时,传入的数据流遵循数据包和数据结构部分所述的数据包格式。数据以有序的上下文包和数据包序列的形式传输,这些数据包共同定义并承载样本流。

传输顺序如下:

  1. 上下文包

传输始于一个上下文数据包,该数据包定义了 Moku 使用的流配置。对于主机到 Moku 的传输,Moku 接受 16 位采样数据。

  1. 数据包

上下文数据包之后是一系列使用相同流标识符的数据包。这些数据包以与配置的采样率相匹配的稳定速率发送,以保持连续播放。

  1. 包装尺寸

数据包的构造应与配置的最大传输单元相匹配,以便有效载荷大小与所选网络设置保持一致。

Moku 以固定的采样率按数据包顺序处理传入数据,不进行速率自适应或重采样。因此,主机应用程序在发送数据包时应进行速率控制或限流,以确保发送速率与配置的流速率相匹配。稳定的数据包时序有助于千兆流器平滑地处理传入数据,避免溢出或下溢,从而影响下游设备。

请注意,Moku 千兆流媒体播放器的输出连接(插值模块和输出端口之间)是根据接收到的上下文数据包的“矢量大小”自动连接的,而不是通过 Moku 应用程序进行设置。千兆流媒体播放器会根据矢量大小参数,从输出 A 开始,然后是输出 B,依此类推,连接指定数量的通道。

I/Q 处理(DIFI 兼容性)

Moku千兆流媒体播放器遵循VITA-49.2数据包结构,并与DIFI紧密兼容。它能够处理DIFI数据包,将复杂数据流的I分量和Q分量解释为两个独立的实值通道。当接收到复杂数据流时,I分量会自动路由到输出A,Q分量会自动路由到输出B。

对接收到的数据进行分析

一旦千兆流器开始接收有效的数据包,这些输出就可以通过多仪器模式连接到其他仪器进行验证和分析。

例如,您可以使用:

  • 用于时域检测接收波形的示波器
  • 用于实时频域分析的频谱分析仪
  • 模拟输出接口,用于连接外部设备

根据可用插槽的数量,可以将千兆流媒体与同步时域捕获、频谱监测和硬件在环操作结合起来。

故障排除

本节概述了配置或操作千兆流媒体时可能出现的一些常见问题,并提供了针对性的检查来隔离和解决这些问题。

链接打不开

如果物理链路报告 DOWN 或 LOWER_DOWN,请检查:

  1. 线缆和网卡兼容性

确认电缆是受支持的 DAC 类型,并确认网卡在所选线路速率下接受无源 DAC。

  1. FEC 不匹配(仅限 QSFP)

QSFP操作需要 FEC 已禁用 在主机网卡上。

确认 FEC 已禁用:

sudo ethtool --show-fec <interface>

  1. 接口状态

把NIC提上日程:

sudo ip link set dev <interface> up

确认链接状态:

sudo ethtool <interface>

如果链路无法协商,请重新检查网卡线路速率配置,并确保千兆流媒体设备已部署到多仪器模式下的正确插槽,因为这对应于特定的 SFP 和 QSFP 端口。

未到达主机的数据包(传输路径)

如果 Moku 正在发送数据包,但主机没有收到任何数据包:

  1. IP/MAC配置错误

IP地址和子网掩码必须完全匹配,MAC地址也必须完全匹配。

主机必须监听与 Moku 应用中配置的远程 UDP 端口相同的端口。

  1. MTU 不匹配

如果主机端的 MTU 小于 Moku 中的配置,则主机将无法接受数据包。

  1. 防火墙/接口绑定

确保接收应用程序绑定到正确的接口,而不是默认路由。

未到达 Moku(接收路径)的数据包

最常见的原因是由于 Moku 没有响应 ARP 请求而导致无法解析邻居。

  1. ARP/邻居条目不完整

检查邻居表:

ip neighbor | grep <moku-ip>

如果条目不完整,请运行以下命令进行替换:

ip neighbor replace < moku_NIC_IP> lladdr <MOKU_MAC> dev <interface> nud permanent

如果 SFP 或 QSFP 电缆被拔出并重新插入,则需要重复此过程。

  1. 目标端口错误

主机必须将数据包发送到 Moku 上定义的本地 UDP 端口。如果此字段错误,数据包将被静默丢弃。

  1. 错误的上下文包

只有当收到第一个有效的上下文数据包时,输出端口才会连接。如果上下文数据包中的任何字段格式错误,Moku 应用(4.2 或更高版本)会报告解析错误,并且不会启用相应的输出。

使用 Wireshark 等数据包检测工具确认:

    • 上下文包存在
    • 通道数已正确声明为“向量大小”。
    • 数据宽度和采样格式有效
    • MTU 正确
    • 没有格式错误的标头字段

失真或混叠信号

如果在向 Moku 流式传输时观察到信号失真或混叠,请检查以下配置。

  1. 主机生成的流中存在错误的抽取

主机必须与上下文数据包中声明的采样率相匹配。

  1. 样品包装错误

对于双通道实值数据流,样本按以下顺序逐个样本交错:

CH1[n]、CH2[n]、CH1[n+1]、CH2[n+1]、...

保持这种排序方式可以确保每个通道的样本都能正确重建。如果样本的排列方式不同,则可能会出现阶梯状波形、意外的幅度调制或重复的样本模式等问题。

  1. 字节序错误

样本字节序会影响多字节值在样本中的读取方式 数据有效载荷 被解读。Moku 千兆流媒体播放器使用 小尾数 发送和接收路径中有效载荷样本的字节序必须正确。如果有效载荷的字节序错误,会导致样本字节顺序颠倒,从而产生明显失真的波形。

结语

千兆流媒体传输器在 Moku:Delta 与外部系统之间提供了一个确定性的高带宽接口,支持将采样精度的数据传输直接导入或导出仪器。按照本指南中概述的配置步骤,该流媒体接口可以支持各种工作流程,包括基于主机的采集、实时回放和硬件在环测试。

该系统支持跨多个高速通道同时传输数据。最多可同时传输六个通道的数据:四个通道的实时带宽为 75 MHz,另外两个通道的实时带宽最高可达 1.25 GHz。这些功能使千兆流媒体传输器能够集成到要求严苛的数据采集和信号注入环境中,而不会影响时序或吞吐量。

通过建立固定速率的UDP传输路径、调整网络参数并采用符合DIFI标准的VITA-49.2数据包结构,千兆流媒体传输器为确定性数据采集和处理提供了一个可靠的端点。流式数据可以同时路由到多个下游仪器,例如示波器、频谱分析仪、数字处理模块或模拟输出,而不会中断或修改输入数据流。

基于这些基础,千兆流媒体模块可以作为 Moku:Delta 与更高级别系统(例如网络存储、实时 DSP 流水线、自动化验证平台和混合信号测试平台)之间的接口。千兆流媒体模块 (SFP) 和千兆流媒体模块+ (QSFP) 均采用相同的配置方法,使设计能够从中等速率链路扩展到平台支持的最高带宽模式。

下载应用说明

在演示模式下试用 Moku

您可以点击这里,下载适基于 macOS 和 Windows 的 Moku 应用程序。


获取常见问题的答案

在我们的知识库页面上查找与设备和仪器相关的问题和答案。


与全球的 Moku 用户建立联系

即刻加入用户论坛,提出申请新的功能、分享技术,并与我们的全球用户社区建立联系。

其他推荐的应用笔记

返回所有应用笔记