3、MIPI DSI 协议详解:D-PHY 物理层、Lane 配置、高速模式与低功耗模式、数据包格式

MIPI DSI(Display Serial Interface)是移动与嵌入式显示领域的事实标准串行接口。在 SA8155 平台中,DSI 接口负责将 GPU/显示控制器生成的图像数据高速传输至显示面板。本章深入解析 DSI 的物理层(D-PHY)、Lane 配置策略、两种工作模式以及数据包结构,为后续时序与 HDR 参数配置奠定基础。

3.1 D-PHY 物理层架构

D-PHY 是一种源同步、差分串行传输物理层,采用 1 对时钟 Lane + N 对数据 Lane 的拓扑结构。每个 Lane 由两条差分信号线(Dp/Dn)组成,支持高速(HS)和低功耗(LP)两种信号状态。

关键特性: D-PHY 使用低压差分信号(200 mV 摆幅)实现高速传输,同时支持 1.2V 单端信号用于低功耗控制,无需额外的 PLL 即可实现双向通信。
D-PHY 物理层架构(4 Data Lane + 1 Clock Lane) SoC / DSI 主机(Host) D-PHY TX CLK D0 D1 D2 D3 差分信号对 CLK: CLKp / CLKn D0: D0p / D0n D1: D1p / D1n D2: D2p / D2n D3: D3p / D3n 摆幅:HS 200mV / LP 1.2V 速率:最高 2.5 Gbps/Lane 显示面板 DSI 从机 D-PHY RX

3.2 Lane 配置与带宽计算

SA8155 平台的 DSI 控制器支持 1、2、3、4 Lane 配置。Lane 数量的选择直接影响最大分辨率和刷新率。Lane 配置需在 DTS(Device Tree Source)中通过 qcom,mdss-dsi-lane-map 属性指定。

Lane 数量 总带宽(Gbps) 典型分辨率支持 适用场景
1 Lane 2.5 720p @ 60fps 低端仪表盘、辅助屏
2 Lane 5.0 1080p @ 60fps 中控信息娱乐屏
3 Lane 7.5 1440p @ 60fps 高端中控屏
4 Lane 10.0 4K @ 60fps / 2K @ 120fps 仪表盘 + 中控双屏、HDR 显示
工程提示: 在 SA8155 上配置 4 Lane 时,需确保 PCB 走线等长控制在 ±5mm 以内,且每对差分线阻抗为 100Ω ±10%。DTS 中 Lane 映射顺序必须与硬件原理图一致,否则会导致显示花屏。

3.2.1 DTS Lane 配置示例

/* SA8155 DSI Lane 配置片段 */
&mdss_mdp {
    qcom,mdss-dsi-lane-map = "lane_map_3012";  // Lane 映射顺序
    qcom,mdss-dsi-lane-count = <4>;            // 启用 4 Lane
    qcom,mdss-dsi-bpp = <24>;                  // 每像素 24 位
    qcom,mdss-dsi-traffic-mode = "non_burst_sync_pulse";
    qcom,mdss-dsi-h-sync-pulse = <1>;
    qcom,mdss-dsi-bllp-eof-power-mode;
    qcom,mdss-dsi-bllp-power-mode;
    qcom,mdss-dsi-lane-0-state;
    qcom,mdss-dsi-lane-1-state;
    qcom,mdss-dsi-lane-2-state;
    qcom,mdss-dsi-lane-3-state;
};

3.3 高速模式(HS)与低功耗模式(LP)

D-PHY 定义了两种工作模式,用于平衡数据传输效率与功耗:

  • 高速模式(High Speed, HS): 使用差分信号(200mV 摆幅),时钟由专用 CLK Lane 提供,数据 Lane 在时钟双沿采样。用于传输大量像素数据。
  • 低功耗模式(Low Power, LP): 使用单端信号(1.2V 摆幅),异步传输,无需时钟。用于传输命令、配置参数和短数据包。

