李飛,凌云,孔玲爽,羅樹英
(湖南工業(yè)大學(xué) 電氣與信息工程學(xué)院,湖南株洲 412007)
基于LCD便攜式設(shè)備低功耗的研究
李飛,凌云,孔玲爽,羅樹英
(湖南工業(yè)大學(xué) 電氣與信息工程學(xué)院,湖南株洲 412007)
隨著LCD便攜式設(shè)備性能的不斷發(fā)展與完善,其對(duì)低功耗的要求日趨嚴(yán)峻。針對(duì)這些問題,本文提出了一種LCD及其背光電路低功耗的硬件與軟件方案。硬件電路分析了LCD及其背光驅(qū)動(dòng)電路的工作原理;軟件設(shè)計(jì)則利用S3C2440的定時(shí)器產(chǎn)生PWM信號(hào),系統(tǒng)通過軟件對(duì)背光的實(shí)時(shí)調(diào)節(jié)完成了驅(qū)動(dòng)程序設(shè)計(jì)。最終通過ARM-Linux系統(tǒng)平臺(tái)測試LCD運(yùn)行與休眠時(shí)的耗電情況。將兩者進(jìn)行對(duì)比,結(jié)果表明該設(shè)計(jì)方案有效地提高了效率,降低了能耗,并延長了系統(tǒng)運(yùn)行時(shí)間。
便攜式設(shè)備;LCD;ARM-Linux;背光驅(qū)動(dòng);低功耗
LCD是基于液晶電光效應(yīng)的顯示器件,包括段顯示方式的字符段顯示器件,矩陣顯示方式的字符、圖形、圖像顯示器件,矩陣顯示方式的大屏幕液晶投影電視液晶屏等[1]。當(dāng)液晶顯示器導(dǎo)電時(shí),液晶將會(huì)按規(guī)律排列,這樣光線就能非常輕易的穿過;當(dāng)其關(guān)斷時(shí),液晶排序非常雜亂,這樣可以防止光線穿過。
隨著移動(dòng)互聯(lián)網(wǎng)時(shí)代的到來,便攜式設(shè)備中LCD顯示屏使用的頻率越來越高,許多高品質(zhì)材質(zhì)LCD也已經(jīng)面世。在這方面做的比較突出的有韓國的三星、LG與日本的JDI等。本文以常用便攜式設(shè)備為例,對(duì)LCD低功耗進(jìn)行闡述。
1.1 硬件電路設(shè)計(jì)
本文的便攜式設(shè)備主要采用三星公司的S3C2440,實(shí)際的LCD型號(hào)為群創(chuàng)AT043TN24。整個(gè)電路的硬件設(shè)計(jì)框圖如圖1所示。
整個(gè)電路主要由三個(gè)部分組成。第一部分是LCD驅(qū)動(dòng),采用LT1615;第二部分是LED背光驅(qū)動(dòng),使用MP1518芯片;第三部分是VCOM信號(hào)驅(qū)動(dòng)電路,采用LM8261芯片。在這里著重分析LCD驅(qū)動(dòng)及LED背光電路的實(shí)現(xiàn)。
圖1 系統(tǒng)電路設(shè)計(jì)框圖Fig. 1 System circuit design diagram
圖2 LCD電源電路原理圖Fig. 2 LCD power supply circuit diagram
1.2 LCD驅(qū)動(dòng)電路
LCD將模擬信號(hào)集中在里面,因此需要外接電源提供模擬電壓AVDD。另外,為了完成數(shù)據(jù)掃描,需要TFT輪流開啟/關(guān)閉[2-3]。當(dāng)TFT開啟時(shí),數(shù)據(jù)通過源極驅(qū)動(dòng)器加載到顯示電極,顯示電極和公共電極間的電壓差再作用于液晶實(shí)現(xiàn)顯示,要設(shè)置好LCD的開啟電壓Von、關(guān)閉電壓Voff。LCD電源驅(qū)動(dòng)電路由LT1615升壓電路與兩個(gè)BAT54S電路組成,其原理圖如圖2所示。LT1615電路中,SW是芯片內(nèi)部的開關(guān)管的集電極,當(dāng)開關(guān)導(dǎo)通時(shí),輸入電壓給電感充電,肖特基二極管MBR0530T1正極電壓為0,負(fù)極電壓為AVDD,這時(shí)二極管反向截止。輸出電容為負(fù)載提供電流;當(dāng)SW關(guān)斷時(shí),二極管導(dǎo)通,此時(shí)電感通過其對(duì)輸出電容進(jìn)行充電,并為負(fù)載提供電流。BAT54S為反并聯(lián)二極管,當(dāng)SW引腳導(dǎo)通時(shí),由于AVDD大于0,所以BAT54S的電壓為AVDD,對(duì)于上方的BAT54S的電壓為Voff,此時(shí)LCD關(guān)閉。反之,當(dāng)SW引腳關(guān)斷時(shí),LCD開啟。同時(shí),LCD關(guān)斷與開啟需要經(jīng)過LCD_ PWREN引腳來使能芯片。
1.3 LED背光電路
由于LCD本身是不會(huì)發(fā)光的,它需要有一個(gè)功耗非常大的光源給它提供背光才能清楚的顯示。PWM調(diào)光,即利用人眼的視覺暫留效應(yīng),使得LED在指定頻率與所選定的占空比的方波的控制條件下導(dǎo)通。只需來回的提供占空比不一樣的方波,并在高速開關(guān)的輔助下,讓LED的電流不斷的切換,從而實(shí)現(xiàn)調(diào)整亮度。只要導(dǎo)通時(shí)LED正向電流大小是恒定的,發(fā)出的白光就不會(huì)發(fā)生色偏,而且只要頻率大于100Hz,人眼看到的將是連續(xù)的光源[4]。
LED背光驅(qū)動(dòng)電路如圖3所示。MP1518是一款升壓芯片,由KEYBOARD信號(hào)使能MP1518,其原理同LT1615,由MP1518、二極管、電感以及輸出電容一起組成boost電路。
圖3 LED背光驅(qū)動(dòng)電路Fig. 3 LED backlight driver circuit
本文通過PWM信號(hào)控制LED亮度。設(shè)計(jì)時(shí),將其連接在PWM端口,使用PWM控制LCD背光亮度。S3C2440有5個(gè)16bit定時(shí)器,其中定時(shí)器0,1,2,3有PWM功能。將KEYBOARD連接到能夠輸出PWM信號(hào)的CPU的TOUT0/GPB0引腳,利用定時(shí)器0產(chǎn)生的PWM信號(hào)控制LCD亮度。通過改變PWM信號(hào)的占空比調(diào)整LED亮度,而通過設(shè)置CPU內(nèi)部寄存器的值可以改變PWM的占空比[5-6]。LED+和LED-分別連接到50引腳LCD連接器。
2.1 LCD驅(qū)動(dòng)程序
Linux系統(tǒng)提供了LCD設(shè)備相應(yīng)的幀緩沖區(qū)(framebuffer),它是LCD設(shè)備驅(qū)動(dòng)與Linux系統(tǒng)的接口[7]。因此設(shè)計(jì)LCD驅(qū)動(dòng)程序也就是在設(shè)計(jì)幀緩沖區(qū)驅(qū)動(dòng),由于有關(guān)幀緩沖設(shè)備驅(qū)動(dòng)的實(shí)現(xiàn)已經(jīng)有很多文獻(xiàn)進(jìn)行過詳盡的闡述,因此本文只研究LCD的電源管理功能。
Linux內(nèi)核中已經(jīng)有了有關(guān)電源管理的功能,由于本身的LCD驅(qū)動(dòng)程序并不支持電源管理,因此在LCD電源管理測試之前,需要先給LCD驅(qū)動(dòng)程序添加電源管理接口。其過程主要通過lcd_4.3.c來實(shí)現(xiàn)。
(1) 分配LCD電源管理結(jié)構(gòu)體lcd_pm、LCD平臺(tái)設(shè)備結(jié)構(gòu)體lcd_dev和LCD平臺(tái)驅(qū)動(dòng)lcd_driver
在lcd_pm結(jié)構(gòu)體中含有兩個(gè)成員lcd_suspend和lcd_resume函數(shù),而lcd_pm屬于dev_ pm_ops的成員,因此只需注冊(cè)dev_pm_ops結(jié)構(gòu)體的成員即可。
在lcd_suspend函數(shù)中實(shí)現(xiàn)關(guān)閉LCD與關(guān)閉背光,而在lcd_resume函數(shù)則使能LCD控制器以及LCD背光。
平臺(tái)設(shè)備結(jié)構(gòu)體lcd_dev如下:
在lcd_drv包含lcd_pm結(jié)構(gòu)體中的內(nèi)容。接下來只需要在入口函數(shù)lcd_init中將平臺(tái)設(shè)備與平臺(tái)驅(qū)動(dòng)注冊(cè)就可使用內(nèi)核調(diào)用它們。
(2) 通知程序noticfier
在凍結(jié)應(yīng)用程序之前,使用pm_notifier_call_chain((PM_SUSPEND_PREPARE)來通知驅(qū)動(dòng)程序;在重啟應(yīng)用程序之后,使用 pm_notifier_call_chain(PM_POST_SUSPEND)來通知驅(qū)動(dòng)程序。
同時(shí)要分配結(jié)構(gòu)體lcd_pm_notif_block以方便注冊(cè)的時(shí)候,內(nèi)核調(diào)用通知程序。
(3) lcd_init入口函數(shù)
在lcd_init函數(shù)中主要完成以下工作:先注冊(cè)通知程序,然后注冊(cè)平臺(tái)設(shè)備與平臺(tái)驅(qū)動(dòng)。
(4) lcd_exit出口函數(shù)
在lcd_exit函數(shù)中完成對(duì)以上結(jié)構(gòu)體的卸載。
2.2 背光驅(qū)動(dòng)程序
Linux背光驅(qū)動(dòng)程序的流程圖如圖4所示。
1)當(dāng)注冊(cè)驅(qū)動(dòng)的時(shí)候,會(huì)調(diào)用s3c_pwm_init()。首先,將LCD背光的亮度初始化,同時(shí)調(diào)用request_irqs函數(shù)來注冊(cè)按鍵中斷buttom_irqs,該中斷中包含了每次中斷對(duì)應(yīng)的按鍵號(hào)與GPIO。然后將定時(shí)器初始化,并初始化按鍵的狀態(tài)為松開(KEY_UP)。最后將驅(qū)動(dòng)指向特定的驅(qū)動(dòng)設(shè)備。lcd_dev=lcdctrl_dev_get_ops(),lcdctrl_dev_get_ops()為lcd設(shè)備結(jié)構(gòu)體分配函數(shù),其返回值為lcdctl_s3c2440.c中定義的s3c_dev。當(dāng)調(diào)用lcd_dev->set_brightness(b),即調(diào)用了s3c_ dev-> set_brightness(b)。
圖1表示4個(gè)個(gè)體在等級(jí)制度下的連接拓?fù)鋱D(因20個(gè)個(gè)體的拓?fù)鋱D比較復(fù)雜,本文用4個(gè)個(gè)體簡單理解下連接結(jié)構(gòu))。圖2表示初始配置,其中起始點(diǎn)表示位置,箭頭表示速度。圖3—5分別表示噪音強(qiáng)度為1時(shí)的最終狀態(tài)圖、位移誤差圖和速度誤差圖。σ=1滿足本文定理的條件,仿真結(jié)果驗(yàn)證了結(jié)論的正確性。另外本文還給出了σ=5時(shí)的狀態(tài)圖、位移誤差圖和速度誤差,分別如圖6—8所示。表明當(dāng)噪音值過大而不滿足定理?xiàng)l件時(shí),群集運(yùn)動(dòng)將不會(huì)發(fā)生,這從側(cè)面驗(yàn)證了本文定理的正性。
在內(nèi)核中產(chǎn)生一個(gè)背光設(shè)備,可以在內(nèi)核中查詢其設(shè)備號(hào)為122。由于背光設(shè)備驅(qū)動(dòng)屬于字符設(shè)備驅(qū)動(dòng),因此調(diào)用register_chrdev(122, _LCD_CONTROL_NAME, &lcdctrl_fops)函數(shù)注冊(cè)字符設(shè)備。同時(shí),使用以下結(jié)構(gòu)體定義各種操作函數(shù):
其中,lcdctrl_ioctl中的_LCD_CONTROL_ BRIGHT用來調(diào)節(jié)背光的亮度。
2)當(dāng)按鍵被按下的時(shí)候,迅速產(chǎn)生按鍵中斷處理函數(shù)button_interrupt(),在button_interrupt()中,按鍵如果是處于松開(KEY_UP)狀態(tài),需要使用定時(shí)器函數(shù)進(jìn)行消抖,如果按鍵的狀態(tài)不是松開狀態(tài),則退出按鍵中斷處理函數(shù);在定時(shí)器函數(shù)中,去讀按鍵的GPIO引腳的電平,如果按鍵仍被按下且按鍵狀態(tài)是不確定(KEY_DOWNX),則標(biāo)記按鍵的狀態(tài)為按下(KEY_DOWN)狀態(tài)。接著會(huì)再設(shè)置一個(gè)消抖時(shí)間更長的定時(shí)器,按照上述步驟進(jìn)行檢測按鍵的狀態(tài),若定時(shí)器檢測到已經(jīng)沒有按鍵被按下了,則標(biāo)記按鍵的狀態(tài)為松開(KEY_UP),它將會(huì)迎接一個(gè)新的中斷的產(chǎn)生。當(dāng)被標(biāo)記為按下狀態(tài)時(shí),則調(diào)用調(diào)節(jié)背光函數(shù)s3c_lcd_set_brightness()進(jìn)行背光設(shè)置。按鍵中斷與定時(shí)器函數(shù)的流程圖如圖5所示。
圖4 Linux背光驅(qū)動(dòng)程序流程圖Fig. 4 Linux backlight driver flowchart
圖5 按鍵中斷與定時(shí)器函數(shù)的流程圖Fig. 5 Key interrupt and timer function flowchart
在s3c_lcd_set_brightness()函數(shù)中主要是通過PWM定時(shí)器來調(diào)節(jié)占空比。定時(shí)器中有2個(gè)寄存器TCNTBn和TCMPBn,分別為定時(shí)器計(jì)數(shù)緩存寄存器和定時(shí)器比較緩存寄存器[8]。TCNTBn主要設(shè)置輸出頻率,TCMPBn的大小設(shè)置占空比。所以,可以設(shè)置不同的TCMPBn的大小來調(diào)節(jié)占空比的大小,雙緩沖的特性使得TCMPBn的大小可以在工作的過程中被改動(dòng)。
背光亮度由S3C2440的TOUT0/GPB0引腳的PWM來實(shí)現(xiàn)。s3c_lcd_set_brightness()函數(shù)操作代碼如下:
以上主要針對(duì)定時(shí)器的寄存器進(jìn)行操作。其中,b代表從上層函數(shù)傳入的bright的大小,由函數(shù)中的操作可知,主要通過TCMPB寄存器[9]來控制跟bright有關(guān)的值來調(diào)節(jié)PWM占空比的寬度,從而完成對(duì)背光亮度的調(diào)節(jié)。
本設(shè)計(jì)方案的硬件測試平臺(tái)為JZ2440開發(fā)板,板上已經(jīng)具有一些用于開發(fā)的資源,如LCD、觸摸屏、按鍵等等,軟件平臺(tái)采用Linux 3.4.2操作系統(tǒng),虛擬機(jī)版本中采用Ubuntu 14.04 操作系統(tǒng),使用PC與開發(fā)板的遠(yuǎn)程終端secureCRT進(jìn)行檢測開發(fā)板當(dāng)前狀態(tài)。
在開發(fā)板上主要實(shí)現(xiàn)使用按鍵對(duì)LCD休眠與喚醒的測試。剛進(jìn)入系統(tǒng)時(shí),使用腳本命令:echo mem > /sys/power/state 使系統(tǒng)進(jìn)入休眠模式,如圖6所示。同時(shí),使用按鍵喚醒系統(tǒng),則系統(tǒng)又進(jìn)入喚醒。
圖6 系統(tǒng)喚醒界面Fig. 6 System wakeup interface
在此過程,對(duì)LCD運(yùn)行與LCD休眠時(shí)消耗的電流進(jìn)行測量,如表1所示。
數(shù)據(jù)分析:LCD是便攜式設(shè)備上的耗電大戶,在LCD運(yùn)行的過程消耗電流為240mA,當(dāng)其處于休眠模式的時(shí)候,消耗的電流只有50mA,因此通過對(duì)LCD的休眠與喚醒策略能夠大大降低系統(tǒng)的功耗。
表1 實(shí)測電流消耗數(shù)據(jù)Tab. 1 Measured current data
本文提出了一種基于LCD的低功耗方案的設(shè)計(jì)與實(shí)現(xiàn)方案,同時(shí)在實(shí)踐中已經(jīng)在一些便攜式設(shè)備上得到了應(yīng)用。實(shí)際效果表明,通過低功耗策略的方法能夠使系統(tǒng)的電池使用時(shí)間延長,并且能夠更加省電。
[1] 周艷瓊, 白木. 液晶顯示技術(shù)綜述[J]. 影像技術(shù), 2002, (4): 10-15.
Z Y qiong, B Mu. A Review on Liquid Crystal Display Technology, Imaging Technology, 2002,(4): 10-15.
[2] 焦賓, 呂霞付, 李愿, 鄭思遠(yuǎn). 基于CPLD的嵌入式真彩色液晶顯示卡的設(shè)計(jì)[J]. 工業(yè)儀表與自動(dòng)化裝置, 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] 劉曉東, 黃萬偉, 吳云潔, 等. 彈性彈體被動(dòng)、主動(dòng)和復(fù)合控制及其適用性分析[J]. 新型工業(yè)化, 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背光調(diào)節(jié)及驅(qū)動(dòng)的實(shí)現(xiàn)[J]. 現(xiàn)代電子技術(shù), 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] 蔡理金, 王逢東, 王會(huì)濤. 基于S3C2440A終端LCD驅(qū)動(dòng)電路的設(shè)計(jì)與實(shí)現(xiàn)[J]. 電子設(shè)計(jì)應(yīng)用, 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] 付明玉, 吳寶奇, 張曉霜. 基于反步滑??刂频膭?dòng)力定位船鋪管循跡建模與分析[J]. 新型工業(yè)化, 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驅(qū)動(dòng)程序設(shè)計(jì)[J]. 辦公自動(dòng)化(綜合版), 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] 周小利, 王宏強(qiáng), 程永強(qiáng), 等. 寬帶MIMO雷達(dá)角度估計(jì)的統(tǒng)計(jì)分辨力[J]. 新型工業(yè)化, 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
國家自然科學(xué)基金資助項(xiàng)目(61203136)
李飛(1988-), 男, 湖南工業(yè)大學(xué)碩士生, 主要研究方向: 復(fù)雜機(jī)電系統(tǒng)的信息集成和協(xié)調(diào)控制; 凌云(1963-), 教授,碩士生導(dǎo)師, 研究方向: 智能控制
李飛,凌云,孔玲爽,等.基于LCD便攜式設(shè)備低功耗的研究[J].新型工業(yè)化,2015,5(1):38-44