基于LCD便携式设备低功耗的研究
2015-01-06李飞凌云孔玲爽罗树英
李飞,凌云,孔玲爽,罗树英
(湖南工业大学 电气与信息工程学院,湖南株洲 412007)
基于LCD便携式设备低功耗的研究
李飞,凌云,孔玲爽,罗树英
(湖南工业大学 电气与信息工程学院,湖南株洲 412007)
随着LCD便携式设备性能的不断发展与完善,其对低功耗的要求日趋严峻。针对这些问题,本文提出了一种LCD及其背光电路低功耗的硬件与软件方案。硬件电路分析了LCD及其背光驱动电路的工作原理;软件设计则利用S3C2440的定时器产生PWM信号,系统通过软件对背光的实时调节完成了驱动程序设计。最终通过ARM-Linux系统平台测试LCD运行与休眠时的耗电情况。将两者进行对比,结果表明该设计方案有效地提高了效率,降低了能耗,并延长了系统运行时间。
便携式设备;LCD;ARM-Linux;背光驱动;低功耗
0 引言
LCD是基于液晶电光效应的显示器件,包括段显示方式的字符段显示器件,矩阵显示方式的字符、图形、图像显示器件,矩阵显示方式的大屏幕液晶投影电视液晶屏等[1]。当液晶显示器导电时,液晶将会按规律排列,这样光线就能非常轻易的穿过;当其关断时,液晶排序非常杂乱,这样可以防止光线穿过。
随着移动互联网时代的到来,便携式设备中LCD显示屏使用的频率越来越高,许多高品质材质LCD也已经面世。在这方面做的比较突出的有韩国的三星、LG与日本的JDI等。本文以常用便携式设备为例,对LCD低功耗进行阐述。
1 硬件设计
1.1 硬件电路设计
本文的便携式设备主要采用三星公司的S3C2440,实际的LCD型号为群创AT043TN24。整个电路的硬件设计框图如图1所示。
整个电路主要由三个部分组成。第一部分是LCD驱动,采用LT1615;第二部分是LED背光驱动,使用MP1518芯片;第三部分是VCOM信号驱动电路,采用LM8261芯片。在这里着重分析LCD驱动及LED背光电路的实现。
图1 系统电路设计框图Fig. 1 System circuit design diagram
图2 LCD电源电路原理图Fig. 2 LCD power supply circuit diagram
1.2 LCD驱动电路
LCD将模拟信号集中在里面,因此需要外接电源提供模拟电压AVDD。另外,为了完成数据扫描,需要TFT轮流开启/关闭[2-3]。当TFT开启时,数据通过源极驱动器加载到显示电极,显示电极和公共电极间的电压差再作用于液晶实现显示,要设置好LCD的开启电压Von、关闭电压Voff。LCD电源驱动电路由LT1615升压电路与两个BAT54S电路组成,其原理图如图2所示。LT1615电路中,SW是芯片内部的开关管的集电极,当开关导通时,输入电压给电感充电,肖特基二极管MBR0530T1正极电压为0,负极电压为AVDD,这时二极管反向截止。输出电容为负载提供电流;当SW关断时,二极管导通,此时电感通过其对输出电容进行充电,并为负载提供电流。BAT54S为反并联二极管,当SW引脚导通时,由于AVDD大于0,所以BAT54S的电压为AVDD,对于上方的BAT54S的电压为Voff,此时LCD关闭。反之,当SW引脚关断时,LCD开启。同时,LCD关断与开启需要经过LCD_ PWREN引脚来使能芯片。
1.3 LED背光电路
由于LCD本身是不会发光的,它需要有一个功耗非常大的光源给它提供背光才能清楚的显示。PWM调光,即利用人眼的视觉暂留效应,使得LED在指定频率与所选定的占空比的方波的控制条件下导通。只需来回的提供占空比不一样的方波,并在高速开关的辅助下,让LED的电流不断的切换,从而实现调整亮度。只要导通时LED正向电流大小是恒定的,发出的白光就不会发生色偏,而且只要频率大于100Hz,人眼看到的将是连续的光源[4]。
LED背光驱动电路如图3所示。MP1518是一款升压芯片,由KEYBOARD信号使能MP1518,其原理同LT1615,由MP1518、二极管、电感以及输出电容一起组成boost电路。
图3 LED背光驱动电路Fig. 3 LED backlight driver circuit
本文通过PWM信号控制LED亮度。设计时,将其连接在PWM端口,使用PWM控制LCD背光亮度。S3C2440有5个16bit定时器,其中定时器0,1,2,3有PWM功能。将KEYBOARD连接到能够输出PWM信号的CPU的TOUT0/GPB0引脚,利用定时器0产生的PWM信号控制LCD亮度。通过改变PWM信号的占空比调整LED亮度,而通过设置CPU内部寄存器的值可以改变PWM的占空比[5-6]。LED+和LED-分别连接到50引脚LCD连接器。
2 软件设计
2.1 LCD驱动程序
Linux系统提供了LCD设备相应的帧缓冲区(framebuffer),它是LCD设备驱动与Linux系统的接口[7]。因此设计LCD驱动程序也就是在设计帧缓冲区驱动,由于有关帧缓冲设备驱动的实现已经有很多文献进行过详尽的阐述,因此本文只研究LCD的电源管理功能。
Linux内核中已经有了有关电源管理的功能,由于本身的LCD驱动程序并不支持电源管理,因此在LCD电源管理测试之前,需要先给LCD驱动程序添加电源管理接口。其过程主要通过lcd_4.3.c来实现。
(1) 分配LCD电源管理结构体lcd_pm、LCD平台设备结构体lcd_dev和LCD平台驱动lcd_driver
在lcd_pm结构体中含有两个成员lcd_suspend和lcd_resume函数,而lcd_pm属于dev_ pm_ops的成员,因此只需注册dev_pm_ops结构体的成员即可。
在lcd_suspend函数中实现关闭LCD与关闭背光,而在lcd_resume函数则使能LCD控制器以及LCD背光。
平台设备结构体lcd_dev如下:
在lcd_drv包含lcd_pm结构体中的内容。接下来只需要在入口函数lcd_init中将平台设备与平台驱动注册就可使用内核调用它们。
(2) 通知程序noticfier
在冻结应用程序之前,使用pm_notifier_call_chain((PM_SUSPEND_PREPARE)来通知驱动程序;在重启应用程序之后,使用 pm_notifier_call_chain(PM_POST_SUSPEND)来通知驱动程序。
同时要分配结构体lcd_pm_notif_block以方便注册的时候,内核调用通知程序。
(3) lcd_init入口函数
在lcd_init函数中主要完成以下工作:先注册通知程序,然后注册平台设备与平台驱动。
(4) lcd_exit出口函数
在lcd_exit函数中完成对以上结构体的卸载。
2.2 背光驱动程序
Linux背光驱动程序的流程图如图4所示。
1)当注册驱动的时候,会调用s3c_pwm_init()。首先,将LCD背光的亮度初始化,同时调用request_irqs函数来注册按键中断buttom_irqs,该中断中包含了每次中断对应的按键号与GPIO。然后将定时器初始化,并初始化按键的状态为松开(KEY_UP)。最后将驱动指向特定的驱动设备。lcd_dev=lcdctrl_dev_get_ops(),lcdctrl_dev_get_ops()为lcd设备结构体分配函数,其返回值为lcdctl_s3c2440.c中定义的s3c_dev。当调用lcd_dev->set_brightness(b),即调用了s3c_ dev-> set_brightness(b)。
图1表示4个个体在等级制度下的连接拓扑图(因20个个体的拓扑图比较复杂,本文用4个个体简单理解下连接结构)。图2表示初始配置,其中起始点表示位置,箭头表示速度。图3—5分别表示噪音强度为1时的最终状态图、位移误差图和速度误差图。σ=1满足本文定理的条件,仿真结果验证了结论的正确性。另外本文还给出了σ=5时的状态图、位移误差图和速度误差,分别如图6—8所示。表明当噪音值过大而不满足定理条件时,群集运动将不会发生,这从侧面验证了本文定理的正性。
在内核中产生一个背光设备,可以在内核中查询其设备号为122。由于背光设备驱动属于字符设备驱动,因此调用register_chrdev(122, _LCD_CONTROL_NAME, &lcdctrl_fops)函数注册字符设备。同时,使用以下结构体定义各种操作函数:
其中,lcdctrl_ioctl中的_LCD_CONTROL_ BRIGHT用来调节背光的亮度。
2)当按键被按下的时候,迅速产生按键中断处理函数button_interrupt(),在button_interrupt()中,按键如果是处于松开(KEY_UP)状态,需要使用定时器函数进行消抖,如果按键的状态不是松开状态,则退出按键中断处理函数;在定时器函数中,去读按键的GPIO引脚的电平,如果按键仍被按下且按键状态是不确定(KEY_DOWNX),则标记按键的状态为按下(KEY_DOWN)状态。接着会再设置一个消抖时间更长的定时器,按照上述步骤进行检测按键的状态,若定时器检测到已经没有按键被按下了,则标记按键的状态为松开(KEY_UP),它将会迎接一个新的中断的产生。当被标记为按下状态时,则调用调节背光函数s3c_lcd_set_brightness()进行背光设置。按键中断与定时器函数的流程图如图5所示。
图4 Linux背光驱动程序流程图Fig. 4 Linux backlight driver flowchart
图5 按键中断与定时器函数的流程图Fig. 5 Key interrupt and timer function flowchart
在s3c_lcd_set_brightness()函数中主要是通过PWM定时器来调节占空比。定时器中有2个寄存器TCNTBn和TCMPBn,分别为定时器计数缓存寄存器和定时器比较缓存寄存器[8]。TCNTBn主要设置输出频率,TCMPBn的大小设置占空比。所以,可以设置不同的TCMPBn的大小来调节占空比的大小,双缓冲的特性使得TCMPBn的大小可以在工作的过程中被改动。
背光亮度由S3C2440的TOUT0/GPB0引脚的PWM来实现。s3c_lcd_set_brightness()函数操作代码如下:
以上主要针对定时器的寄存器进行操作。其中,b代表从上层函数传入的bright的大小,由函数中的操作可知,主要通过TCMPB寄存器[9]来控制跟bright有关的值来调节PWM占空比的宽度,从而完成对背光亮度的调节。
3 测试
本设计方案的硬件测试平台为JZ2440开发板,板上已经具有一些用于开发的资源,如LCD、触摸屏、按键等等,软件平台采用Linux 3.4.2操作系统,虚拟机版本中采用Ubuntu 14.04 操作系统,使用PC与开发板的远程终端secureCRT进行检测开发板当前状态。
在开发板上主要实现使用按键对LCD休眠与唤醒的测试。刚进入系统时,使用脚本命令:echo mem > /sys/power/state 使系统进入休眠模式,如图6所示。同时,使用按键唤醒系统,则系统又进入唤醒。
图6 系统唤醒界面Fig. 6 System wakeup interface
在此过程,对LCD运行与LCD休眠时消耗的电流进行测量,如表1所示。
数据分析:LCD是便携式设备上的耗电大户,在LCD运行的过程消耗电流为240mA,当其处于休眠模式的时候,消耗的电流只有50mA,因此通过对LCD的休眠与唤醒策略能够大大降低系统的功耗。
表1 实测电流消耗数据Tab. 1 Measured current data
4 结论
本文提出了一种基于LCD的低功耗方案的设计与实现方案,同时在实践中已经在一些便携式设备上得到了应用。实际效果表明,通过低功耗策略的方法能够使系统的电池使用时间延长,并且能够更加省电。
[1] 周艳琼, 白木. 液晶显示技术综述[J]. 影像技术, 2002, (4): 10-15.
Z Y qiong, B Mu. A Review on Liquid Crystal Display Technology, Imaging Technology, 2002,(4): 10-15.
[2] 焦宾, 吕霞付, 李愿, 郑思远. 基于CPLD的嵌入式真彩色液晶显示卡的设计[J]. 工业仪表与自动化装置, 2012, (2): 55-58.
J Bin, L X fu, L Yuan, Z S Yuan. The design of the embedded true color LCD display card based on CPLD[J]. Explosion-proof Electric Machine, 2012,(2): 55-58.
[3] 刘晓东, 黄万伟, 吴云洁, 等. 弹性弹体被动、主动和复合控制及其适用性分析[J]. 新型工业化, 2014, 4(5): 11-19.
L X Dong, H W Wei, W Y Jie, et al. Passive, Active and Compound Control for Elastic Missile and Applicability Analysis[J]. The Journal of New Industrialization, 2014, 4(5): 11-19.
[4] 刘景桑, 李京华, 狄辉辉, 等. 基于嵌入式Linux的LCD背光调节及驱动的实现[J]. 现代电子技术, 2012, 35(6): 5-7.
L J sang, L J hua, D H hui, et al. Implementation of LCD backlight adjustment and driver program based on embedded Linux, Modern Electronic Technology, 2012, 35(6): 5-7.
[5] 蔡理金, 王逢东, 王会涛. 基于S3C2440A终端LCD驱动电路的设计与实现[J]. 电子设计应用, 2009, (12): 55-58.
C L jin, W F dong, W H tao. The LCD driver circuit based on S3C2440A terminal design and realization[J]. Electronic Design & Application, 2009, (12): 55-58.
[6] 付明玉, 吴宝奇, 张晓霜. 基于反步滑模控制的动力定位船铺管循迹建模与分析[J]. 新型工业化, 2014, 4(3): 17-22.
F M Yu,W B Qi,Z X Shuang.Modeling and analysis of trajectory tracking for DP vessel pipe laying based on back-stepping sliding mode method[J]. The Journal of New Industrialization, 2014, 4(3): 17-22.
[7] 常赟杰, 张位勇. 基于Framebuffer的LCD驱动程序设计[J]. 办公自动化(综合版), 2008(12): 30-31.
C Y jie, Z W yong. The design of LCD divers based on Framebuffer[J]. Office Automation (Comprehensive Edition), 2008, (12): 30-31.
[8] ILI Technology Corp. A-Si TFT LCD single chip drive 240x320 resolution and 16.7 m color datasheet[R].[S. l]:ILI Technology Corp, 2010.
[9] 周小利, 王宏强, 程永强, 等. 宽带MIMO雷达角度估计的统计分辨力[J]. 新型工业化, 2014, 4(4): 9-16.
Z X Li, W H Qiang, C Y Qiang, et al. Statistical Resolution Limit of Angle Estimation for Wideband MIMO Radar[J] . The Journal of New Industrialization, 2014, 4(4): 9-16.
The low-power research based on LCD portable device
LI Fei, LING Yun, KONG Lingshuang, LUO Shuying
(Hunan Uniνersity of Technology of Electrical and Information Engineering, Zhuzhou 412007, China)
With the continuous development and improvement of the performance of portable device based on LCD, its low power requirements become increasingly serious. Aiming at these problems, a hardware and software solutions for low-power LCD and LCD backlight is proposed in this paper. Its hardware circuit analyses LCD and its backlight circuit‘s operational principle. Then, soft design use the timer of S3C2440 to generate PWM signal, and the system achieve the driver program design by real-time adjusting backlight on soft. Finally, it tests the power consumption between LCD's run and sleep mode by the ARM-Linux platform. Compared with the results, it shows that the design can improve efficiency, reduce the energy consumption and extend the system running time.
portable device; LCD; ARM-Linux; backlight driver; low-power
10.3969/j.issn.2095-6649.2015.01.06
国家自然科学基金资助项目(61203136)
李飞(1988-), 男, 湖南工业大学硕士生, 主要研究方向: 复杂机电系统的信息集成和协调控制; 凌云(1963-), 教授,硕士生导师, 研究方向: 智能控制
李飞,凌云,孔玲爽,等.基于LCD便携式设备低功耗的研究[J].新型工业化,2015,5(1):38-44