主流的显示器:TN。STN。TFT
目前应用最广泛的是TFT型LCD:
特性:
1.最大色彩1667万
2.效果比STN更佳
3.画面对比度高
4.反应速度快
LCD屏需要专门的LCD驱动器,一般厂商会将LCD驱动器和LCD显示屏做在一起,并提供相应的接口。以16位LCD为例,一般会提供40 pins。
LCD的显示分为三个部分
LCD控制器,产生像素时钟,各种信号
LCD驱动器,接受数据,并控制LCD显示屏灯管亮度
LCD显示器,纯电气相关,根据电平不同显示不同色彩
驱动程序所做的工作就是匹配LCD控制器和LCD驱动器时序,及色彩的传输
关于LCD屏的参数:
经常提到的是,分辨率和尺寸。
分辨率:LCD的水平和垂直方向的像素点,比如320X240 800*480,
尺寸:单位是英寸,表示LCD屏对脚线长度
色彩位:16bpp,24bpp, 表示每个像素点的色彩有多少位,比如常见的RGB565,RGB24。位宽越大色彩越真。
分辨率越大尺寸越小,那么图像显示更加清晰,色彩位宽越大,图像色彩越真。
TFT LCD操作有两种时序操作,分为HV和DE模式,但大多数MCU提供的LCD控制器只支持HV模式,这也是典型的操作模式。
TFT典型时序如下:
信号说明:
D0~D15 数据线
HSYNC 水平同步
VSYNC 垂直同步,帧同步
PIXCLK 像素时钟,传输一个像素点的时钟频率。
LCD数据扫描的方式和CRT显示器相似,实际显示的图像比传输的数据要小,这源于CRT电子枪每扫完一行或帧时需要偏转到行的起始位置,这需要一定时间,
而同步这段时间的时序通常叫做水平前沿水平后沿以及垂直上沿后垂直下沿,熟悉CRT显示屏的同学应该清楚,另外还有逐行扫描和隔行扫描等概念,LCD是逐行扫描。
HSYNC信号每产生一个脉冲,表示一行数据传输的开始
VSYNC信号每产生一个脉冲,表示一帧数据传输的开始
结合这幅图更形象的描述一次图像的传输,以LCD左上角作为显示起始地址,以从左往右,从上到下的方向扫描(顺序可以通过LCD驱动器配置),首先VSYNC信号产生,然后HSYNC信号产生,扫秒一行数据,
在这一行中包含水平后沿,数据,水平前沿,但实际上这一行数据仍处在垂直后沿这段里,是同步时序,是不会真正被显示到LCD的,然后HSYNC继续产生扫描一行,直至垂直后沿
(帧同步)结束,下一个HSYNC产生的数据才会被显示到LCD屏上。同样,其他方向也是扫描。
那么,现在试着计算LCD显示所需的各种参数
参数:
HBP水平后沿
HFB水平前沿
HSPW 水平同步宽度(在同步之前需要几个时钟)
VBP垂直后沿
VFP垂直前沿
VSPW 垂直同步宽度
PIXCLK 像素时钟频率
以上这些参数表示占用多少个像素时钟。
LINEVAL 水平像素点
HOZVAL 垂直像素点
那么,
HSYNC行时钟:(HBP+HFP+HSPW+LINEVAL)*(1/PIXCLK)
VSYNC帧时钟:(VBP+VFP+VSPW+HOZVAL)*行时钟
那么扫描一帧数据所需的时钟就是=(VBP+VFP+VSPW+HOZVAL)*(HBP+HFP+HSPW+LINEVAL)* (1/PIXCLK)
那么1s内就可以刷新1/(VBP+VFP+VSPW+HOZVAL)*(HBP+HFP+HSPW+LINEVAL)* PIXCLK 帧
以微秒作为单位:10^6/(VBP+VFP+VSPW+HOZVAL)*(HBP+HFP+HSPW+LINEVAL)* PIXCLK
这里以群创AT070TN83为例,根据datasheet可以得到
推荐HSYNC等于1056,VSYNC=635
帧时钟=(1056*635)*(1/PIXCLK)=1/帧频率==>帧频率=PIXCLK/(1065*635)=59Hz,也就是一秒刷新59帧数据
其他参数
VFP=132,VBP=22,VPW=1, HBP=45, HFP=210, HPW=1
假设这里以800*480作为LINEVAL,HOZVAL,那么像素时钟可以这样计算。
(800*480)*59=PIXCLK
像素频率计算小技巧:
不管采用哪种分辨率,同步信号数量,帧频率总是相同的,即每秒刷新的次数总是一样的,一次刷新时间总是一样。
那么当分辨率越小时,则像素时钟频率就会越小,像素时钟越大
分辨率越大时,需要扫描的点多了,那么刷每个点的频率就会越大,像素时钟就越小,就像现在的电视,不管多大的尺寸,
每秒中都是刷新的24张画面,屏幕越大,对应每个点用的时间就越小,像素时钟就越大。
当然还有另外的算法,以一秒作为时间基准:
1q=59*(132+22+1+800)*(45+210+1+480)*PIXCLK
像素时钟频率=1/PIXCK
关于CRT扫描:
电视在显示图像的时候,把一帧分成了两场来显示,一个场由帧中的奇数行组成,叫做奇场;另一个场由帧中的偶数行组成,叫做偶场。之所以要这样做,主要是因为在CRT显像管上每秒钟显示25帧图像时,人眼感觉到连续性还是不太好,而且还有明显的闪烁,一帧分成两场后,场频为50Hz,图像更加连续一些。当然还有一些别的原因。
而扫完一场后,回到开始处从新扫描的过程叫做回扫,也即场消隐(field blanking)。同样的也有行消隐(line blanking)。消隐时间 = 同步前沿 + 同步时间 + 同步后沿,
现在的LCD显示器为了兼容这种场扫描模式,也采用消隐的做法。不同于CRT显示一帧画面的方式,CRT分两场扫描,而现在的LCD显示一帧只需要扫描一次。
基本的概念没变,只是换成了把行,场(line,field)换成了水平,垂直Horizontal、vertical。