基于VU13P VU系列FPGA的高性能CoaXpress 图像采集系统
简介
1.1CoaXPress 简介
CoaXPress (简称CXP)是指一种采用同轴线缆进行互联的相机数据传输标准,主要用于替代之前的Camera Link协议,常见于科学相机、工业相机、医学图像、航空防务等场景。Camera Link 由于线缆的形式、传输速度等原因,已经不再适用于不断增长的数据带宽需求。
CXP是一个非对称的高速点对点串行传输协议,主要用于传输视频和静态图像,线缆多使用单条或多条同轴电缆。目前2.0标准的最高速度为单条lane 12.5Gbps,单条lane 上除了传输图像数据之外,还可以传输低速控制信号(41.6Mbps)、也可以利用该线缆对相机进行供电,即“Power-over-Coax”,单条线缆最长可达100m。
单条同轴线缆最高12.5Gbps的线速率,可以使用单条或者多条线缆,比如4条线缆可以最高提供50Gbps的数据速率
较长的线缆长度,比如3.125 Gbps 速率下线长可以到100m,12.5Gbps速率下可以到35m
数据传输具备实时和低延迟的特性,且延迟是固定的
精准实时的触发特性,支持通过同轴线缆发送触发,无需额外的通讯线缆
可以获得灵活可靠的性能,通过使用标准的同轴线缆,比如RG59 和 RG6规格,推荐使用RG6
易于集成的特性,图像、控制通讯、电源可以使用同一条线缆,且线缆价格便宜
CXP是一种点对点可扩展接口, 设备和HOST之间的物理介质为75Ω 同轴电缆。每一个CXP接口都包含1个MASTER连接和若干可选的扩展SLAVE连接,每一个连接都需要1条同轴线缆,通常设备会对这些连接进行编号,MASTER固定为0,SLAVE扩展接口依次递增。

图 1-1 CXP链接结构
每一个connection都包含如下功能
高速串行数据(通常为Device到 Host Downconnection), 最高 12.5 Gbps.
低速串行数据(通常为Host 到Device Upconnection), 最高 41.6˙ Mbps .
供电功能Power (Host 到 Device), 最高13W.

图 1-2 DownConnection 与Upconnection

