2013年(11)
分类: LINUX
2013-08-24 22:26:12
LCD显示器的种类很多,嵌入式中常用的有STN,TFT。
显示器上数据的组织格式
一幅图像被称为一帧,每帧由多行组成,每行由多个像素组成,每个像素的颜色使用若干位的数据来表示。对于单色显示器,每个像素使用1位来表示,称为1BPP;对于256色显示器,每个像素使用8位来表示,称为8BPP。
显示器沿着“Z”字行的路线进行扫描,使用HSYNC、VSYNC信号来控制扫描路线的跳转,HSYNC表示“是跳到最左边的时候了”,VSYNC表示“是跳到最上边的时候了”。
基于TFT LCD来介绍LCD控制器的使用。对于STN LCD,它所涉及的操作时类似的。
下面讲解时序图,请参考上图。
(1)VSYNC信号有效时,表示一帧数据的开始。
(2)VSPW表示VSYNC信号脉冲宽度为(VSPW+1)个HSYNC信号周期,即(VSPW+1)行,这(VSPW+1)行的数据无效。
(3)VSYNC信号脉冲后,还要经过(VBPD+1)个HSYNC信号周期,有效的行数据才出现。所以,在VSYNC信号有效之后,总共还要经过(VSPW+1+VBPD+1)个无效的行。
(4)随后即连续发出(LINEVAL+1)行的有效数据。
(5)最后是(VFPD+1)个无效行。完整的一帧结束,紧接着就是下一个帧的数据了。
现在深入到一行中像素数据的传输过程,它与上面行数据的传输过程相似。
(2)HSPW表示HSYNC信号的脉冲宽度为(HSPW+1)个VCLK信号周期,即(HSPW+1)个像素,这(HSPW+1)个像素的数据无效。
(3)HSYNC信号脉冲之后,还要经过(HBPD+1)个VCLK信号周期,有效的像素数据才出现。所以,HSYNC信号有效之后,总共还要经过(HSPW+1+HBPD+1)个无效像素。
(4)随后即连续发出(HOZVAL+1)个像素的有效数据
(5)最后是(HFPD+1)个无效像素。完整的一行结束,紧接着就是下一行的数据了。
时序图中各信号的时间参数都可以在LCD控制器中设置,VCLK作为时序图的基准信号,它的频率可以如下计算:
VCLK(Hz) = HCLK/[(CLKVAL+1)x2]
Frame Rate = 1/ [ { (VSPW+1) + (VBPD+1) + (LIINEVAL + 1) + (VFPD+1) } x {(HSPW+1) + (HBPD +1)+ (HFPD+1) + (HOZVAL + 1) } x { 2 x ( CLKVAL+1 ) / ( HCLK ) } ]
将VSYNC、HSYNC、VCLK等信号的时间参数设置好之后,并将帧内存的地址告诉LCD控制器,它既可自动发起DMA传输从帧内存中得到图像数据,最终在上述信号的控制下出现在数据总线VD[23:0]上。