歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux技術

嵌入式Linux裸機開發(十五)――LCD

嵌入式Linux裸機開發(十五)――LCD

一、LCD簡介

LCD(Liquid Crystal Display)是液晶顯示器簡稱。LCD的構造是在兩片平行的玻璃基板當中放置液晶盒,下基板玻璃上設置TFT(薄膜晶體管),上基板玻璃上設置彩色濾光片,通過TFT上的信號與電壓改變來控制液晶分子的轉動方向,從而達到控制每個像素點偏振光出射與否而達到顯示目的。

1、LCD類型

按照背光源的不同,LCD可以分為CCFL和LED兩種。
A、CCFL
指用CCFL(冷陰極熒光燈管)作為背光光源的液晶顯示器(LCD)。CCFL 的優勢是色彩表現好,不足在於功耗較高。
B、LED
指用LED(發光二極管)作為背光光源的液晶顯示器(LCD),通常意義上說WLED(白光LED)。
LED的優勢是體積小、功耗低,因此用 LED作為背光源,可以在兼顧輕薄的同時達到較高的亮度。其不足主要是色彩表現比 CCFL差,所以專業繪圖LCD大都仍采用傳統的CCFL作為背光光源。

2、技術參數

A、對比度
LCD制造時選用的控制IC、濾光片和定向膜等配件,與面板的對比度有關,對一般用戶而言,對比度能夠達到350:1就足夠了,但在專業領域這樣的對比度並不能滿足用戶的需求。相對CRT顯示器輕易達到500:1甚至更高的對比度而言,只有高檔液晶顯示器才能達到如此程度。市場上三星、華碩、LG等一線品牌如今的LCD顯示器均可以達到1000:1對比度這一級別。
B、亮度 LCD是一種介於固態與液態之間的物質,本身是不能發光的,需要借助額外的光源才行。因此,燈管數目關系著液晶顯示器亮度。最早的液晶顯示器只有上下兩個燈管,普及型的最低也是四燈,高端的是六燈。四燈管設計分為三種擺放形式:一種是四個邊各有一個燈管,但缺點是中間會出現黑影,解決的方法就是由上到下四個燈管平排列的方式,最後一種是“U”型的擺放形式,其實是兩燈變相產生的兩根燈管。六燈管設計實際使用的是三根燈管,廠商將三根燈管都彎成“U”型,然 後平行放置,以達到六根燈管的效果。
C、信號 響應時間指的是液晶顯示器對於輸入信號的反應速度,也就是液晶由暗轉亮或由亮轉暗的反應時間(亮度從10%-->90% 或者90%-->10%的時間),通常是以毫秒(ms)為單位。人眼存在“視覺殘留”的現象,高速運動的畫面在人腦中會形成短暫的印象。動畫片、電影等一直到現在最新的游戲正是應用了視覺殘留的原理,讓一系列漸變的圖像在人眼前快速連續顯示,便形成動態的影像。人能夠接受的畫面顯示速度一般為每秒24張,這也是電影每秒24幀播放速度的由來,如果顯示速度低於這一標准,人就會明顯感到畫面的停頓和不適。按照這一指標計算,每張畫面顯示的時間需要小於40ms。這樣,對於液晶顯示器來說,響應時間40ms就成了一道 坎,高於40ms的顯示器便會出現明顯的畫面閃爍現象,讓人感覺眼花。要是想讓圖像畫面達到不閃的程度,則就最好要達到每秒60幀的速度。
D、可視角度 LCD的顯示原理中,當背光源通 過偏極片、液晶和取向層之後,輸出的光線便具有了方向性,大多數光都是從屏幕中垂直射出來的,所以從某一個較大的角度觀看液晶顯示器時,便不能看到原本的顏色,甚至只能看到全白或全黑。目前為止有三種比較流行的技術解決,分別是:TN+FILM、 IPS(IN-PLANE -SWITCHING)和MVA(MULTI-DOMAIN VERTICAL alignMENT)。
可視角度分為平行和垂直可視角度,水平角度是以液晶的垂直中軸線為中心,向左和向右移動,可以清楚看到影像 的角度范圍。垂直角度是以顯示屏的平行中軸線為中心,向上和向下移動,可以清楚看到影像的角度范圍。可視角度以“度”為單位,比較常用的標注形式是直接標出總水平、垂直范圍,如:150/120度,目前最低的可視角度為120/100度(水平/垂直),低於這個值則不能接受,最好能達到150/120度以上。

3、特性

LCD特性如下:
低壓微功耗
外觀小巧精致,厚度只有6.5~8mm
被動顯示型(無眩光,不刺激人眼,不會引起眼睛疲勞)
顯示信息量大(因為像素可以做得很小)
易於彩色化(在色譜上可以非常准確的復現)
無電磁輻射(對人體安全,利於信息保密)
長壽命(壽命極長,但是液晶背光壽命有限,可以更換)

二、LCD接口技術

