已阅读5页,还剩36页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 显示设备接口与帧缓冲 2 LCD接口设计 LCD显示模块液晶显示是一种被动的显示 它不能发光 只能使用周围环境的光 它显示图案或字符只需很小能量 液晶显示所用的液晶材料是一种兼有液态和固体双重性质的有机物 它的棒状结构在液晶盒内一般平行排列 但在电场作用下能改变其排列方向 LCD的背光 EL 场致发光 2000 3000小时LED光源 50000小时新CCFL 60000小时 3 LCD的显示方式 反射型LCD 底偏光片后面加了一块反射板 它一般在户外和光线良好的办公室使用 透射型LCD 底偏光片是透射偏光片 它需要连续使用背光源 一般在光线差的环境使用 透反射型LCD 是处于以上两者之间 底偏光片能部分反光 一般也带背光源 光线好的时候 可关掉背光源 光线差时 可点亮背光源使用LCD 4 常见的液晶显示器物理结构 扭曲向列型 TN TwistedNematic 超扭曲向列型 STN SuperTN 双层超扭曲向列型 DSTN DualScanTortuosityNomograph 薄膜晶体管型 TFT ThinFilmTransistor 其中TN LCD STN LCD和DSYN LCD的基本显示原理都相同 只是液晶分子的扭曲角度不同而已 而TFT LCD则采用截然不同的显示方式 5 LCD通常由两种方式一种是带有LCD扫描芯片的LCD模块一种是通过LCD控制器 直接扫描LCD屏 比如 S3C2410处理器 带有LCD控制器 显示缓存和系统内存公用 可以支持STN 彩色 灰度 和TFT两种模式的LCD TFT模式下最多支持24位色 800 x600分辨率 LCD的驱动方式 6 嵌入式处理器与LCD的连接 7 片外的LCD控制器 8 集成了LCD控制器的嵌入式处理器体系结构 9 典型的LCD模式信号线 LDD 数据线L PCLK 点时钟L LCLK 行频L FCLK 帧频L BIAS CSTN的AC信号 TFT的开启信号 10 S3C2410的LCD扫描模式 4 8位 单 双扫描模式 CSTN最多256级灰度显示缓冲区支持15 16 24位TFT模式支持RGB格式 11 4位单扫描STN模式 12 4位单扫描显示缓冲的对应关系 1个字节存储两个点的信息16级灰度 13 8位CSTN屏幕点阵 320 x240 14 8位单扫描CSTN模式 15 8位单扫描显示缓冲的对应关系 1个字节存储1个点的信息可以是用调色板 标准映射 16 16位单扫描TFT模式 17 16 15位显示缓冲的对应关系 18 Linux系统下Framebuffer设备 帧缓冲 framebuffer 是Linux为显示设备提供的一个接口 把显存抽象后的一种设备 他允许上层应用程序在图形模式下直接对显示缓冲区进行读写操作 这种操作是抽象的 统一的 用户不必关心物理显存的位置 换页机制等等具体细节 这些都是由Framebuffer设备驱动来完成的 嵌入式系统下大多采用Framebuffer设备来实现显示设备LCD驱动 19 Linux系统下Framebuffer设备 Framebuffer在系统中的位置 20 Linux系统下Framebuffer设备 帧缓冲设备对应的设备文件为 dev fb 如果系统有多个显示卡 Linux下还可支持多个帧缓冲设备 最多可达32个 分别为 dev fb0到 dev fb31 而 dev fb则为当前缺省的帧缓冲设备 通常指向 dev fb0 当然在嵌入式系统中支持一个显示设备就够了 帧缓冲设备为标准字符设备 主设备号为29 次设备号则从0到31 分别对应 dev fb0到 dev fb31 21 Framebuffer驱动结构 FrameBuffer设备驱动基于如下两个文件 linux include linux fb hlinux drivers video fbmem c与平台相关的设备驱动文件 linux drivers video s3c fb c 22 Framebuffer驱动结构 FrameBuffer帧缓冲的重要数据结构 fb infofb var screeninfofb fix screeninfofb cmapfb ops在fb h中定义 23 Framebuffer驱动结构 structfb info intnode intflags structfb var screeninfovar Currentvar structfb fix screeninfofix Currentfix structfb monspecsmonspecs CurrentMonitorspecs 该结构是LINUX系统定义的framebuffer设备驱动接口 定义了当前显卡framebuffer设备状态 一个显卡可能有两个framebuffer 在这种情况下 就需要两个fb info结构 这个结构是唯一在内核空间可见的 在这个结构中有一个fb ops指针 指向驱动设备工作所需的函数集 24 Framebuffer驱动结构 structfb fix screeninfo charid 16 identificationstringeg TTBuiltin unsignedlongsmem start Startofframebuffermem physicaladdress u32smem len Lengthofframebuffermem u32type seeFB TYPE u32visual seeFB VISUAL 该结构用来描述设备无关 不可变更的信息 可以使用FBIOGET FSCREENINFO命令来获取该结构相应信息 25 Framebuffer驱动结构 structfb var screeninfo u32xres visibleresolution u32yres u32xres virtual virtualresolution u32yres virtual u32xoffset offsetfromvirtualtovisible u32yoffset 该结构用来描述设备无关 用户可变更的信息 可以使用FBIOGET VSCREENINFO命令来获取该结构相应信息 使用FBIOPUT VSCREENINFO命令来设置该结构相应信息 26 Framebuffer驱动结构 structfb cmap u32start Firstentry u32len Numberofentries u16 red Redvalues u16 green u16 blue u16 transp transparency canbeNULL 该结构描述设备无关的颜色映射信息 可以通过FBIOGETCMAP和FBIOPUTCMAP对应的ioctl操作设定或获取颜色映射信息 27 Framebuffer驱动API Linux系统中对帧缓冲设备的操作是通过 fb ops结构来完成和定义的 用户可以通过ioctl接口来完成对fb ops结构中定义的功能函数的调用 帧缓冲驱动程序的主要工作就是编写fb ops结构中的接口函数 28 Framebuffer驱动API structfb ops open releaseandusagemarking structmodule owner int fb open structfb info info intuser int fb release structfb info info intuser ssize t fb read structfb info info char user buf size tcount loff t ppos ssize t fb write structfb info info constchar user buf size tcount loff t ppos int fb mmap structfb info info structvm area struct vma int fb ioctl structfb info info unsignedintcmd unsignedlongarg 29 Framebuffer驱动API fb ops结构中常见的接口函数 fb open 打开帧缓冲设备fb release 关闭帧缓冲设备fb read 帧缓冲设备的读操作fb write 帧缓冲设备的写操作fb mmap 帧缓冲设备的内存映射操作fb ioctl 帧缓冲设备的ioctl操作 30 Framebuffer帧缓冲内核驱动核心 fbmem c实现了如下函数 register framebuffer structfb info fb info unregister framebuffer structfb info fb info 这两个是提供给下层FrameBuffer设备驱动的接口 设备驱动通过这两函数向系统注册或注销自己 几乎底层设备驱动所要做的所有事情就是填充fb info结构然后向系统注册或注销它 31 Framebuffer帧缓冲设备驱动程序分析 内核源码目录 driver video 下的s3c fb c文件是S5PV210处理器帧缓冲设备硬件相关的驱动程序 s3c fb c驱动程序主要完成以下工作 初始化LCD控制器 设置显示模式 分配显示缓存 分配并初始化fb info结构 填充其成员函数 调用register framebuffer structfb info fb info 函数向系统注册帧缓冲设备驱动程序 32 Linux内核对framebuffer帧缓冲的支持 Linux内核对framebuffer帧缓冲设备有着良好的支持 makemenuconfig配置菜单 DeviceDrivers Graphicssupport Supportforframebufferdevices FB y 33 Linux内核对framebuffer帧缓冲的支持 Supportforframebufferdevices 34 Linux内核对framebuffer帧缓冲的支持 SamsungS3Cframebuffersupport 35 Framebuffer帧缓冲设备的操作 应用程序对framebuffer帧缓冲设备的操作有以下几种 读 写读 写 read write dev fb 相当于读 写屏幕缓冲区 例如 用cp dev fb0tmp命令可将当前屏幕的内容拷贝到一个文件中 而命令cptmp dev fb0则将图形文件tmp显示在屏幕上 36 Framebuffer帧缓冲设备的操作 映射 map 操作 由于Linux工作在保护模式 每个应用程序都有自己的虚拟地址空间 在应用程序中是不能直接访问物理缓冲区地址的 为此 Linux在文件操作file operations结构中提供了mmap函数 可将文件的内容映射到用户空间 对于帧缓冲设备 则可通过映射操作 可将屏幕缓冲区的物理地址映射到用户空间的一段虚拟地址中 之后用户就可以通过读写这段虚拟地址访问屏幕缓冲区 在屏幕上绘图了 37 Framebuffer帧缓冲设备的操作 IO操作 对于帧缓冲设备 对设备文件的ioctl操作可读取 设置显示设备及屏幕的参数 如分辨率 显示颜色数 屏幕大小等等 ioctl的操作是由底层的驱动程序来完成的 例如 ioctl fbfd FBIOGET FSCREENINFO finfo 获取fb fix screeninfo结构的信息 在linux include linux fb h定义 ioctl fbfd FBIOGET VSCREENINFO vinfo 获取fb var screeninfon结构的信息 在linux include linux fb h定义 38 Framebuffer帧缓冲设备的操作 在应用程序中 操作 dev fb的一般步骤如下 1 打开 dev fb设备文件 2 用ioctrl操作取得当前显示屏幕的参数 如屏幕分辨率 每个像素点的比特数 根据屏幕参数可计算屏幕缓冲区的大小 3 将屏幕缓冲区映射到用户空间 mmap 4 映射后就可以直接读写屏幕缓冲区 进行绘图和图片显示了 39 Framebuffer帧缓冲设备的操作 Framebuffer操作典型程序intmain intfb 0 void fb mem structfb var screeninfovinfo structfb fix screeninfofinfo longintscreensize 0 打开设备文件 fb open dev fb0 O RDWR 取得屏幕相关参数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- Indobufen-impurity-16-生命科学试剂-MCE
- ETI60-生命科学试剂-MCE
- Dacomitinib-impurity-3-生命科学试剂-MCE
- 人防工程环境监测系统设计方案
- Cinacalcet-impurity-5-Standard-生命科学试剂-MCE
- 国道改扩建工程施工方案
- 2025年GPS同步钟合作协议书
- 人防灾后自我恢复与再建方案
- 建筑项目监理工作流程与管理方案
- 2026年中国运输代理服务项目经营分析报告
- 2025年煤矿安全生产管理人员安全资格考试题库及答案
- 重塑医美格局:驾驭中国医美新潮流
- 检验科生物安全培训课件2024
- 2025-2030面向高比例可再生能源的储能系统协同调度管理技术
- 2025年全国共青团“新团员入团”应知应会知识考试题库检测试卷及答案详解【考点梳理】
- 青海省泽库县2025年上半年公开招聘辅警试题及答案分析
- 加盟瑞幸合伙合同范本
- 蛙心起搏点分析医学PPT课件
- 污泥运输合同
- 如何唤醒孩子的内驱力
- 妊娠期急性脂肪肝
评论
0/150
提交评论