{酒类资料}第七章LCD液晶显示器

上传人:卓****库 文档编号:140821997 上传时间:2020-08-02 格式:PPTX 页数:54 大小:718.07KB
返回 下载 相关 举报
{酒类资料}第七章LCD液晶显示器_第1页
第1页 / 共54页
{酒类资料}第七章LCD液晶显示器_第2页
第2页 / 共54页
{酒类资料}第七章LCD液晶显示器_第3页
第3页 / 共54页
{酒类资料}第七章LCD液晶显示器_第4页
第4页 / 共54页
{酒类资料}第七章LCD液晶显示器_第5页
第5页 / 共54页
点击查看更多>>
资源描述

《{酒类资料}第七章LCD液晶显示器》由会员分享,可在线阅读,更多相关《{酒类资料}第七章LCD液晶显示器(54页珍藏版)》请在金锄头文库上搜索。

1、第七章 LCD液晶显示器,7.1 LCD显示器概述 LCD它是一种数字显示技术,可以通过液晶和彩色过滤器过滤光源,并在平面面板上产生图像。与传统的阴极射线管(CRT)相比,LCD占用空间小、低功耗、低辐射、无闪烁、降低视觉疲劳,具有很大的发展潜力。,1. LCD显示器的分类 扭曲向列型( TN - Twisted Nematic); 超扭曲向列型( STN - Super TN); 双层超扭曲向列型(DSTN - Double-layer Super-Twisted Nematic); 薄膜晶体管型( TFT - Thin Film Transistor)。,2. LCD的常用指标 PPI与分

2、辨率 PPI是指每平方英寸所拥有的像素(Pixel)数目。可见,PPI数值越高就意味着显示屏能够以更高的密度显示图像。显示的密度越高,拟真度也就越高。目前通用的TFT液晶显示屏大部分只有100PPI,如果拥有高一倍的显示画质(200PPI),显示效果会更好。,分辨率标准 目前市面上的分辨率标准多种多样,主要有VGA、SVGA、UXGA和SXGA+。其中SXGA+所代表的显示分辨率为1400 x1050。Quad-VGA是三菱公司的一种新分辨率标准,它所代表的分辨率1280 x960,与一般标准XGA的1280 x1024显示分辨率比较,Quad-VGA会较为扁平一点。,尺寸标示 LCD显示器跟

3、CRT显示器除显示方式不同以外,最大的区别就是尺寸的标示方法不一样。例如,CRT显示器在规格中标为17英寸,但实际可视尺寸达不到17英寸,只有15英寸多些;而对于LCD显示器,如果标示为15.1英寸,那么可视尺寸就是15.1英寸。,解析度 LCD液晶显示器不像CRT显示器,它只支持“真实解析度”,通常等价于一般CRT显示器的最高解析度。其主要差别在于,LCD液晶显示器只有在“真实解析度”下才能表现最佳影像效果。解析度低于真实解析度时,影像可以被呈现,但影像无法如真实解析度般得到优化。,7.2 嵌入式处理器的LCD控制器 7.2.1LCD 控制器的接口 因为工作原理不同,液晶的显示接口时序可以分

4、为STN和TFT两种。目前,一些嵌入式处理器可以同时支持STN和TFT的LCD显示器。以STN显示为例,从图7.1可以看出片内集成的LCD控制器可以产生必要的控制信号,如VFRAME、VLINE、VCLK和VM等。传输显示数据。LCD控制器的接口定义如表7-1示。,图7.1LCD控制器的结构图,表7-1 LCD控制器的接口,7.2.2LCD控制器的设置 LCD驱动编写的主要工作就是正确设置对应于所用LCD屏的CPU寄存器。表7-2所示为嵌入式处理器S3C2410中与LCD相对应的寄存器,表中给出了各个寄存器的简单描述,如果想了解它们的详细设置,请参考S3C2410的用户手册。,表7-2LCD控

5、制器相关的设置,1 设置VM、 VFRAME、VLINE VM信号通过改变液晶的行列电压的极性来控制像素的显示,VM速率可以配置LCDCON1寄存器的MMODE位及LCDCON2寄存器的MVAL7:0。 VM速率 = VLINE速率/(2MVAL),VFRAME和VLINE信号可以根据液晶屏的尺寸及显示模式,配置LCDCON2寄存器的HOZVAL和LINEVAL值,即: HOZVAL=(水平尺寸/VD数据位)-1 彩色液晶屏时:水平尺寸3水平像素点数 VD数据位:VD = 4 (4位单/双扫描模式) VD = 8 (8位单扫描模式) LINEVAL= 垂直尺寸一1(单扫描模式) LINEVAL

6、=(垂直尺寸2)-1 (双扫描模式),2设定VCLK VCLK是LCD控制器的时钟信号,它的计算需要先计算数据传送速率,由此设定的一个大于数据传送速率的值为VCLKVAL (LCDCONl 21:12)。 数据传送速率=水平只寸垂直尺寸帧速率模式值(MV),3帧速率 帧速率可由以下公式得到: VCLK(Hz)=MCLK/(CLKVAL2),其中LKVAL大于数据传送速率且不小于2 帧速率 (Hz) = ( 1/VCLK) * (HOZVAL+1)+ (1/MCLK) * (WLH+WDLY+LINEBLANK) * (LINEVAL+1)-1 LINEBANK: 水平扫描信号LINE持续时间设

