您的位置:首页 > 文旅 > 旅游 > 武汉建立网站的公司_电商设计包括什么_搜索引擎的营销方法有哪些_视频剪辑培训班

武汉建立网站的公司_电商设计包括什么_搜索引擎的营销方法有哪些_视频剪辑培训班

2025/3/31 1:55:30 来源:https://blog.csdn.net/old_stone/article/details/146482506  浏览:    关键词:武汉建立网站的公司_电商设计包括什么_搜索引擎的营销方法有哪些_视频剪辑培训班
武汉建立网站的公司_电商设计包括什么_搜索引擎的营销方法有哪些_视频剪辑培训班

8xCXP相机采集系统介绍

目录

1 系统概述 4

2 硬件架构 5

2.1 FPGA处理单元 5

2.2 CXP接口层 6

2.3 CXP相机说明与使用要求 7

2.4 SSI控制器板 8

3 FPGA方案 9

3.1 FPGA实现 9

3.2 Block Design说明 10

4 软件方案 14

4.1 嵌入式层 14

4.2 上位机软件(C#)​ 14

4.2.1 启动与相机扫描 15

4.2.2 参数配置 15

4.2.3 数据可视化 16

图 1 系统整体架构 4

图 2 ­ 硬件连接示意图 5

图 3 ALINX ZU19EG FPGA板卡 5

图 4 FMC-CXP-4R 板卡 6

图 5 a2A2448-210cm 机械结构 7

图 6 6芯GPIO线缆 7

图 7 485接线图 8

图 8 SSI时序图 8

图 9 FPGA数据流 9

图 10 ISP处理 10

图 11 核心模块 11

图 12 cxp_phy Block Design 12

图 13 cxp host图像输出端口 12

图 14 cxp rx Block Design 13

图 15 Rx Block Design 13

图 16 ssi数据输出Block Design 14

图 17 C# 范例界面图 15

图 18 采集图像演示 17

系统概述

✅ 应用需求:

  • 连接控制8路CXP 单lane 相机,支持POE,相机工作在外触发模式;
  • 可以通过网络接口监控CXP相机图像(只监控最新图像),传输控制指令,修改相机参数;
  • 支持3路SSI接口;

根据上述需求,本系统通过双CXP FMC子卡接入8台CoaXPress(CXP)工业相机,利用Xilinx ZYNQ SoC芯片实现高速图像采集、传输及上位机实时显示。系统采用软硬件协同设计,支持实时数据流处理与灵活的上位机控制,可广泛应用于机器视觉、工业检测等高带宽场景。

图 1 系统整体架构

特色与优势:

✅ 多通道高速采集:支持 8台相机同时工作,确保大规模采集的稳定性。
✅ 智能参数管理:匹配不同品牌相机的参数配置。
✅ 动态缓存分配:根据实际连接的相机数和参数,动态调整Rx存储,提高内存利用率。
✅ 实时数据监控:图像界面实时显示采集数据,同时可监控可用帧数,避免缓存溢出。
✅ 高效数据传输:结合 DDR4+AXIS总线,保证高吞吐量的稳定采集。
✅ 多种触发模式支持:适应不同应用场景,如工业检测、航空影像采集、武器测试等。

硬件架构

IMG_256

图 2­ 硬件连接示意图

FPGA处理单元

利用现有商用FPGA主控板,搭载外设完成系统设计。

IMG_256

图 3 ALINX ZU19EG FPGA板卡

Z19开发板主要由 ZU19EG + 4 个 DDR4+DDR4 SODIMM + eMMC +2 个 QSPI FLASH 构成。主芯片采用 Xilinx 公司的 Zynq UltraScale+ MPSoCs 系列的芯片,型号为 XCZU19EG- -2FFVC1760I。ZU19EG 芯片可分成处理器系统部分 Processor System(PS)和可编程逻辑 部分 Programmable Logic(PL)。 在 ZU19EG 芯片的 PS 端和 PL 端分别挂了 4 片 DDR4 和 1 个 260 脚 DDR4 SODIMM 卡槽,PS 端的每片 DDR4 容量高达 2GB,使得 ARM 系统和 FPGA 系统能独立处理和存储的数据的功能。PS 端的 32GB eMMC FLASH 存储芯片和 2 片 256Mb 的 QSPI FLASH 用来静态存储 MPSoCs 的操作系统、文件系统及用户数据。

该板卡有如下特点适合我们的应用场景:

  • 2个FMC HPC可以用于CXP HOST FMC子卡的连接,实现CXP相机的采集和控制;
  • 千兆以太网:提供高速稳定的网络连接,确保大数据量的快速传输,适合实时数据处理需求。
  • DDR4内存:增强数据处理能力,满足复杂运算和大容量数据处理的需求。
  • 2路485可以方便扩展外设;​

CXP接口层

IMG_256

图 4 FMC-CXP-4R 板卡

2块FMC子卡提供8路CXP-12接口,单链路带宽达12.5 Gbps,支持PoCXP供电,支持1.25,2.5,3.125,5,6.25,10,12.5 Gbps速率。FMC-CXP-4R 子卡特性如下:

  • HPC FMC连接器,使用FMC高密度连接器,符合VITA 57.1标准;
  • Equalizer/Driver均衡器与驱动器,接收来自相机的高速downlink信号,发送来组FMC IO的低速控制信号;
  • LED,每个通道配置1个双色LED,可以通过FMC IO实现R,G颜色任意组合;
  • EEPROM,使用I2C接口的MT24C02 EEPROM,256Bytes容量,可以用于存储用户数据;
  • 24V DC Power, 24V DC电源电路,可以接受来自FMC的12V或者来自外部电源的12V供电电源,为power on cable功能提供DC电源,理论CXP每通道提供最大13W输出功率;
  • Power monitor,每路CoaXPress提供1路电流、电压监测电路,当电流超过门限后,会通过alert 端口向外发出警告;
  • HDBNC, 根据CoaXPress标准,子板使用MircroBNC连接器连接Device设备;
  • SMA,双向数字输入输出接口,通常用于触发信号的路由;

名称

别名

方向

电气

接头

宽度

描述

CH0-CH3

CXP

双向

24V,12.5Gbps

Micro BNC

4

CoaXPress 物理通道,支持POE

Trigger

触发

双向

1.8V-3.3V

SMA

1

数字触发信号

CXP相机说明与使用要求

参考 a2A2448-210cm | Basler Product Documentation

IMG_256

图 5 a2A2448-210cm 机械结构

IMG_256

图 6 6芯GPIO线缆

相机会工作在外部触发模式,触发信号从Line 1/2/3 输入,注意接线时Line 1 有独立的GND。

SSI控制器板

SSI 控制板由ZYNQ7020 作为主控,通过485接口与Z19板卡完成通讯,Z19板卡上使用485接口1(A1 B1 GND),在SSI开发板上,预留好了一个RS-485接口,使用导线按照图7所示连接。

图 7 485接线图

设计通过RS485接口接收数据,经UART协议解析后转换为AXI4 Stream数据流,在第一次握手信号成功后将数据转换为源同步的方式将数据从TX1发送,每次数据会在同步时钟的上升沿改变如图8所示,第二次握手成功后数据也会按照源同步的方式从TX3输出,其他以此类推,数据是在奇数路输出,同步时钟在偶数路输出,总共能够输出4路数据与4路时钟

考虑到SSI板上没有PL端使用的按键,因此每次接收到数据32‘h55555555会使SSI板上复位,之后每一路源同步数据会转换成RS-422协议由每一路的Y和Z口输出。

图 8 SSI时序图

FPGA方案

FPGA实现

图 9 FPGA数据流

  1. 图像采集部分(左侧)

如图7所示为本系统的FPGA数据流的示意图。系统使用了8个相机(Camera1 ~ Camera8)进行图像采集,每4个相机的数据分别由一块CXP FMC采集卡接收。采用CoaXPress(CXP)高速接口,保证数据的高带宽传输。CXP FMC Card 1 连接 Camera1 ~ Camera4,负责接收这4个相机的数据流。CXP FMC Card 2 连接 Camera5 ~ Camera8,负责接收这4个相机的数据流。这两个FMC采集卡分别通过CXP链路,将数据传输到下一级数据处理模块。

  1. 数据解析部分(中间)

每块FMC采集卡的数据先通过External PHY,完成CXP链路的物理层解析。External PHY 主要用于信号处理、数据恢复,并将物理层数据转换为可供CXP Host解析的格式。

  1. CXP Host协议解析

External PHY 之后,数据进入CXP Host协议解析模块,用于解析相机数据和相机信息(如帧头、状态等)。使用Hello-FPGA的CXP HOST IP Core 接收CXP相机的视频数据、发送主机的控制信号,控制信号的发送通过AXI Lite 接口完成,适配数据的接收通过AXI Stream Video格式接收。如图8所示,stream数据一分为二,一份送给PS作为监控使用,一份送给ISP 模块进行后续处理,ISP将处理结果通过DMA存储到PS DDR内存,然后软件可以读取计算结果,该计算结果与VIDEO数据一一对应,存在同步关系。

  1. 数据流处理部分(右侧)

AXIS数据流拆分,解析后的数据被划分为8路AXIS数据流(Stream 1 ~ Stream 8),每路数据流分别对应一个相机。这些数据流由Rx(数据接收引擎)模块处理,确保数据的稳定传输。Stream 1 Rx 处理 Camera1 数据流,Stream 2 Rx 处理 Camera2 数据流...(依次类推)。每个Rx独立工作,保证多通道数据的高效传输。经过Rx处理后的8路数据流被存储到ZYNQ PS端的DDR4中。DDR4作为高速缓存,保证数据不会因为带宽限制而丢失。存储的数据可用于进一步处理,如,直接传输到上位机进行显示或存储。

这里8路相机,每个相机大概分配不超过128MB的缓存,主要用于视频监控。8路计算结果合并成1路通过DMA存储到PS DDR内存,软件读取的时候按照存储顺序对计算结果机型划分。

IMG_256

图 10 ISP处理

Block Design说明

如图 11 所示,Block Design 的核心部分由 cxp_phy 和 cxp_rx 组成。其中,cxp_phy 负责 CXP 链路的物理层解析,包括信号处理和数据恢复,并将数据转换为标准的图像格式;cxp_rx 则对 cxp_phy 解析后的图像数据进行拆分和接收。

图 11 核心模块

图 12 展示了 cxp_phy 的内部结构,主要由 ext_phy 和 cxp_host 组成:

  • ext_phy 实现 CXP 物理层处理;
  • cxp_host 负责 CXP 协议解析,并输出图像数据。

本设计采用两个 ext_phy 模块,实现八路 CXP 相机的输入。cxp_host 输出的 dma_data[511:0] 包含所有八路相机的数据,每个相机的数据位宽是64位。其中:

第1路相机数据:dma_data[63:0]

第2路相机数据:dma_data[127:64]

……

第8路相机数据:dma_data[511:448]

此外,数据流控制信号定义如下:

  • dma_ready[7:0]:指示下游模块是否已准备好接收对应通道的数据。
  • dma_valid[7:0]:表示当前时刻对应相机的数据是否有效。
  • dma_sop[7:0](Start of Packet):标识新帧的起始,仅在帧的第一行首个像素时拉高。
  • dma_eol[7:0](End of Line):标识一行数据的结束,在每行最后一个像素时拉高。

图 12 cxp_phy Block Design

图 13 cxp host图像输出端口

如图 14 所示,cxp_rx 内部通过 video_to_axis 模块,将八路图像数据拆分,并转换为 AXI Stream 格式。如果需要对某一路相机的数据进行图像处理,只需复制该通道的 AXI Stream 数据并送入图像处理模块。复制操作可通过简单的组合逻辑实现,只需在 Block Design 中添加复制模块,并分别连接至图像处理模块和原有模块。

图 14 cxp rx Block Design

cxp_rx 还包含 Rx,用于将接收到的图像数据缓存至 DDR,如图 15 所示。

图 15 rx Block Design

如图 16 所示,ssi 数据输出部分的 Block Design 采用自定义的 axi_stream_generate 模块生成 AXI Stream 数据,并通过 axis_broadcaster 进行分流:

  • 一路数据进入 axi_stream_FIFO,供上位机监测;
  • 另一路通过 axis_to_uart 模块转换为串口数据,并通过 RS485 传输至 ssi 板卡。

在实际应用中,可将 axi_stream_generate 模块替换为用户的图像处理模块,确保处理后的图像参数输出符合 AXI Stream 格式,并连接至 axis_broadcaster 以实现数据分流。

图 16 ssi数据输出Block Design

软件方案

嵌入式层

嵌入PS的Linux系统驱动PL IP核,通过AXI总线控制Rx,实现内存到网络的数据搬运。嵌入式系统基于ZYNQ架构,PS端运行Linux系统,并包含相应的网络驱动。图像数据采集后,通过CXP Host模块解析并整理成AXIS数据流,随后传输至PS端的DDR4缓存区,等待上位机读取。

上位机软件(C#)​

hello-fpga会提供C++/C# API接口,提供8个相机控制、显示的C# 范例,这里8路相机默认使用相同的配置,如果需要每个相机进行不同的配置,可以修改范例程序得到。

上位机软件基于C++/C#开发,主要包含设备管理、参数配置、实时显示及数据存储模块。上电后,上位机首先执行设备扫描,读取相机的设备信息。基于厂商提供的XML文件解析相机配置参数的地址和格式,并进行初始化配置。

在采集启动前,上位机会根据检测到的相机数量,动态分配 Rx 的缓存空间,并发送启动命令。采集过程中,上位机定期查询 Rx 的缓存状态,并从中读取数据,实时解码并显示在界面上。此外,界面右侧实时更新可用帧数,确保数据流畅显示,并支持用户参数调整和存储功能。

图 17 C# 范例界面图

启动与相机扫描

8个相机控制、显示的C# 范例如图9所示,上电后,软件首先执行 Scan Cameras 操作,以检测并识别系统中可用的CXP相机。扫描流程如下:上位机会向每个连接的相机发送查询命令,并从相机端读取一系列关键寄存器信息,如,厂商名称、型号、制造信息、固件版本等。

为了正确解析相机参数,上位机会根据不同厂商的XML配置文件解析相机的参数结构,获取XML文件中的寄存器地址映射,获取参数存储地址和数据格式。

根据扫描结果,动态创建相机实例,存储相机相关信息,以便后续参数配置和数据采集。

参数配置

在成功扫描到相机后,用户可以在右侧参数面板中配置相机的工作模式,参数包括:

  • 图像尺寸

Image Width(ROI_X):设置横向分辨率。

Image Height(ROI_Y):设置纵向分辨率。

  • 帧率控制

Acquisition Frame Rate:设置采集帧率(FPS),影响数据吞吐量。

  • 触发模式

Trigger Source:选择触发信号源,如**软件触发、外部触发(IP Line0)**等。

  • 曝光设置

Exposure Mode:设置曝光模式(自动/手动)。

Exposure Time(μs):手动模式下的曝光时间,单位为微秒。

  • 图像增强

Camera Gain:调整增益,提高低亮度场景下的图像清晰度。

Black Level:设置黑电平,提高图像对比度。

  • 采集模式

TakeContinueMode(连续模式):启用后,相机会持续采集数据,直到用户手动停止。

Trigger Mode(触发模式):仅在收到触发信号时采集图像。

数据可视化

在用户点击 Start 按钮后,系统进入正式的数据采集流程:

(1)动态分配Rx缓存

由于不同相机的分辨率、帧率可能不同,为了优化内存使用,上位机会根据读取扫描到的相机数,动态分配 Rx 缓存空间。计算每个相机的数据吞吐量,合理分配DDR4存储区域,避免溢出或带宽瓶颈。为每个相机创建独立的缓存队列,保证数据存储有序。

(2)实时数据传输、显示

如图10所示,为8个相机采集画面的截图(只装了两个镜头,其余相机机盖未打开显示为黑色画面)。上位机不断查询 Rx 缓存中的数据量,即当前可读取的帧数。当缓存中有新数据时,上位机会将其读取并进行解码,采集到的数据会通过图形界面显示,每个窗口对应一个相机的数据流。右侧“Available Frames”区域会动态显示当前可用帧数,帮助用户监测数据采集状态。

(3)数据停止与存储

当用户点击 Stop 按钮时,系统会: 停止向 Rx 发送新的采集请求。读取并存储剩余的缓存数据,确保数据完整性。释放动态分配的缓存空间,提高系统资源利用率。

图 18 采集图像演示