显示接口与Linux帧缓冲课件

上传人:夏** 文档编号:578888241 上传时间:2024-08-25 格式:PPT 页数:41 大小:438.50KB
返回 下载 相关 举报
显示接口与Linux帧缓冲课件_第1页
第1页 / 共41页
显示接口与Linux帧缓冲课件_第2页
第2页 / 共41页
显示接口与Linux帧缓冲课件_第3页
第3页 / 共41页
显示接口与Linux帧缓冲课件_第4页
第4页 / 共41页
显示接口与Linux帧缓冲课件_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《显示接口与Linux帧缓冲课件》由会员分享,可在线阅读,更多相关《显示接口与Linux帧缓冲课件(41页珍藏版)》请在金锄头文库上搜索。

1、LinuxLinux显示示设备的的软硬件硬件设计 threewaterup-1显示接口与Linux帧缓冲LCD接口设计接口设计LCD显示模块液晶显示是一种被动的显示,它不能发光,只能使用周围环境的光。它显示图案或字符只需很小能量。液晶显示所用的液晶材料是一种兼有液态和固体双重性质的有机物,它的棒状结构在液晶盒内一般平行排列,但在电场作用下能改变其排列方向。LCD的背光:EL(场致发光):2000-3000小时LED光源:50000小时新CCFL:60000小时2显示接口与Linux帧缓冲LCDLCD的显示方式的显示方式反射型LCD:底偏光片后面加了一块反射板,它一般在户外和光线良好的办公室使用

2、。透射型LCD:底偏光片是透射偏光片,它需要连续使用背光源,一般在光线差的环境使用。透反射型LCD:是处于以上两者之间,底偏光片能部分反光,一般也带背光源,光线好的时候,可关掉背光源;光线差时,可点亮背光源使用LCD。3显示接口与Linux帧缓冲常见的液晶显示器物理结构扭曲向列型(TNTwisted Nematic)超扭曲向列型(STNSuper TN)双层超扭曲向列型(DSTNDual Scan Tortuosity Nomograph)薄膜晶体管型(TFTThin Film Transistor)其中TNLCD、STNLCD和DSYNLCD的基本显示原理都相同,只是液晶分子的扭曲角度不同而

3、已。而TFTLCD则采用截然不同的显示方式。4显示接口与Linux帧缓冲LCD通常由两种方式一种是带有LCD扫描芯片的LCD模块一种是通过LCD控制器,直接扫描LCD屏。比如:S3C2410处理器,带有LCD控制器,显示缓存和系统内存公用。可以支持STN(彩色/灰度)和TFT两种模式的LCDTFT模式下最多支持24位色,800x600分辨率。LCDLCD的驱动方式的驱动方式5显示接口与Linux帧缓冲S3C2410的LCD扫描模式4/8位,单/双扫描模式,CSTN最多256级灰度显示缓冲区支持15、16、24位TFT模式支持RGB格式6显示接口与Linux帧缓冲典型的LCD模式信号线LDD,数

4、据线L_PCLK,点时钟L_LCLK,行频L_FCLK,帧频L_BIAS,CSTN的AC信号,TFT的开启信号7显示接口与Linux帧缓冲4位单扫描STN模式8显示接口与Linux帧缓冲4位单扫描显示缓冲的对应关系1个字节存储两个点的信息16级灰度9显示接口与Linux帧缓冲8位CSTN屏幕点阵:320x24010显示接口与Linux帧缓冲8位单扫描CSTN模式11显示接口与Linux帧缓冲8位单扫描显示缓冲的对应关系1个字节存储1个点的信息可以是用调色板RGB76543210R2:0G2:0B1:0标准映射:BGR76543210B1:0G2:0R2:012显示接口与Linux帧缓冲16位单

5、扫描TFT模式列0列1行0LDD15:0LDD15:0行1LDD15:0LDD15:013显示接口与Linux帧缓冲16/15位显示缓冲的对应关系14显示接口与Linux帧缓冲VGA接口标准广泛应用于PC的显示接口VGA-SVGA-XVGA等标准VGA的扫描过程和TFT LCD类似逐点、逐行扫描对于扫描频率要求高模拟RGB通道15显示接口与Linux帧缓冲VGA接口的定义DB15接口1红9KEY(无)2绿10同步地3蓝11ID04ID212ID1(SDA)5GND13行同步6红GND14帧同步7绿GND15ID3(SCL)8蓝GND16显示接口与Linux帧缓冲VGA的扫描时序特点VGA时序上

6、,不“关心”分辨率扫描是从屏幕的左上角开始,沿水平方向,逐行扫描,一直到右下角结束,如此反复循环扫描显示器只能根据帧同步和行同步信号来决定所显示图像的刷新频率17显示接口与Linux帧缓冲PXA270扩展VGA接口VGA接口时序和TFT类似TFT LCD模式为数字接口;VGA的RGB通道是模拟量,需要DA转换DA选择考虑的问题精度:8位速度:27MHz通道数:318显示接口与Linux帧缓冲视频处理的DA芯片TI公司THS8133B、THS8134BTHS8135BAD公司ADV7170、ADV7171、ADV7123、ADV7125其他FS453FS45419显示接口与Linux帧缓冲THS

