2. 显示时序基础概念:像素时钟、行同步、场同步与数据使能

显示时序是驱动面板点亮并稳定显示画面的物理层协议。在 SA8155 MDP 通路中,任何时序参数的偏差都会导致黑屏、闪屏、撕裂或偏移。本节从波形与定义两个维度,拆解四个核心信号:像素时钟 (Pixel Clock)、行同步 (HSYNC)、场同步 (VSYNC) 和 数据使能 (DE)。

2.1 信号定义与功能对比

信号 全称 方向 核心功能
PCLK Pixel Clock MDP → 面板 为每个像素的 RGB 数据提供锁存基准时钟
HSYNC Horizontal Sync MDP → 面板 标识一行像素传输的结束与下一行的开始
VSYNC Vertical Sync MDP → 面板 标识一帧画面传输的结束与下一帧的开始
DE Data Enable MDP → 面板 高电平时表示当前 PCLK 上的 RGB 数据有效
排查要点:在 SA8155 的 MDP 调试中,PCLK 频率偏差超过 ±5% 通常会导致面板无法锁定;HSYNC/VSYNC 极性错误则直接引发行/场不同步,表现为画面滚动或撕裂。

2.2 像素时钟 (Pixel Clock)

像素时钟是显示时序的“心跳”。MDP 在每个 PCLK 上升沿(或下降沿,由极性配置决定)将一组 RGB 数据推送到数据总线上。PCLK 频率由分辨率和刷新率决定:

PCLK (Hz) = (H_total) × (V_total) × Refresh_Rate

其中:
  H_total = H_Active + H_Front_Porch + H_Sync_Width + H_Back_Porch
  V_total = V_Active + V_Front_Porch + V_Sync_Width + V_Back_Porch
SA8155 实测案例:1920×1080@60Hz 典型配置下,H_total=2200,V_total=1125,PCLK ≈ 2200×1125×60 = 148.5 MHz。若 MDP 输出的 PCLK 实际为 145 MHz,则面板实际刷新率会降至约 58.6 Hz,导致帧率不匹配与视觉卡顿。

2.3 行同步 (HSYNC) 与场同步 (VSYNC)

HSYNC 和 VSYNC 是同步脉冲信号,用于界定行与帧的边界。两者均包含脉冲宽度(Sync Width)以及前后的消隐区(Front Porch / Back Porch)。

  • HSYNC:每传输完一行有效像素后,MDP 拉低(或拉高,取决于极性)HSYNC 一个周期,通知面板准备接收下一行数据。
  • VSYNC:每传输完一帧有效像素后,MDP 拉低 VSYNC 一个周期,通知面板开始新的一帧。
  • 极性配置:SA8155 的 MDP 时序控制器支持正/负极性编程。例如,HSYNC 极性为负时,脉冲为低电平有效;为正时则为高电平有效。
常见故障:HSYNC 与 VSYNC 的极性配置错误是 SA8155 平台最常见的显示初始化失败原因之一。务必与面板 datasheet 中的时序要求严格对齐。

2.4 数据使能 (DE) 信号

DE 信号是 RGB 数据有效性的“门控”。在 DE 为高电平时,PCLK 上的数据被面板视为有效像素;DE 为低电平时,数据总线上的值应被忽略(通常用于消隐区)。

  • DE 模式:大多数现代面板使用 DE-only 模式,即仅依靠 DE 信号判断数据有效性,HSYNC/VSYNC 仅作帧同步参考。
  • SYNC 模式:部分老旧面板需要同时依赖 HSYNC/VSYNC 和 DE 的组合逻辑。
  • SA8155 配置:MDP 的时序发生器支持 DE 信号自动生成,其宽度等于 H_Active × V_Active 的有效区域。

2.5 完整行/帧时序波形图

下图展示了一行和一帧内 PCLK、HSYNC、VSYNC 与 DE 的典型时序关系(以负极性 HSYNC/VSYNC 为例)。

显示时序波形图 - 行与帧 显示时序波形图(一行 + 一帧) 一行时序 (Horizontal) PCLK … 有效像素时钟 … HSYNC H_Sync H_FP H_Active (有效像素) H_BP DE DE 高电平:数据有效 t0 t1 t2 t3 一帧时序 (Vertical) VSYNC V_Sync V_FP V_Active (有效行) V_BP DE DE 高电平:整帧有效 t0 t1 t2 t3 同步脉冲 消隐区 (Porch) 有效数据区 DE 使能 时序参数计算示例 (1920×1080@60Hz) H_total = 1920 + 88 (H_FP) + 44 (H_Sync) + 148 (H_BP) = 2200 V_total = 1080 + 4 (V_FP) + 5 (V_Sync) + 36 (V_BP) = 1125 PCLK = 2200 × 1125 × 60 = 148.5 MHz

2.6 时序参数与 MDP 寄存器映射

在 SA8155 MDP 中,上述时序参数直接映射到硬件寄存器。调试时需通过 MDP 的 时序发生器 (Timing Generator, TG) 模块写入以下关键寄存器:

时序参数 MDP 寄存器域 典型值 (1080p@60)
H_Active MDP_TG_H_ACTIVE 1920
H_Front_Porch MDP_TG_H_FRONT_PORCH 88
H_Sync_Width MDP_TG_H_SYNC_WIDTH 44
H_Back_Porch MDP_TG_H_BACK_PORCH 148
V_Active MDP_TG_V_ACTIVE 1080
V_Front_Porch MDP_TG_V_FRONT_PORCH 4
V_Sync_Width MDP_TG_V_SYNC_WIDTH 5
V_Back_Porch MDP_TG_V_BACK_PORCH 36
PCLK 极性 MDP_TG_PCLK_POL 0 (上升沿锁存)
HSYNC/VSYNC 极性 MDP_TG_SYNC_POL 0 (负极性)
调试技巧:使用 SA8155 的 MDP 调试工具读取 MDP_TG_STATUS 寄存器,可实时查看当前 TG 状态是否锁定。若 STATUS 显示 “TG_IDLE”,说明时序发生器未启动,需检查时钟使能与时序参数配置。

2.7 常见时序故障与排查方向

  • 无显示(黑屏):检查 PCLK 是否输出、HSYNC/VSYNC 极性是否与面板匹配、DE 信号是否在有效区域拉高。
  • 画面滚动或抖动:VSYNC 频率与面板刷新率不匹配,或 VSYNC 极性错误。使用示波器测量 VSYNC 周期,确认与目标刷新率一致。
  • 画面偏移或撕裂:HSYNC 前后肩参数错误,导致面板内部行起始位置偏移。对比面板 datasheet 中的 H_FP/H_BP 最小值。
  • DE 信号异常:DE 宽度不等于 H_Active × V_Active,或 DE 在消隐区误拉高。检查 MDP_TG_DE_CTRL 寄存器配置。
推荐工具:在 SA8155 平台调试显示时序时,建议同时使用逻辑分析仪抓取 PCLK/HSYNC/VSYNC/DE 四路信号,并与 MDP 寄存器读回值交叉验证。示波器带宽建议 ≥ 500 MHz 以准确测量 PCLK 边沿。