这篇博客的目的
1、了解显示器上数据的组织格式;
2、掌握TFT LCD时序分析;
3、了解3种显色模式,图像数据的储存格式;
4、掌握TFT LCD 寄存器的设置
一、首先朝着第一个目的,了解显示器上数据的组织格式
显示器上的数据显示格式,我从帧的概念、显示器显示原理、显示器频率和有效数据这四个方面说明
1>什么是帧
1幅图象=1帧, 每帧由n行组成,每行由n个像素组成,每个像素(颜色)由n位数据位表示
2>显示器的显示原理
首先看一下图
显示器先从左上方第一行开始,然后由左往右取得每个像素的数据并显示出来,第一行显示完后就跳到下一行继续显示,等到所有行显示完后,跳到左上方开始下一帧。总是显示器的显示路线是“Z”型的。而HSYNC VSYNC 是控制路线跳转的,比如由第一行末尾跳到第二行开始的地方。HSYNC 表示跳转到最左边的时候;VSYNC表示跳转到最上边的时候。
3>显示器的频率
VSYNC 信号出现的频率表示 1秒钟能显示多少帧图像,成为垂直频率或场频率,也称显示器频率。
HSYNC 信号出现的频率 成为 水平频率。
4>有效数据
有效数据的行数、列数,称为分辨率,由上图中 ,y行,x列所囊括的面积几位有效数据区域。
二、朝着第二个目的,掌握TFT LCD时序分析
1.上时序图,可对应上图13.2分析
首先从帧开始 也就是上图中 1 Frame的上半部分
1>VSYNC 表示一帧数据的开始
2>VSPW 表示VSYNC信号脉冲宽度为(VSPW+1)个HSYNC信号周期,此时(VSPW+1)行数据无效
3>VSYNC信号脉冲发出后,还要经过(VBPD+1)个HSYNC信号周期,此时(VBPD+1)行数据无效,所以VSYNC脉冲发出后还要等(VSPW+1+VBPD+1)行后,有效行才开始出现。
4>(LINEVAL+1)就是连续行的有效数据
5>(VFPD+1)就是有效数据后的无效行,表示数据无效。
经过上面五个步骤之后,一帧数据就传输完成了,随即进入下一帧。
然后从一行中的像素数据传输开始,与帧数据传输类似
1>HSYNC表示一行数据开始
2>HSPW表示HSYNC信号脉冲为(HSPW+1)个VCLK信号周期,即(HSPW+1)个像素,这个像素数据无效。
3>HSYNC信号脉冲发出后,还要经过(HBPD+1)个VCLK信号周期,有效数据(像素)才会出现。
4>(HOZVAL+1)表示连续的像素,经过(HBPD+1)个VCLK信号周期后,有效像素才会出现。
5>(HFPD+1)在连续像素数据位结束后发出。
2.VCLK为时序图的基准信号,计算公式如下:
VCLK(Hz) = HCLK / [(CLKVAL+1)*2] CLKVAL在LCDCON1寄存器中设置
3.VSYNC信号的频率被称为 帧频率、垂直频率、场频率、显示器的频率,计算公式如下:
FRAME RATE = 1 /[ { (VSPW+1) +(VBPD+1) + (LINEVAL+1) + (VFPD+1) } * { (HSPW+1) + (HBPD+1) + (HOZVAL+1) + (HFPD+1) } * { 2 * (CLKVAL+1) / (HCLK) }]
三、首先朝着第三个目的,了解3种显色模式,图像数据的储存格式
1.显色原理
显示器上的像素是通过3原色组成的:RED, GREEN, BLUE
2. 16M(24BPP)色
16M(24BPP)色的显示模式用24位数据表示一个像素,每种原色占8位
LCD控制器获得24位像素的颜色值后,通过VD[23:0]发送给LCD
内存中,用4个字节,也就是32位来表示一个像素,其中3个字节由高到低位表示红、绿、蓝,另外一个字节数据无效,而无效数据在最地位还是最高位是可以选择的。如下图所示。
3. 64K(16BPP)色
64K(16BPP)色的显示模式用16位数据表示一个像素,16位的数据格式分为两种情况:5:6:5,前5位表示红色,中间6位表示绿色,后6位表示蓝色;5:5:5:1,前5位表示红色,接着5位表示绿色,接着5位表示蓝色,最后一位表示透明度。
4个字节可以表示2个16BPP的像素,像素在高位表示还是地位表示是可以选择的。如下图,在5:5:5:1,情况下,透明度数据位是相同的,“NC”表示没有连接。
3. 256(8BPP)色
256(8BPP)显示模式就是用8位数据来显示1个像素的颜色。
平均下来,原色的显示位数3位都不到,这不足以显示更丰富的颜色。
用调色板解决8BPP的显色能力弱的问题,此时每个像素对应的8位数据不再是RGB三原色,而是索引值。
调色板是块内存,显色时,使用索引值获得调色板对应的RGB值。
调色板的数据存放格式与16BPP显示模式相似,用5:6:5 或 5:5:5:1
4个字节的数据可以表示4个8BPP的像素,像素和字节的位置是可以选择的,如下图。
四、朝着第四个目的,掌握TFT LCD 寄存器的设置
LCD控制器中GEGBANK有17个寄存器,分为6种,一般情况只用两种
LCDCON1 ~ LCDCON5 LCDSADDR ~ LCDSADDR3
1>LCDCON1
作用:选择LCD类型、设置像素时钟、使能LCD信号输出
2>LCDCON2
作用:设置垂直方向各信号的时间参数
3>LCDCON3
作用:设置水平方向各信号的时间参数
4>LCDCON4
作用:对于TFT LCD,这个寄存器用来设置HSYNC 信号脉冲宽度,位[7:0]的数值称为HSPW,表示脉冲宽度(HSPW+1)个VCLK周期
5>LCDCON5
作用:设置各个控制信号的极性,并可从中读到一些状态信息,比如在TFT LCD时序图中,VSYNC是高电平有效,而在AT043TN24 V.1 TFT LCD中,Vsync是低电平有效,如下图,因此要用到极性反转,因此LCDCON5[8] = 1 。
6>帧内存地址寄存器 LCDSADDR1~LCDSADDR3
帧内存可以很大,LCD真正显示的区域被称为视口(VIEW POINT),它处于帧内存之内,这三个寄存器用来确认帧内存的起始地址,定位视口在帧内存中的位置。