2. 硬件基础:MIPI CSI-2 物理层与协议层简介、D-PHY 电气特性、RK3588/RK356x 的 CSI Host 接口特性

在嵌入式 Camera 驱动开发中,理解硬件接口是初始化 Sensor 的前提。本章聚焦于 MIPI CSI-2 标准的核心分层、D-PHY 电气特性以及瑞芯微 RK3588/RK356x 系列处理器的 CSI Host 接口设计。掌握这些基础,能帮助你在调试 MIPI 信号、配置 DTS 以及分析驱动时序时做到心中有数。

2.1 MIPI CSI-2 协议分层架构

MIPI CSI-2(Camera Serial Interface 2)采用分层设计,将物理传输、协议解析与应用控制分离。这种分层结构使得不同厂商的 Sensor 和 SoC 能够通过统一的标准互联。

核心分层(从底向上): 物理层 (D-PHY) → 协议层 (UniPro/CSI-2 Protocol) → 像素/字节打包层 (Pixel/Byte Packing) → 应用层 (Camera Control)。

下表总结了各层的主要职责与关键术语:

分层 主要职责 关键术语/概念
应用层 定义图像数据格式(RAW8/10/12、YUV、JPEG)及控制命令(CCI/I2C) 帧格式、行有效、帧有效、曝光控制
像素/字节打包层 将像素数据打包成字节流,支持不同位宽对齐 DT (Data Type)、像素打包模式
协议层 管理数据包的传输、错误检测、帧同步 长包 (Long Packet)、短包 (Short Packet)、ECC、CRC
物理层 (D-PHY) 提供高速串行差分信号传输、时钟恢复、电气特性 HS (High-Speed) 模式、LP (Low-Power) 模式、Lane、Skew
驱动开发提示: 在初始化 Sensor 时,驱动主要操作的是应用层(通过 I2C 配置寄存器)和物理层(通过 DTS 配置 D-PHY 参数,如电压摆幅、预加重)。协议层和打包层通常由 SoC 的 CSI Host 硬件自动处理,驱动只需关注帧格式与 DT 的匹配。
MIPI CSI-2 分层架构与数据流 MIPI CSI-2 分层架构与数据流 应用层 (Application Layer) RAW8/10/12, YUV, JPEG | CCI (I2C) 控制 像素/字节打包层 (Pixel/Byte Packing) 数据打包、位宽对齐、DT (Data Type) 定义 协议层 (Protocol Layer) 长包/短包管理、ECC 纠错、CRC 校验、帧同步 物理层 (D-PHY) 高速串行差分信号、时钟 Lane、数据 Lane、HS/LP 模式 数据流 数据流 数据流 驱动开发关注点 应用层:I2C 配置 Sensor 寄存器 | 物理层:DTS 配置 D-PHY 电气参数

2.2 D-PHY 电气特性与信号模型

D-PHY 是 MIPI 联盟定义的物理层标准,专为 Camera 和 Display 应用设计。它使用差分信号对(D-P/N)进行高速数据传输,并支持两种工作模式:高速模式 (HS) 和 低功耗模式 (LP)。

2.2.1 关键电气参数

参数 HS 模式典型值 LP 模式典型值 说明
差分电压摆幅 200 mV (峰峰值) 1.2 V (单端) HS 使用低压差分信号,LP 使用单端 CMOS 电平
数据传输速率 80 Mbps ~ 2.5 Gbps / Lane ≤ 10 Mbps HS 用于图像数据流,LP 用于控制/状态信号
共模电压 200 mV 0 V / 1.2 V HS 模式下共模电平固定,LP 模式下为轨到轨
上升/下降时间 ≤ 150 ps ≤ 5 ns HS 要求极快的边沿速率以降低 EMI
端接电阻 100 Ω (差分) 高阻 (无端接) HS 模式下接收端需端接匹配
硬件设计避坑: 在 RK3588/RK356x 平台上,D-PHY 的 HS 模式端接电阻通常集成在 SoC 内部,但 PCB 走线仍需严格遵循差分 100Ω 阻抗控制。如果走线阻抗不匹配,会导致信号反射、眼图闭合,进而引发帧错位或数据 CRC 错误。

2.2.2 HS 与 LP 模式切换时序

D-PHY 的 Lane 状态机定义了 HS 与 LP 之间的切换序列。典型的切换过程包括:

  1. LP → HS 切换: 先进入 LP-11 状态(空闲),然后通过 LP-01 → LP-00 序列进入 HS 模式。
  2. HS 数据传输: 在 HS 模式下,时钟 Lane 提供 DDR 时钟,数据 Lane 在时钟的上升沿和下降沿各传输 1 bit。
  3. HS → LP 切换: 通过 LP-00 → LP-10 → LP-11 序列退出 HS 模式,回到空闲状态。
