带宽控制

捕获的图像在被传感器完全读出前,就可以通过网络以封包的方式进行图像数据传输。这样一来可以将图像传输延迟的情形降到最低。然而,如果同时传输过多的数据,则很快地就会超出GigE 网络的最大宽带限制。

而且这种情况在多相机设置中的影响最大。如果必须重复请求数据,则会造成数据损失以及传输时间的增加。使用GigE Vision Standard 可以透过设置数据传输的参数来避免此种情形发生。透过使用IDS GigE Vision 系列相机的拓展设置轻松管理可用的带宽。

背景

GigE 视觉相機的數據是透過一連串的數據封包來傳輸。除了有效載荷數據外, 每個封包也包含了Header以及and 校验和数据。根據 MTU (最大數據傳輸單位) 設定, 用戶的數據量跟封包大小 (關鍵字: 巨型框架) 可能會有所不同。兩個封包間有一個可以調整的延遲 (延迟): "包间延迟 (封包區間延遲)"。如果信息封包沒有正確的被傳送, 傳輸層 (轻轻) 可以使用re-发送機制來要求再次傳送丟失的訊息封包。數據重新請求的可能性取決於使用的傳輸層這三個組件共同決定了相機圖像的完整傳輸時間。

改變封包大小,IPG以及要求重新傳輸的次數會影響整體傳輸時間。
改變封包大小,IPG以及要求重新傳輸的次數會影響整體傳輸時間。

为了减轻多相机设置中的网络负荷或是减轻处理系统,降低信息发送设备端的网络宽带是必要的。 GigE Vision standard中的封包区间延迟(Inter-packet delays) 可以透过暂时停止传输来防止宽带瓶颈。 由于影像信息的传输速度降低并且降低了信息的传输量所造成的封包延迟传输会造成整体传输时间的增加! 由于传输时间的增加,相对的最大帧率将会被降低 (Acquisition Framerate Limit)。

延遲數據封包會降低傳輸寬帶,但同時會增加傳輸的時間並且降低最大幀率的上限。
延遲數據封包會降低傳輸寬帶,但同時會增加傳輸的時間並且降低最大幀率的上限。

GigE 视觉封包區間延遲 (包间延迟) 可以將個別的相機信息輸出各自做設定。一個適當的信息傳輸延遲可以有效的防範相機對傳輸接口造成超荷。

此使用技巧仅限于IDS GigE Vision 韧体宽带管理的可能性。 数据流量的设置和监视取决于使用的传输层 (GenTL)。

IDS 扩充功能增加了清晰度

IDS 在GigE 视觉韌體firmware (版本1.3 或更高) 中實現了兩項附加功能, 可以提供更多的寬帶管理概覽。

  • DeviceLinkCalculatedThroughput
  • DeviceLinkAcquisitionFrameRateLimit


通过输入吞吐量限制 (DeviceLinkThroughputLimit),相机韧体会计算所需要的数据封包延迟 (GevSCPD) 以及在目前的限制下最大可能达到的帧速 ( DeviceLinkAcquisitionFrameRateRateLimit)。

另外,经过计算的吞吐量 (DeviceLinkCalculatedThroughput) 可以提供装置如果要达到理论可达成的宽带。 省去了每个相机非常耗时的计算。

新的IDS功能是從帶寬限制和當前相機設置中計算出來的。
新的IDS功能是從帶寬限制和當前相機設置中計算出來的。

新增的功能支持所有相容的GigE Vision 相機。我們用IDS Vision Cockpit 來示範。

限制數據吞吐量

如果你想在GigE Vision 应用中透过Gigabit Ethernet 来传输高带宽的信息,建议您参考新的IDS 相机特色, 带宽瓶颈可能在使用默认值时同时开启两台相机的时候就会造成。

开始连接相机时,先不要立即开始拍摄而是先调整相机设定。

