产品咨询:17340067106(毛经理)
软件算法咨询:18982151213(刘经理)

联系我们
产品咨询

RK3588 PCIe 扩展开发板 多路摄像头采集方案开发指南

作者:万物纵横
发布时间:2026-10-30 10:15
阅读量:

核心说明:RK3588 原生 MIPI CSI 通道数量有限;PCIe 扩展是用来外挂采集卡 / PCIe Switch / USB3 PCIe 卡 / FPGA 采集子卡,实现超过原生 MIPI 路数的多路相机,不能直接用 PCIe 总线跑 MIPI CSI 信号。RK3588 PCIe 3.0 支持 x4 / 2×2 / 4×1 模式,带宽是整个方案的瓶颈优先评估项。


RK3588 PCIe 扩展开发板 多路摄像头采集方案开发指南(图1)


适用场景:工业多目、环视、机器人、多相机同步采集、NVR、视觉检测。


1. 方案选型


1.1 三种主流 PCIe 扩展多路相机架构对比


方案

方案 A:PCIe 转 USB3.0 + UVC 相机

方案 B:FPGA PCIe 采集子卡(MIPI/HDMI)

方案 C:PCIe Switch 多卡级联

优点

开发最简单、驱动成熟、即插即用、成本低

多路 MIPI 原生采集、硬件同步、可硬件触发、低延迟、带宽可控

灵活扩展多张采集卡,单卡负载低

缺点

USB 带宽瓶颈、多机同步差、CPU 占用偏高、4K 多路易丢帧

需 FPGA 固件开发、驱动开发、成本高、周期长

Switch 引入转发延迟,多路高码流时带宽争抢明显

推荐规模

≤4 路 1080P@30fps

4~16 路,工业检测 / 机器人多目 / 全局快门相机

多张采集卡并行,需独立 PCIe 链路

同步能力

软同步,±ms 级

硬件 Trigger,微秒级

取决于单卡方案本身


方案选型建议:工业场景首选方案 B(FPGA PCIe 采集子卡);快速原型或低成本场景用方案 A;需要多卡并行扩展时用方案 C。


1.2 与原生 MIPI 的区别


RK3588 原生最多 6 路 MIPI CSI(2×DCPHY + 4×2L DPHY),由 VICAP / RKCIF + ISP 链路处理。


PCIe 扩展相机不走 RK 内置 VICAP/ISP,图像数据送到 DDR 后,再送 RK3588 ISP 做 3A、降噪、HDR,或者直接 NPU 推理。


2. 硬件资源与带宽计算


2.1 RK3588 PCIe 带宽参数


PCIe 3.0 x4 理论带宽:8 GB/s


实际有效 DMA 带宽:约 5~6 GB/s


支持链路模式:x4 / 2×2 / 4×1 可配置


2.2 带宽计算公式


单路带宽 = 分辨率 × fps × bit 深度 × 通道数


示例:


1080P (1920×1080)、RGB888、30fps:1920×1080×3×30 ≈ 186 MB/s


4K@30 YUV12:≈ 370 MB/s


2.3 设计约束


1. 多路相机总带宽不能超过 PCIe 链路有效带宽,预留 20% 余量


2. FPGA 采集卡优先 YUV420 / YUV422 传输,减少 PCIe 吞吐


3. USB 方案严禁单 Hub 挂多路 4K 相机


4. PCIe 扩展板 + 多路相机功耗大,需独立供电,避免掉帧、相机复位


3. 硬件设计与接线要点


3.1 PCIe 链路配置


单卡大数据:x4 模式


多卡并行:拆成 2×2 或 4×1,给不同采集卡分配独立链路


在设备树中配置 pcie 的 link-width


3.2 同步方案(多路相机最关键)


同步方式

实现方式

精度与适用场景

软同步

软件时间戳对齐,UVC 相机常用

±ms 级,适合低要求场景

硬件同步

