欢迎来到天天文库
浏览记录
ID:33924295
大小:33.50 KB
页数:7页
时间:2019-02-28
《基于嵌入式linux的lcd背光调节及驱动的实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、.基于嵌入式Linux的LCD背光调节及驱动的实现摘要:为了减少手持式设备的功耗并满足lcd背光调节的应用需求,在嵌入式linux下,设计了一种用按键来调节输出方波占空比以实现背光调节的解决方案。该方案采用s3c2440的定时器产生pwm信号,系统根据lcd使用情况和外界光线强度的变化,用传入的按键触发次数来控制定时器输出pwm信号的占空比,通过软件实现背光状态的实时调节,并完成了背光驱动程序的设计。测试结果表明,该方法可以降低设备的功耗并能满足背光调节的要求,具有良好的稳定性及通用性。关键词:嵌入式系
2、统;pwm;按键;背光调节引言在手持式设备中,液晶显示屏的使用越来越广泛。由于lcd自身是不能发光的,它需要一个强劲的光源来给它提供背光,以便清晰地显示信息。这样的光源是非常耗电的,通常液晶显示屏的功耗常常占到系统总功耗的60%以上[1]。以群创的7寸屏为例,通常背光灯的功耗为2.5w,而lcd的功耗只有0.825...w[2]。由此可见,背光光源的功耗在整个电源中的比重是相当高的。如果系统在不用显示屏时,也全功率的运行,系统的电池能量将很快被耗光。所以,调节lcd的背光源,降低系统在不用显示屏时的能耗
3、是十分必要的工作。另外,由于手持式设备工作环境的变化,也需要根据外界光线强度的变化,对背光的亮度做出相应的调节,以适合人眼观看的舒适度。基于上述2种原因,考虑到设备功耗的降低以及使用的便利性,本文在嵌入式linux下,设计了一种使用s3c2440的定时器产生pwm(pulsewidthmodulation)信号,根据设备实际使用需要,和外界光线强度的变化用按键调节lcd背光亮度的解决方案。1基于pwm的背光调节原理在中小尺寸液晶显示屏中,一般采用白光led作为显示屏的背光光源。pwm即脉宽调制,pwm调
4、光就是利用人眼的视觉暂停原理,以一定的频率和占空比的方波来控制led的导通。led正向电流在零电流到额定工作电流之间来回切换,通过高速开关背光,周期循环地提供不同占空比的方波,实现亮度的调节。只要导通时led正向电流大小是恒定的,发出的白光就不会发生色偏,而且只要频率大干100...hz,人眼看到的将是连续的光源[3]。图1是脉宽调制信号的波形。假设高电平代表打开背光,低电平代表关闭背光,背光打开和关闭时间的比例不同会得到不同占空比的方波。从输出的波形来看,波的平均功率是不一样的,这样就得到了不同的亮度
5、,实现了背光的调节。图1pwm的波形2背光调节的硬件实现方案s3c2440[4]是三星公司推出的一款基于arm920t内核的16/32位risc嵌入式微处理器。其内部有5个16位的定时器,其中前4个定时器(tout0~tout3)具有pwm功能,第5个定时器(tout4)是一个没有输出引脚的内部定时器,另外定时器tout0有一个死区发生器,通常用于大电流设备控制。pwm信号可以用硬件产生,也可以由软件产生。由于用软件定时产生pwm信号外围电路简单,脉冲宽度精度高,控制灵活,所以本方案用s3c2440的定
6、时器tout1,软件定时产生pwm信号,通过改变tout1端口gpb1输出脉冲信号占空比,控制背光的开关。lcd背光调节电路如图2所示。图2lcd背光调节电路图图2中zxld1100[5]是一个电感式的pfm(pulsefrequencymodulation)升压转换器,用于驱动白光led。当lcd正常工作时,zxld1100的en端被置高电平时,输出端将得到驱动lcd背光源所需的工作电压。将s3c2440的端口gpb1与zxld1100的使能端相连,通过pwm信号使能zxld1100,可以使lcd背光
7、工作在较低的功率下。图2中按键s1_key用于调高背光亮度,s2_key用于调低背光亮度。s1_key和s2_key所用到的外部中断分别是eint0和eint13。当按键按下时,系统根据传入的按键编号控制gpb1输出pwm信号占空比,由此完成了对设备背光的软件控制,实现背光亮度的调节。3背光调节的软件设计背光调节的软件部分主要是驱动程序的设计,设备驱动程序是连接硬件和操作系统内核的桥梁,它为应用程序屏蔽了硬件的细节,应用程序将使用统一的系统调用接口来访问设备[69]。linux系统将设备分为3种基本类
8、型,即字符设备、块设备和网络设备。本文涉及的背光驱动属于字符设备驱动程序。采用linux作为嵌入式操作系统,内核版本为linux2.6.32...,根文件系统采用yaffs2,应用程序采用了busybox。背光驱动程序的工作流程框图如图3所示。图3背光驱动程序工作流程框图(1)当加载驱动时,调用初始化函数s3c_bl_pwm_init()。该函数会调用request_irq()函数来注册中断。request_irq()会操作中断描述符数组b
此文档下载收益归作者所有