LCD控制器的原理及各暫存器功能的詳細講解
LCD工作原理
如圖4-24 所示,LCD 的橫截面很像是很多層三明治疊在一起。每面最外一層是透明的玻璃基體,玻璃基體中間就是薄膜電晶體。顏色過濾器和液晶層可以顯示出紅、藍和綠三種最基本的顏色。通常,LCD後面都有照明燈以顯示畫面。
一般只要電流不變動,液晶都在非結晶狀態。這時液晶允許任何光線通過。
液晶層受到電壓變化的影響後,液晶只允許一定數量的光線通過。光線的反射角度按照液晶控制。
當液晶的供應電壓變動時,液晶就會產生變形,因而光線的折射角度就會不同,從而產生色彩的變化。
一個完整的TFT 顯示屏由很多畫素構成,每個畫素象一個可以開關的電晶體。這樣就可以控制TFT 顯示屏的解析度。
如果一臺LCD的解析度可以達到1024 x 768 畫素 (SVGA),它就有那麼多畫素可以顯示。
4.11.2 S3C44B0X LCD 控制器介紹
S3C44B0X內建LCD控制器可以支援規格為每畫素2位(4級灰度)或每畫素4位(16級灰度)的黑白LCD。也可以支援每畫素8位(256級顏色)的彩色LCD屏。
LCD控制器可以通過程式設計支援不同LCD屏的要求,例如行和列畫素數,資料匯流排寬度,介面時序和重新整理頻率等。
LCD控制器的主要的工作,是將定位在系統儲存器中的顯示緩衝區中的LCD影象資料傳送到外部LCD驅動器。
其內部結構框圖如圖4-25所示。
暫存器控制對18個可程式設計LCD控制暫存器進行配置;
DMA傳送控制自動將顯示幀緩衝區資料經由資料控制,傳送到LCD屏;
資料控制將顯示資料以4/8單掃描或4位雙掃描模式輸出資料VD[7:0] ;
訊號產生電路產生 VFRAME、VLINE、VCLK、 VM等訊號。
LCD控制器的外部介面訊號
① VFRAME:
LCD控制器和LCD驅動器之間的幀同步訊號。該訊號告訴LCD屏新的一幀開始了。
LCD控制器在一個完整幀顯示完成後立即插入一個VFRAME訊號,開始新一幀的顯示;該訊號與LCD模組的YD訊號相對應。
② VLINE:
LCD控制器和LCD驅動器之間的線同步脈衝訊號,該訊號用於LCD驅動器將水平線(行)移位暫存器的內容傳送給LCD屏顯示。
LCD控制器在整個水平線(整行)資料移入LCD驅動器後,插入一個VLINE訊號;該訊號與LCD模組的LP訊號相對應。
③ VCLK:LCD控制器和LCD驅動器之間的畫素時鐘訊號,由LCD控制器送出的資料在VCLK的上升沿處送出,在VCLK的下降沿處被LCD驅動器取樣;該訊號與LCD模組的XCK訊號相對應。
④ VM:LCD驅動器的AC訊號。VM訊號被LCD驅動器用於改變行和列的電壓極性,從而控制畫素點的顯示或熄滅。VM訊號可以與每個幀同步,也可以與可變數量的VLINE訊號同步;該訊號與LCD模組的DISP訊號相對應。
⑤ VD[3:0]:LCD畫素點資料輸出埠。與LCD模組的D[3:0]相對應。
⑥VD[7:4]:LCD畫素點資料輸出埠。與LCD模組的D[7:4]相對應。
4.11.3 LCD控制器的操作
1. 顯示型別
S3C44B0X的LCD控制器支援3種LCD驅動器:4位雙掃描,4位單掃描,8位單掃描顯示模式。其中,8位單掃描方式如圖4-26所示。
圖 4-26 8位單掃描方式
8位單掃描顯示採用8位並行資料線進行“行”資料連續移位輸出,直到整個幀的資料都被移出為止。
彩色畫素點的顯示要求3種顏色的影象資料,這使得行資料移位暫存器需要傳輸3倍於每行畫素點個數的資料。這個RGB資料通過平行資料線連續地移位至LCD驅動器。
圖4-27是LM057QC1T01的掃描模式圖,可見LM057QC1T01是按照8位單掃描模式工作的。在8位單掃描方式中,LCD控制器的8條(VD[7:0])資料輸出可以直接與LCD驅動器連線。
圖 4-27 LM057QC1T01的掃描模式圖
2. 畫素點位元組資料格式(BSWP=0)
在彩色模式下,1個位元組8位(3位紅色、3位綠色、2位藍色)的影象資料對應於一個畫素點。畫素點位元組在儲存器中儲存的格式為332模式,如表表4-59所示。
表4-59 畫素點位元組資料格式表
Bit[7:5] Bit[4:2] Bit[1:0]
紅 綠 藍
3. 虛擬顯示
S3C44B0X支援硬體方式的平行或垂直滾動。
如果要使螢幕滾動,可以通過修改LCDSADDR1和LCDSADDR2暫存器中的LCDBASEU和LCDBASEL的值來實現。
但不是通過修改PAGEWIDTH和OFFSIZE來實現。如果要實現滾動,則顯示緩衝區的大小要大於LCD顯示屏的大小。
LCDBASEU、LCDBASEL、PAGEWIDTH和OFFSIZE的定義如圖4-28所示,LCDBASEU幀緩衝區的開始地址,在突發4字存取模式,最低4位必須取消。
LCDBASEL由LCD尺寸和LCDBASEU值確定,公式為:
LCDBASEL=LCDBASEU+(PAGEWIDTH+OFFSIZE)×(LINEVAL+1)
其中:
PAGEWIDTH為顯示儲存區的可見幀寬度(半字數);
OFFSIZE為某一行的第一個半字與前一行最後一個半字之間的距離;
LCDBANK指定視訊緩衝區在系統儲存器內的bank地址(ENVID=1時,該值不能改變)。
4. 查詢表
S3C44B0X可以支援調色盤表(即查詢表),用於各種色彩選擇或灰度級別的選擇。
這種方法給予使用者很大的靈活性。
查詢表也稱為調色盤,在灰度模式中,通過查詢表可以在16級灰度中選擇4級灰度;
在彩色模式中,1個位元組的影象資料是用3位來表示紅色,3位表示綠色,2位表示藍色。
通過查詢表,可以選擇16級紅色中的8級紅色,16級綠色中的8級綠色,16級藍色中4級藍色。256色意味著所有顏色都是由8種紅色,8種綠色和4種藍色構成(8×8×4=256)。
參考後面小節關於查詢表暫存器的說明.
例如:
REDLUT(紅色查詢表暫存器),1個位元組的3位是表示紅色的,這3位可以取值000、001、010……111共8個值。取某個值時,對應的色彩級別究竟是多少,就在查詢表中設定。每個色彩級別由4位資料表示,因此共有16個色彩級別可供選擇。
4.11.4 LCD 控制器專用暫存器
LCD控制器主要提供液晶屏顯示資料的傳送時鐘和各種訊號產生與控制功能。
1. LCD 控制引數設定
VFRAME和VLINE脈衝的產生通過對LCDCON2暫存器的HOZVAL和LINEVAL域進行配置來完成。每個域都與LCD的尺寸和顯示模式有關。
HOZVAL和LINEVAL可以通過下式計算出來:
HOZVAL=(顯示寬度/VD資料線的位數)-1
在彩色模式下:
顯示寬度=3×每行的畫素點數目
例如:
我們採用的LCD,HOZVAL=(320×3/8)-1
在單掃描顯示型別下:
LINEVAL=(顯示寬度)-1;
在雙掃描顯示型別下:
LINEVAL=(顯示寬度/2)-1;
例如:
對於我們採用的LCD,LINEVAL=240-1
VCLK訊號的頻率可以通過LCDCON1暫存器的CLKVAL域來確定。它們存在以下關係:
VCLK(Hz)=MCLK/(CLKVAL×2)
LCD控制器的最大VCLK頻率為16.5MHz,這使得LCD控制器幾乎支援所有已有的LCD驅動器。
由於上述關係,CLKVAL的值決定了VCLK的頻率,為了確定CLKVAL的值,應該計算一下LCD控制器向VD埠傳輸資料的速率,使得VCLK的值大於資料傳輸的速率。
資料傳輸速率通過以下的公式計算:
資料傳輸速率=HS×VS×FR×MV
其中HS是LCD的行的尺寸,VS是LCD的列的尺寸,FR是幀速率,MV是模式值,取值如表4-60所示。
表4-60 顯示模式與MV對照表
單色 4位單掃描 1/4 16級灰度 4位單掃描 1/4
單色 8位單掃描 1/8 16級灰度 8位單掃描或4位單掃描 1/8
4級灰度 4位單掃描 1/4 彩色 4位單掃描 3/4
4級灰度 8位單掃描或4位單掃描 1/8 彩色 8位單掃描或4位單掃描 3/8
假設HS = 320;VS = 240;FR =70;
MV = 3/8。
資料傳輸速率=320×240×70×3/8
=2016000
VCLK的值應大於2M,小於16M,因此CLKVAL可以取值3~15。
VFRAME訊號的頻率與LCDCON1和LCDCON2暫存器中的WLH(VLINE脈衝寬度),WHLY(VLINE脈衝之後VCLK的延時寬度),HOZVAL,VLINEBLANK,和LINEVAL有關。
大多數的LCD驅動器需要適應的幀頻率,LM057QC1T01的幀頻率範圍是70Hz~80Hz。
幀頻率的計算可以依據下式:
幀頻率(Hz) = 1/[((1/VCLK)×(HOZVAL+1)+(1/MCLK)×
(WLH+WDLY+LINEBLANK))×(LINEVAL+1)]
其中VCLK=8M,HOZVAL=119,MCLK=64M,LINEVAL=239
2. LCD 控制暫存器1/2/3
LCDCON1/2控制暫存器主要配置VFRME、VCLK、VLINE和VM控制訊號,LCDCON3控制LCD重新整理模式。如表4-61、4-62、4-63所示。
3. 幀緩衝區起始地址暫存器 1/2/3
LCDSADDR1/2/3 為幀緩衝區起始地址暫存器,其位定義如表4-64、表4-65、表4-66所示。
4.紅綠藍查詢表暫存器
紅色查詢表暫存器定義如表4-67所示。
5.抖動模式暫存器