2、时序基础概念:行同步(Hsync)、场同步(Vsync)、数据使能(DE)、像素时钟(PCLK)

各位同学,今天我们来聊聊显示驱动里最基础、也最绕不开的四个信号。说实话,我刚入行那会儿,觉得这四个信号不就是几个方波嘛,有啥好研究的?直到第一次调屏,画面撕裂、闪烁、偏移全来了,我才意识到——时序这东西,差一个时钟周期都不行。

行同步、场同步、数据使能、像素时钟,这四个信号构成了显示驱动的心脏。你想想看,显示器要显示一帧画面,本质上就是把这些信号按照严格的时序关系,一像素一像素、一行一行、一帧一帧地送出去。任何一个信号出了问题,画面就会出问题。

2.1 像素时钟(PCLK)—— 节奏的节拍器

像素时钟是所有时序信号的基准。说白了,它就是整个数据传输系统的节拍器。每个PCLK的上升沿或下降沿,对应传输一个像素的数据。

我在项目中遇到过一个问题:客户要求支持4K@60Hz,我算了一下,像素时钟需要大约594MHz。结果选了个便宜的FPGA,时序跑不到那么高,画面就开始出现随机噪点。后来换了更高等级的芯片才解决。

像素时钟的计算公式很简单:

PCLK = H_total × V_total × Refresh_Rate

其中:

  • H_total:一行总像素数(包括消隐区)
  • V_total:一帧总行数(包括消隐区)
  • Refresh_Rate:刷新率(如60Hz、120Hz、240Hz)

关键点:这里用的是总像素数和总行数,不是有效分辨率。很多人算错就是因为用了1920×1080,忘了加消隐区。

举个例子,1080p@60Hz,典型时序参数:

参数
有效像素 1920
行消隐 280
H_total 2200
有效行数 1080
帧消隐 45
V_total 1125
PCLK 2200 × 1125 × 60 ≈ 148.5 MHz

我的习惯:设计时我会给PCLK留10%-15%的余量。因为PCB走线、温度变化都会影响时钟质量。余量不够,量产时就会出问题。

2.2 行同步(Hsync)—— 每行的起点信号

行同步信号告诉显示器:新的一行要开始了。它是一个脉冲信号,通常低电平有效。每个Hsync脉冲之间,就是一行完整的数据传输时间。

Hsync的时序参数包括:

  • HSYNC_WIDTH:同步脉冲宽度
  • H_BACK_PORCH:后肩(同步脉冲结束到有效数据开始)
  • H_ACTIVE:有效数据区域
  • H_FRONT_PORCH:前肩(有效数据结束到下一个同步脉冲)

嗯,这里要注意:前肩和后肩的分配不是随便来的。我记得有一次调试一块OLED屏,画面左侧总有一条暗线。查了半天,发现是后肩设得太短,像素数据还没稳定就开始采样了。把后肩从10个时钟增加到20个,问题就解决了。

避坑指南:我曾经因为Hsync的极性搞反,画面整体偏移了半个屏幕。检查了三天才发现是寄存器配置错了。所以,拿到屏的规格书,第一件事就是确认Hsync和Vsync的极性——高有效还是低有效,千万别想当然。

2.3 场同步(Vsync)—— 帧的开关

场同步,也叫帧同步,它标志着一帧画面的开始和结束。Vsync的周期决定了刷新率。比如60Hz的刷新率,Vsync周期就是16.67ms。

Vsync的时序结构和Hsync类似:

  • VSYNC_WIDTH:帧同步脉冲宽度
  • V_BACK_PORCH:帧后肩
  • V_ACTIVE:有效行数
  • V_FRONT_PORCH:帧前肩

你想想看,如果Vsync不稳定,画面就会抖动。高刷新率显示器对Vsync的抖动要求特别严格。我做过一个240Hz的项目,Vsync的抖动必须控制在±1个像素时钟以内,否则画面就会出现肉眼可见的撕裂。

核心要点:Vsync和Hsync是层级关系——Vsync决定帧,Hsync决定行。一个Vsync周期内,包含多个Hsync周期。这个层级关系,是理解显示时序的基础。

2.4 数据使能(DE)—— 有效数据的闸门

数据使能信号,说白了就是告诉接收端:现在线上传输的是有效像素数据,不是消隐区的垃圾数据。DE高电平时,数据线上的RGB值才是有效的。

DE信号的好处是:接收端不需要去数Hsync和Vsync的脉冲个数,只要看DE就行。这大大简化了接收端的逻辑设计。

但DE信号也有坑。我遇到过一个问题:DE的上升沿和PCLK的边沿对齐不好,导致第一个像素的数据被采样到上一行的末尾。画面顶部就会出现一条错位的像素线。解决方案是调整DE的建立时间和保持时间,确保它和PCLK的时序关系正确。

DE、Hsync、Vsync三者的关系,可以用下面这张图来表示:

显示时序信号关系图 Vsync 帧同步脉冲 Hsync 行同步脉冲(每行一个) DE 有效数据区域(每行) PCLK 像素时钟(每个上升沿传输一个像素) DE有效时,PCLK传输像素数据 Vsync Hsync DE PCLK

2.5 四个信号的协同工作

这四个信号不是各自为政的。它们必须协同工作,才能正确传输一帧画面。我总结了一个简单的理解方式:

  • PCLK 是心跳,决定数据传输的节奏
  • Hsync 是换行符,告诉接收端新行开始
  • Vsync 是翻页键,告诉接收端新帧开始
  • DE 是闸门,告诉接收端哪些数据是有效的

实际调试中,我一般会先确认PCLK的频率和稳定性,然后用示波器看Hsync和Vsync的波形,最后检查DE和数据的对齐关系。这个顺序能最快定位问题。

我的调试经验:如果画面出现条纹、偏移、闪烁,先别急着改代码。用示波器抓一下这四个信号的波形,对比规格书里的时序图,往往一眼就能看出问题。硬件问题用硬件手段解决,比瞎猜代码快得多。

好了,这四个基础信号就讲到这里。理解它们,是理解后续所有显示时序知识的前提。下一节我们会深入讨论消隐区的设计,以及如何利用消隐区做更多事情。


公众号:蓝海资料掘金营,微信deep3321