表 1-1 CoaXPress 支持的高速信号速率
CXP Speed Bit Rate (Gbps)
CXP-1 1.250
CXP-2 2.500
CXP-3 3.125
CXP-5 5.000
CXP-6 6.250
CXP-10 10.000
CXP-12 12.500
1.2产品概述
HELLO-FPGA VU13P_PCIE16是一款专为工业成像应用设计的高性能四通道 CoaXPress (CXP) 图像采集卡。该板卡支持最新的 CoaXPress V2.0 标准,能够通过单根同轴电缆同时传输高速图像数据和电源(Power over CoaXPress, PoCXP),简化了系统集成与布线复杂度。此外,它还提供了丰富的外部接口与内部扩展接口,满足多种工业自动化需求。
VU13P_PCIE16 采用 AMD Virtex UltraScale+ FPGA 作为核心处理单元,提供强大的实时图像预处理能力与灵活的用户逻辑扩展选项。拥有顶级的逻辑和DSP资源,提供强大的并行算力,并通过GTY收发器、PCIe等高速接口实现了超群的数据吞吐能力。
该板卡配合一块4R类型子卡,可实现cxp接口转换,通过子卡上的cxp接口,可与外部相机或者模拟源通信,通过cxp线缆将对端的数据信号采集到VU13P板卡内部,并进行对应处理,再通过pcie接口送到上位机进行后续处理。
1.3主要特性
类别 特性说明
接口标准 支持 CoaXPress 2.0,四通道 HDBNC female connector,各通道最高 12.5Gbps
主机接口 PCIe Gen3 x16,向下兼容 Gen2/Gen1
FPGA 平台 Xilinx XCVU13P-FHGB2104-2-I,支持用户自定义逻辑开发
板载内存 4 GB DDR4 SDRAM(64-bit,2400 MHz),用于帧缓存与数据预处理
PoCXP 供电 通过 6-pin PEG 插座提供 12VDC 电源,对外最大 24V/1.7A 输出,具备电流监测功能
状态指示 板卡正常启动后,板卡上FPGADONE指示灯会高亮
2安全与合规
在安装、操作或维护CoaXPress Over Fiber Range Extender模块前,请仔细阅读本章内容。遵守以下安全指南可有效防止人身伤害、设备损坏或系统故障。
2.1安全使用注意事项
禁止未经许可拆开外壳。
禁止带电插拔CXP线缆,请先连接好线缆再完成上电。
PoCXP 供电限制:若使用 PoCXP 为相机供电,必须保证电源功率足够,最低要求12V 3A ,推荐12V 5A/6A。
禁止输入超过额定输入电压范围的电源。
避免在水溅雨淋、阳光直射、强电场、强磁场、强烈振动等场所储存与运输。
2.2静电防护(ESD)指南
VU13P_PCIE16 采用高密度 FPGA 和高速接口芯片,对静电放电(ESD)极为敏感。不当操作可能导致器件永久性失效。
操作前准备
在干燥环境中(相对湿度 <60%)操作;
使用防静电工作台、防静电腕带,并确保可靠接地;
将板卡存放于防静电袋中,直至安装。
安装建议
仅在需要安装时取出板卡;
握持板卡边缘,避免触碰金手指、FPGA、HDBNC 接口或 I/O 引脚;
若板卡已安装但长期未使用,请保持主机断电并置于干燥环境。
3 快速入手指南
欢迎使用VU13P_PCIE16图像采集卡!本章将帮助您从零开始,快速完成设备安装和软件配置。
3.1新手必读:开始之前
硬件要求:
主板:PCIe x8或x16插槽(推荐PCIe 3.0及以上)
电源:额定功率≥500W(使用PoCXP时需注意不要使用ATX 6-pin辅助电源,插入pcie即可供电)
内存:≥4GB RAM
硬盘:≥10GB可用空间
操作系统:
Windows 10/11 64位
Linux Ubuntu 18.04/20.04/22.04 64位
3.2硬件安装
3.2.1板卡安装
关闭主机电源并拔掉电源线,释放静电(建议佩戴防静电手环)。
打开机箱侧板,选择一个PCIe x8或x16 物理插槽(建议使用靠近 CPU 的插槽以获得最佳带宽)。将 VU13P_PCIE16 采集卡对准插槽,垂直均匀施力插入到底,
确保金手指完全接触。使用螺丝将板卡后挡板固定在机箱上,防止松动。
3.2.2供电要求
采集卡供电:通过 PCIe 插槽提供75W标准供电,无需外接电源。
相机供电:设计通过采集卡的PCIE接口直接对相机进行POC供电,无需外接电源。
注:板卡上ATX供电接口不可使用。
4VU13P_PCIE16
4.1硬件特性
4路独立接口,pcie gen3x16模式
FMC+,和FMC 4R子卡组合使用
FMC HPC 接口
2组DDR4,型号 MT40A512M16HA-083E
1路千兆网口
通过POC给相机供电,单路最大功率17W
0°-85°C 工作温度 (Industrial Grade)

图 3-1 VU13P_PCIE16板卡实物正面图

图 4-2 VU13P_PCIE16板卡实物背面图
4.2工程实现
4.2.1工程核心模块简介
4.2.1.1ddr4 IP核设置
MIG IP 控制器是 xilinx 为用户提供的一个 DDR控制的 IP,这样用户即使不了解 DDR 的控制和读写时序也能通过 DDR 控制器方便的读写 DDR 存储器。
DDR 控制器包含 3 部分:用户接口模块(User interface Block),存储器控制模块(Memory Controller)和 DDR 的物理接口(Physical Layer)。开发人员只需要开发用户的逻辑设计跟 DDR 控制器的用户接口对接来读写 DDR 的数据。关于 DDR 控制器用户端的接口定义和时序的更多介绍,大家还是参考 Xilinx 提供的文档(PG150),接下来为大家介绍如何生成和配置 DDR 控制器。
建立工程,打开IP Catalog,选择DDR4 SDRAM(MIG)。Basic界面,参考时钟我们选择板卡对应的系统时钟 200MHz。这里选择相近 DDR 型号 MT40A512M16HA-083E,Data Width 选择 64 位。

【DDR4 IP配置界面】
4.2.1.2xdma ip核
XDMA IP核(DMA for PCI Express)是AMD(原Xilinx)提供的一个硬件IP核,全称是 "DMA Subsystem for PCI Express"。是一个专门负责在FPGA和主机(CPU内存)之间高速搬运数据的引擎。它让你可以通过标准的PCIe接口,利用DMA(直接内存访问,Direct Memory Access)技术,实现FPGA与上位机软件之间超高速、低延迟的数据传输,且CPU的干预极少。

