1. MIPI-DSI 基础:MIPI 联盟与 DSI 协议概述

1.1 MIPI 联盟与 DSI 协议定位

MIPI(Mobile Industry Processor Interface)联盟成立于 2003 年,旨在为移动设备制定开放、免版税的接口标准。DSI(Display Serial Interface)是 MIPI 联盟针对显示子系统制定的串行接口协议,广泛应用于智能手机、平板、嵌入式开发板(如树莓派)的 LCD/OLED 屏幕驱动。

DSI 协议的核心设计目标:

  • 高速串行传输:使用差分信号对(D-PHY)实现 Gbps 级数据率,减少引脚数量。
  • 低功耗:支持高速模式(HS)和低功耗模式(LP)动态切换。
  • 分层架构:将物理层、协议层、应用层分离,便于 IP 复用和调试。
调试启示:时钟异常排查往往从物理层开始,但根因可能出现在协议层或应用层配置。理解分层架构是定位问题的第一步。

1.2 DSI 物理层与协议层分层架构

DSI 协议栈分为四层,从下至上依次为:

层级 名称 主要职责 与时钟关系
L4 应用层(Application) 像素数据打包、命令封装、显示刷新控制 决定像素时钟频率和刷新率
L3 协议层(Protocol) 包结构定义(长包/短包)、ECC/CRC 校验、虚拟通道管理 包传输时序依赖字节时钟
L2 通道管理层(Lane Management) 数据分发到多 Lane、Lane 合并/拆分、SoT/EoT 序列 Lane 间 skew 影响时钟恢复
L1 物理层(D-PHY) 差分信号驱动、时钟 Lane 和数据 Lane 的电气特性、HS/LP 模式切换 时钟 Lane 直接提供位时钟
关键概念:DSI 的时钟 Lane 是单向的(Host→Device),数据 Lane 是双向的(HS 方向 Host→Device,LP 方向可双向)。时钟异常通常表现为时钟 Lane 无信号、频率偏差、抖动过大或占空比失真。

1.3 DSI 分层架构 SVG 图

下图展示了 DSI 协议栈的四层结构及其与时钟信号的关联路径:

MIPI-DSI 分层架构与时钟路径 MIPI-DSI 协议栈分层架构与时钟关联 L4 应用层 (Application Layer) 像素数据打包 · 命令封装 · 刷新率控制 → 决定像素时钟频率 L3 协议层 (Protocol Layer) 包结构定义 · ECC/CRC 校验 · 虚拟通道管理 → 依赖字节时钟 L2 通道管理层 (Lane Management) 数据分发到多 Lane · Lane 合并/拆分 · SoT/EoT 序列 → Lane 间 skew 影响时钟恢复 L1 物理层 D-PHY (Physical Layer) 差分信号驱动 · HS/LP 模式切换 · 时钟 Lane 提供位时钟 → 时钟异常高发区 时钟异常排查路径 ① 物理层:时钟 Lane 信号 ② 通道层:Lane 对齐 ③ 协议层:包时序 时钟 Lane (Clock Lane) 差分对 CLK_P / CLK_N 频率范围:80 MHz ~ 1 GHz 数据 Lane (Data Lane 0~3) 差分对 D0_P/D0_N ... D3_P/D3_N 数据率 = 时钟频率 × 2 (DDR)

1.4 D-PHY 物理层关键特性

D-PHY 是 DSI 的物理层实现,定义了以下关键参数:

  • 差分信号对:每个 Lane 由一对差分线(P/N)组成,抗共模干扰能力强。
  • HS 模式:高速传输模式,时钟 Lane 提供连续方波时钟,数据 Lane 在时钟双边沿采样(DDR)。
  • LP 模式:低功耗模式,使用单端信号传输控制命令,时钟 Lane 停止翻转。
  • 状态定义:LP-00、LP-01、LP-10、LP-11 四种线路状态用于握手和模式切换。
参数 HS 模式 LP 模式
信号幅度 200 mV(差分摆幅) 1.2 V(单端摆幅)
数据传输率 80 Mbps ~ 1 Gbps per Lane ≤ 10 Mbps
时钟 Lane 连续翻转,频率 = 数据率/2 停止翻转,保持 LP-11
功耗 高(~3 mW/Gbps) 低(~0.3 mW)
典型用途 像素数据流 命令、配置、BTA
时钟异常排查要点:在 HS 模式下,时钟 Lane 必须持续翻转;若示波器观察到时钟 Lane 长时间处于 LP-11 状态,说明 Host 未正确进入 HS 模式,或时钟 PLL 未锁定。这是树莓派 DSI 调试中最常见的物理层问题。

1.5 协议层包结构概述

DSI 协议层定义了两种包类型:

  • 短包(Short Packet):4 字节固定长度,用于命令、同步、应答。包含 1 字节数据标识符(DI)、2 字节数据、1 字节 ECC。
  • 长包(Long Packet):可变长度,用于像素数据、大块命令。包含包头(4 字节)、数据负载(0~65535 字节)、包尾(2 字节 CRC)。

包传输的时钟依赖关系:

字节时钟频率 = 数据 Lane 位时钟频率 / 8
像素时钟频率 = 字节时钟频率 × 每时钟像素数
示例(树莓派 4 Lane 1080p60):
  像素时钟 = 148.5 MHz
  每时钟像素数 = 4(4 Lane 并行)
  字节时钟 = 148.5 / 4 = 37.125 MHz
  位时钟 = 37.125 × 8 = 297 MHz
  时钟 Lane 频率 = 297 / 2 = 148.5 MHz(DDR)
调试工具提示:使用逻辑分析仪抓取时钟 Lane 和数据 Lane 的 HS 包序列,检查 SoT(Start of Transmission)序列是否正确。SoT 序列为 LP-11 → LP-01 → LP-00 → LP-00 → HS-0 → HS-1 → ...,若 SoT 缺失或时序错误,数据 Lane 将无法同步。

1.6 本章小结