这回我再讲讲从 MCU 到 LCD 之间是怎样一个控制流程,即我们的位图数据是怎样显示到 LCD 上的。前面我们了解到 LCD 显示是用动态扫描的方式来实现的,每次显示一整行,在一帧里每行一次扫描一遍,这样要有电路来控制行和列上的输出电压,这种电路就是 LCD 驱动器;而驱动器的输出又跟图像及 LCD 的工作方式是相关的,驱动器需要接受从图像转换来的控制信号,从而改变行/列上的输出电压,将工作方式及图像位图转换成控制信号的电路就是控制器。控制器 从 MCU 接收位图数据,然后把它转换成控制信号提供给驱动器。对于小分辨率的 LCD,驱动器和控制器通常是直接集成在一个 IC 上的,而大尺寸的 LCD,驱动器和控制器则是分开的,并且一般行驱动器和列驱动器也是分开的。那么控制器和驱动器之间到底是怎样连接的呢?我们来看看下图:
此主题相关图片如下:
YD 是帧同步信号,LP 是行同步信号,DATA 是列驱动的数据总线,用来传送列上的输出数据(0 或 1),XCLK 是移位时钟,每跳变一次时 DATA 上传送一次数据,DOFF#是关闭输出信号。以 640x480 的单色屏为例,640 个列输出,对应 640 个位的输出, 80 字节,即也就是每行扫描,列上需要的数据为 80 字节。假设列驱动器使用 8 位数据线,那么 80 字节需要 80 个 XCLK 时钟。这些信号,均由控制器驱动,仍以 640x480 的单色显示为例,驱动器为 8 位总线,则每帧开始时控制器连续输出 80 个 XCLK,并将第一行的数据输出,列控制器在每个 XCLK 时将数据锁存,然后控制器在 YD 上输出一个脉冲,行驱动器复位,准备从第一行输出,控制器在 LP 上输出一个脉冲,列驱动器复位,将刚才锁存的数据输出,同时行驱动器也从第一行输出,于是第一行便显示了,接着控制器再输出第二行的数据,然后再输出一个 LP,于是第二行便显示,依次类推,直到第 480 行后又输出一个 YD 回到第一行,即开始了第二帧的扫描。由此可见,驱动器的输出,完全由控制器的时序和数据决定。对于控制器和驱动器分离的系统,驱动器无法得知当前的显示特 性,如单色还是灰度或者彩色,颜色深度是多少等等,所以在这样的系统上,灰度/彩色只能用 FRC 的方式来实现,因此一般单独的通用控制器,工作频率都相当高。达到几十兆,对于像电脑显示屏这样的大尺寸,甚至达到几百兆。