FPGA 采集卡输出全局 Trigger 信号给所有 Sensor,硬件同帧

微秒级,工业多目必须选这个

时钟同步

采集卡提供外部 MCLK 给 Sensor

避免 Sensor 晶振漂移


1.3 信号完整性


PCIe 走线阻抗控制 100Ω 差分


MIPI 采集子卡的 CSI 信号严格等长


长距离 MIPI 建议带 Retimer


扩展板外设:I2C/SPI 用于 Sensor 寄存器配置、GPIO 做相机复位、触发输出


2. 内核与设备树(DTS)开发


2.1 内核配置


CONFIG_PCIE_ROCKCHIP=y


CONFIG_PCIE_DMA=y


CONFIG_V4L2=y


CONFIG_VIDEO_DEV=y


CONFIG_MEDIA_CONTROLLER=y


CONFIG_DMA_ENGINE=y


# 自定义 FPGA 采集卡:打开 PCIe 字符设备、DMA 缓冲区支持


CONFIG_UIO=y


CONFIG_UIO_PCI_GENERIC=y


注意区分:原生 MIPI 是 rkcif / dw-mipi-csi2rx 驱动;PCIe 采集卡是自定义 V4L2 子设备驱动或者 UIO DMA 驱动,不属于 RK 内置 VICAP 链路。


1.4 PCIe DTS 关键片段


pcie@3c000000 {


    status = "okay";


    rockchip,pcie-link-width = <4>; /* 2/4 可选 */


    max-link-speed = <3>; /* PCIe 3.0 */


};


1.5 链路验证


# 查看 PCIe 设备是否识别


lspci


# 查看链路协商速率、宽度


dmesg | grep pcie


排查:如果链路降到 Gen1 / x1,检查供电、走线、复位信号、设备树配置。


1.6 驱动开发两种路线


路线 1:标准 V4L2 采集驱动(推荐上层统一)


采集卡驱动注册 V4L2 subdev + video node,/dev/videoX,和原生 MIPI、UVC 相机使用同一套 GStreamer、OpenCV 接口。


数据流:Sensor → FPGA CSI 接收 → FPGA 帧缓存 → PCIe DMA → RK3588 DDR → V4L2 buffer → ISP/NPU/编码


路线 2:UIO + DMA(快速原型,适合 FPGA 调试)


不做完整 V4L2,用户态直接操作 PCIe BAR 寄存器,DMA 映射物理地址,适合前期验证;量产建议封装 V4L2。


注意:PCIe 扩展相机不自动走 RK 的 ISP;需要软件把图像 buffer 送入 rkisp 驱动的输入队列,才能调用硬件 3A、降噪、HDR。


2. 软件采集链路与测试工具


2.1 软件栈整体架构


Sensor → FPGA / PCIe 采集卡 → PCIe DMA → V4L2 / UVC → GStreamer / OpenCV / MIPI Camera HAL → RKISP → RKNN 推理 / VPU 编码


2.2 基础测试命令


1. 查看 PCIe 设备


lspci


dmesg | grep pcie


2. V4L2 设备枚举


v4l2-ctl --list-devices


v4l2-ctl -d /dev/video0 --list-formats


3. GStreamer 多路采集示例


gst-launch-1.0 v4l2src device=/dev/video0 \


  ! video/x-raw,width=1920,height=1080,framerate=30/1 \


  ! autovideosink


# 第一路


gst-launch-1.0 v4l2src device=/dev/video0 \


  ! video/x-raw ! mpph264enc ! h264parse \


  ! filesink location=cam0.h264 &


# 第二路


gst-launch-1.0 v4l2src device=/dev/video1 \


  ! video/x-raw ! mpph264enc ! h264parse \


  ! filesink location=cam1.h264 &


mpph264enc 是 RK 硬件编码器,多路并行编码优先使用 MPP,降低 CPU 负载。


1.6 同步采集软件层处理