两种模式之间的切换通过 Lane 状态序列 控制,由主机发送特定的 LP 状态组合完成。

HS 与 LP 模式切换状态机 LP-11(空闲) Dp=1, Dn=1 HS 模式 差分传输 LP 模式 单端命令 LP-11 → LP-01 → LP-00 HS-0 → LP-00 → LP-11 状态序列说明 • LP-11 → LP-01 → LP-00:进入 HS 模式的准备序列,Dn 先拉低,Dp 后拉低 • HS-0 → LP-00 → LP-11:退出 HS 模式,回到 LP 空闲状态 • LP-11 是唯一合法的空闲状态,所有 Lane 在无数据传输时必须保持 LP-11

3.4 数据包格式详解

DSI 协议定义了两种数据包类型:短数据包(Short Packet) 和 长数据包(Long Packet)。所有数据包在 HS 模式下通过数据 Lane 传输。

3.4.1 短数据包(Short Packet)

用于传输命令、状态和同步信息,固定 4 字节长度:

  • 字节 0: 数据标识符(DI),包含虚拟通道号(VCX)和数据类型(DT)。
  • 字节 1-2: 16 位数据负载(Word Count)。
  • 字节 3: 错误校验码(ECC),可纠正 1 位错误、检测 2 位错误。

3.4.2 长数据包(Long Packet)

用于传输像素数据、大块配置参数,结构如下:

字段 长度(字节) 描述
Packet Header 4 DI(1B)+ Word Count(2B)+ ECC(1B)
Data Payload 0~65535 实际数据内容,长度由 Word Count 指定
Packet Footer 2 16 位校验和(Checksum)
常见配置错误: 在 SA8155 平台中,如果长数据包的 Word Count 与 DTS 中配置的 qcom,mdss-dsi-panel-width 和 qcom,mdss-dsi-h-front-porch 不匹配,会导致显示画面偏移或撕裂。务必使用示波器抓取 DSI 总线波形验证包长度。

3.4.3 数据类型(DT)对照表

DT 值(Hex) 类型 说明
0x01 V Sync Start 垂直同步开始
0x21 H Sync Start 水平同步开始
0x29 Pixel Stream (RGB888) 24 位像素数据流
0x02 Generic Short Write 通用短写命令(0 参数)
0x03 Generic Short Write (1 param) 通用短写命令(1 参数)
0x05 DCS Short Write 显示命令集短写
0x06 DCS Short Write (1 param) 显示命令集短写(带参数)
0x37 Set Maximum Return Packet Size 设置最大回包大小

3.5 多 Lane 分发机制

当使用 2 或 4 Lane 时,DSI 控制器将像素数据按 字节交错 方式分发到各数据 Lane。例如 4 Lane 配置下,每个时钟周期传输 4 字节数据:

/* 4 Lane 字节分发示例 */
Clock Cycle 0: Lane0=Byte0, Lane1=Byte1, Lane2=Byte2, Lane3=Byte3
Clock Cycle 1: Lane0=Byte4, Lane1=Byte5, Lane2=Byte6, Lane3=Byte7
Clock Cycle 2: Lane0=Byte8, Lane1=Byte9, Lane2=Byte10, Lane3=Byte11
...

接收端(显示面板)必须按照相同的 Lane 映射顺序重组字节流。SA8155 的 lane_map_3012 表示物理 Lane 3 对应逻辑 Lane 0,物理 Lane 0 对应逻辑 Lane 1,以此类推。

4 Lane 字节交错分发示意 CLK Lane 0 Lane 1 B0 B4 B8 B12 B1 B5 B9 B13 … 分发规则 • 每个时钟周期,4 Lane 并行传输 4 字节 • Lane 0 传输字节索引 0,4,8,12,… • Lane 1 传输字节索引 1,5,9,13,… • 接收端按相同映射重组为完整像素流

3.6 本章小结