【XDMA IP核配置】
在当前工程中,我们使用GEN3 X16模式,所以在ip的对应配置中选择8gt/s的速率和x16的lane宽度。
4.2.1.3DMA Stream接口
当前工程中,dma 位宽为256bit.
【DMA Stream接口框图】
视频输出接口定义为DMA总线,端口描述见下表

表 4-1 Video Stream DMA 接口
信号名称 输入/输出 位宽 描述说明
dma_clk 输入 STREAMS dma流时钟。
dma_data 输出 32*STREAM_WORDSxSTREAMS dma流数据。
dma_empty 输出 WIDTH_O(1)xSTREAMS dma空指示,指示一帧的最后一次传输。
dma_valid 输出 STREAMS dma流数据有效信号,当次信号变低时,传输暂停。
dma_ready 输入 STREAMS dma流数据接收准备信号。
dma_sop 输出 STREAMS 帧开始指示。
dma_eop 输出 STREAMS 帧结束指示。
dma_sol 输出 STREAMS 行开始指示。
dma_eol 输出 STREAMS 行结束指示。
- The WIDTH_O is defined as Log2(4 x STREAM_WORDS)
Video DMA Stream是通用的视频流接口,具体数据与像素如何对应呢?
当STREAMS为1,STREAM_WORDS为4时,dma_data位宽为128,数据排列如下:
如果Device 传输像素是 8bit,则通过DMA总线的输出流数据将包含8位像素数据,每个时钟周期总共 16 个像素,pixel 0占据dma_data的[7:0], pixel 1占据dma_data的[15:8],依次类推。
如果Device 传输像素是 10/12/14/16 位像素图像,则解码流将由 16 位像素组成数据,每个时钟周期总共 8 个像素。数据放在16bit的低10/12/14/16位,比如12bit像素输入时,第0个像素在dma_data[11:0],第1个像素在dma_data[27:16],以此类推。
DMA_SOP和DMA_EOP分别指示帧的开始和帧的结束。
DMA_SOL 和 DMA_EOL 分别指示行的开始和行的结束。
DMA_EMPTY 表示最后一次传输帧中的空字节数,在我们的设计中,该在数据有效时值总是为0,内部会对数据进行拼接。

【图4-3 Video DMA timing】
图 4-3 Video DMA timing(以14bit像素为例,图示共58个pixels)
-
dma_valid 和 dma_data 在 dma_clk 的上升沿置位, dma_ready 信号拉高,数据完成一次传输。
-
dma_sop 和 dma_sol 在 dma_valid 和 dma_ready 同时为高时置位,指示帧的开始。
-
一旦 dma_ready 无效,传输就会暂停,此时依靠IP内部FIFO完成缓存。
-
一旦 dma_ready 重新置位,传输就会继续。
-
dma_valid 高有效,拉底标识传输暂停。
-
dma_valid 重新有效则传输继续。
-
dma_eop 和 dma_eol 拉高,标识帧结束。 dma_empty 的值为 12,表示在数据包末尾,16 个bytes中有 12 个无效,4个有效,对于当前14bit像素而言,则有效像素数量为2。
-
dma_eop 置低,一帧传输完成。
4.2.2固化固件
这里需要注意,demo中的工程使用的是SPI×8,与SPI×4有很大区别。SPI×8需要向两个FLASH烧录两个不同的文件,这时我们需要在生成bit文件后,使用该bit文件生成两个mcs文件。点击Tools栏中的Generate Memory Configuration File...。

【Generate Memory Configuration File 菜单】
进入mcs文件生成界面。


【MCS文件生成界面】
生成文件类型选择MCS,flash型号选择下图红框中的型号。

【Flash型号选择截图】
接口选择SPI×8,bit文件选择刚才生成的bit文件,点击OK。等待如下图所示界面,表明mcs文件生成完毕。
接着按照之前的步骤烧录mcs文件,选择flash型号,进入如下界面。在红框中选择我们刚刚生成的mcs文件。点击OK。等待文件烧录完毕。
4.3 ImaGrab
ImaGrab 是星测电子设计的 Windows /Linux图形化客户端,无需编程即可完成CoaXPress设备发现、参数配置、实时预览与图像采集,适用于现场调试、系统集成与教学演示。更详细的Img-Grab软件使用说明请参阅《Img-Grab应用程序使用说明》https://img-grab.com/filedownload/3000793
4.3.1主要功能
扫描并枚举所有连接的PCIe采集卡以及采集卡挂载的相机;
支持 GenICam 标准参数树(曝光时间、增益、触发模式、ROI 等);
实时图像显示(支持缩放);
手动/自动采集控制;
PoCXP 供电开关与电流监测;
External I/O 触发信号配置(输入/输出方向、电平、路由);
日志导出与固件升级入口。
4.3.2界面布局
ImaGrab 客户端采用模块化设计,主界面划分为六大功能区域,如图6-1所示。便于用户高效操作与监控。各区域功能如下:

