友思特方案

解码工业视觉设备“零拷贝”传输

前言导读

在高速线扫、3D结构光等场景中,图像数据量大、传输帧频高、传统 GigE Vision 传输存在 CPU占用率高、延迟大、丢包风险增加的痛点。目前可通过FPGA硬件解包(如友思特 HawkEye-20GEV 采集卡)或GigE Vision3.0引入的 RoCE v2 技术解决。

纯logo

为什么“传图”成为了工业视觉的瓶颈之一?

在高速线扫、3D结构光、多相机同步等场景中,一张图像可能大于百兆,一秒可能传几百帧甚至更多。传统GigE Vision传输路径中,数据每一步都在进行拷贝、中断、校验、上下文切换,CPU占用率轻松飙到80%+,延迟ms级,丢包风险增加。导致CPU成了“搬运工”,而不是“计算官”。

为解决这一痛点问题,有的直接通过FPGA硬件完成数据解包,释放CPU,如友思特HawkEye-20GEV采集卡。而GigE Vision3.0新标准制定中引入了一种新的基于融合以太网的远程直接内存访问(RoCE v2)技术,提供高达400 Gbps及以上的高效图像流!RoCEv2具有低CPU 利用率、高吞吐量和低延迟等显著优势。极大提升GigE Vision在工业成像领域中对效率、速度和可靠性的突破。

而数据传输用到的DMA、RDMA、RoCE v2技术,这些你真的能分清吗?

纯logo

DMA

(1)无DMA网卡

在没有 DMA 的场景下,相机数据传输至内存需经过 CPU 全程 “中转”,具体流程如下:

1. 相机通过PCIe总线向CPU发送“数据请求”信号;

2. CPU暂停当前检测算法等核心任务,向内存控制器发送“读取指令”;

3. 内存控制器将数据从内存缓冲区复制到自身寄存器,并向CPU发送“数据就绪”中断;

4. CPU收到中断后,再次暂停核心任务,将寄存器中的数据逐字节拷贝到内核缓冲区,再拷贝到采集卡存储空间;

5. 数据传输完成后, CPU才能恢复核心任务。

(2)有DMA网卡

DMA(Direct Memory Access, 直接内存访问)技术通过在采集卡中集成DMA控制器,实现了“外设 – 内存”直接数据传输,CPU仅需参与“启动”和“结束” 两个环节:

1. 应用程序(如视觉检测软件)向CPU发送“数据采集指令”;

2. CPU向采集卡的DMA控制器下发“传输参数”(如内存地址、数据长度),随后立即返回核心任务;

3. DMA控制器自主与内存控制器通信,将相机数据直接写入指定内存地址;

4. 传输完成后,DMA控制器向CPU发送 “完成中断”,CPU仅需记录传输状态,无需参与数据搬运。

简单理解就是,将外设和内存之间的数据搬运的工作全部交给DMA控制器,而CPU不再参与任何与数据搬运相关的事情,这样CPU就可以去处理别的事务。

纯logo

RDMA

RDMA(Remote Direct Memory Access,远程直接内存访问)是在DMA基础上的“跨设备升级”,核心作用是实现两台设备(如工业相机与主机)之间的直接内存访问,全程无需CPU参与数据传输

(1)传统以太网

一个网络数据包经由应用程序产生,进入到协议栈中进行各种报文头的包装,然后操作系统调用网卡驱动程序指挥硬件,把数据发送到对端主机。用户空间(应用程序)和内核空间(操作系统)实际上使用的是同一块物理内存,但是处于安全考虑,Linux会将内存划分为用户空间和内核空间。用户层没有权限访问和修改内核空间的内存内容。

上述过程中的关键点是需要CPU参与的把数据从用户空间拷贝到内核空间,以及同样需要CPU全程参与的数据包组装和解析,数据量大的情况下,将对CPU将造成很大的负担。

(2)RDMA

RDMA是一种主机旁通/卸载技术,允许应用程序(包括存储)在它们的内存空间之间直接进行数据传输,完全不需要CPU的参与。

同样是把本端内存中的一段数据,复制到对端内存中,在使用了RDMA技术时,两端的CPU几乎不用参与数据传输过程(只参与控制层面路径建立)。本端的网卡直接从内存的用户空间DMA拷贝数据到内部存储空间,然后硬件进行各层报文的组装后,通过物理链路发送到对端网卡。对端的RDMA网卡收到数据后,剥离各层报文头和校验码,通过DMA将数据直接拷贝到用户空间内存中。

除了RDMA这项技术外,友思特HawkEye-20GEV采集卡也通过在板卡FPGA硬件上进行各层报文的组装,实现零拷贝数据传输。

纯logo

RDMA

RDMA本身指的是一种技术,具体协议层面,包含Infiniband(IB),RDMA over Converged Ethernet(RoCE)和internet Wide Area RDMA Protocol(iWARP)。其中,RoCE v2是专为以太网场景设计的RDMA协议,也是GigE Vision 3.0标准的核心选择。

RoCEv2运行在UDP/IP协议栈之上,在确保以太网网络内的无缝集成和兼容性的同时增强整体功能。GigE Vision 3.0中引入该项技术,并非作为当前2.2版的替代品,而是进一步提供技术补充。RoCEv2可提供更高的速度和更小延迟,显著提升整体系统的性能,同时保留现有的各项功能。

GigE Vision 3.0中引入RoCEv2的主要优势

• 低CPU利用率:释放系统资源用于处理其它任务,提升整个系统性能。

• 低延迟,极大提高系统的响应能力。

• 可扩展的吞吐量:RoCEv2 NIC 提供一系列物理链路,范围从 10Gbps 到 400Gbps。

• 增强高吞吐量的可靠性:RoCEv2通过将错误校验和恢复任务委托给专用硬件来完成,可确保更流畅、更一致的数据传输。

 兼容性和互作性:保留了当前的GigE Vision控制协议,确保无缝过渡。

友思特HawkEye 20GEV采集卡、嵌入式GigE Vision接口、10GigE转雷电口等系列产品,都具备几乎零CPU卸载数据能力,实现数据不丢帧卸载和高速稳定传输。

纯logo

友思特 方案产品套装介绍

HawkEye 20GEV 采集卡

提供双端口10gb帧捕获和图像处理系统,从2 x 10 GigE链接抓取,支持多相机、链接聚合,PCIe x8第3代。通过2个SFP +端口(铜/光纤)的采集带宽高达20Gb/s,低功耗。实现100%无丢帧,通过PCIe Gen.3 x8进行无CPU数据卸载, 可在主机上进行高分辨率后处理。

外置式图像采集卡

1G嵌入式视觉接口,快速为系统和相机添加高性能的GigE Vision 2.0连接。支持IEEE1588精确时间协议,通过IEEE1588来同步图像采集能和其他系统设备,以实现准确地图像采集。

嵌入式GigE Vision 视频接口

1G嵌入式视觉接口,快速为系统和相机添加高性能的GigE Vision 2.0连接。支持IEEE1588精确时间协议,通过IEEE1588来同步图像采集能和其他系统设备,以实现准确地图像采集。