硬件触发卡:每一帧携带 FPGA 打上的 64bit 硬件时间戳,应用层按时间戳对齐帧


UVC 软同步:clock_gettime 捕获帧到达时间,做帧插值对齐,适合低要求场景


2. 性能调优与瓶颈排查


2.1 Buffer 管理


使用 DMA-BUF,避免用户态拷贝


V4L2 采用 MMAP / USERPTR 模式,减少内存拷贝


多路采集禁止频繁 malloc / free


2.2 CPU 亲和性


采集线程绑定到大核 A76,编码 / 推理线程隔离,避免抢占:


taskset -c 4-7 ./multi_capture_app


1.6 带宽与丢帧定位


看 dmesg:DMA 超时、PCIe retry、buffer overflow


工具:自定义 DMA 计数、v4l2-ctl 统计丢帧计数


现象:单路正常、多路丢帧 → PCIe 带宽不足,降分辨率 / 帧率、改用 YUV 压缩格式


1.7 ISP 复用


RK3588 双 ISP,多路相机分时复用 ISP 或者部分走软件 ISP;多路 4K 同时 ISP 预处理压力很大,提前规划。


1.8 电源与复位


相机供电不稳会随机丢帧、I2C 寄存器读失败;扩展板增加独立电源使能、硬件复位电路。


2. 典型工程落地清单


阶段

工作项

需求评估

相机路数、分辨率、帧率、同步精度、曝光模式(全局 / 卷帘)、总带宽

硬件选型

PCIe 卡类型(USB / FPGA 采集卡 / Switch)、供电、触发同步方案

SDK 基线

确认 RK SDK 版本(推荐最新 RK3588 Linux SDK,MPP、RKCIF、PCIe 驱动稳定)

DTS & 内核

PCIe 链路配置、DMA、V4L2 驱动适配

FPGA 固件

CSI 接收、帧缓存、触发同步、PCIe DMA 控制器、寄存器接口

应用开发

多路采集、帧同步、时间戳、MPP 编码、RKNN 推理、存储 / 推流

压力测试

72h 长时间拷机、带宽压测、高低温、电源波动测试


2. 常见问题与 FAQ


Q1:能不能直接 PCIe 接 MIPI 摄像头?


A:不行。PCIe 和 MIPI CSI 协议完全不同;必须中间加 FPGA / 桥接采集卡做协议转换。


Q2:PCIe 扩展相机能不能用 rkcif 驱动?


A:不能。rkcif 是 RK 内置 MIPI CSI 接收器;PCIe 过来的图像是外部采集,走 V4L2 通用链路。


Q3:多路相机同步做不到怎么办?


A:放弃 USB 方案,改用带硬件 Trigger 的 FPGA PCIe 采集卡,硬件同步是唯一可靠方案。


Q4:lspci 识别到卡,但 video 节点出不来?


A:检查驱动 probe 是否成功、dts status 是否 okay、BAR 空间映射、I2C / Sensor 供电复位。


Q5:RK3588 PCIe 多卡,其中一张卡速率降速?


A:排查 PCIe 带宽分配、电源、走线,或者 Switch 的端口协商问题,逐张单独测试。


3. 扩展参考


原生 MIPI 多路:适合 ≤6 路,使用 RKCIF / VICAP + RK ISP,开发参考瑞芯官方 Camera 适配文档


NVR 录像:多路采集后送入 RK MPP 编码,再接入 rtsp / rtmp 推流


AI 推理:DMA-BUF 直接传给 RKNN,减少 CPU 图像拷贝,提升多路实时性

- END -

家具美容培训

家具维修培训

分享:
留言 留言 试用申请
产品咨询 产品咨询 产品咨询
17340067106(毛经理)
技术咨询 技术咨询 软件算法咨询
18982151213(刘经理)
微信在线客服 微信在线客服 在线客服
返回官网顶部 返回官网顶部 回到顶部
关闭窗口
产品订购
  • *

  • *

  • *

  • *

  • *