LCD的接口依據LCD的驅動方式和控制方式有:MCU模式,RGB模式,SPI模式,VSYNC模式,MDDI模式,DSI模式。應用較多的有MCU模式和RGB模式。MCU接口和RGB接口主要的區別是:
A、MCU接口方式:顯示數據寫入DDRAM,常用於靜止圖片顯示。
B、RGB接口方式:顯示數據不寫入DDRAM,直接寫屏,速度快,常用於顯示視頻或動畫用。
RGB模式是大屏采用較多的模式,數據位傳輸有6位,16位和18位,24位之分。連線一般有:VSYNC,HSYNC,DOTCLK,CS,RESET,有的也需要RS,剩下就是數據線。RGB-LCD的顯存是由系統內存充當的,因此其大小只受限於系統內存的大小。RGB屏只需顯存組織好數據。啟動顯示後,LCD-DMA會自動把顯存中的數據通過RGB接 口送到LCM。而MCU屏則需要發送畫點的命令來修改MCU內部的RAM(即不能直接寫MCU屏的RAM)。所以RGB顯示速度明顯比MCU快,而且播放視頻方面,MCU-LCD也比較慢。
TFT-lCD常用的接口有TTL(RGB)、LVDS、EDP、MIPI。

1、TTL(RGB)

TTL(Transistor Transistor Logic)即晶體管-晶體管邏輯,TTL電平信號由TTL器件產生。TTL接口屬於並行方式傳輸數據的接口,采用這種接口時,不必在液晶顯示器的驅動板端和液晶面板端使用專用的接口電路,而是由驅動板主控芯片輸出的TTL數據信號經電纜線直接傳送到液晶面板的輸人接口。TTL 接口信號電壓高、連線多、傳輸電纜長,因而電路的抗干擾能力比較差,而且容易產生電磁干擾(EMI)。在實際應用中,TTL接口電路多用來驅動小尺寸 (15in以下)或低分辨率的液晶面板。TTL最高像素時鐘只有28MHz。
TTL是信號時TFT-LCD唯一能識別的信號,早期的數字處理芯片都是TTL的,也就是RGB直接輸出到TFT-LCD。
RGB接口:
VD[23:0]:24根數據線,用愛傳輸圖像數據
HSYNC:水平同步信號,
VSYNC:垂直同步信號,
VCLK:像素時鐘,
VDEN:
LEND:行結束標志

2、LVDS

LVDS,即Low Voltage Differential Signaling, 是一種低壓差分信號技術接口。克服以TTL電平方式傳輸寬帶高碼率數據時功耗大、EMI電磁干擾大等缺點而研制的一種數字視頻信號傳輸方式。LVDS輸出接口利用非常低的電壓擺幅(約350mV)在兩條PCB走線或一對平衡電纜上通過差分進行數據的傳輸,即低壓差分信號傳輸。采用LVDS輸出接口,可以使得信號在差分PCB線或平衡電纜上以幾百Mbit/s的速率傳輸,由於采用低壓和低電流驅動方式,因此,實現了低噪聲和低功耗。

三、LCD顯示圖像過程

LCD-TFT的圖像顯示過程如下圖:



1、像素

像素是圖像元素簡稱,是指基本原色素及其灰度的基本編碼。像素只是分辨率的尺寸單位,而不是畫質。像素是構成數碼影像的基本單元,通常以像素每英寸PPI(pixels per inch)為單位來表示影像分辨率的大小。通過控制每一個像素顯示一定的顏色可以顯示一幅完整的圖像。

2、圖像掃描加載

LCD圖像通過從左到右,從上到下的順序加載每一個像素,進而加載整幅圖像。

3、LCD驅動器、控制器

LCD控制器是SoC的內部外設,用於產生數字信號,按照一定的通信時序與LCD驅動器通信,控制LCD驅動器工作。
LCD驅動器集成在LCD面板,通過模擬電信號驅動LCD面板的液晶分子旋轉發光。

四、LCD參數

1、RGB接口時序




HSPW:水平同步信號脈沖寬度HBPD:水平同步信號前肩HFPD:水平同步信號後肩VSPW:垂直同步信號脈沖寬度VBPD:垂直同步信號前肩VFPD:垂直同步信號後肩行數據格式:HSPW+HBPD+有效信息數據+HFPD(一個VDEN周期)幀數據格式:VSPW+VBPD+幀有效信息+VFPD具體的參數值查閱LCD技術文檔。

2、LCD顯示參數

像素pixel:圖像元素
像素間距pitch:相鄰連個像素中心之間的距離
分辨率resolution:LCD屏幕橫向和縱向的像素個數,分辨率與屏幕尺寸無關。
清晰度:影像上各細部影紋及其邊界的清晰程度
像素深度bpp(bits per pixel):一個像素由多少位保存

五、LCD編程實踐

1、電路原理圖查閱

查閱LCD文檔LCD時序部分,獲取LCD的時序參數



#define HSPW (10)
#define HBPD(40 - 1)
#define HFPD (210)
#define VSPW(7)
#define VBPD (23)
#define VFPD (22)
#define ROW(480)
#define COL(800)
#define HOZVAL(COL-1)
#define LINEVAL(ROW-1)
查閱核心板電路原理圖LCD相關部分,相應GPIO引腳為GPF0-GPF3



查閱底板電路原理圖LCD部分,背光打開引腳為XpwmTOUT1,對應GPIO為GPD0。


2、工程項目

工程項目以SDRAM初始化項目為模本,主要是在LCD屏幕畫像素、橫線、豎線、斜線、圓。
源碼見附件。
本文出自 “生命不息,奮斗不止” 博客,請務必保留此出處http://9291927.blog.51cto.com/9281927/1787955
Copyright © Linux教程網 All Rights Reserved