2. 时序参数详解(上):HFP、HBP、Hsync 的定义与作用
在 LCD 驱动开发中,水平时序(Horizontal Timing)决定了每一行像素数据从传输到显示完成的完整时间窗口。理解 HFP、HBP 和 Hsync 这三个核心参数,是正确配置 TFT 面板驱动 IC 的基础。本节将逐一拆解它们的定义、作用以及配置不当带来的典型问题。
2.1 水平同步信号(Hsync)
Hsync(Horizontal Sync,水平同步信号)是行扫描的起始标志。当驱动 IC 检测到 Hsync 脉冲时,表示新的一行像素数据即将开始传输。Hsync 通常为低电平有效脉冲,其宽度由 Hsync Width(Hsync 脉宽) 参数定义。
关键作用: Hsync 是行与行之间的“分隔符”,确保每行数据从正确的时刻开始采样。如果 Hsync 脉宽过短或电平不稳定,会导致整行像素偏移或显示错位。
2.2 水平前肩(HFP)
HFP(Horizontal Front Porch,水平前肩)是指在一行有效像素数据传输结束之后,到下一个 Hsync 脉冲开始之前的空白周期。这段时间内不传输任何有效像素数据,仅用于等待下一个同步信号。
- 位置: 有效数据结束 → Hsync 开始
- 单位: 像素时钟周期(DCLK)
- 典型值范围: 2 ~ 100 个 DCLK
- 作用: 为行数据结束提供缓冲,防止数据溢出;同时给面板驱动 IC 留出准备接收下一行同步信号的时间。
常见陷阱: HFP 设置过小会导致行数据尾部被截断,表现为屏幕右侧出现垂直条纹或图像右边缘缺失。HFP 设置过大则会浪费带宽,降低刷新率上限。
2.3 水平后肩(HBP)
HBP(Horizontal Back Porch,水平后肩)是指 Hsync 脉冲结束之后,到第一列有效像素数据开始之前的空白周期。这段时间用于让面板驱动 IC 完成行同步后的内部复位与准备。
- 位置: Hsync 结束 → 有效数据开始
- 单位: 像素时钟周期(DCLK)
- 典型值范围: 2 ~ 100 个 DCLK
- 作用: 确保 Hsync 脉冲结束后,驱动 IC 有足够时间稳定内部状态,再开始采样第一列像素数据。
调试经验: 当屏幕左侧出现黑边或图像左移时,通常需要增大 HBP 值。当屏幕左侧出现噪点或颜色异常时,可能是 HBP 过小导致驱动 IC 尚未稳定就开始采样。
2.4 水平时序参数对比
| 参数 | 全称 | 位置关系 | 典型范围(DCLK) | 异常表现(过小) | 异常表现(过大) |
|---|---|---|---|---|---|
| Hsync | 水平同步信号脉宽 | HFP 之后,HBP 之前 | 1 ~ 40 | 行同步不稳定,图像抖动 | 浪费带宽,降低刷新率 |
| HFP | 水平前肩 | 有效数据之后,Hsync 之前 | 2 ~ 100 | 右侧图像缺失/垂直条纹 | 行周期过长,刷新率下降 |
| HBP | 水平后肩 | Hsync 之后,有效数据之前 | 2 ~ 100 | 左侧图像缺失/噪点 | 左侧黑边,带宽浪费 |
2.5 水平时序结构图
下图展示了一行完整的水平时序结构,包含 Hsync 脉冲、HBP、有效像素数据区域和 HFP 的相对位置关系。
2.6 水平时序配置示例
以下是一个典型的 1024×600 分辨率 TFT 面板的水平时序配置代码片段,使用 DCLK 作为时间单位。
/* 水平时序配置参数(单位:DCLK) */
#define HACTIVE 1024 /* 水平有效像素数 */
#define HSYNC_WIDTH 20 /* Hsync 脉宽 */
#define HBP 60 /* 水平后肩 */
#define HFP 40 /* 水平前肩 */
/* 计算一行总周期 */
#define H_TOTAL (HACTIVE + HSYNC_WIDTH + HBP + HFP) /* = 1144 DCLK */
/* 配置驱动 IC 寄存器(伪代码示例) */
void lcd_horizontal_timing_config(void)
{
write_reg(0x00, HACTIVE - 1); /* 水平有效像素 - 1 */
write_reg(0x01, HSYNC_WIDTH - 1); /* Hsync 脉宽 - 1 */
write_reg(0x02, HBP - 1); /* 水平后肩 - 1 */
write_reg(0x03, HFP - 1); /* 水平前肩 - 1 */
}
配置要点:
- 大多数 LCD 驱动 IC 的寄存器值需要 减 1 写入(因为硬件从 0 开始计数)。
- Hsync 脉宽通常设置为 1 ~ 40 个 DCLK,过宽会压缩有效数据时间。
- HBP 和 HFP 的最小值由面板数据手册规定,通常不低于 2 个 DCLK。
- 调整 HBP/HFP 时,需同步检查刷新率是否仍在目标范围内。
2.7 常见问题与调试建议
- 图像整体左移或右移: 优先调整 HBP(左移)或 HFP(右移),每次增减 1~2 个 DCLK 观察效果。
- 屏幕一侧出现垂直条纹或噪点: 检查 HBP 或 HFP 是否过小,导致驱动 IC 在非稳定区间采样。
- 刷新率不达标: 计算 H_Total 是否过大,适当减小 HBP、HFP 或 Hsync 脉宽。
- 行同步丢失或图像撕裂: 确认 Hsync 脉宽是否满足面板最小要求,同时检查信号电平极性配置。
重要提醒: 不同面板厂商对 HFP/HBP 的命名可能不同(例如有的称为“HFP + HBP = HBlank”),务必以数据手册中的时序图为最终依据。切勿直接套用其他面板的配置值而不做验证。