1. SA8155平台概述

1.1.1 SA8155 芯片架构总览

SA8155 是 Qualcomm 面向第三代智能座舱域控制器推出的旗舰级 SoC,采用 7nm 制程工艺。其核心计算单元包括:

  • Kryo 485 CPU:1+3+4 三丛集架构,最高主频 2.84 GHz,负责通用计算与系统调度。
  • Adreno 640 GPU:支持 Vulkan 1.1 / OpenGL ES 3.2,承担 3D 渲染与合成加速。
  • Hexagon 690 DSP:集成 HVX 向量扩展,用于传感器融合与音频后处理。
  • Spectra 380 ISP:支持 4 路 MIPI CSI 输入,最高 6400 万像素,负责车载摄像头信号采集。
  • 显示子系统(Display Subsystem):包含 MDP、DPU、DSI/DP 控制器,是本章核心研究对象。
关键指标:SA8155 显示子系统支持最多 7 路独立显示输出(4 路 DSI + 2 路 DP + 1 路 HDMI),总像素填充率超过 4.6 Gpix/s,满足仪表、中控、HUD、副驾屏、后排娱乐等多屏场景。

1.1.2 显示子系统整体框图

显示子系统在 SA8155 内部通过 NoC(Network on Chip) 总线与内存、GPU、ISP 等模块互联。下图展示了显示子系统的核心模块与数据流向:

SA8155 显示子系统整体框图 SA8155 显示子系统整体框图 系统内存(DDR) NoC 总线(AXI 互联) MDP Mobile Display Processor DPU Display Processing Unit SMMU 系统内存管理单元 DSI 控制器 DP 控制器 HDMI 控制器 DSI-0 / DSI-1 DP 0 / DP 1 HDMI 2.0 数据流方向 DDR → NoC → MDP/DPU → 控制器 → 物理接口 → 显示屏
架构要点:MDP 负责从内存中抓取图层(Layer)并进行合成,DPU 负责后续的色彩管理、伽马校正、抖动处理。两者通过内部高速通道连接,故障排查时需区分问题发生在 MDP 合成阶段还是 DPU 后处理阶段。

1.1.3 MDP 在系统中的位置与作用

MDP(Mobile Display Processor) 是显示子系统的核心合成引擎,位于 NoC 总线与 DPU 之间。其核心职责包括:

功能模块 作用描述 故障影响
图层抓取(Layer Fetch) 通过 SMMU 从 DDR 中读取多个图层(UI、视频、导航等)的像素数据 图层缺失、花屏、撕裂
图层合成(Blending) 按 Z-order 顺序将多个图层叠加为单一帧,支持 alpha 混合与透明度处理 图层顺序错乱、透明区域异常
缩放与旋转(Scaler/Rotator) 对输入图层进行分辨率缩放、90°/180°/270° 旋转、镜像翻转 图像变形、显示方向错误
色彩空间转换(CSC) 将图层从 YUV 转换为 RGB,或在不同 RGB 色彩空间之间转换 颜色偏色、饱和度异常
帧率控制(FPS Control) 根据显示面板刷新率调整输出帧率,支持动态帧率切换 画面卡顿、闪烁、不同步

MDP 在显示通路中的位置决定了它既是 数据入口 也是 合成瓶颈。几乎所有显示内容都必须经过 MDP 处理,因此 MDP 故障会直接导致无显示、花屏、图层错乱等严重问题。

工程经验:在 SA8155 平台实际项目中,约 60% 的显示故障根因在 MDP 侧,常见原因包括:图层配置超过硬件管线数(通常为 8 层)、SMMU 页表错误导致图层 fetch 失败、scaler 输入输出尺寸不匹配等。排查时应优先检查 MDP 寄存器状态与图层配置。

1.1.4 MDP 内部管线结构

MDP 内部采用 多管线并行处理 架构,每条管线独立处理一个图层。下图展示了 MDP 内部 4 条管线的典型结构:

MDP 内部管线结构 MDP 内部管线结构(4 条并行管线示例) 管线 0:图层 Fetch CSC + Scaler Alpha Blender 管线 1:图层 Fetch CSC + Scaler Alpha Blender 管线 2:图层 Fetch CSC + Scaler Alpha Blender 管线 3:图层 Fetch CSC + Scaler Alpha Blender 最终合成器(Final Blender) → 输出到 DPU 硬件限制 最多支持 8 条并行管线 超出则触发软件合成回退
硬件限制说明:SA8155 MDP 支持最多 8 条硬件管线。当应用层提交的图层数量超过 8 层时,系统会自动回退到 GPU 软件合成(使用 OpenGL ES),这会增加 GPU 负载并可能引入帧率抖动。在故障排查时,应通过 dumpsys display 或 MDP 寄存器读取当前活跃管线数,判断是否触发了软合成回退。

1.1.5 MDP 与周边模块的交互关系

MDP 并非孤立工作,它与以下模块存在紧密的数据与控制交互:

  • SMMU(系统内存管理单元):MDP 通过 SMMU 访问 DDR。SMMU 页表错误会导致图层 fetch 失败,表现为部分区域花屏或完全无显示。
  • DPU(显示处理单元):MDP 合成后的帧数据直接送入 DPU 进行后处理。DPU 的输入格式必须与 MDP 输出格式匹配,否则会出现颜色异常。
  • DSI/DP 控制器:MDP 的输出时序由控制器驱动。如果控制器配置的时序参数(HFP、HBP、VFP、VBP)与面板规格不符,会导致显示偏移或黑屏。
  • GPU(Adreno 640):当 MDP 硬件管线不足时,GPU 承担软件合成任务。GPU 合成会增加功耗与延迟,是性能优化的重点关注对象。
排查切入点:遇到显示异常时,建议按以下顺序检查:
1. 确认 MDP 寄存器中图层配置是否合法(图层数 ≤ 8,尺寸 ≤ 4096×4096)。
2. 检查 SMMU 错误状态寄存器,确认是否存在页表错误。
3. 验证 DPU 输入格式与 MDP 输出格式是否一致(常见格式:RGB888、RGB565、NV12)。
4. 核对 DSI/DP 控制器的时序参数与面板 datasheet 是否匹配。