李飛,凌云,孔玲爽,羅樹英
(湖南工業大學 電氣與信息工程學院,湖南株洲 412007)
基于LCD便攜式設備低功耗的研究
李飛,凌云,孔玲爽,羅樹英
(湖南工業大學 電氣與信息工程學院,湖南株洲 412007)
隨著LCD便攜式設備性能的不斷發展與完善,其對低功耗的要求日趨嚴峻。針對這些問題,本文提出了一種LCD及其背光電路低功耗的硬件與軟件方案。硬件電路分析了LCD及其背光驅動電路的工作原理;軟件設計則利用S3C2440的定時器產生PWM信號,系統通過軟件對背光的實時調節完成了驅動程序設計。最終通過ARM-Linux系統平臺測試LCD運行與休眠時的耗電情況。將兩者進行對比,結果表明該設計方案有效地提高了效率,降低了能耗,并延長了系統運行時間。
便攜式設備;LCD;ARM-Linux;背光驅動;低功耗
LCD是基于液晶電光效應的顯示器件,包括段顯示方式的字符段顯示器件,矩陣顯示方式的字符、圖形、圖像顯示器件,矩陣顯示方式的大屏幕液晶投影電視液晶屏等[1]。當液晶顯示器導電時,液晶將會按規律排列,這樣光線就能非常輕易的穿過;當其關斷時,液晶排序非常雜亂,這樣可以防止光線穿過。
隨著移動互聯網時代的到來,便攜式設備中LCD顯示屏使用的頻率越來越高,許多高品質材質LCD也已經面世。在這方面做的比較突出的有韓國的三星、LG與日本的JDI等。本文以常用便攜式設備為例,對LCD低功耗進行闡述。
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.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占空比的寬度,從而完成對背光亮度的調節。
本設計方案的硬件測試平臺為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
本文提出了一種基于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] 付明玉, 吳寶奇, 張曉霜. 基于反步滑??刂频膭恿Χㄎ淮伖苎E建模與分析[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