2、显示时序基础概念:像素时钟、行同步、场同步、消隐区、刷新率、分辨率
在 SA8155 平台的显示驱动开发中,理解显示时序是正确配置 MIPI DSI 和 DP/eDP 接口的前提。显示时序定义了 SoC 如何将帧缓冲区的像素数据逐行、逐帧地发送给显示面板,并确保面板在正确的时间点刷新每个像素。本节将逐一拆解像素时钟、行同步、场同步、消隐区、刷新率与分辨率的核心定义及其工程关联。
2.1 显示时序全景图
下图展示了从 SoC 到显示面板的完整时序链路,包含像素时钟生成、同步信号与消隐区的关系:
2.2 核心概念详解
2.2.1 像素时钟 (Pixel Clock, PCLK)
像素时钟是显示时序中最基础的频率信号,决定了每秒钟从显存中读取并传输到面板的像素数量。在 SA8155 平台上,PCLK 通常由 PLL 倍频产生,并通过 MIPI D-PHY 或 eDP 链路发送。
- 计算公式: PCLK = (水平总像素) × (垂直总行数) × 刷新率
- 水平总像素 = 水平有效像素 + 水平消隐 (HBP + HFP + HSYNC 宽度)
- 垂直总行数 = 垂直有效行 + 垂直消隐 (VBP + VFP + VSYNC 宽度)
- 工程要点: PCLK 过高会导致链路信号完整性下降,过低则无法满足刷新率要求。SA8155 的 DSI 控制器支持 PCLK 分频与倍频,需根据面板 datasheet 精确配置。
工程提示: 在 SA8155 的
mdss_dsi_phy_timings 节点中,像素时钟直接决定 D-PHY 的 bit clock。例如 1920×1080@60Hz 典型 PCLK 约为 148.5 MHz,对应 D-PHY 速率约 1.5 Gbps/lane。
2.2.2 行同步 (HSYNC) 与场同步 (VSYNC)
行同步信号标识每一行像素数据的开始,场同步信号标识每一帧的开始。两者均为脉冲信号,其宽度、前后肩 (Back Porch / Front Porch) 共同构成消隐区。
| 参数 | 符号 | 说明 | 典型值 (1080p@60) |
|---|---|---|---|
| 行同步宽度 | Hsync | HSYNC 脉冲持续像素数 | 44 |
| 行前肩 | HFP | 行有效数据结束到 HSYNC 开始 | 88 |
| 行后肩 | HBP | HSYNC 结束到下一行有效数据开始 | 148 |
| 场同步宽度 | Vsync | VSYNC 脉冲持续行数 | 5 |
| 场前肩 | VFP | 帧有效数据结束到 VSYNC 开始 | 4 |
| 场后肩 | VBP | VSYNC 结束到下一帧有效数据开始 | 36 |
2.2.3 消隐区 (Blanking)
消隐区是同步信号与有效数据之间的间隔,不包含任何可见像素数据。消隐区在工程上具有以下关键作用:
- 信号恢复: 为接收端 PLL 提供重新锁相的时间窗口,避免时钟漂移。
- 数据重对齐: 在 MIPI DSI 协议中,消隐区用于 Lane 对齐和 EoT 包传输。
- 面板充电: LCD 面板需要消隐时间完成像素电容的充放电,防止残影。
- 带宽调节: 增加消隐区可降低有效像素时钟频率,改善信号完整性。
避坑指南: 在 SA8155 平台上,消隐区配置过小会导致面板显示撕裂 (tearing) 或行噪声。建议保留至少 10% 的消隐余量。例如 1920×1080 分辨率,水平总像素建议 ≥ 2200,垂直总行数建议 ≥ 1125。
2.2.4 刷新率 (Refresh Rate)
刷新率指显示器每秒更新画面的次数,单位为 Hz。SA8155 平台支持多种刷新率模式,常见配置如下:
| 刷新率 | 典型应用 | PCLK 需求 (1080p) | SA8155 支持 |
|---|---|---|---|
| 60 Hz | 标准车载导航、信息娱乐 | ~148.5 MHz | 原生支持 |
| 30 Hz | 低功耗仪表盘、副屏 | ~74.25 MHz | 支持动态切换 |
| 90 Hz / 120 Hz | 高端数字仪表、AR-HUD | ~222.75 / 297 MHz | 需确认 D-PHY 速率上限 |
2.2.5 分辨率 (Resolution)
分辨率定义显示面板的有效像素矩阵,通常以 宽×高 表示。在 SA8155 显示时序配置中,分辨率直接影响以下参数:
- 水平有效像素 (HActive): 等于分辨率宽度,如 1920。
- 垂直有效行 (VActive): 等于分辨率高度,如 1080。
- 帧缓冲区大小: 分辨率 × 每像素字节数 (如 4 字节 RGBA) = 单帧内存占用。
- MIPI DSI 数据通道数: 高分辨率需要更多 Lane 或更高速率。
2.3 时序参数工程配置示例
以下为 SA8155 平台下 1920×1080@60Hz 的典型时序配置,对应 mdss_dsi_timing 节点参数:
/* SA8155 DSI 时序配置示例 - 1920x1080@60Hz */
struct dsi_timing_cfg {
.h_active = 1920,
.h_back_porch = 148,
.h_front_porch = 88,
.h_sync_width = 44,
.v_active = 1080,
.v_back_porch = 36,
.v_front_porch = 4,
.v_sync_width = 5,
.pixel_clock_khz = 148500, /* 148.5 MHz */
.refresh_rate_hz = 60,
};
关键检查项:
- 确认
pixel_clock_khz与 D-PHY bit clock 匹配:bit_clock = PCLK × 每像素位数 / Lane 数。 - 消隐区参数必须满足面板 datasheet 的最小要求,否则显示异常。
- SA8155 支持通过
mdss_dsi_phy_timings调整时钟相位,用于补偿 PCB 走线延迟。
2.4 概念对比总结
| 概念 | 单位 | 决定因素 | 工程影响 |
|---|---|---|---|
| 像素时钟 | MHz | 分辨率 × 刷新率 × 消隐系数 | 链路速率、EMI |
| 行同步 | 像素数 | 面板规格、协议要求 | 行对齐、数据恢复 |
| 场同步 | 行数 | 面板规格、帧同步 | 帧同步、防撕裂 |
| 消隐区 | 像素/行 | HBP+HFP+HSYNC / VBP+VFP+VSYNC | 信号完整性、面板充电 |
| 刷新率 | Hz | 应用场景、功耗要求 | 流畅度、功耗 |
| 分辨率 | 像素×行 | 面板物理像素、UI 设计 | 内存带宽、渲染负载 |