1、Linux 帧缓冲,北京博创兴业科技有限公司,2,LCD简介,主讲人:张笑天,zhangxt_,3,LCD 简介,液晶显示是一种被动的显示,它不能发光,只能使用周围环境的光。它显示图案或字符只需很小能量。液晶显示所用的液晶材料是一种兼有液态和固体双重性质的有机物,它的棒状结构在液晶盒内一般平行排列,但在电场作用下能改变其排列方向,4,LCD 的背光,EL(场致发光):2000-3000小时以黄绿色为主,常用于小型灰度LCD背光LED光源:50000小时成本低、寿命长、支流供电,发光电压低、体积小CCFL(冷阴极荧光灯):60000小时需要高压交流,体积大,5,LCD的显示方式,反射型LCD:底
2、偏光片后面加了一块反射板,它一般在户外和光线良好的办公室使用。透射型LCD:底偏光片是透射偏光片,它需要连续使用背光源,一般在光线差的环境使用。透反射型LCD:是处于以上两者之间,底偏光片能部分反光,一般也带背光源,光线好的时候,可关掉背光源;光线差时,可点亮背光源使用LCD。,6,LCD驱动方式,一种是带有LCD扫描芯片的LCD模块一种是通过LCD控制器,直接扫描LCD屏。,比如:S3C2410处理器,带有LCD控制器,显示缓存和系统内存公用。可以支持STN(彩色/灰度)和TFT两种模式的LCDTFT模式下最多支持18位色,800x600分辨率。,7,嵌入式处理器与LCD的连接,8,S3C2
3、410的LCD扫描模式,4/8位,单/双扫描模式,CSTN最多256级灰度显示缓冲区支持15、16、24位TFT模式支持RGB格式,9,典型的LCD模式信号线,LDD,数据线L_PCLK,点时钟L_LCLK,行频L_FCLK,帧频L_BIAS,CSTN的AC信号,TFT的开启信号,10,4位单扫STN模式,11,8位CSTN屏幕点阵:320x240,12,8位单扫描CSTN模式,13,TFT常见信号线,VSYNC帧同步信号(垂直)HSYNC行同步信号(水平)VCLK时钟VDEN数据有效控制VD数据信号,14,16位单扫描TFT模式,15,16,显示缓冲与显示点的对应,4位单扫描显示缓冲的对应关
4、系,1个字节存储两个点的信息16级灰度,17,8位单扫描显示缓冲的对应关系,标准映射:,1个字节存储1个点的信息可以是用调色板,18,16/15位显示缓冲的对应关系,19,Linux framebuffer,20,Framebuffer的结构,在Linux系统下,把显示缓冲区映射给用户空间应用程序直接操作显示缓冲区(mmap)Linux中,有对framebuffer的专门支持,提供系统的ioctlX86下就有支持,软件容易移植,21,Framebuffer的应用,Linux的framebuffer接口提供给用户访问显示设备的通用接口通过mmap映射显示缓冲给用户不包括任何绘图接口,22,Fra
5、mebuffer使用练习,常用接口重要结构体:在fb.h文件中定义了下列结构:fb_info 、fb_fix_screeninfo、fb_var_screeninfo、fb_cmap等,/usr/src/linux-2.4.20-8/include/linux/fb.h/usr/src/linux-2.4.20-8/drivers/video/fbmem.c /usr/src/linux-2.4.20-8/drivers/video/fbcmap.c,23,常用接口,在fbmem.c文件中定义了对framebuffer的操作,static struct file_operations fb_f
6、ops = owner:THIS_MODULE,read:fb_read,write:fb_write,ioctl:fb_ioctl,mmap:fb_mmap,open:fb_open,release:fb_release,#ifdef HAVE_ARCH_FB_UNMAPPED_AREAget_unmapped_area: get_fb_unmapped_area,#endif;,24,常用接口,mmap说明:一般情况下是将设备内存映射到用户空间,#include void * mmap(void *start, size_t length, int prot , int flags, int fd, off_t offset);,25,常用接口,常用的ioctl,if (ioctl(fb, FBIOGET_VSCREENINFO, ,if (ioctl(fb, FBIOGET_FSCREENINFO, ,26,感谢您参加博创嵌入式教学培训!,