跳到主要内容
极客日志极客日志
首页博客AI提示词GitHub精选代理工具
|注册
博客列表

目录

  1. RK3588 BT1120 转 3G-SDI 全流程解析:FPGA 硬核输出
  2. 概述
  3. 整体链路
  4. RK3588 端:3 步点亮 BT1120
  5. 软件配置
  6. 打开 BT.656/BT.1120
  7. 时序配置
  8. 硬件连接
  9. FPGA 端:方案未使用 DDR 缓存整帧图像
  10. 步骤 1:时钟树
  11. 步骤 2:数据对齐
  12. 一分钟总结
  13. 技术要点
  14. 应用场景
  15. 参考资料
C算法

RK3588 结合 FPGA 实现 BT1120 转 3G-SDI 方案解析

本文详细解析了基于 RK3588 与 FPGA 实现 BT1120 转 3G-SDI 的技术方案。内容涵盖 RK3588 端的 DTS 配置、驱动适配以及时序设置,以及 FPGA 端的时钟树构建和数据 FIFO 对齐策略。该方案无需 DDR 缓存即可实现高质量的 1080p60 视频传输,适用于广播电视、医疗影像及工业视觉等专业场景。

霸天发布于 2026/3/30更新于 2026/4/131 浏览
RK3588 结合 FPGA 实现 BT1120 转 3G-SDI 方案解析

RK3588 BT1120 转 3G-SDI 全流程解析:FPGA 硬核输出

概述

本文介绍如何使用 RK3588 的 BT1120 信号配合 FPGA 转换为广播级 3G-SDI 输出。

整体链路

RK3588 -> BT1120_16bit : VOP/DRM BT1120_16bit -> FPGA : 148.5 MHz 同步 FPGA -> 3G_SDI : GTX 2.97 Gb/s 3G_SDI -> Monitor : 1080p60 YUV422 10bit 

RK3588 端:3 步点亮 BT1120

软件配置
打开 BT.656/BT.1120
  1. 对接的设备在发送端不需要软件驱动(即不需要注册 DRM connector 的),这种可以在 dts 文件中的 panel 节点配置:
panel {
	bus-format = MEDIA_BUS_FMT_YUYV8_1X16; //或者 MEDIA_BUS_FMT_YUYV8_1X16/ MEDIA_BUS_FMT_UYVY8_1X16
};
  1. 对接的设备在发送端需要软件驱动(即需要注册 DRM connector 的),这种除了可以参考第一点在 dts 中适配,也可以考虑在对应 connector 驱动的 drm_connector_helper_funcs -> get_modes 函数中设定,可以参考 drivers/gpu/drm/bridge/sii902x.c 中的实现:
static int sii902x_get_modes(struct drm_connector *connector) {
	u32 bus_format = MEDIA_BUS_FMT_YUYV8_1X16; //depend on hardware
	drm_display_info_set_bus_formats(&connector->display_info, &bus_format, 1);
}

通过第 1/2 点对 bus_format 的配置,VOP 驱动会使能 BT.656/BT.1120,同时配置对应的引脚映射关系。

时序配置

DTS 中配置

对于支持固定分辨率的产品,可以在 DTS panel 中配置好对应的时序:

  • P 制时序
timing_1080p: timing-1080p {
	clock-frequency = <148500000>; // 148.5 MHz
	hactive = <1920>;
	vactive = <1080>;
	hback-porch = <148>;
	hfront-porch = <88>;
	vback-porch = <36>;
	vfront-porch = <4>;
	hsync-len = <44>;
	vsync-len = <5>;
	hsync-active = <0>;
	vsync-active = <0>;
	de-active = <0>;
	pixelclk-active = <0>;
};

硬件连接

BT.656 和 BT.1120 支持以下三种硬件连接,根据不同的连接方式软件在 DTS 文件或者对应的转换芯片驱动中要对 bus_format 做好适配。

极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog

更多推荐文章