区域 区域名称 功能描述
1 菜单栏 提供 文件(保存图像、导出日志)、视图(窗口布局)、设置(语言、单位)、工具和 帮助(版本信息、用户手册)等全局功能入口。
2 设备列表 实时显示当前系统中检测到的所有 PCIe-1004 采集卡及所连接的 CoaXPress 相机,支持多设备切换。
3 接口和设备信息 显示选中设备的详细信息,包括设备型号、序列号、固件版本、链路状态(CXP-12/CXP-6)、PoCXP 电流等。
4 图像预览窗口 实时显示相机采集的图像,并叠加显示帧率(FPS)、带宽占用、图像尺寸 等统计信息;支持缩放、伪彩、网格等可视化选项。
5 属性树面板 当设备成功连接后,此处显示其完整的 GenICam 参数树,包括 图像参数(Width, Height, PixelFormat)、采集控制(TriggerMode, ExposureTime)、I/O 配置(LineSelector, LineMode)等,支持实时修改与生效。
图 4-4 ImaGrab 客户端主界面
4.3.3ImgGrab快速使用流程
ImaGrab 客户端支持零配置快速上手。以下是连接相机并采集图像的基本操作步骤:
启动软件
双击桌面快捷方式 ImaGrab.exe 启动客户端。
扫描并连接相机
点击工具栏中的 【刷新设备】 按钮,系统将自动扫描 PCIe 插槽中的采集卡及挂载的 CoaXPress 相机;在设备列表(区域2)中双击目标相机,软件将自动建立连接、加载 GenICam XML 描述文件,并在属性树面板(区域5)中显示所有可配置参数。
配置相机参数
在右侧属性树中可查看或修改参数,如:
Width / Height:设置 ROI;
ExposureTime:调整曝光时间;
TriggerMode:选择触发模式(Off/On);
LineSelector + LineMode:配置 External I/O 功能。
修改后参数通常立即生效(部分参数需停止采集后修改)。
开始图像采集
点击工具栏 【连续采集】 按钮,启动实时图像流;
图像将在 预览窗口(区域4)中显示,同时显示当前帧率(FPS)、分辨率等信息。
保存图像或视频
单帧保存:点击预览窗口上方的 【保存图像】 按钮,支持格式包括 BMP、JPG、PNG;
视频录制:点击 【录制视频】 按钮,数据将以原始二进制(.bin)格式保存,保留完整图像头信息,便于后续回放或分析。
视频回放
在菜单栏选择 【文件】→【创建回放系统】;
加载已保存的 .bin 视频文件,即可在 ImaGrab 中进行逐帧回放、参数重查与图像导出。
4.3.4GUI示例

图 4-5 ImaGrab vu13p实测图1
将板卡插入pcie接口,并通过cxp线缆将板卡上cxp接口和外部cxp相机连接,在程序启动后,通过所对应的上位机软件,便可以将相机所拍摄的图片通过VU13P板卡采集下来并在GUI界面播放。

图 4-6 ImaGrab 实测图2
对于采集速率的配置,根据不同型号相机支持不同速率的配置,最高支持12.5G,如图所示,点击GUI界面的Transport Layer Control,可进入传输层控制窗口,在该串口中,可以对采集速率进行相关配置,如图框中所示,CxpLinkConfigurationPreferred 为标签,不可更改,表示当前设备最推荐速率,CxpLinkConfiguration为速率配置选项,可在该处对设备速率进行相应配置,CxpLinkConfigurationStatus 为当前cxp链路的实际速率,不可配置,通常在我们更改速率后,需要在窗口上方点击刷新按钮后,同时重新检测查看。
对于gpio的控制使用功能,当前vu13p板卡固件中暂未延申出gpio接口,如需使用,需要对固件程序进行二次开发。

浙公网安备 33010602011771号