D-PHY HS/LP 模式切换时序 D-PHY Lane 状态切换序列 (LP → HS → LP) LP-11 (空闲) LP-01 LP-00 HS 模式 LP-00 LP-10 LP-11 (空闲) 驱动初始化时需确保 Sensor 在 LP-11 状态,然后发送切换序列进入 HS 模式开始传输图像数据

2.3 RK3588/RK356x CSI Host 接口特性

瑞芯微 RK3588 和 RK356x 系列处理器集成了高性能的 MIPI CSI Host 控制器,支持多路 Sensor 输入、多 Lane 配置以及丰富的接口复用。理解这些特性是正确配置 DTS 和编写驱动的基础。

2.3.1 接口数量与 Lane 配置

特性 RK3588 RK3568 / RK3566
CSI Host 控制器数量 4 个 (CSI0 ~ CSI3) 2 个 (CSI0, CSI1)
每个控制器最大 Lane 数 4 Lane (支持 1x4, 2x2, 4x1 组合) 4 Lane (支持 1x4, 2x2, 4x1 组合)
总 Lane 数 16 Lane (4 × 4) 8 Lane (2 × 4)
支持 Sensor 数量 最多 8 路 (通过虚拟通道 VC 复用) 最多 4 路
最高速率 / Lane 2.5 Gbps 1.5 Gbps
D-PHY 版本 D-PHY v2.0 D-PHY v1.2
多路复用场景: 在 RK3588 上,一个 CSI Host 控制器可以同时连接多个 Sensor,通过虚拟通道 (Virtual Channel, VC) 区分不同数据流。例如,CSI0 可以配置为 2 Lane 连接主摄 + 2 Lane 连接广角,通过 VC0 和 VC1 分别传输。

2.3.2 CSI Host 内部架构

RK3588/RK356x 的 CSI Host 内部包含以下关键模块:

  • D-PHY 接收器: 负责差分信号接收、时钟恢复、串并转换。
  • 协议解析器: 解析长包/短包、ECC 纠错、CRC 校验。
  • 虚拟通道管理器: 根据 VC ID 将数据分发到不同的 DMA 通道。
  • ISP 接口: 将解析后的图像数据直接送入 ISP 或内存。
RK3588 CSI Host 内部架构 RK3588 CSI Host 内部架构 (单控制器) MIPI Sensor D-PHY 接收器 时钟恢复 / 串并转换 协议解析器 长包/短包 / ECC/CRC VC 管理器 VC0 ~ VC3 分发 ISP / DDR 驱动配置要点 1. DTS 中指定 Lane 映射 (data-lanes = <0 1 2 3>) 2. 配置虚拟通道 ID (vc-id = <0>) 3. 设置时钟 Lane 与非连续时钟模式 (continuous-clock = <0>)

2.3.3 DTS 配置示例

在 RK3588 的 DTS 中,CSI Host 的典型配置片段如下。注意 data-lanes 属性定义了物理 Lane 到逻辑 Lane 的映射关系。

// RK3588 DTS: CSI0 节点配置示例
csi0: csi@fdc00000 {
    compatible = "rockchip,rk3588-csi2";
    reg = <0x0 0xfdc00000 0x0 0x10000>;
    interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
    clocks = <&cru PCLK_CSI_HOST_0>,
             <&cru SCLK_CSI_HOST_0>;
    clock-names = "pclk", "sclk";
    status = "disabled";

    ports {
        #address-cells = <1>;
        #size-cells = <0>;

        port@0 {
            reg = <0>;
            #address-cells = <1>;
            #size-cells = <0>;

            mipi_in_ucam0: endpoint@0 {
                reg = <0>;
                remote-endpoint = <&sensor_out>;
                data-lanes = <1 2>;  // 使用 Lane1 和 Lane2
                clock-lanes = <0>;    // 时钟 Lane 为 Lane0
                bus-type = <4>;       // MIPI CSI-2 D-PHY
            };
        };
    };
};
Lane 映射规则: data-lanes 中的数字是物理 Lane 编号(从 0 开始),顺序表示逻辑 Lane 顺序。例如 <1 2> 表示物理 Lane1 作为逻辑 Lane0,物理 Lane2 作为逻辑 Lane1。时钟 Lane 通常固定为 Lane0,但也可通过 clock-lanes 指定其他 Lane。

2.4 本章小结

  • MIPI CSI-2 采用四层架构,驱动开发重点关注应用层(I2C 控制)和物理层(D-PHY 参数)。
  • D-PHY 的 HS 模式使用低压差分信号,LP 模式用于控制;切换时序必须严格遵循 LP-11 → LP-01 → LP-00 → HS 序列。
  • RK3588 提供 4 个 CSI Host 控制器,每个支持 4 Lane,总带宽可达 40 Gbps(16 Lane × 2.5 Gbps)。
  • DTS 中 data-lanes 和 clock-lanes 的配置直接决定硬件连接的正确性,是初始化流程的第一步。