3. 时序参数详解(下):VFP、VBP、Vsync 的定义与作用

在垂直方向(帧)的时序中,Vsync(垂直同步信号)、VFP(垂直前肩)和VBP(垂直后肩)共同决定了每一帧图像从结束到下一帧开始之间的“消隐”行为。这三个参数直接影响面板的刷新同步、数据锁存时机以及帧率稳定性。

3.1 垂直同步信号(Vsync)

Vsync 是一个脉冲信号,用于标识一帧画面的开始。在 Vsync 有效期间(通常为低电平有效),LCD 驱动 IC 会复位行指针并准备接收下一帧的像素数据。

  • 作用:帧同步触发,确保每帧数据从第 0 行开始。
  • 单位:行数(H)或像素时钟周期数。
  • 典型值:1 ~ 10 行(取决于 Panel 规格书)。
  • 常见问题:Vsync 脉宽过短可能导致帧同步不稳定,出现画面抖动或撕裂。
调试提示:使用示波器测量 Vsync 引脚时,应确认其有效电平极性(上升沿触发还是低电平有效)。多数 RGB 接口 Panel 使用低电平有效 Vsync。

3.2 垂直前肩(VFP)

VFP 是指在一帧的最后一个有效行数据发送完成后,到下一个 Vsync 脉冲开始之间的行数。这段时间用于等待扫描电子束(CRT 遗留概念)或 LCD 驱动 IC 完成内部行缓存刷新。

  • 作用:提供帧结束后的消隐缓冲,防止上一帧数据干扰下一帧。
  • 单位:行数(H)。
  • 典型值:2 ~ 10 行。
  • 常见问题:VFP 设置过小可能导致帧尾像素被截断或出现残影。

3.3 垂直后肩(VBP)

VBP 是指 Vsync 脉冲结束后,到第一行有效像素数据开始输出之间的行数。这段时间用于驱动 IC 内部行地址复位、PLL 锁定或电荷泵稳定。

  • 作用:提供帧起始前的稳定时间,确保第一行数据正确锁存。
  • 单位:行数(H)。
  • 典型值:2 ~ 20 行。
  • 常见问题:VBP 不足会导致屏幕顶部出现水平条纹或花屏。

3.4 垂直时序参数对比表

参数 全称 位置 主要作用 典型范围(行)
Vsync 垂直同步信号 帧起始脉冲 帧同步触发,复位行指针 1 ~ 10
VBP 垂直后肩 Vsync 之后,有效数据之前 稳定驱动 IC,准备第一行数据 2 ~ 20
VFP 垂直前肩 有效数据之后,下一个 Vsync 之前 帧结束消隐,防止数据干扰 2 ~ 10

3.5 垂直时序结构图

下图展示了一帧画面中 Vsync、VBP、有效数据行、VFP 的完整时序关系:

垂直时序结构图(一帧) Vsync t0 VBP t1 有效数据行 (YRES 行) t2 VFP t3 Vsync t4 帧同步脉冲 后肩消隐 前肩消隐 一帧总行数 = Vsync + VBP + YRES + VFP

3.6 垂直时序计算公式

一帧的总行数(Frame Total Lines)决定了实际的帧刷新率:

FrameTotalLines = Vsync + VBP + YRES + VFP

实际帧率 = PixelClock / (HTotal × FrameTotalLines)

其中:
  YRES  = 面板垂直分辨率(如 1080)
  HTotal = 水平总像素(Hsync + HBP + XRES + HFP)
案例: 假设 PixelClock = 148.5 MHz,HTotal = 2200,FrameTotalLines = 1125(Vsync=3, VBP=20, YRES=1080, VFP=22),则实际帧率 = 148.5e6 / (2200 × 1125) ≈ 60.0 Hz。

3.7 常见配置错误与排查

  • VFP 过小:屏幕底部出现残影或滚动条纹,因为上一帧数据未完全清除。
  • VBP 过小:屏幕顶部出现水平噪点或花屏,驱动 IC 未完成初始化。
  • Vsync 脉宽不足:帧同步丢失,画面随机撕裂或黑屏闪烁。
  • 三者之和过大:帧率降低,可能导致显示卡顿或带宽浪费。
重要提醒:不同 Panel 厂商对 Vsync、VBP、VFP 的命名和极性定义可能不同。务必以 Panel 数据手册(Datasheet)中的时序图为最终依据,不要直接套用其他型号的配置。

3.8 垂直时序参数配置流程

  1. 从 Panel 数据手册中获取 Vsync、VBP、VFP 的最小值、典型值和最大值。
  2. 根据目标帧率(如 60 Hz)和 PixelClock 计算 FrameTotalLines 是否在允许范围内。
  3. 优先使用典型值(Typical)进行初始化,避免使用极限值。
  4. 在驱动代码中配置对应的寄存器(如 VSYNC_WIDTH、VBP_CNT、VFP_CNT)。
  5. 上电后通过示波器测量 Vsync 引脚波形,验证帧周期是否符合预期。
  6. 观察屏幕显示是否完整、无抖动、无条纹,必要时微调 VBP 或 VFP。

3.9 垂直时序参数配置示例(RGB 接口)

/* 以 1920x1080@60Hz 为例 */
#define VBP    20      /* 垂直后肩:20 行 */
#define VFP    22      /* 垂直前肩:22 行 */
#define VSW    3       /* Vsync 脉宽:3 行 */
#define YRES   1080    /* 垂直分辨率 */

/* 帧总行数 */
#define FRAME_TOTAL_LINES  (VSW + VBP + YRES + VFP)  /* = 1125 */

/* 写入 LCD 控制器寄存器 */
LCD_REG[VSYNC_WIDTH] = VSW - 1;   /* 硬件通常从 0 计数 */
LCD_REG[VBP_CNT]     = VBP - 1;
LCD_REG[VFP_CNT]     = VFP - 1;
调试技巧:如果屏幕顶部出现异常,优先增加 VBP;如果屏幕底部出现异常,优先增加 VFP。每次调整以 1~2 行为步进,避免大幅改动导致帧率偏移。