LCD顯示器概述linux
——》液晶顯示器,LCD爲英文 Liquid Crystal Display的縮寫,它是一種數字顯示技術,能夠經過液晶和彩色過濾光源,並在平面面板上產生圖像。緩存
——》與傳統的陰極射線管(CRT)相比,LCD佔用空間小、低功耗、低輻射、無閃爍、下降視覺疲勞,具備很大的發展潛力。ide
液晶
字體
——》物質有三態:固態、液態和睦態。實際上,所謂的三態只是大體的劃分,某些物質的固態能夠再被細分出不一樣性質的狀態。同理,液體一樣也能夠具備不一樣的「態」。其中,人們將分子排列具備方向性的液體稱爲「液態晶體」,簡稱「液晶」。ui
——》通常的固態晶體具備方向性,因此它們的許多物理特性也具備方向性。而液態晶體在具備固態晶體方向性的同時又具備液體的流動性。一般,若是要改變固態晶體的方向,必須旋轉整個晶體。而液態晶體具備流動性,它的方向能夠用電場或磁場來控制。spa
LCD顯示屏的背光設計
——》LCD顯示屬於被動顯示方式,液晶自己不能發光,它只能經過對光線的穿透和反射來實現顯示功能,因此,全部的液晶顯示都會有背光來照亮液晶。3d
LCD顯示原理blog
——》TN型顯示器使用的是液晶顯示中最基本的顯示技術,而其它各種的液晶顯示器大多也是基於 TN型顯示技術改良而得。TN型顯示器的工做原理與其它顯示技術相比比較簡單。接口
——》由上圖能夠看出,液晶顯示器由兩個偏振片(垂直方向與水平方向各一個),有細紋溝槽的配向膜,液晶材料以及導電的玻璃基板組成。
——》在不加電場的狀況下,入射光通過偏振片後造成偏振光,偏振方向爲垂直方向。當偏振光穿過液晶層後,偏振光的偏振方向被分子扭轉排列的液晶層旋轉90度,變成了水平方向。此方向與下偏光片的偏振方向相同,於是它能夠徹底穿透下偏光片達到反射板,被反射板反射後能夠沿原路返回,表現出透明狀態。
——》當在液晶的上下電極加入電場時,每一個液晶分子的光軸轉向與電場方向一致(垂直排列),從而失去了旋光性。那麼,從上偏光片入射進來的偏振光在通過液晶時將再也不被旋轉。當此偏振光到達下偏振片時,因爲其偏振方向與下偏片的偏光方向成正交垂直關係,被下偏振片徹底吸引,沒法經過造成反射光,於是,電極面呈現出黑色。
——》可見,經過電場的有無能夠控制液晶的分子排列,從而獲得光暗對比的現象,稱作扭轉式向列場效應,簡稱 TNFE(Twisted Nematic Field Effect)。電子領域中所用的液晶顯示器,幾乎都是用扭轉式向列場效應原理製成的。
——》注意:TN型的液晶顯示器顯示屏幕作的越大,其屏幕對比度就會顯得較差,不過 STN的改良技術能夠在必定程序上彌補對比度不足的狀況。
STN型彩色顯示器工做原理
——》單純的 TN液晶顯示器自己只有明暗兩種狀態(或稱黑白),沒法實現色彩的變化。而 STN液晶顯示器因爲液晶材料的關係以及光線的干涉現象,顯示的色調都以淡綠色與橘色爲主,一樣沒法知足色彩顯示的要求。
——》可是,若是爲傳統單色 STN液晶顯示器加上一個彩色濾光片(color filter),將單色顯示矩陣中的每個像素(pixel)分紅3個子像素(sub-pixel),而後分別經過彩色濾光片顯示紅、黃、藍三原色,再根據三原色比例調和,就能夠顯示出彩色畫面。
——》從液晶顯示原理分析,STN是經過電場改變原爲 180度以上扭曲的液晶分子的排列,達到改變旋光狀態的目的。外加電場則經過逐行掃描的方式改變電場,所以在電場反覆改變電壓的過程當中,每一點的恢復過程都較慢,這樣就會產生餘輝現象。用戶能感受到拖尾,(餘輝)現象也就是通常俗稱的「僞彩」。
——》因爲 DSTN顯示屏上的像素信息是由屏幕左右兩側的一整行晶體管控制下的像素來顯示,並且每一個像素點不能發光,是無源像點。因此反應速度不快,屏幕刷新後更可能留下幻影,其對比度和亮度也比較低,看到的圖像要比 CRT顯示器裏的暗得多。
TFT顯示器
——》TFT(Thin Film Transistor)-LCD爲有源矩陣液晶顯示器件,彩色液晶顯示器件分單色和多色(全綵色)兩種,在全綵色的實現方式中技術成熟的是「微彩色膜」方式。原理以下圖
——》如圖所示,TFT將點陣像素分割成紅、綠、藍3個子像素,並在其對應位置的器件內表面設置 R、G、B 3個微型濾色膜,此時液晶顯示器件僅僅做爲一個光閥,控制每一個子像素光閥,就能夠控制濾色膜透過光的通斷;控制光閥的灰度等級,就可能控制相應濾色摸透過光的多少;利用 R、G、B這3個子像素透過的不一樣光量,即可以混合加色實現極爲豐富的彩色。
——》TFT-LCD的每一個像素點都是由集成在自身上的 TFT來控制的,它們是有源像素點。所以,不但反應時間能夠極大地加快,對比度和亮度也大大提升;同時,分辨率也獲得了空前的提高。由於它具備更高的對比度和更豐富的色彩,熒屏更新頻率也更快,一般稱爲「真彩」。
LCD驅動方式
——》LCD的驅動方式由電極引線的選擇方向肯定,因此,當液晶顯示器被選定以後,相應的驅動方式也就肯定下來了。
——》從驅動方式上看,LCD型顯示器的分類比較多,但整體上能夠分爲靜態驅動和動態驅動兩種。靜態驅動方式與 LED型顯示器驅動類似,所須要的驅動信號相對較少。動態驅動方式比較複雜,須要的電極驅動信號比較多,設計起來也相對複雜。
——》注意:若是使用直流電壓驅動 LCD,時間久了將會致使液晶發生電解以及電極老化,從而大大下降 LCD的使用壽命。所以,人們大都選用交流電壓驅動方式。
靜態驅動方式
——》先來個靜態驅動的時序波形
——》其中 LCD表示某個液晶顯示字段,當此字段上兩個電極的電壓相同時,兩電極之間無電位差,入射光線不吸取,該字段不顯示;當此字段上的兩個電極電壓相位相反時,兩電極之間的電位差不爲0,爲兩倍幅值的波信號,該字段顯示呈現出黑色。
——》雖然靜態驅動方式與 LED型顯示驅動有些類似,但它與數碼管驅動也存在着很大的不一樣,對數碼管而言,經過在 LED兩端加載恆定電壓使其導通或截至即可控制它的亮或暗。而 LCD兩端不能加載恆定的直流電壓,從而增長了驅動複雜性。
——》一般,在 LCD的公共極加交變方波信號,以下圖
——》經過控制前極電壓的變化,使 LCD兩極間產生兩倍幅值的方波信號,從而達到對 LCD亮/暗的控制。
動態驅動方式
——》動態驅動實質上是矩陣掃描,可用於多維的點陣顯示。點陣顯示是把液晶置於垂直的條狀電極之間,各條狀電極交點的組合來顯示,可組成圖形和各類字符。這種顯示方法若是隻在與現實點的行列上加載電壓,則非顯示點也會因有電壓產生「交叉效應」,從而下降對比度。一般在非選中點,加載低於閾值的電壓來清除「交叉效應」的影響。
灰度 STN的時序
——》STN顯示屏是靠控制信號的佔空比來顯示灰度和顏色的嘗試,當掃描時,每根數據線均對應屏幕上的一個點,這個點的顏色嘗試就是靠相對應數據線中的傳送信號的佔空比動態掃描出來的。
——》所以,灰度液晶屏和黑白液晶屏在結構和控制時序上沒有什麼分別,僅僅是掃描方式有所不一樣,用戶能夠經過設置液晶掃描控制器來實現灰度或黑白液晶的不一樣模式。
——》典型的 8位 STN顯示屏掃描時序以下圖,可見,灰度 STN顯示屏主要有 5種類型的掃描信號。經過設置相關的寄存器,可使 LCD控制器按照同步信號逐幀逐行傳送顯示數據。
彩色 STN時序
——》先來一個 320*240分辨率的顯示屏,點陣排列方式圖
——》從圖中能夠看出,一個320*240的彩色 STN顯示屏,水平方向有 960個像素點,垂直方向有240個點,那麼,對於有 8位數據線的液晶屏,數據線和顯示屏中點對應關係以下所示
——》從上圖能夠看出,彩色 STN屏的輸出信號是 8根數據線週期地輪流輸出紅、綠、藍3種原色的數據。經過對這 3種顏色的深度進行控制能夠實現彩色的顯示,其控制原理與灰度液晶的現實原理相似(也是經過佔空比來控制)。
TFT的時序
——》TFT顯示屏的掃描時序與 STN顯示屏有所不一樣,其掃描信號以下
——》在顏色控制上,TFT顯示屏與 STN顯示屏也不相同,TFT顯示屏並非經過控制信號佔空比來控制顏色深度的,其顏色深度徹底由二進制數據來表示,即每次時鐘(VCLK)輸入的數據只對應一個點的顏色。
——》例如,一個 16位的 TFT顯示屏,其掃描數據線和屏幕點的對應關係如圖所示。
——》16位TFT屏中掃描數據線和屏幕對應點的關係
——》16位 TFT屏 5:6:5數據分配分式
LCD的字符顯示緩存
——》LCD的字符顯示就是將字庫(漢字或英文)中的字模用點陣圖形的方式顯示在 LCD上,它的顯示原理和圖形顯示方法相同,咱們只須要將所要顯示的字體看成一幅圖像,顯示在 LCD屏幕上便可。
——》經常使用的漢字點陣字庫文件有 16*16 點陣 HZK16文件,按漢字區位碼從小到大依次存儲國標區位碼錶中的全部漢字,每一個漢字 32字節,每一個區 94個漢字。
——》在計算機中,漢字是以機內碼的形式存儲,每一個漢字兩個字節。其中,第一個字節表示區碼,第二個字節表示位碼。爲了和 ASCII碼進行區別,區碼和位碼均從 A1H開始(ASCII碼小於 80H)。
——》這樣一來,將機內碼減去 A0A0就能夠獲得漢字的區位碼,具體的計算公式爲:
位置=(94*(qh-1)+wh-1)*一個漢字字節數
——》因爲字模的顯示方法和點陣顯示圖像的想法相同,因此一個漢字字模佔用的字節數將會因漢字的大小不一樣而不一樣。
基於 Framebuffer的 LCD驅動
——》前面介紹了液晶顯示的基本原理及驅動基礎,都是基於裸機的,可是在嵌入式linux系統下操做時,咱們只須要將顯示的數據按照特定的格式寫入顯示緩存,對應的屏幕上就會有指望有顯示圖像出現。
——》在軟件設計層面上,人們的主要工做就是準確獲得這個顯示緩存的地址,對它進行相應的操做便可。實際上,Linux爲顯示設備專門提供了一類驅動程序,叫作幀緩衝(Framebuffer)設備驅動程序。
——》Framebuffer是出如今 Linux 2.2.xx 內核版本之後的一種驅動程序接口,這種接口顯示設備抽象成爲幀緩衝區(一個面向顯示緩衝區的統一接口)。應用程序不須要知道底層硬件的任何信息,它僅和 Framebuffer抽象出來的接口打交道,這樣就大大下降了擁有 GUI界面程序的移植工做。
——》對用戶來講,幀緩衝區能夠被看做是顯示內存的一個映像,將其映射的進程地址空間後,就能夠進行直接的讀寫操做,其操做結果也能夠當即反映顯示在屏幕上。
——》在嵌入式Linux中,幾乎全部的 GUI都是以 Framebuffer(幀緩衝)爲基礎的。Framebuffer驅動並不提供任何有關圖形的 API給用戶,它僅完成將顯示緩衝的數據顯示在 LCD上。