首页 电子纸显示器驱动程序的设计与实现[权威资料]

电子纸显示器驱动程序的设计与实现[权威资料]

举报
开通vip

电子纸显示器驱动程序的设计与实现[权威资料]电子纸显示器驱动程序的设计与实现[权威资料] 电子纸显示器驱动程序的设计与实现 摘 要: 电子纸显示器(EPD)能展现良好的阅读舒适性,但它具有显示速度慢的缺点,这必须通过对显示驱动程序进行优化设计加以克服。提出了一种基于三缓冲区的EPD驱动程序的实现架构和设计方法,并在一个专用阅读设备上进行了实现和验证。与传统的双缓冲机制相比,三缓冲架构增设了一个EPD显示区,用于保存显示到屏幕上的数据帧。测试结果表明,该驱动程序工作正常,不会出现屏幕闪烁问题,显示效果良好,用户可以获得较佳的视觉体验。 关键词:电子纸显...

电子纸显示器驱动程序的设计与实现[权威资料]
电子纸显示器驱动程序的 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 与实现[权威资料] 电子纸显示器驱动程序的设计与实现 摘 要: 电子纸显示器(EPD)能展现良好的阅读舒适性,但它具有显示速度慢的缺点,这必须通过对显示驱动程序进行优化设计加以克服。提出了一种基于三缓冲区的EPD驱动程序的实现架构和设计方法,并在一个专用阅读设备上进行了实现和验证。与传统的双缓冲 机制 综治信访维稳工作机制反恐怖工作机制企业员工晋升机制公司员工晋升机制员工晋升机制图 相比,三缓冲架构增设了一个EPD显示区,用于保存显示到屏幕上的数据帧。测试结果表明,该驱动程序工作正常,不会出现屏幕闪烁问 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 ,显示效果良好,用户可以获得较佳的视觉体验。 关键词:电子纸显示器;驱动程序;三缓冲区;阅读设备 0 引言 电子纸显示器(Electronic Paper Display, EPD), 简称电子纸,是一种类纸型显示器件。与传统的液晶显示器(Liquid Crystal Display, LCD) 相比,它具有重量轻、尺寸薄、功耗低以及静态显示等特点,能展现接近于纸质印刷品的视觉效果。凭着在阅读舒适性和功耗方面的良好表现,EPD大量应用于电子阅读和数字出版中[1-2]。然而,EPD由于其 材料 关于××同志的政审材料调查表环保先进个人材料国家普通话测试材料农民专业合作社注销四查四问剖析材料 特性,存在刷新速度慢、翻页闪烁、残影等显示缺陷,这会给用户带来不好的视觉体验[3-4]。因此,在EPD设备的设计过程中,如何对电子纸显示屏控制软件(即EPD驱动程序)进行优化、运用有效的设计方法来避免上述缺陷,是一个亟待解决的重要问题。 文献[5]利用Linux系统中专门针对显示设备的帧缓冲 (framebuffer) 专用接口编写了EPD驱动程序。类似地在文献[6]中,作者从平台设备和平台驱动的角度研究了电子纸帧缓冲驱动程序的设计问题,并进行了实现和验证。然而, 这些基于Linux帧缓冲机制的EPD驱动程序只支持单个缓冲区,并没有将图形或图像的绘制过程和显示过程区分开来,容易破坏数据的完整性。文献[7]采用一种双帧缓冲区机制来实现对用户层透明的EPD设备驱动:其中一个帧缓冲区对用户可见,可以接收用户的读写数据;另一个帧缓冲区对应用程序不可见,只作为显示接口。这种双缓冲机制保障了显示数据的安全,但未能考虑EPD刷新速度慢这个问题,导致显示不稳定、屏幕闪烁,从而用户不能获得正常的视觉体验。 本文针对EPD的显示特点,在Android系统的双缓冲技术[8]的基础上,提出了一种基于三缓冲区的EPD显示驱动程序的实现架构和设计方法,并在一台EPD阅读设备上进行了实现。该驱动程序不仅结构简单、易于实现,而且能很好地适应EPD的技术特点,展现良好的显示效果。 1 EPD显示系统 EPD显示系统主要由显示屏和控制器组成[9],如图1所示。控制器的主要功能是将CPU发送过来的显示数据转换成适合EPD的控制电压,通过控制EPD内带电粒子的运动来进行显示[10]。Flash芯片是控制器的固件,主要由查找表组成。由于EPD屏对温度敏感,因此可以通过读取温度传感器的值来调整EPD屏的控制电压输入值。控制器需外接SDRAM作为显存,里面可以同时存放多幅待显示的图像数据。采用适当的控制策略, CPU和控制器之间的数据传送量可以大为减少。控制器和CPU之间的接口可以是GPIO模式,也可以是16位宽度的SDRAM接口。 图1 EPD显示系统的组成 2 EPD驱动程序的架构 EPD显示驱动程序的作用是对来自用户空间的图形或图像数据进行控制和显示。驱动程序总共开辟了三块存储空间,其中两块通过文件系统接口提供给应用程序使用:一块用作绘图,另一块保存已绘制好的图形或图像数据,驱动程序在两块缓冲区之间轮流切换。但是由于EPD显示速度慢, 如果每帧都进行显示,整个显示系统的性能和显示效果就会受影响。因此驱动程序再开辟出一块缓冲区,用于保存显示到EPD上的数据帧。只有在当前帧显示完毕,并且应用程序进行了缓冲区切换之后,才会把显示区的数据拷贝到EPD显示区并进行显示,其架构如图2所示。 3 EPD驱动程序的实现 3.1 双缓冲的实现 EPD驱动程序开辟两块数据缓冲区来存储用户空间的数据。如果只使用一块数据区来保存用户空间的数据,当该缓冲区映射到内存空间后,用户空间会对该数据空间进行操作,同时内核驱动也会将该数据送到EPD上进行显示。因此,用户空间的任何操作都可能破坏该数据的完整性,导致显示不正常。而设置双缓冲的目的正是为了解决该问题:开辟两块缓冲区后,一个缓冲区的数据在准备好之后用作当前显示,另外一个缓冲区则交给用户空间进行数据准备。当用户准备好下一个显示数据块后,通过fb_pan_display()将准备好的数据区切换成显示区。这样,设置双缓冲区既提高了操作的效率,又保证了数据的完整性。 申请双缓冲区: 3.2 颜色空间转换算法 由于用户空间使用16位彩色,而最终EPD显示的是16阶灰度(4位二进制数),因此要进行对应的颜色转换。为了保证色彩过渡平滑,首先将16位的彩色分解成RGB 565的格式,然后通过以下公式计算出对应的16阶灰度值: 3.3 程序的基本功能 EPD驱动程序定义为平台软件,提供驱动探测、驱动卸载以及休眠唤醒的基本功能[12]。其接口实现如下: 驱动探测 (probe) 函数的作用是初始化EPD控制器接口,包括配置SDRAM相关的寄存器、初始化中断等,同时分配必要的数据结构以及存储空间。卸载 (remove) 函数释放相关存储空间。休眠 (suspend) 函数使控制器进入低 功耗的休眠模式,以节省电能。唤醒 (resume) 函数让系统重新回到运行状态。 3.4 用户操作接口 EPD驱动向用户提供两种接口:1)EPD是显示设备,因此在驱动程序中将其注册为帧缓存 (framebuffer) 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 设备,遵循framebuffer的标准接口,其中包括对显示设备的打开、读、写以及I/O控制和内存映射等操作;2)提供/sys虚拟文件系统访问接口,该接口主要用于屏幕的强制刷新。 实现该接口后,在Linux系统中即可创建framebuffer设备节点/dev/fb0, 通过标准的 open/read/mmap/ioctl/close等系统调用接口即可访问该设备。其中最主要的是fb_write, fb_pan_display和fb_ioctl三个接口的实现。fb_write是对framebuffer设备的写实现,给用户提供了标准的写数据接口,将数据写入驱动后再在EPD上显示。fb_pan_display是切换双缓冲区的控制函数,当用户需要从一个缓冲区切换到另外一个缓冲区显示时,即调用该函数。fb_ioctl给用户提供了一些特殊的命令来控制显示驱动程序进行特殊的操作。 通过power sys的API, 注册一个/sys/power/update 的节点,向该文件写入update字符串,即可实现EPD屏幕的强制刷新。 3.5 接口读写函数 EPD控制器操作包括命令和数据两部分,因此封装三个基本操作:写命令、写数据和读数据。其他的诸如读写寄存器、读写数据块以及各种其他控制,都是基于这三个基本操作的。 4 应用实例 一个基于EPD技术的电子阅读设备主要包括以下几个部分:嵌入式处理器、EPD显示模组、存储模块、无线通信模块、电源及其管理模块、数据接口、输入输出设备。本文为 了验证EPD驱动程序,专门设计了一个阅读设备,如图4所示。 该阅读器基于Marvell公司的PXA270处理器,采用台湾元太科技 (PVI) 的电子纸显示屏及其控制芯片 (Epson公司生产的 S1D13521B01), 人机交互的方式有两种:小键盘或者液晶屏+触摸屏。EPD模组是整个阅读器的核心部分,EPD驱动程序不仅决定了整个设备能否正常工作,而且其性能将影响显示效果的好坏。该阅读器将前文所述的EPD显示驱动程序集成在设备的硬件抽象层 (HAL) 中,EPD驱动程序在软件系统中负责用户界面和阅读内容的显示。 4.1 显示性能 该设备的EPD驱动程序分别采用Android系统建议的双缓冲机制和本文提出的三缓冲区架构进行实现,通过对同一个图形文件进行绘制,来比较这两种架构的显示性能。测试用例是一个由Android标志衍生出来的动态图片,该图片上半部分的三个小机器人能动。图5是EPD驱动程序采用三缓冲区架构时,测试图片在设备屏幕上的显示结果。而设备如果采用基于双缓冲机制[13]的EPD驱动程序,图片的显示效果如图6所示。 比较图5和图6可以发现,测试图形的静态部分(即ANDROID这7个字母以及小机器人脚下的滑板)显示效果相同,而动态部分(即3个小机器人,在原始图片中是绿色)存在较大的差异。因为三缓冲机制能较好地适应EPD刷新慢这个特点,故当EPD设备采用这种驱动程序显示动态图形时画面正常、平稳。而基于双缓冲机制的EPD驱动程序由于绘制次数频繁,显示屏幕会出现明显的闪烁,如果显示的是动态图形,因为带电粒子缺乏足够的时间运动到最终状态,将会产生显示残影,如图6所示。由此可见,基于三缓冲架构的EPD驱动程序可以通过降低图形的绘制频次来避免屏幕闪烁问题,从而改善了显示效果、提升了用户体验。 4.2 软件架构 在软件方面,该设备运行着带有图形用户界面(Graphica User Interface, GUI)的操作系统,整个软件系统的架构如图7所示。EPD软件系统具有以下特点:操作系统采用嵌入式Linux; 图形界面采用现有的GUI图形库;中间组件集成WiFi/3G等通信模块和各种内容格式的解析模块;系统Framework向应用程序提供统一的界面操作、内容管理和设备管理接口;应用程序可以是某种内容格式的阅读器,也可以是其他应用程序,比如浏览器等。 图7 EPD阅读设备的软件架构 阅读软件是整个电子阅读器设备中的核心软件,其主要功能有文档资源管理、各种类型的文档阅读以及书签管理等。软件基本架构如图8所示,主要由以下几个部分组成:UI, 提供资源管理、菜单、书签等用户接口;文档数据库Provider, 主要作用是扫描SD卡内的阅读文档并形成数据库,供其他组件使用;阅读器的核心组件主要实现文档格式的解析和排版布局的功能。这个软件采用插件 (plugin) 设计方法,每种格式可以设计成一种独立的组件,只需按照插件的格式注册上去,即可对文档进行解析和布局阅读。解析完成后再使用统一的文本和图像布局,这样就能保证每种格式的排版都是一致的。 4.3 运行结果 UI部分是阅读软件的主界面,从Provider数据库里读出扫描的结果,以列表的形式显示出来,如图9所示。 阅读软件支持多种文件格式,如txt、 pdf、 doc、 ppt、 XSL等。图10是ppt文件在EPD屏上的显示结果。 5 结语 本文所述的EPD显示驱动程序结构简单、实现方便。基于三缓冲区的存储架构,既能提高软件操作的效率,又能保证数据访问的安全性和可靠性,更重要的是,它降低了图形的绘制频次,从而不会出现屏闪和残影问题。实现结果和应用实例表明,该驱动程序工作正常,并能适应EPD主流应 用――电子阅读的技术特点,展现良好的显示效果和用户体验。 参考文献: [1] OMODANI M. Electronic paper: concept and expectations[J]. 仪器仪表学报, 2004, 25(S4): 67-71. [2] 付永华, 江源, 胡星波. 一种面向数字版权保护的EPD电子教材的设计与实现[J]. 江西科学, 2013, 31(1): 103-108. [3] 李庆诚, 胡海军, 宫晓利, 等. 基于任务队列的电子纸显示屏刷新策略研究[J]. 现代显示,2011, 22(6): 20-24. [4] 李庆诚, 宫晓利, 马捷, 等. 自恢复的电子纸屏幕显示管理策略研究[J]. 现代显示,2011, 22(1/2): 20-23. [5] 李文睿, 陈新. ARM9+Linux下电子纸驱动的设计与实现[J]. 电子技术应用, 2011, 37(10): 42-45. [6] 徐莹莹. 嵌入式电子纸帧缓冲驱动程序设计研究[D]. 西安: 西安电子科技大学, 2010. [7] 张秋野. 基于嵌入式Linux和EPD显示的PDA底层驱动设计[D]. 上海: 上海交通大学, 2007. [8] 叶炳发, 孟小华. Android图形系统的分析与移植[J]. 电信科学,2010, 26(2): 65-68. [9] 胡力刚, 许伟明. 电子纸阅读器的设计[J]. 计算机测量与控制, 2010, 18(7): 1621-1626. [10] 李庆诚, 陈越. Linux电子纸屏幕印刷系统研究与实现[J]. 计算机工程与设计,2008, 29(4): 952-954. [11] 张伽伟, 周安栋, 罗勇. ARM11嵌入式系统Linux下LCD的驱动设计[J]. 液晶与显示, 2011, 26(5):660-664. [12] CORBET J, RUBINI A, KROAHHARTMAN G. Linux设备驱动程序设计[M]. 3版. 魏永明, 耿岳, 钟书毅, 译. 北京: 中国电力出版社, 2006. [13] 江建国, 温少营, 张瑞楠. 基于双缓冲技术的GDI+无闪烁绘图[J]. 计算机应用, 2012, 32(S2):136-139. 文档资料:电子纸显示器驱动程序的设计与实现 完整下载 完整阅读 全文下载 全文阅读 免费阅读及下载 阅读相关文档:社会分层对高等教育机会获得的影响分析 关于当代大学生价值观教育的探析 基于滚动策略的集装箱码头连续泊位与桥吊集成调度 实时信息下的乘客路径选择行为 Hadoop视角下的Nutch爬行性能优化 钢铁企业铁水运输调度优化与仿真 基于局部抠像技术的融合图像精确跟踪算法 基于修正区间模糊Shapley值信息产品供应链利益分配算法 基于层次Voronoi图的点群相似度算法 基于方向场的指纹图像偏微分方程修补模型 基于前―后向光流点匹配运动熵的视频抖动检测算法 基于视频监控系统的运动自适应去隔行算法 虚拟肝脏手术中实时动态渗血效果模拟 基于随机分数梅林变换的非线性图像加密算法 感谢你的阅读和下载 *资源、信息来源于网络。本文若侵犯了您的权益,请留言或者发站内信息。我将尽快删除。*
本文档为【电子纸显示器驱动程序的设计与实现[权威资料]】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_624976
暂无简介~
格式:doc
大小:23KB
软件:Word
页数:8
分类:生活休闲
上传时间:2018-04-12
浏览量:19