查看全部
  • ControlNet-sd21 完全攻略:AI 绘画精准控制指南
  • 无人机影像像素坐标转大地坐标
  • CosyVoice 安装 openai-whisper 时报错 pkg_resources 缺失原因及解决
  • JWT 详解:原理、与 Session 区别及 Spring Boot 实战
  • 机器人远程监控与 OTA 升级
  • Windows 环境下 llama.cpp 编译与 Qwen 模型本地部署
  • AI 代码助手对比:CodeGeex、RooCode 与 GitHub Copilot
  • Stable Diffusion WebUI 本地部署教程(AUTOMATIC1111 版)

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown 转 HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML 转 Markdown 互为补充。 在线工具,Markdown 转 HTML在线工具,online

  • HTML 转 Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML 转 Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online

SOC TX 引脚ClockD15D14D13D12D11D10D9D8D7D6D5D4D3D2D1D0软件 bus_format 配置
BT.656 接法Clock--------D7D6D5D4D3D2D1D0MEDIA_BUS_FMT_UYVY8_2X8
BT.1120 接法 1ClockY7Y6Y5Y4Y3Y2Y1Y0C7C6C5C4C3C2C1C0MEDIA_BUS_FMT_YUYV8_1X16
BT.1120 接法 2ClockC7C6C5C4C3C2C1C0Y7Y6Y5Y4Y3Y2Y1Y0MEDIA_BUS_FMT_UYVY8_1X16

小提示:确认 vopb 绑定到 bt1120_out;148.5 MHz 是 1080p60 的"黄金频率",直接决定后面 FPGA 的 GTX 时钟。3G SDI 输出的总行数和总场数是 2200 行 1125 场,所以需要在 DTS 中配置好对应的时序。

FPGA 端:方案未使用 DDR 缓存整帧图像

FPGA 实现整体架构图

步骤 1:时钟树
  • 148.5 MHz → GTX 参考时钟
  • 148.5/1.001 → 可选 1080p59.94
  • TXOUTCLK → 回环给 sdi_tx_clk
步骤 2:数据对齐

由于未使用 DDR 缓存整帧图像,所以需要在 FPGA 中对数据进行对齐。在输入数据提取出 vs de data 后,需要根据 vs 和 de 信号将数据缓存到异步 FIFO 中,由于 FIFO 的容量有限,需要考虑输入数据的起点和输出数据的起点关系,确保从 FIFO 中读取的数据是连续的。

注意:BT1120 是 Y/C 交错,3G-SDI IP 需要单独 Y/C 接口!

一分钟总结

  • RK3588 只要 3 步就能出 BT1120;
  • FPGA 用官方 3G-SDI IP,时钟对齐是灵魂;
  • 无需 DDR 缓存,直接实现高质量视频传输

技术要点

  1. BT1120 信号格式是一种数字视频接口标准,支持高清视频传输
  2. 3G-SDI 是广播级视频传输标准,支持 1080p60 的高清视频
  3. FPGA 中的 GTX 收发器能够提供高速串行数据传输,达到 2.97Gb/s
  4. 时钟同步是整个系统的关键,确保视频数据正确传输
  5. 异步 FIFO 用于解决不同时钟域之间的数据传输问题

应用场景

  • 广播电视制作
  • 医疗影像系统
  • 工业视觉检测
  • 高端安防监控
  • 专业视频会议系统

参考资料

  • RK3588 官方文档
  • 3G-SDI IP 官方文档
  • SMPTE 424M 标准规范
  • SMPTE 292M 标准规范
  • KoboldAI 安装与配置指南
  • Mac mini 部署 Clawdbot AI Agent 并接入 Claude Code
  • LLaMA 衍生模型详解:官方演进与社区微调
  • Qwen3.5 与 OpenClaw 本地部署实战:30 分钟搭建 AI Agent
  • ComfyUI Manager 插件管理工具安装与使用指南
  • 基于 FreeCAD 将 3MF 模型无损转换为 STEP 格式的方法
  • OpenClaw 本地部署 AI 智能体安装指南
  • 前端代码质量保证最佳实践
  • Flutter sse_stream 在鸿蒙端的适配与背压处理方案
  • Github Copilot 学生认证通过指南及常见问题处理
  • 前端团队协作最佳实践
  • Flutter for OpenHarmony 集成 dart_openai 接入 AI 大模型