4. 显示接口与协议:DP/eDP、HDMI、MIPI DSI

在高通 SA8155 平台中,DPU(Display Processing Unit)通过多种物理层接口与外部显示设备或桥接芯片连接。理解这些接口的协议、数据通道和辅助通道是进行 HDR 显示同步调试的基础。本章将深入剖析 DP/eDP、HDMI 和 MIPI DSI 三大核心接口。

核心要点: SA8155 的 DPU 内部统一使用 VESA 标准的像素接口,外部则根据应用场景选择不同的物理层。DP/eDP 用于高分辨率主屏或副屏,HDMI 用于外接显示,MIPI DSI 用于车内嵌入式面板。

4.1 DisplayPort (DP) / Embedded DisplayPort (eDP)

DP 和 eDP 是 SA8155 平台最核心的显示接口,用于驱动高分辨率、高刷新率的主控屏幕或副屏。eDP 是 DP 的嵌入式版本,专为笔记本和车载面板优化,支持更低的电压和更灵活的链路配置。

4.1.1 协议架构与链路层

DP/eDP 采用微分组(Micro-Packet)架构,数据以固定大小的传输单元(Transfer Unit, TU)在 Main Link 上传输。其协议栈分为三层:

  • 物理层(Physical Layer): 采用 AC 耦合差分信号,支持 1、2 或 4 Lane 配置。SA8155 的 DP/eDP 控制器最高支持 HBR3(8.1 Gbps per Lane)。
  • 链路层(Link Layer): 负责将视频流(像素数据)打包成微分组,并插入空白符(Blank Start/End)和辅助数据(如 HDR 元数据)。
  • 传输层(Transport Layer): 管理流控制、时钟恢复和链路训练。
调试要点: 链路训练(Link Training)是 DP/eDP 调试中最关键的步骤。失败通常表现为黑屏或闪屏。SA8155 的 DPU 驱动会通过 AUX 通道读取 DPCD(DisplayPort Configuration Data)寄存器来确认链路状态。

4.1.2 数据通道(Main Link)与 AUX 通道

通道类型 方向 功能描述 SA8155 调试关注点
Main Link 单向(Source → Sink) 传输视频像素数据、音频数据和辅助数据(如 InfoFrames)。采用 8b/10b 编码。 Lane 数、速率(RBR/HBR/HBR2/HBR3)、预加重(Pre-emphasis)和电压摆幅(Voltage Swing)设置。
AUX Channel 双向(半双工) 用于链路管理(Link Training)、EDID 读取、DPCD 寄存器访问、MST 拓扑管理和 HDR 元数据传输。 AUX 事务超时、NACK 响应、DPCD 地址 0x00600~0x0061F(HDR 元数据寄存器)的读写时序。
HPD(Hot Plug Detect) 单向(Sink → Source) 中断信号,用于通知 Source 连接/断开或需要重新训练。 HPD 脉冲宽度(IRQ_HPD vs. 长 HPD)的识别。

4.1.3 HDR 元数据传递(DP/eDP 场景)

在 DP/eDP 接口上,HDR 静态元数据(如 SMPTE ST 2086)通过 DPCD 寄存器或 InfoFrame(通过 Main Link 的辅助数据包)传递。SA8155 的 DPU 驱动在发送 HDR 帧前,必须通过 AUX 通道将元数据写入 Sink 设备的 DPCD 地址 0x00600~0x0061F。

// 伪代码:通过 AUX 写入 HDR 元数据
// 假设已获取 HDR 静态元数据结构体 hdr_metadata
uint8_t dpcd_addr = 0x00600;
uint8_t buffer[26]; // HDR10+ 或 ST 2086 元数据长度

// 填充 buffer(略)
// 调用 AUX 写事务
dpu_aux_write(aux, dpcd_addr, buffer, sizeof(buffer));

// 触发 Sink 更新(通过设置 DPCD 0x00100 的位)
dpu_aux_write(aux, 0x00100, 0x01, 1);
常见问题: 如果 AUX 通道在写入 HDR 元数据时返回 NACK,或者写入后 Sink 未正确解析,会导致 HDR 模式无法激活或颜色映射错误。务必使用逻辑分析仪抓取 AUX 总线事务进行验证。

4.2 HDMI 接口

SA8155 通常通过外部桥接芯片(如 TI TDP158)将 DPU 的 DP 输出转换为 HDMI 输出。虽然物理层不同,但协议层与 DP 有诸多相似之处。

4.2.1 TMDS 与 FRL 模式

HDMI 2.0 及以下使用 TMDS(Transition Minimized Differential Signaling)模式,而 HDMI 2.1 引入了 FRL(Fixed Rate Link)模式。在 SA8155 平台中,由于 DPU 原生输出为 DP,HDMI 输出通常受限于桥接芯片的能力。

  • TMDS 模式: 3 个数据通道 + 1 个时钟通道。每个通道最高 6 Gbps(HDMI 2.0)。
  • FRL 模式: 4 个数据通道,无独立时钟。每个通道最高 12 Gbps(HDMI 2.1)。

4.2.2 DDC 通道与 CEC

通道 功能 与 DP 的对比
DDC (I2C) 读取 EDID、传输 HDCP 密钥、传递 HDR 元数据(通过 VSDB 或 HDR10+ 动态元数据包)。 相当于 DP 的 AUX 通道,但带宽更低,且不支持 MST。
CEC 消费电子控制,用于设备间的遥控联动。 DP 无直接对应通道。
HPD 热插拔检测,与 DP 的 HPD 功能类似。 HDMI 的 HPD 不携带 IRQ 功能。

