drm_connector驱动中MIPI DSI接口初始化 - 第1节

1. MIPI DSI概述

MIPI(Mobile Industry Processor Interface)联盟成立于 2003 年,旨在为移动设备制定开放、免版税的接口标准。其成员覆盖芯片设计、面板制造、终端设备等全产业链。在 MIPI 发布的数十个规范中,DSI(Display Serial Interface) 是面向显示子系统的串行接口标准,与 CSI(Camera Serial Interface)共同构成 MIPI 应用层两大支柱。

课程定位提示:DRM/KMS 框架中,drm_connector 与 DSI 面板的交互完全基于 MIPI DSI 协议。理解 DSI 的分层结构是编写正确初始化序列的前提。

MIPI 联盟关键标准一览

标准名称 版本 主要用途 与 DRM 关系
D-PHY v2.5 物理层,定义高速/低功耗信号 drm_dsi 驱动直接操作 PHY 时序
DSI v2.0 显示串行接口协议 drm_mipi_dsi 核心层实现
DCS v1.4 显示命令集,面板控制指令 初始化序列中的 set_display_on 等
CCI / I²C — 控制总线,配置寄存器 部分 DSI 桥片使用

1.2 DSI 协议分层架构

DSI 协议采用 四层分层模型,从物理层到应用层逐层封装。DRM 驱动开发者最常接触的是 协议层 和 应用层,但底层时序问题往往需要回溯到 D-PHY 层排查。

分层要点:每一层只与相邻层交互,驱动代码中 mipi_dsi_host_ops 的回调函数对应协议层的传输请求。

DSI 协议四层模型

  1. 应用层(Application Layer):像素数据打包、命令封装。DRM 的 framebuffer 最终在此层转换为 DSI 长包。
  2. 协议层(Protocol Layer):定义包格式(长包/短包)、ECC/CRC 校验、虚拟通道管理。drm_mipi_dsi_device 的 channel 字段即对应虚拟通道 ID。
  3. 传输层(Transport Layer):将协议包映射到 Lane 上,处理 Lane 分布、重传、低功耗模式切换。
  4. 物理层(Physical Layer / D-PHY):差分信号、时钟 Lane、数据 Lane 的电气特性与时序。
DSI 协议四层架构与 DRM 对应关系 应用层(Application Layer) 像素流 / DCS 命令 / 帧缓冲 协议层(Protocol Layer) 长包 / 短包 / ECC / CRC / 虚拟通道 传输层(Transport Layer) Lane 映射 / 低功耗模式 / 重传 物理层 D-PHY(Physical Layer) 差分信号 / 时钟 Lane / 数据 Lane DRM 驱动接触层 drm_mipi_dsi 核心

1.3 D-PHY 物理层基础

D-PHY 是 MIPI 联盟定义的 串行物理层规范,DSI 和 CSI 共享同一套 PHY 标准。D-PHY 采用 源同步差分传输,每个 Lane 由一对差分线(Dp/Dn)组成,支持两种工作模式:高速模式(HS) 和 低功耗模式(LP)。

D-PHY 关键特性

参数 高速模式(HS) 低功耗模式(LP)
信号幅度 200 mV 差分摆幅 1.2 V 单端摆幅
数据传输率 80 Mbps ~ 4.5 Gbps / Lane ≤ 10 Mbps
功耗 高(差分驱动) 极低(单端驱动)
应用场景 像素数据流 命令传输 / 总线空闲
时钟 Lane DDR 双边沿采样 无时钟,异步
常见误区:LP 模式虽然速率低,但用于发送 DCS 命令(如 display_on)。驱动初始化时若 LP 时序配置错误,会导致面板无响应。务必检查 PHY 的 LP 定时参数(如 T_LPX、T_HS_PREPARE)。

D-PHY Lane 结构

一个典型的 DSI 链路包含 1 条时钟 Lane 和 1~4 条数据 Lane。时钟 Lane 提供 DDR 时钟,数据 Lane 在时钟的上升沿和下降沿各传输 1 bit。Lane 数量由面板规格决定,DRM 驱动通过 mipi_dsi_device->lanes 字段读取。

D-PHY 链路结构(4 Data Lane + 1 Clock Lane) 主机 SoC / AP DSI 控制器 时钟 Lane(CLK+ / CLK-) Data Lane 0(D0+ / D0-) Data Lane 1(D1+ / D1-) Data Lane 2(D2+ / D2-) Data Lane 3(D3+ / D3-) 面板 显示模组 DSI 接收器 每条数据 Lane 在时钟上升沿和下降沿各传输 1 bit,4 Lane 配置下每个时钟周期传输 8 bit

1.4 DSI 包类型与传输模式

DSI 协议定义了两类数据包:短包(Short Packet) 和 长包(Long Packet)。短包固定 4 字节,用于命令和同步;长包包含包头、数据负载和 CRC,用于像素流和批量命令。

包类型对比

特性 短包 长包
长度 固定 4 字节(DI + WC + ECC) 6 ~ 65541 字节(包头 + 数据 + CRC)
典型用途 DCS 命令、同步事件(VSA / HSA) 像素数据、GAMMA 表、大块寄存器配置
传输模式 LP 或 HS HS 为主
ECC 8 bit 纠错码 包头含 ECC,数据含 CRC
驱动开发要点:初始化序列中,mipi_dsi_dcs_write() 发送短包命令,mipi_dsi_dcs_write_buffer() 发送长包数据。内核 API 会自动选择包类型,但驱动需确保 PHY 处于正确模式。

1.5 本章小结

  • MIPI DSI 是移动显示领域的事实标准,DRM 驱动通过 drm_mipi_dsi 框架与其对接。
  • DSI 协议分为应用层、协议层、传输层、物理层四层,驱动开发重点关注协议层和物理层。
  • D-PHY 物理层使用差分信号,支持 HS 和 LP 两种模式,Lane 数量决定带宽。
  • 短包和长包分别适用于命令和批量数据传输,初始化序列中两者都会用到。