7、置(MCLK个数)。 LINEVAL: 显示屏的垂直尺寸。 VCLK的计算还可以使用以下公式: VCLK (Hz) = (HOZVAL+1) / (1/ (帧速率 (LINEVAL+1 ) ) ) - ( ( WLH+WDLY+LINEBLANK) / MCLK),4. 设定数据帧显示控制 (LCDBASEU、 LCDBASEL、PAGEWIDTH、OFFSIZE、LCDBANK ) LCDBASEU设置显示扫描方式中的开始地址(单扫描方式)或高位缓存地址(双扫描方式)。 LCDBASEL是设置双扫描方式的低位缓存开始地址。可用以下计算公式: LCDBASEL= LCDBASEU+(PAGEW

8、IDTH+OFFSIZE)*(LINEVAL+1) PAGEWDTH是显示存储区的可见帧宽度(半字数)。 OFFSIZE是显示存储区的前行最后半字和后行第一个半字之间的半字数。 LCDBANK是访问显示存储区的地址A27:22值,ENVID=1时该值不能改变。,7.3基于Framebuffer 的LCD驱动程序 实际上,Linux为显示设备专门提供了一类驱动程序,叫做帧缓冲 (Framebuffer)设备驱动程序。,7.3.1 Framebuffer驱动结构 FrameBuffer的核心是一块供显示使用的内存。由系统中显示机构将显示内存中的内容显示到显示设备上。帧缓冲驱动本质上是一个字符设备的

9、驱动,但是具有自己的框架。Linux下FrameBuffer驱动的结构和逻辑都不复杂,主要需要构建驱动程序帧缓冲操作的数据结构struct fb_ops,在其中包含注册显示缓冲实现函数的指计。,1. FrameBuffer驱动的作用 在程序设计中、对显示的操作即是对显示内存的操作。在简单的操作系统中,可以直接利用写显示内存的方法,获得显示的效果。在Linux操作系统中,提供了一种普遍的显示接口:FraraeBuffer驱动。使用FrameBuffer驱动可以更方便地完成应用程序的开发和系统的移植。,如果仅仅是需要让系统显示出内容只需要向显示内存中写入数据,对于Linux,只需要切入到内核态,对

10、显示内存进行操作即可。从这个角度来讲,用户不需要FrameBuffer时驱动也可以操作显示。 FrameBuffer驱动的优点在于,它为显示程序的开发提供了一个框架。一方面,它封装了一部分对显示内存的操作,另一方面,它又对上层提供了统一的接口。开发者只需要实观FrameBuffer驱动对硬件的移植,就可以在上层使用FrameBuffer驱动方便的接口。 Linux中帧缓冲驱动主要涉及的文件是include/linux目录中的fb.h。,对于FrameBuffer驱动,不仅为用户自己的程序调用,还可以被Linux内核和各种GUI系统调用。由于Linux内核集成了很多对FrameBuffer驱动的

11、操作,很多GUI系统的显示部分也是基于FrameBuffer驱动。 Linux下的FrameBuffer驱动结构如图7-2所示。,图7-2 Linux下的FrameBuffer驱动结构,2FrameBuffer驱动结构 Linux的FrmneBuffer驱动从本质上,还是一种字符设备驱动程序,但是它不直接使用字符设备驱动程序的框架(file_operations),而是有自己的另外一套框架。 fb_info是一个描述FrameBuffer属性的数据结构,以linux2.6内核为例,其定义如下:,struct fb_info int node; int flags; struct fb_var_

12、screeninfo var; /*显示屏变量*/ struct fb_fix_screeninfo fix: /*显示屏固定量*/ struct fb_monspecs monspecs; /*当前监视器规格*/ struct work_struct queue; /*帧缓冲事件队列*/ struct fb_pixmap pixmap; /*图像硬件映射*/ struct fb_pixmap sprite; /*硬件光标映射*/ struct fb_cmap cmap; /*当前cmap*/ struct list_head modelist; /*模式列表*/ struct fb_ops

13、* flops; struct device * device;,#ifdef CONFIG_FB_TILEBLITTING struet fb_tile_ops * tileops; /*帧缓冲tile操作*/ #endif char_ iomem *screen_base; /*虚拟地址*/ unsigned long screen_size; /*IO重映射VRAM或者0*/ void *pseudo_palene; /*为16位颜色的调色板*/ #define FBINFO_STATE_RUNNING 0 #define FBINFO_STATE_SUSPENDED 1 u32 sta

14、te; /*硬件状态,例如:挂起*/ void * fbcon_par: /*fbcon使用的私有区域*/ /*以下为硬件相关的*/ void * par; ;,在这个数据结构中最主要的成员为数据结构struct fb_var_screeninfo,它描述了屏幕的状态,例如可见显示分辨率(visible resolution)、虚拟显示分辨率(virtual fesolution),虚拟显示偏移、像索深度等参数。其定义如下所示:,struct fb_vat_screeninfo _u32 xres; /* 可见分辨率 */ _u32 yres; _u32 xres_virtual; /* 虚拟

15、分辨率 */ _u32 yres_virtual; _u32 xoffset; /* 虚拟到可见的偏移量 */ _u32 yoffset; _u32 bits_per_pixel; _u32 grayscale; /* 如果不为0灰度级代替彩色 */ struct fb_bitfied red ; /* 如果为真色彩代表帧缓冲的位域*/,_u32 grayscale; /* 如果不为0灰度级代替彩色 */ struct fb_bitfied red ; /* 如果为真色彩代表帧缓冲的位域*/ struct fb_bitfied green;/* 否则只有长度有意义 */ struct fb_bitfied blue; struct fb_bitfied transp;/* 透明度 */ _u32 nonstd; /* ! = 0非标准像素格式 */ _u32 activate; _u32 height; /* 画面内存映射的高 */ _u32 width; /* 画面内存映射的宽 */ _u32 accel_flags; /* (废弃) */ _u32 pixclock; /* 每秒的像素时钟 */,_u32 left_margin; /* 画面事件同步的值 */ _u32 right_margin; _u32 upper_margin; 一u32 lower_margin; _

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 企业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号