4.2.3 HDR 元数据传递(HDMI 场景)

在 HDMI 接口上,HDR 元数据通过 InfoFrame 数据包传输。具体为 HDR10+ 动态元数据 或 HDR10 静态元数据 被封装在 Vendor-Specific InfoFrame (VSIF) 中。SA8155 的 DPU 驱动需要将元数据填充到 HDMI 桥接芯片的寄存器中,由桥接芯片在 TMDS/FRL 链路上发送。

// 伪代码:通过 I2C (DDC) 配置 HDMI 桥接芯片发送 HDR InfoFrame
// 假设桥接芯片为 TI TDP158
uint8_t vsif_packet[32];
// 填充 VSIF 包(包含 HDR10+ 动态元数据)
fill_hdr_vsif(vsif_packet);

// 通过 I2C 写入桥接芯片的 InfoFrame 缓冲区
i2c_write(bridge_i2c_addr, 0x40, vsif_packet, sizeof(vsif_packet));

// 触发桥接芯片发送
i2c_write(bridge_i2c_addr, 0x41, 0x01, 1);

4.3 MIPI DSI 接口

MIPI DSI 主要用于驱动车内嵌入式 LCD 面板,如仪表盘或中控屏。SA8155 的 DPU 可以通过 DSI 控制器直接输出,或通过桥接芯片转换。

4.3.1 数据通道与时钟通道

DSI 使用差分信号对(Data Lane 和 Clock Lane)。每个 Data Lane 是双向的(Bidirectional),但视频数据流通常是单向的(Host → Device)。

  • Clock Lane: 提供源同步时钟,用于数据采样。
  • Data Lane 0~3: 传输像素数据、命令和事件。支持 LP(Low Power,低功耗)和 HS(High Speed,高速)两种模式。

4.3.2 命令模式与视频模式

模式 描述 适用场景 HDR 支持
命令模式(Command Mode) 通过 DCS(Display Command Set)命令更新帧缓冲区。需要面板自带 Frame Buffer。 低功耗、静态内容(如仪表盘)。 有限,通常需要面板支持局部 HDR 命令。
视频模式(Video Mode) 实时流式传输像素数据,类似 DP/HDMI。面板无需 Frame Buffer。 高刷新率、动态视频(如中控屏导航)。 支持,通过传输 HDR 元数据包(如 MIPI DSI 的 HDR 扩展包)。

4.3.3 HDR 元数据传递(DSI 场景)

在 MIPI DSI 视频模式下,HDR 元数据可以通过 Generic Short Packet 或 Long Packet 在 VBlank 或 HBlank 期间传输。SA8155 的 DSI 控制器支持在视频流中插入自定义数据包。

// 伪代码:在 DSI 视频流中插入 HDR 元数据包
// 配置 DSI 控制器在 VBlank 期间发送长包
struct dsi_cmd_desc hdr_packet;
hdr_packet.dtype = MIPI_DSI_LONG_PACKET; // 长包类型
hdr_packet.vc = 0; // 虚拟通道
hdr_packet.dlen = 26; // 元数据长度
memcpy(hdr_packet.payload, hdr_metadata, 26);

// 将命令加入 DSI 命令队列
dsi_ctrl_enqueue_cmd(&hdr_packet);

4.4 接口协议对比总结

特性 DP/eDP HDMI MIPI DSI
最大速率 (per Lane) 8.1 Gbps (HBR3) 12 Gbps (FRL) ~4.5 Gbps (D-PHY v2.5)
最大 Lane 数 4 4 (FRL) / 3 (TMDS) 4
辅助通道 AUX (双向, 半双工) DDC (I2C, 双向) LP 模式 (双向, 用于命令)
HDR 元数据传递 DPCD 寄存器 / InfoFrame VSIF InfoFrame Generic Short/Long Packet
SA8155 原生支持 是 (DP/eDP 控制器) 否 (需外部桥接) 是 (DSI 控制器)
调试工具 AUX 分析仪, DPCD 寄存器 dump I2C 分析仪, EDID 模拟器 逻辑分析仪, DSI 协议分析仪

4.5 接口协议与数据流架构图

下图展示了 SA8155 DPU 如何通过不同接口协议与显示设备连接,以及 HDR 元数据在其中的传递路径。

SA8155 DPU 显示接口协议与 HDR 元数据流 SA8155 DPU 显示接口协议与 HDR 元数据流 SA8155 DPU DP/eDP 控制器 HDMI 桥接芯片 MIPI DSI 控制器 Main Link (数据通道) 视频像素 + HDR InfoFrame AUX: DPCD 寄存器 (HDR 元数据) TMDS / FRL (数据通道) 视频像素 + VSIF InfoFrame DDC (I2C): EDID / HDCP Data Lane (数据通道) 视频像素 + Generic Packet LP 模式: DCS 命令 HDR 元数据传递路径 DP/eDP: DPU → AUX → DPCD (0x00600) → Sink HDMI: DPU → I2C → 桥接芯片 → VSIF → Sink MIPI DSI: DPU → DSI 控制器 → Generic Packet → Panel
调试建议: 在 SA8155 平台上,当遇到 HDR 显示异常时,首先确认接口类型。对于 DP/eDP,优先检查 AUX 通道的 DPCD 寄存器读写是否成功;对于 HDMI,检查桥接芯片的 I2C 通信和 VSIF 包内容;对于 MIPI DSI,使用逻辑分析仪抓取 Blanking 区间的数据包,确认 HDR 元数据是否被正确插入。