7、8133B组成的VGA接口THS8133BPCLKRGB15:0配置M1:0模拟RGBLCLKFCLKVGA接口20显示接口与Linux帧缓冲THS8133B的配置THS8133B支持RGB、YPbPr等模式如何配置?M1=L、M2_INT=LM2_INT是内部信号,需要在SYNC的上升沿配置21显示接口与Linux帧缓冲THS8133B的配置原理图22显示接口与Linux帧缓冲VGA接口行频、帧频23显示接口与Linux帧缓冲嵌入式处理器的分类面向手持设备的处理器:S3C44B0、S3C2410、PXA255、PXA270、HMS30C7202、AU1200网络处理器:IXP425、IXP1

8、200、AT91RM9200、AU1500兼有:EP9312/5、AU110024显示接口与Linux帧缓冲嵌入式处理器与嵌入式处理器与LCDLCD的连接的连接嵌入嵌入式处式处理器理器LCD模块模块数据数据总线总线寄存器选择寄存器选择使能信号使能信号有有LCD控制控制器的嵌入式器的嵌入式处理器处理器LCDLCD控制信控制信号线号线25显示接口与Linux帧缓冲集成了LCD控制器的嵌入式处理器体系结构26显示接口与Linux帧缓冲系统最低总线负担比较LCD类型帧频线时钟占用带宽320x240x8bit CSTN70Hz85.4M5.1MB/s640x480x8bit CSTN70Hz821.5M

9、20.5MB/s320x240x16bit TFT25Hz161.9M3.6MB/s640x480x16bit TFT25Hz167.7M14.6MB/s640x480x16bit VGA80Hz1625M47.7MB/s27显示接口与Linux帧缓冲片外的LCD控制器28显示接口与Linux帧缓冲前后台双重显示缓存的显示模块结构前后台双重显示缓存的显示模块结构 29显示接口与Linux帧缓冲Framebuffer设备驱动程序提供给用户程序的就是一个直接面向显示缓冲区的统一接口应用程序只和Framebuffer驱动程序抽象出来的接口打交道,而不需要知道底层硬件的任何信息Framebuffer使

10、得有GUI的程序移植起来很容易内核的Framebuffer驱动程序中还包括了控制台字符显示的代码30显示接口与Linux帧缓冲Framebuffer的结构在Linux系统下,把显示缓冲区映射给用户空间应用程序直接操作显示缓冲区(mmap)Linux中,有对framebuffer的专门支持,提供系统的ioctlX86下有支持,软件容易移植31显示接口与Linux帧缓冲Linux下Framebuffer举例vfbvfb驱动程序是很好的例子vfb在系统内存中开辟一块空间作为虚拟显示缓存,模拟Framebuffer的行为,因此,vfb也不依赖于任何硬件vfb的源码在drivers/video/vfb.

11、c文件分析源码从vfb派生的PXA270的LCD驱动程序32显示接口与Linux帧缓冲PXA270的LCD控制器LCD控制器扫描对象由表中结构体描述偏移地址大小说明04字节扫描的下一个缓冲区结构体的首地址44字节当前缓冲区地址84字节用来标识当前帧的ID,如果不使用可以设为0124字节缓冲区大小,单位字节33显示接口与Linux帧缓冲PXA270的LCD控制器的多缓冲结构34显示接口与Linux帧缓冲PXA270的LCD控制器的上的单缓冲35显示接口与Linux帧缓冲S3C2410的framebuffer驱动程序S3C2410的framebuffer驱动在drivers/video/s3c24

12、10fb.c中s3c2410fb_init_fbinfo函数负责结构体struct s3c2410fb_info的初始化内核可以把Framebuffer作为控制台36显示接口与Linux帧缓冲Framebuffer的应用Linux的framebuffer接口提供给用户访问显示设备的通用接口通过mmap映射显示缓冲给用户不包括任何绘图接口37显示接口与Linux帧缓冲Framebuffer示例(1)获得framebuffer信息的ioctl:FBIOGET_VSCREENINFOFBIOGET_FSCREENINFO38显示接口与Linux帧缓冲if (ioctl(fb, FBIOGET_VSC

13、REENINFO, &fb_vinfo) printf(Cant get VSCREENINFO: %snstrerror(errno);close(fb);return -1;if (ioctl(fb, FBIOGET_FSCREENINFO, &fb_finfo) printf(Cant get FSCREENINFO: %sn, strerror(errno);return 1;fbdev.fb_bpp = fb_vinfo.red.length + fb_vinfo.green.length+ fb_vinfo.blue.length + fb_vinfo.transp.length;

14、fbdev.fb_width = fb_vinfo.xres;fbdev.fb_height = fb_vinfo.yres;fbdev.fb_line_len = fb_finfo.line_length;fbdev.fb_size = fb_finfo.smem_len;printf(frame buffer: %dx%d, %dbpp, 0x%xbyten, fbdev.fb_width, fbdev.fb_height, fbdev.fb_bpp, fbdev.fb_size);39显示接口与Linux帧缓冲Framebuffer示例(2)mmap调用,映射显示缓冲到用户空间fbdev.fb_mem = mmap (NULL, fbdev.fb_size, PROT_READ|PROT_WRITE,MAP_SHARED,fb,0);if(fbdev.fb_mem=NULL | (int)fbdev.fb_mem=-1)fbdev.fb_mem=NULL;printf(mmap failedn);close(fb);return -1;memset (fbdev.fb_mem, 0x0, fbdev.fb_size);40显示接口与Linux帧缓冲显示接口与Linux帧缓冲

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 药学

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