APP下载

Linux低功耗显示系统中驱动架构设计

2013-05-11庄衍竖李立军沈东凯

中国科技信息 2013年24期
关键词:驱动程序背光内核

庄衍竖 李立军 沈东凯

华南理工大学,广东 广州 510640

1.概述

当今手机等移动终端发展迅速,其功耗也越来越受到人们的重视。对于这些移动终端系统,其显示子系统的功耗就占了整机功耗的很大一部分。因此,降低显示子系统的功耗是实现移动终端低功耗的关键。目前TFT-LCD广泛用于这些移动终端系统。对于TFT-LCD显示系统的低功耗,主要是通过降低背光,同时对图像数据处理以补偿背光强度的降低的算法来实现[1]。这种算法可以在应用程序实现,也可以用FGPA等以硬件形式实现,但这些实现方法通用性不强。为此,为提高算法的通用性和易移植性。同时,由于android手机等大部分的移动终端采用的是以Linux内核为基础的操作系统,因此本文提出在嵌入式Linux驱动中实现显示子系统低功耗的基本架构。

2.基本架构

本文在嵌入式Linux驱动层中实现低功耗算法,在嵌入式Linux系统中TFT-LCD显示子系统的正常显示依赖于Linux系统中的帧缓冲显示驱动程序,图像数据传递到实际帧缓冲区后由TFT-LCD读取显示到屏幕上[2]。帧缓冲区驱动作为应用程序和底层硬件之间的桥梁,保证了图像数据从应用层到底层硬件的正确传递。本文将低功耗算法实现于实际帧缓冲驱动程序中[3],可以做到对应用程序完全透明,使得用户不易察觉到该算法模块的存在,具有很好的移植性和通用性。本文主要是提出在以Linux内核为基础的操作系统下低功耗的驱动层实现架构,其显示子系统的基本架构如图1所示。

在整个显示子系统框架中,主要涉及3大部分:上层是应用程序部分,中间层是驱动程序部分、底层是硬件逻辑部分。本文主要是提出驱动程序部分中低功耗的基本架构。本文提出的驱动程序架构是在Linux内核中实现,主要有内存分配及映射,用于暂时存储应用层传递下来的图像数据;PWM背光调节部分,通过改变占空比来调节背光;图像像素处理部分,根据原始图像数据调整图像像素值;动态定时器部分,保证以上三部分算法的实时执行。

图1 显示子系统的基本架构

2.1 内存分配及映射

在嵌入式Linux显示子系统中,需要对图像进行处理后才写入到帧缓冲区进行显示。因此,在Linux内核中需要分配内存在存储应用程序传递下来的图像数据。Linux内核中的物理地址内存是通过分页的机制是实现的,将整个内存划分为无数的4K大小页,而且是采用了伙伴关系分配算法来进行分配的,可采用内核中的__get_free_pages()函数来分配内存空间。

在嵌入式Linux系统中,应用程序所要显示的图像数据需要传递到内核空间,然而应用程序是不能直接访问到内核空间的,因此需要将内存存储空间映射到用户空间,方便应用程序直接读写数据。在显示子系统驱动程序中需要一个映射函数mmap()来实现内存空间到用户空间的映射。

2.2 PWM背光调节

嵌入式Linux系统上的背光驱动程序控制着TFT-LCD的显示亮度,在背光驱动程序中,采用PWM信号控制背光的强度,通过改变PWM信号的占空比大小可以自由的控制背光强度的大小。

2.3 图像像素处理

图像像素处理主要是根据图像数据内容来决定,可采用标准亮度补偿等基本的图像增强算法。本文主要是提出驱动低功耗的架构,对于图像处理的具体算法不做深入研究。

2.4 动态定时器

每次应用程序把图像数据发送到内存存储空间之后,都需要对图像进行处理和调整背光亮度。然而,对于Linux显示设备驱动程序来说,循环重复的执行图像处理程序和背光调节程序需要在驱动程序中创建一个动态定时器。这样,就能保证图像处理算法和背光亮度算法的准确执行,并把调整后的像素值送到实际的帧缓冲里。

在Linux内核提供了一组与定时器相关的用来简化管理定时器的操作,这些接口是在文件kernel/timer.c中实现的。只需要在显示驱动初始化的时候创建并初始化一个动态定时器,然后激活这个定时器,在定时器处理函数中重新调度注册该定时器,就能实现定时器的周期运行。

3.驱动程序工作流程

A.应用程序将图像数据传递到内存存储空间;

B.图像像素处理部分处理内存存储空间的数据并给出亮度调整系数,然后将处理后的数据传送到实际帧缓冲区;

C.PWM背光调节部分根据亮度调整系数调整占空比,从而改变背光强度

D.动态定时器保证B、C步骤的实时周期运行。

4.结语

本文提出了在Linux系统下移动终端设备显示子系统低功耗设计的基本架构,并给了低功耗算法的基本执行流程,为显示子系统的低功耗算法在Linux内核驱动层的实现和移植提供了基础。

[1]卢春鹏. 背光调节在降低液晶显示器功耗中的作用[J]. 电子设计应用, 2009, 4: 55-59.

[2]刘增水, 胡力刚. 基于 ARM 芯片的 TFT-LCD 显示系统设计[J]. 仪表技术, 2009, 5: 43-45.

[3]石晓娟, 张哲. 基于亮度补偿算法的显示子系统低功耗的设计[J]. 电子技术, 2009, 11: 013.

猜你喜欢

驱动程序背光内核
多内核操作系统综述①
强化『高新』内核 打造农业『硅谷』
活化非遗文化 承启设计内核
阻止Windows Update更新驱动程序
光学薄膜技术及在背光模组中的应用研究
微软发布新Edge浏览器预览版下载换装Chrome内核
计算机硬件设备驱动程序分析
向日葵的秘密
低价背光键鼠套装导购
LED背光只争朝夕