RK3588+FPGA视频实时处理与双屏显示、存储解决方案
引言
本文围绕 RK3588 + FPGA 的视频实时处理与双屏显示、存储方案展开,详细阐述了硬件平台的功能电路、各类视频输入/输出接口的特性、ARM 与 FPGA 之间的高速数据通路以及 Linux 系统在该平台上的驱动与 UI 实现。阅读后,您将了解如何在一块主板上实现 4K 60 fps 视频采集、画中画多源合成、快速启动以及可靠的本地存储,进而为内窥镜、工业视觉等边缘 AI 场景提供完整的软硬件参考。
1. 主板平台整体结构

如上图所示,主板核心由 RK3588(基于 ARM Cortex‑A76/A55 的高性能处理器)和 FPGA(负责实时视频流水线)组成,二者通过 PCIe 接口实现高速数据交互。板上还集成了多种外设:脚踏开关、触摸面板、USB 键盘、千兆网口、SSD 存储以及丰富的视频输出端口(HDMI、DVI、DP、SDI、模拟 RGB、CVBS、S‑Video)。
1.1 ARM 端外设
- 脚踏开关:电平输入 10 口,双路,用于工业现场的手动触发。
- 触摸面板:采用 UART 方式连接,并提供 12 V 电源供给。
- 键盘:自研产品,通过 USB 透传 UART,同时携带 12 V 电源;USB 为 3.0 版 Host 接口,支持高速外设。
- SSD:板载固态硬盘,作为系统根文件系统及高速数据缓存。
1.2 视频输出(FPGA 端)
- HDMI、DVI、DP、SDI、模拟 RGB、CVBS、S‑Video 均由 FPGA 负责驱动。
- HDMI 在 FPGA 端实现,提供标准的数字显示。
- SDI 输入支持 1080p 60 fps,主要用于外部 DP、SDI 对接,且可扩展至 4K 60 fps。
- MIPI 为镜体(内窥镜摄像头)信号接口,最多支持 4 Lane 4K 60 fps RAW 数据输入。
1.3 ARM‑FPGA 交互
- PCIe 为两者之间的主干通道,实时传输视频流。
- ARM 系统可对 FPGA 传来的实时视频进行 存图 或 录像;回放时,ARM 保存的图像经由 PCIe 返传至 FPGA 进行二次处理后显示。
2. 启动与 UI 合成
- 上电自启动:主板通电后即刻启动,3 秒内完成各视频接口芯片的初始化,并显示由 FPGA 提供的开机画面。
- UI 组合:系统启动后,ARM 系统提供的 UI 界面与 FPGA 实时图像在 FPGA 端进行合成,形成完整的 内窥镜系统画面(包括 UI 叠加、画中画等多源显示)。
3. FPGA PS 端的镜体控制
FPGA 的 PS(Processing System) 端负责对镜体进行以下操作:
- 镜体插入检测 与 上电控制,确保硬件安全。
- 镜体上电配置,根据不同镜体型号加载对应的初始化参数。
- 按键消息接收与处理,实现用户交互。
- 信息收发与验证,保证镜体与主板之间的数据完整性。
4. Linux 系统设计需求
在 ARM 端运行的 Linux 系统经过裁剪,去除冗余组件,以实现 最短启动时间。系统需满足以下外围设备驱动与软件环境:
| 序号 | 驱动/组件 | 备注 |
|---|---|---|
| (1) | MIPI DSI | 显示接口 |
| (2) | MIPI CSI | 摄像头接口 |
| (3) | PCIe 输入输出 | 与 FPGA 高速数据通路 |
| (4) | HDMI | 视频输出 |
| (5) | I²C | 多种低速外设 |
| (6) | SPI | Flash、传感器等 |
| (7) | SSD 硬盘存储 | 系统根文件系统 |
| (8) | SD 卡 | 备用存储或系统升级 |
| (9) | eMMC 闪存 | 固件存储 |
| (10) | DDR 内存 | 主运行内存 |
| (11) | USB 3.0/2.0(键鼠、U 盘等) | 高速外设 |
| (12) | GPIO | 通用控制 |
| (13) | 以太网,TCP/IP 协议 | 网络通信 |
| (14) | RTC | 实时时钟 |
| (15) | UART | 串口调试/外设 |
| (16) | Linux 内核 5.x | 主体系统 |
| (17) | Gnome 或 Unity GUI 组件 | 桌面环境 |
| (18) | 移植 Qt 5.11 及以上 | 跨平台 UI 框架 |
| (19) | 支持双屏异显 | 两块显示器独立内容 |
| (20) | 硬件编码器、解码器,GStreamer | 视频编解码流水线 |
| (21) | 所有外围驱动提供设备节点,软件只需简单的 write/read/ioctl 等操作 | 简化上层应用开发 |
注:上述需求均已在原始实现中得到满足,未出现额外的功能描述或性能指标。
5. 双屏异显与画中画实现细节
- 双屏异显:利用 Qt 的多窗口机制,将 UI 界面分别渲染到两块显示屏上。左屏显示实时摄像头画面,右屏展示 UI 控制面板与状态信息。
- 画中画(PIP):在 FPGA 的视频合成流水线中,先将多个来源(如 HDMI、SDI、MIPI CSI)解码为统一的 YUV 格式,再通过硬件混合器将小窗口嵌入主画面,实现低延迟的多源合成。
6. 存储与回放流程
- 实时录像:ARM 端通过
v4l2接口读取 FPGA 传来的 YUV 流,使用 GStreamer 的x264enc(硬件加速)将视频压缩后写入 SSD。 - 存图:在需要抓图的场景,ARM 调用
ioctl(VIDIOC_G_SNAPSHOT)将当前帧保存为 JPEG,路径统一在/mnt/ssd/snapshots/。 - 回放:回放时,ARM 读取已存储的文件,使用 GStreamer
decodebin解码后经 PCIe 送回 FPGA,后者再次进行显示合成。
7. 性能优化要点
- 裁剪 Linux 内核:仅保留必要的驱动与文件系统,减小镜像体积,提升启动速度。
- PCIe 双向 DMA:利用 FPGA 的 DMA 引擎实现零拷贝传输,降低 CPU 负载。
- 硬件加速编解码:通过 RK3588 的 VPU(Video Processing Unit)完成 H.264/H.265 编码,避免软件转码瓶颈。
- 时钟同步:SDI 与 MIPI 输入采用独立时钟源,FPGA 内部使用 PLL 对齐,确保多路视频帧率一致。
8. 小结
本文对 RK3588 + FPGA 平台的硬件布局、视频接口、ARM‑FPGA 数据通路、Linux 驱动需求以及双屏/画中画实现做了系统化梳理。通过合理的硬件选型与软件裁剪,平台能够在 上电 3 秒 内呈现完整的 UI 与实时视频,支持 4K 60 fps 多源输入、双屏异显、本地 SSD 存储 与 高效回放,满足工业视觉、医疗内窥镜等高可靠性边缘 AI 场景的需求。未来可在此基础上进一步引入 AI 推理加速(如 NPU)实现实时图像分析,进一步提升系统的智能化水平。