前言
在工业视觉和自动化领域,GigE Vision 协议因其无需采集卡、传输距离远、生态成熟等优势,已成为高性能工业相机的核心通讯标准。然而,在 FPGA 上实现一套完全符合标准的 Transmitter(发射端)方案并非易事。
本文结合 Artix-7 和 Kintex-7 系列 FPGA 的架构特性,解析一套工业级 GigE Vision 方案的底层逻辑、核心功能以及在 A7/K7 平台上的落地实践。
一、GigE Vision 协议栈的工业级功能拆解
一套商用级的 GigE Vision 方案(Transmitter)必须在 FPGA 内部实现从物理传输到高层协议的完整闭环,其核心功能涵盖:
1. 灵活的图像缓存管理(Advanced Framebuffer)
针对工业视觉中分辨率不固定、带宽波动大等痛点,方案采用了高性能的缓存架构:
- 多缓冲区循环机制:利用 DDR3 建立多级 Buffer,支持 Full Block(完整帧存储)模式,确保在网络抖动时图像数据不丢失。
- 低延迟(Low Latency)模式:支持边写边读逻辑,最大限度压缩从 Sensor 感光到数据上线的物理延迟。
- Trailer 自动生成引擎:硬件逻辑在每一帧图像末尾自动注入数据块 ID、时间戳(Timestamp)及状态码,无需 CPU 干预,确保协议包的完整合规。
2. 全功能的控制协议(GVCP)处理
- 寄存器映射机制:支持将相机参数(曝光、增益、像素格式等)映射至标准的 GenICam 寄存器空间,使上位机(如 Halcon、VisionPro、Pylon)能直接枚举并配置设备。
- 健壮的链路监控:内置心跳检测(Heartbeat)与设备重连机制,支持网络瞬断后的自动恢复。
3. 硬件硬化的流传输(GVSP)
- Packet Resend(丢包重传):支持标准协议规定的重传请求,当上位机检测到序列号断档时,FPGA 逻辑能自动从内存中调取历史数据包补发。
- UDP/IP 硬件校验和:在逻辑层实时完成 Checksum 计算,实测在 A7/K7 平台上可稳定跑满 950Mbps 以上的有效载荷。

二、A7/K7 FPGA 内部的核心架构设计
在 7 系列 FPGA 上实现该方案,重点在于'软硬协同'的设计思想:
1. 硬件层:AXI4 总线与数据链路
方案整体基于 AXI4 总线架构 开发,确保了模块间的通用性与扩展性:
- Data Path:视频流接口输入后,经过 Framebuffer 存入 DDR,再由 GVSP 引擎读取并打包。
- Control Path:通过 AXI-Lite 总线管理内部寄存器空间,实现逻辑与软件的数据交换。
2. 固件层:基于 MicroBlaze 的嵌入式管理
方案利用 FPGA 内部的 MicroBlaze 软核 运行协议栈驱动,负责处理非实时的网络事务:
- 网络地址分配:完美支持 LAA(链路本地地址)、DHCP 及 Static IP 模式,保证相机在各种网络拓扑下即插即用。
- XML 挂载:负责向上位机展示符合 GenICam 标准的 XML 描述文件,实现相机的'身份定义'。
总体方案架构如下图所示:

Vivado 中的 BlockDesign 截图如下:

三、实战细节:7 系列 FPGA 的集成挑战
在 Artix-7 和 Kintex-7 平台上实现千兆线速传输,需要重点攻克以下技术难点:
- PHY 芯片的接口对齐:针对工业级常用 PHY 芯片(如 RTL8211 等),利用 IDELAY 等原语对 RGMII 接口进行纳秒级的相位微调,确保时钟与数据的同步稳定性。
- 动态 IP 分配(LAA/DHCP):方案固件层支持自动地址分配与静态 IP 的无缝切换,保证相机在复杂的工业网络环境下即插即用。
- GenICam 兼容性设计:通过维护一套标准的寄存器空间,并提供符合标准的 XML 描述文件,使得方案能被主流工业软件(Halcon、VisionPro、LabVIEW)无缝识别。
通过 A7 开发套件跑通 GIGE 测试功能:
采用的开发套件硬件资源接口如下所示:


板卡采用 XILINX 7A100T FPGA 主控芯片,PHY 芯片型号为 RTL8211E,DDR3 容量为 4Gbit,16bit 位宽,可满足测试图像的 GIGE 传输。
实现效果如下:

部分配置界面,对应 XML 文件:


四、方案总结与技术探讨
这套方案已经在基于 A7/K7 的自研设备上验证通过。对于 FPGA 开发者而言,GigE Vision 的门槛不仅在于'调通接口',更在于如何在复杂的网络工况下保持'不丢包、不卡顿'。