在开启拍摄前,先确认计算出来的数据吞吐量设定,以及最高帧率,如果必要的画可以设置带宽限制。 如果想要看到概览,请先调整到Expert 等级的用户层级,并使用"Device Nodes" 来过滤出 "devicelink" 的参数设定列表。 下面经过搜寻筛选过的装置节点总览带有相机带宽直的参数。

在默认的情况下,相机会在没有限制数据吞吐量的情况下运行,而且会自动使用最大的120MBps 吞吐量限制。 在这个例子中的相机会产生一个数据吞吐量 (DeviceLinkCalculatedThroughput) 大约在 61 MBps ,而帧率在这个条件中可以达到 25 fps. 在无限制下,相机可以捕捉和传输每秒 46 帧 (DeviceLinkAcquisition-FrameRateLimit)。变更相机的参数会造成 “吞吐量” (DeviceLinkCalculatedThroughput) 跟最高帧率的变动 (DeviceLinkAcquisitionFrameRateLimit).

經過過濾的概述顯示了用於帶寬調整的攝像機參數
經過過濾的概述顯示了用於帶寬調整的攝像機參數

然而,如果透过使用 "DeviceLinkThroughputLimit"来限制数据吞吐量, 不论相机的设置或是所产生的数据量如何,相机都不会超过设定的数值。

如果帶寬限制低於計算的的吞吐量,則最大幀率速將降低
如果帶寬限制低於計算的的吞吐量,則最大幀率速將降低

在此范例中,如果数据吞吐量限制在 50 MBps ,而在相同相机设置条件下最大帧率则可能达到 20 fps。

由于计算得到的数据吞吐量持续超过60 MBps 的限制,相机无法再保持25fps的帧率。 数据溢出发生在相机的传输缓冲区中。 如果拍摄的图像暂时无法缓冲,相机会放弃图像。 实际传输速率等于计算的最大帧率 (21 fps)。

计算出的数据吞吐量越高,超出限制的吞吐量时,相机会丢弃更多的图像,不进行传输。

由于带宽限制,相机的图像传输会因为使用传输封包区间而延迟 (GevSCPD)!

帶寬限制的好處

通过设置适当的带宽限制,将 Gigabit Ethernet port (120 MBps) 可用的带宽分配给连接中的相机。 这样一来可以防止传输的瓶颈所造成的错误或是不完整图像。

你也可以替相机做不同的吞吐量设定限制来区分相机的优先级。

兩台相機分別設置不同的帶寬限制。相機2可用較快的速度傳輸信息
兩台相機分別設置不同的帶寬限制。相機2可用較快的速度傳輸信息

系统优化

即使在设置相机的数据吞吐量时也考虑了GigE带宽限制,高网络流量或其他系统相关的波动也可能会导致Gigabit 线路暂时出现瓶颈,可能还是会发生不完整的图像,或是其他传输错误。

GenTL-設置

根据所使用的GenTL,你有不同的选项来设定以及监控来优化数据传输。 下面列出了IDS GenTL 的一些事例功能:

  • "流监视器" 通過 "缓冲区填充级别" 顯示傳輸緩衝器中有多少百分比被正確傳送。然後 "重新发送请求计数" 顯示緩衝器重新請求的使用狀況。
  • 你也可以利用 "Loss Handling" 来控制要重新请求的数据辆。 这个功能在默认值中是被关闭的。
  • "不完整" 不完整的圖像由 IDS 轻轻統計數量, 但仍然會被傳輸。用戶可以決定是否要採用這個圖像數據。

提供储备

为了避免在网络暂时性波动时产生的传输错误,建议在任何情况下都要提供储存空间。 在分配带宽时,保留10% 左右的资源做为缓冲空间。

关于设置网卡的注意事

  • 我们建议将Receive Descriptors 设定为网卡设置中的最大值。
  • 同時我們也建議在網卡中將 Jumbo Frames (also: Jumbo Packet, Large Packet, Large Frame) 調整到最大值。
    请注意,相机与计算机之间的连接必须保持在最大,以确保传输可以顺利传送 jumbo packets(封包)。 更多相关的讯息,请参阅网卡制造商的说明。