LCD(Liquid Crystal Display)中文简称“液晶显示器”,LCD的构造是在两层玻璃或塑料面板中间放置液态晶体,两层面板中间有许多垂直和水平的细小电线,光线可以透过面板,当接通电流之后,液晶可以改变方向以控制光线的通过,这样液晶就可以调节自己的色彩。液晶屏两面最外一层是透明的玻璃基体,玻璃基体中间就是薄膜电晶体,颜色过滤器和液晶层可以显示出红、蓝、和绿三种最基本的颜色,通常,LCD后面都有照明灯以显示画面。一般只要电流不变动,液晶都在非结晶状态,这时液晶允许任何光线通过。液晶层受到电压变化的影响后,液晶只允许一定数量的光线通过,光线的反射角度按照液晶控制。当液晶的供应电压变动时,液晶就会产生变形,因而光线的折射角度就会不同,从而产生彩色的变化。
LCD的主要技术参数有:LCD屏的尺寸、对比度(对比度越高,图像的层次结构越分明,LCD屏品质越好)、亮度、响应时间(响应时间越短,显示器每秒显示的画面就越多)、分辨率 (分辨率越高,图像越清晰)、可视角度(可视角度越大越好)、功耗。
一个LCD显示系统通常包括LCD控制器、驱动器和接口信号几部分,控制器主要用来为驱动器提供驱动信号并控制驱动器,管理显存,传输显示数据等,,驱动主要是根据控制器要求,为LCD屏提供驱动信号以显示文字、图形、图像等。与外界的接口主要用于LCD控制,是TTL信号。
LCD控制器可以将要显示的数据从系统的内存中传输到外部的LCD模块的LCD驱动器上完成图形、图像的显示。
图1 LCD控制器框图
LCD控制器主要由REGBANK、LCDCDMA两大部分组成,用于产生必要的控制信号和传输数据信号,如图1所示。REGBANK有17个可编程寄存器组和256×16的调色板存储器,用来设定LCD控制器。LCDCDMA 是一个专用的DMA(Direct Memory Access),自动从帧存储器传输视频数据到LCD控制器,视频数据可以不经CPU处理直接显示在屏上。TIMEGEN 由可编程逻辑器件组成,产生VFRAME/VSYNC、VLINE/HSYNC、VCLK/DCLK、VM/VDEN信号等,以支持不同的LCD驱动器的接口时序和速率。
驱动电路设计
除数据传输信号接口外,TFT LCD模组的驱动电路还包括提供给模组的电源电路、VGL、VGH、VCOM 电压电路等。根据TFT LCD模组的接口和内嵌的控制器输出管脚,完成LCD显示的控制线路设计。电路接口设计如图2所示。
VCOM 电压信号由TFT LCD模组上SOURCEDRIVER IC输出的POL信号提供。POL信号经过VCOM BUFFER电路,产生VCOM电压信号提供给TFT LCD模组。TFT LCD模组采用行翻转方式驱动,设计的VCOM BUFFER 电路能够完成VCOM电压的交流电压成分和直流电压成分的调节。通过调节VCOM BUFFER电路,使VCOM 中心点电压及其幅值达到应用的要求,有效地消除TFT LCD显示闪烁问题并改善显示质量。
TFT LCD驱动程序设计的主要工作包括:初始化S3C2440A 的LCD控制器LCDCON1~5,通过写寄存器设置显示模式和颜色数,然后分配LCD显示缓冲区。根据TMT035DNAFWU1接口时序及显示要求,屏幕显示分辨率Horizontal display size=320,Vertical display size=240,VCLK=6.4 MHz,而HCLK=133 MHz,故CLKVAL=9。缓冲区大小为:点阵行数×点阵列数×用于表示一个像素的比特数/8。
缓冲区通常分配在大容量的片外SDRAM 中,起始地址保存在LCD控制寄存器中,需要分配的显示缓冲区为150 kB。最后是初始化一个fb_info结构,填充其中的成员变量,并调用fbmem.C里的register_framebuffer(struct fb_info *fb info)将fb_info登记入内核。
3、RGB接口显示参数调整
S3C2440A 的LCD 控制寄存器主要有:LCDCON1~5。LCDCON1可以对LCD的类型、数据位数、是否需要VDEN输出及DCLK进行设置;LCDCON2主要对VBPD、VFPD、VSPW进行设置;LCDCON3及LCDCON4对HBPD、HFPD、HSPW 进行设置;LCDCON5可以对DCLK、HSYNC、VSYNC 的极性做设置。 图4 RGB接口显示工作原理
最终显示区域(DISPLAY AREA)是由像素时钟信号(DCLK)、行同步信号(HSYNC)、帧同步信号(VSYNc)、数据使能信号(VDEN/ENABLE)共同作用的结果,其大小及位置由各参数实际配置来确定,其中HSPW、HBPD及HFPD确定显示区域的行有效数据信息,VSPW、VBPD和VFPD确定显示区域中帧有效数据信息。
在实际的驱动程序编写过程中,不同的TFTLCD模组的参数会有所不同,因此需要根据实际数据的有效位置进行相关的参数调整。如果软件初始化设置中,未能正确地分配HSPW、HBPD和HFPD,行有效数据的位置会发生相应的错位,表现在实际显示中为显示图像的整体左右偏移,液晶显示器显示画面向左偏移。同理,未能正确地配置VSPW、VBPD和VFPD,帧数据中有效数据的位置会发生相应的错位,表现在实际显示中为显示图像的上下偏移。
编写LCD驱动源码放到内核源码中,然后修改LCD参数设置,通过修改Kconfig和Makefile文件添加对LCD驱动的支持
因篇幅问题不能全部显示,请点此查看更多更全内容