2. RK平台MIPI D-PHY物理层详解

2.1 MIPI D-PHY物理层概述

MIPI D-PHY是MIPI CSI-2/DSI接口的物理层标准,负责在主机(Host)与外设(Peripheral)之间提供高速、低功耗的串行数据传输。在瑞芯微RK平台(如RK3588、RK3568、RV1126)中,D-PHY作为Camera Sensor与ISP之间的桥梁,其配置正确与否直接决定图像采集的稳定性与带宽上限。

关键概念: D-PHY并非独立的PHY芯片,而是集成在RK SoC内部的硬核IP(如Synopsys或Mixel D-PHY)。驱动开发者通过操作CRU(Clock & Reset Unit)和GRF(General Register Files)中的寄存器来配置PHY的工作模式、阻抗匹配与时钟频率。

2.2 D-PHY工作模式:HS与LP

D-PHY定义两种主要工作模式,用于平衡高速数据传输与低功耗控制:

模式 全称 电压摆幅 传输速率 典型用途
HS (High-Speed) 高速模式 差分信号,约200mV 80 Mbps ~ 2.5 Gbps / Lane 图像数据负载传输
LP (Low-Power) 低功耗模式 单端信号,1.2V ~10 Mbps 控制指令、总线初始化、Escape模式
  • HS模式: 使用差分对(Dp/Dn)传输高速串行数据,时钟通道提供DDR(双沿)时钟参考。RK平台通过配置PHY的HS-TX阻抗(通常为100Ω差分)和摆率来优化信号完整性。
  • LP模式: 使用单端信号线传输控制序列(如SoT、EoT、ULPS)。RK平台在进入/退出LP状态时,需严格遵循D-PHY规定的时序(如TLPX、THS-PREPARE)。
驱动注意点: 在RK3588上,D-PHY的HS/LP模式切换由PHY内部状态机自动完成,但驱动必须确保在发送HS数据前,PHY已通过LP序列完成“高速准备”(HS-PREPARE + HS-ZERO)。错误的LP时序会导致CSI-2链路无法锁定。

2.3 时钟通道与数据通道结构

一个标准的MIPI D-PHY链路包含1条时钟通道(Clock Lane)和1~4条数据通道(Data Lanes)。RK平台通常支持4数据通道配置,以提供足够的带宽(例如RK3588的CSI-2 Host支持4x4 Lane)。

MIPI D-PHY 时钟与数据通道结构(RK平台) Camera Sensor Clock Lane Data Lane 0 Data Lane 1 Data Lane 2 Data Lane 3 RK SoC D-PHY 关键说明 • 时钟通道为DDR模式 • 数据通道可独立配置 • RK3588支持4x4 Lane

2.4 RK平台D-PHY配置寄存器映射

瑞芯微RK平台的D-PHY寄存器通常映射在GRF(General Register Files)或PHY独立地址空间内。以RK3588为例,D-PHY寄存器分为三大类:

2.4.1 时钟与复位控制(CRU相关)

驱动需先使能D-PHY的时钟源(如MIPI_DPHY_CLK_REF)并释放复位:

// RK3588 CRU 寄存器示例(地址偏移)
#define CRU_CLK_GATE0_CON         0x0000
#define CRU_SOFTRST_CON           0x0200

// 使能 D-PHY 参考时钟(bit 8)
writel(0x01000100, cru_base + CRU_CLK_GATE0_CON);

// 释放 D-PHY 复位(bit 8,写1复位,写0释放)
writel(0x01000100, cru_base + CRU_SOFTRST_CON);
writel(0x01000000, cru_base + CRU_SOFTRST_CON);

2.4.2 PHY配置寄存器(GRF)

GRF寄存器用于配置PHY的模拟参数,如偏置电流、阻抗校准、HS-TX摆幅等。下表列出RK3588 D-PHY的关键GRF寄存器:

寄存器名称 偏移地址 位域 功能描述
GRF_DPHY_CON0 0x0000 [3:0] Lane 0 使能(bit0)~ Lane 3 使能(bit3)
GRF_DPHY_CON1 0x0004 [7:4] HS-TX 摆幅控制(0x0=200mV, 0xF=400mV)
GRF_DPHY_CON2 0x0008 [1:0] 阻抗校准模式:00=手动, 01=自动, 10=旁路
GRF_DPHY_CON3 0x000C [15:8] LP 模式驱动强度(影响TLPX时序)
GRF_DPHY_STATUS 0x0010 [0] PHY 锁定状态(1=已锁定,0=未锁定)
常见错误: 在RK3568上,如果GRF_DPHY_CON2的阻抗校准未设置为“自动”模式,PHY可能无法在高温下保持稳定的差分阻抗,导致HS模式下出现CRC错误。建议在驱动初始化时始终启用自动校准。

2.4.3 时序参数配置

D-PHY的HS/LP切换时序需根据PHY的时钟频率和PCB走线延迟进行调整。RK平台通过一组时序寄存器来定义THS-PREPARE、THS-TRAIL、TCLK-POST等参数:

// RK3588 D-PHY 时序寄存器(示例)
#define GRF_DPHY_TIMING0          0x0020  // HS-PREPARE + HS-ZERO
#define GRF_DPHY_TIMING1          0x0024  // HS-TRAIL + HS-EXIT
#define GRF_DPHY_TIMING2          0x0028  // CLK-PREPARE + CLK-ZERO
#define GRF_DPHY_TIMING3          0x002C  // CLK-POST + CLK-TRAIL

// 典型配置值(对应 1.5 Gbps / Lane)
writel(0x000A000A, grf_base + GRF_DPHY_TIMING0);  // HS-PREPARE=10, HS-ZERO=10
writel(0x00080008, grf_base + GRF_DPHY_TIMING1);  // HS-TRAIL=8, HS-EXIT=8
writel(0x000C000C, grf_base + GRF_DPHY_TIMING2);  // CLK-PREPARE=12, CLK-ZERO=12
writel(0x000A000A, grf_base + GRF_DPHY_TIMING3);  // CLK-POST=10, CLK-TRAIL=10

2.5 D-PHY状态机与链路初始化流程

RK平台D-PHY的链路初始化遵循MIPI标准状态机,驱动需按顺序触发以下状态:

  1. LP-11 停止状态: 所有通道处于LP-11(Dp=1, Dn=0),等待启动。
  2. Mark-1 序列: 时钟通道发送LP-01 → LP-00 → LP-01,进入HS准备。
  3. HS-ZERO 桥接: 数据通道发送HS-ZERO(差分0),建立共模电压。
  4. SoT(Start of Transmission): 数据通道发送HS同步序列(00011101),接收端PLL锁定。
  5. HS数据传输: 发送图像数据包(长包或短包)。
  6. EoT(End of Transmission): 发送LP-11,返回停止状态。
D-PHY 链路初始化状态机(RK平台) LP-11 停止 Mark-1 序列 HS-ZERO SoT 同步 HS 数据 EoT 结束 驱动需通过GRF寄存器监控PHY状态位,确保每个状态转换完成后再进入下一阶段

2.6 RK平台D-PHY调试与性能优化要点

  • 眼图测试: 使用示波器测量HS模式下Dp/Dn差分信号的眼图,确保眼高≥200mV、眼宽≥0.5UI。RK3588的GRF_DPHY_CON1可微调摆幅以优化眼图。
  • 阻抗匹配: PCB走线需保持100Ω差分阻抗,RK平台支持内部阻抗校准(通过GRF_DPHY_CON2),建议在驱动初始化时触发一次校准。
  • 时序余量: 在高温或长走线场景下,适当增加THS-PREPARE和TCLK-POST的值(每次增加2个UI),避免链路失锁。
  • 通道去偏斜: 多数据通道场景下,RK平台支持每通道独立的去偏斜(Deskew)校准,通过GRF_DPHY_DESKEW寄存器配置。
性能指标参考(RK3588): 在4 Lane配置下,D-PHY理论带宽为 4 × 2.5 Gbps = 10 Gbps。实际驱动中,受限于CSI-2协议开销和ISP处理能力,推荐配置为 4 Lane @ 1.5 Gbps,可稳定支持 4K@60fps 12-bit RAW 图像传输。