4. 时序参数详解:HBP、HFP、VBP、VFP 的物理意义
在驱动移植过程中,时序参数(Timing Parameters)是决定显示面板能否正常工作的核心配置。水平后肩(HBP)、水平前肩(HFP)、垂直后肩(VBP)、垂直前肩(VFP)这四个参数共同定义了扫描信号在有效像素区域之外的“消隐区”行为。理解它们的物理意义,是进行全局刷新时序适配与 LUT 优化的前提。
4.1 水平时序:HBP 与 HFP
水平时序控制每一行像素从扫描结束到下一行开始的间隔。在行同步信号(HSYNC)的触发下,显示驱动 IC 需要时间完成行数据锁存、电荷重分配和像素充电。
关键物理行为: HBP 和 HFP 共同决定了行扫描的“回扫”与“预充电”窗口,直接影响像素充电时间和行间串扰抑制能力。
4.1.1 HBP(Horizontal Back Porch)—— 水平后肩
- 定义: 从行同步信号(HSYNC)结束到有效像素数据开始之间的时钟周期数。
- 物理意义: 为行驱动电路提供“恢复时间”,确保上一行数据完全锁存、电荷共享完成,同时为下一行像素的栅极开启做准备。
- 驱动移植影响: HBP 过短会导致行间串扰(水平拖影);HBP 过长会压缩有效像素传输窗口,降低帧率上限。
4.1.2 HFP(Horizontal Front Porch)—— 水平前肩
- 定义: 从有效像素数据结束到下一个行同步信号(HSYNC)开始之间的时钟周期数。
- 物理意义: 为行扫描提供“缓冲间隙”,防止数据溢出,同时允许源极驱动器完成当前行数据的最后稳定。
- 驱动移植影响: HFP 不足会导致行同步信号与数据信号冲突,出现行错位或闪烁。
移植经验: 在更换主控平台(如从 STM32 切换到 i.MX RT)时,HBP 和 HFP 的绝对值需要根据新平台的 LCDC 时钟频率重新计算。通常保持 HBP:HFP = 2:1 的比例较为安全。
4.2 垂直时序:VBP 与 VFP
垂直时序控制每一帧图像从扫描结束到下一帧开始的间隔。在帧同步信号(VSYNC)的触发下,显示面板需要时间完成帧存储电容的放电、栅极驱动器的逐行关闭以及下一帧的预充电。
4.2.1 VBP(Vertical Back Porch)—— 垂直后肩
- 定义: 从帧同步信号(VSYNC)结束到第一行有效像素数据开始之间的行数。
- 物理意义: 为帧驱动电路提供“帧恢复时间”,确保上一帧的栅极电压完全撤除,防止残影残留。
- 驱动移植影响: VBP 不足会导致上一帧的电荷残留,表现为“帧间拖影”或“重影”。在 EPD(电子纸)驱动中,VBP 还用于全局刷新时的栅极预充电。
4.2.2 VFP(Vertical Front Porch)—— 垂直前肩
- 定义: 从最后一行有效像素数据结束到下一个帧同步信号(VSYNC)开始之间的行数。
- 物理意义: 为帧扫描提供“帧缓冲间隙”,允许显示控制器完成帧数据的最后处理,同时为下一帧的 VSYNC 做准备。
- 驱动移植影响: VFP 过短会导致帧同步信号与数据流冲突,出现帧撕裂(Tearing)或画面抖动。
移植陷阱: 某些新平台(如 ESP32-S3)的 LCDC 控制器对 VBP 和 VFP 的最小值有硬件限制。如果移植时直接沿用旧平台的时序值,可能导致帧同步信号无法被正确识别,表现为黑屏或花屏。
4.3 时序参数对比与移植适配表
| 参数 | 单位 | 物理意义 | 过短风险 | 过长风险 | 移植适配要点 |
|---|---|---|---|---|---|
| HBP | PCLK 周期 | 行同步后恢复时间 | 水平拖影、行间串扰 | 压缩有效像素窗口 | 根据新平台 PCLK 频率等比缩放 |
| HFP | PCLK 周期 | 行扫描缓冲间隙 | 行错位、数据冲突 | 降低行扫描效率 | 保持 HBP:HFP ≈ 2:1 |
| VBP | 行数 | 帧同步后恢复时间 | 帧间残影、重影 | 降低帧率上限 | EPD 驱动需额外增加 2-4 行 |
| VFP | 行数 | 帧扫描缓冲间隙 | 帧撕裂、画面抖动 | 增加帧延迟 | 检查新平台 VSYNC 最小间隔 |
4.4 全局刷新中的时序协同
在 EPD 全局刷新场景中,HBP/HFP/VBP/VFP 的协同作用更加复杂。全局刷新通常包含多个子阶段:擦除(Erase)、写入(Write)、保持(Hold)。每个子阶段对时序参数的要求不同:
- 擦除阶段: 需要较大的 VBP 来确保所有像素完全放电,防止电荷残留。
- 写入阶段: 需要精确的 HBP 和 HFP 来保证像素充电时间一致,避免灰度不均匀。
- 保持阶段: 需要足够的 VFP 来维持像素电压稳定,等待下一帧的 VSYNC。
LUT 优化关联: 时序参数直接影响 LUT(查找表)中每个电压波形的持续时间。在移植时,如果新平台的 PCLK 频率发生变化,必须同步调整 LUT 中的时间步长(Time Step),否则会导致波形畸变。
4.5 移植时的时序计算示例
假设旧平台使用 PCLK = 10 MHz,HBP = 20 个 PCLK 周期。新平台 PCLK = 16 MHz,则 HBP 的绝对时间不变原则下,新 HBP 值计算如下:
旧 HBP 时间 = 20 / 10 MHz = 2.0 µs
新 HBP 值 = 2.0 µs × 16 MHz = 32 个 PCLK 周期
同理,VBP 和 VFP 的行数通常保持不变,但需要根据新平台的帧率要求重新验证消隐区占比:
总行数 = VBP + Active Lines + VFP
消隐区占比 = (VBP + VFP) / 总行数 × 100%
建议消隐区占比:5% ~ 15%
移植检查清单:
- 确认新平台 LCDC 的 PCLK 频率范围。
- 根据绝对时间不变原则重新计算 HBP 和 HFP。
- 验证 VBP 和 VFP 是否满足新平台的最小硬件限制。
- 在全局刷新模式下,检查擦除/写入/保持各阶段的时序适配性。
- 同步更新 LUT 中的时间步长参数。