跳转到内容

网络带宽控制#

本主题介绍 blaze 相机流式传输图像和深度数据时用于控制网络带宽消耗的参数。

该功能的使用#

当多个设备通过公共链路连接到接收主机并且必须共享可用的网络带宽时,控制网络带宽消耗是必要的。为了确保稳定运行,您可能需要限制每部相机消耗的带宽。

示例:如果通过交换机将 2 部相机连接到接收计算机的千兆以太网适配器的网络端口,则两部相机的吞吐量之和不得超过最大吞吐量 1 GBit/s(125,000,000 字节/秒)。

减少相机使用带宽的另一个原因是接收主机无法跟上数据传输且必须丢弃数据包。

控制带宽消耗#

在第一步中,通过读取 BslDeviceLinkCurrentThroughput 参数来确定相机在当前设置下可以生成的最大可能吞吐量。此参数表示相机处于自由运行模式时的带宽消耗,即没有使用软件或硬件触发器从外部触发时的带宽消耗。

获得此信息后,请使用 DeviceLinkThroughputLimitModeDeviceLinkThroughputLimit 参数指定每部相机的合理吞吐量限制。共享同一链路的所有相机的吞吐量总和不得超过网络适配器的最大吞吐量。

为了达到指定的限制,相机会在各个网络数据包之间插入暂停。限制越低,停顿的次数越多,停顿的时间就越长。一个完整帧的传输时间和相关的延迟,即从生成图像到数据到达主机内存之间的时间,随着限制的降低而增加。

在某一点上,这会影响您可以达到的帧速率。请参阅 BslResultingAcquisitionFrameRate 参数,找出当前相机设置的最大可能帧速率。

指定吞吐量限制也称为分配网络带宽。

限制吞吐量:

  1. DeviceLinkThroughputLimitMode 参数设置为 On
  2. 指定所需的 DeviceLinkThroughputLimit 参数值。
  3. 请参阅 BslResultingAcquisitionFrameRate 参数,了解设备链路吞吐量限制如何影响帧速率。

带宽预留#

流式传输协议基于 UDP 协议。UDP 不保证相机发送的数据包会被主机接收。

数据包可以由主机或相机与主机之间的网络设备丢弃。接收软件通常会检测到丢失的数据包并向相机发送适当的请求以重新发送丢失的数据。预留一定的带宽储备,以供这些分组重新发送和控制业务使用。如果此预留带宽用完,相机将无法再重新发送请求的数据包。

带宽预留由 GevSCBWRGevSCBWRA 参数控制,如下表所述。

可用参数#

参数名称 显示名称 描述
DeviceLinkThroughputLimitMode 设备链路吞吐量限值模式 允许您限制数据传输的最大可用带宽。将参数设置为 On 以启用限制。最大带宽限值为 DeviceLinkThroughputLimit 参数值。
DeviceLinkThroughputLimit 设备链路吞吐量限值 以每秒字节数为单位指定数据传输的最大可用带宽。要启用限制,请将 DeviceLinkThroughputLimitMode 参数设置为 On
BslDeviceLinkCurrentThroughput 当前设备链路吞吐量 相机在当前相机设置下用于传输数据的实际带宽(以每秒字节数为单位)。
BslResultingAcquisitionFrameRate 结果 Acquisition Frame Rate 当前相机设置下每秒可获取的最大帧数。
GevSCBWR 带宽预留 指定保留所分配带宽的哪一部分来处理数据包重发和控制数据传输。
此设置表示为所分配带宽的百分比。
示例:如果为相机分配了 30MB/s 的带宽,并且 GevSCBWR 参数设置为 5%,则带宽预留将为 1.5 MB/s。
GevSCBWRA 带宽预留累积 用于设置“累加器池”中可以预留的最大重发数的乘数。
您可以使用 GevSCBWRA 参数来处理网络连接变得不稳定的情况。在这些情况下,可能需要临时重新发送大量的数据包以发送图像。带宽预留累积基本上是相机在异常情况下可以使用的额外重发池。
示例:当前的带宽预留设置足够大,允许在一个帧周期内最多重新发送 5 个数据包。带宽预留累积(GevSCBWRA 参数)设置为 3。使用这些设置,累积池最多可容纳 5 x 3 = 15 次重新发送。
GevSCPSPacketSize 数据包大小 指定通过以太网传输的数据包的最大大小。该值以字节为单位。
对于 blaze 相机,唯一支持的值是 1500 字节。