1. 程式人生 > >Lcd(一)顯示原理

Lcd(一)顯示原理

一、LCD控制原理

S5PV210處理器中自帶LCD控制器,控制LCD的顯示,把 LCD 影象資料從一個位於系統記憶體的 video buffer 傳送到一個外部的 LCD 驅動器介面。

型別

1、STN(超扭曲向列),它的特點是功耗低,但亮度不足,響應時間長;(1602那種型別的)
2、TFT(薄膜電晶體),它的特點是響應時間短,畫面清晰,但功耗稍高,(自己實驗用的應該是這個型別的,這個型別當作計算機液晶顯示裝置)。
3、LTPS(低溫多晶矽),各方面效能優越,但技術要求高;

4、OLED(有機發光二極體),各方面效能優越,但技術要求高。

LCD驅動介面支援 3 種介面

  •    RGB 介面:((並行 24 位,序列 8 位)自己用的使這種)
  •   indirect-i80 介面
  •   UV 介面

SoC如何控制LCD顯示原理

       LCD驅動器:LCD驅動器一般與LCD面板整合在一起,面板需要一定的模擬電訊號來控制液晶分子,LCD驅動器晶片負責給面板提供控制液晶分子的模擬電訊號,驅動器的控制訊號(數字訊號)來自於LCD控制器的提供的介面。

  LCD控制器:LCD控制器整合在SoC內部,它負責通過數字介面向外部的LCD驅動器提供要顯示的畫素數字訊號。它必須按照一定的時序和LCD驅動器通訊,LCD控制器受SoC控制,SoC會從記憶體中拿出畫素資料給LCD控制器並最終傳給LCD驅動器。

  視訊記憶體:SoC在記憶體中選一段記憶體,用來存放顏色資料,然後通過配置將LCD控制器和這一段記憶體連線起來,構成一個對映關係,一旦這個關係建立以後,LCD控制器就會自動從視訊記憶體中讀取畫素資料傳給LCD驅動器,LCD驅動器會自動的控制每個畫素點的液晶分子,以形成最終的影象,建立這個對映以後就不需要SoC在來參與任何行為了。

  總結一下:SoC控制LCD液晶顯示的過程分為兩個部分:

    (1) SoC的LCD控制器引出一定的引腳與LCD驅動器連線,按照標準設定一定的時序;

    (2) 把LCD要顯示的畫素資訊放入記憶體中,在通過設定LCD控制器中的暫存器,與LCD控制器建立對映;之後過程就是LCD控制器晶片與驅動器晶片自動完成的事情了,整個LCD影象的顯示過程就是這樣。

S5PV210 的 LCD 控制器支援多種顏色格式,例如

  • RGB (1BPP 到 24BPP)
  • YCbCr 4:4:4 (只有本地匯流排)

1:顯示屏跟記憶體的關係。

我們都買過顯示卡,知道買獨立顯示卡的好,那麼為什麼獨顯好?
獨顯跟集顯的區別又在哪裡?
獨顯的特點

:有獨立記憶體
   可以獨立複製內容(DMA控制器)
集顯的特點:跟主機板共用記憶體
   可以獨立複製內容(DMA控制器)

2:螢幕為什麼能顯示?(集顯)
1)在初始化的時候,在記憶體開闢的一片空間作為視訊記憶體
2)將要顯示的內容寫到視訊記憶體上
3)lcd控制器對視訊記憶體進行讀取,然後寫入顯示屏裡。
A:DMA完成顯示資料的傳輸,不需要CPU執行COPY函式
B:LCD控制器向顯示屏提供時序訊號、視訊資料、.....

二、LCD顯示原理

如果需要顯示一滿屏的資料,則資料的大小:800*480*24bits
1、幀同步訊號:液晶屏的重新整理頻率、垂直同步訊號的頻率、場頻率
       幀同步訊號=  50Hz~70Hz,典型值:60Hz
2、行同步訊號的頻率:一幀中有多少行?
       行同步訊號的頻率 = ( 480 +回掃的行數(45) )* 幀同步訊號的頻率
3、畫素時鐘的頻率:掃描畫素點的頻率
      畫素時鐘頻率 = (800+一行中回掃的畫素點(256))*行同步訊號的頻率

注意:
1、液晶屏的分頻率越大,則VCLK的頻率越高
2、VCLK的頻率的最大上限:HCLK_DSYS=166MHz
3、思考:S5PV210最大可以接多大的液晶屏?
計算:
在800*480的LCD中,VCLK的頻率值:
VCLK = (800+256)*(480+45)* 60Hz = 33.264MHz

三、LCD的描述引數(液晶屏的選型)

1、解析度     行和列畫素點的個數
2、尺寸        有效的顯示區對角線的長度,單位英寸。
3、色位        一個畫素點用多少位資料來描述----24bits
4、響應時間         重新整理時間---->60Hz(16ms)
                            響應時間---->幾ms
5、亮度        cd/m**2  --->高亮屏:600
                                          一般屏:250
6、對比度     白色的亮度/黑色的亮度。
 
7、壽命        單位:小時    5萬小時
                    當液晶屏的亮度降低到出廠亮度的一半的時候,認為壽命到了。
 
8、可視角度      四個方向的可視角度是不對稱的,一般有一個方向是比較差的

四、硬體的設計介面

1、S5PV210 LCD控制器的介面

看一下核心板原理圖:LCD接線為24條VD資料輸出線,用來傳輸RGB888 24位顏色資料,VCLK時鐘線,HSYNC:水平同步訊號線;VSYNC:垂直同步訊號線,VDEN:資料使能線;

RGB介面訊號
LCD_HSYNC:    行同步訊號,表示一行資料的開始,LCD控制器在整個水平線(整行)資料移入LCD驅動器後,

                           插入一個LCD_HSYNC訊號;  
LCD_VSYNC:    幀同步訊號,表示一幀資料的開始,LCD控制器在一個完整幀顯示完成後立即插入一個LCD_VSYNC訊號,

                           開始新一幀的顯示;VSYNC訊號出現的頻率表示一秒鐘內能顯示多少幀影象,稱為“顯示器的頻率”
LCD_VCLK:       畫素時鐘訊號,表示正在傳輸一個畫素的資料;
LCD_VDEN:      資料使能訊號;
LCD_VD[23:0]:  LCD畫素資料輸出埠

五、英寸液晶屏介面  

0xffff

1-11位是功能  剩下的每八位 分別是藍綠紅

八、LCD的驅動主要做什麼?

1、根據液晶屏的特定引數來設定LCD控制器(介面、bpp、......)
2、設定液晶屏的同步訊號的頻率(VCLK、VSYNC、HSYNC.....)
3、設定液晶屏的時序引數(幀的回掃時間、行的回掃時間、同步訊號的極性.....)
4、設定視訊記憶體的位置和大小

九、LCD的時序圖

1、LCD控制器的輸出時序

(1)幀的傳輸過程
    1)VSYNC訊號有效時,表示一幀資料的開始,   訊號寬度為 (VSPW + 1)個HSYNC訊號週期,即(VSPW + 1)個無效行;
    2)VSYNC訊號脈衝之後,總共還要經過(VBPD + 1)個HSYNC訊號週期,有效的行資料才出現; 所以,在VSYNC訊號有效之後,還要經過(VSPW + 1  + VBPD + 1)個無效的行;

    3)隨即發出(LINEVAL + 1)行的有效資料;       

    4)最後是(VFPD + 1)個無效的行; 

(2)行中畫素資料的傳輸過程
         1)HSYNC訊號有效時,表示一行資料的開始,訊號寬度為(HSPW + 1)個VCLK訊號週期,即(HSPW + 1)個無效畫素;
         2)HSYNC訊號脈衝之後,還要經過(HBPD + 1)個VCLK訊號週期,有效的畫素資料才出現;

         3)隨後發出(HOZVAL + 1)個畫素的有效資料;         

         4)最後是(HFPD + 1)個無效的畫素;

(3)將VSYNC、HSYNC、VCLK等訊號的時間引數設定好之後,並將幀記憶體的地址告訴LCD控制器,它即可自動地發起DMA傳輸從幀記憶體中得到影象資料,最終在上述訊號的控制下出現在資料匯流排VD[23:0]上。使用者只需要把要顯示的影象資料寫入幀記憶體中。

2、LCD液晶屏輸入時序

十、相關暫存器

暫存器:DISPLAY_CONTROL 設定為10或11;RGB模式可行即可;

VIDCON0:Video Main Control 0 Register

bit28-26視訊輸出格式,設為RGB模式

bit18:設定RGB資料傳輸方式為並行還是序列,因為有24根資料線所以為並行;

bit2選擇時鐘源,選HCLK 連的是HCLC_DSYS 為166MHz

bit4:開啟分頻

bit13-6設定時鐘大小,時鐘頻率要小於控制器的最大時鐘,也要小於LCD驅動器的最大時鐘。

bit0 bit1為使能控制訊號都使能

VIDCON1暫存器 Video Main Control 1 Register

bit5 bit6設定HSYNCVSYNC極性,如果LCD的高低電平脈衝是相同的話,則Normal,如果極性相反則Invert。

VIDTCON0:設定時序,根據LCD資料手冊中的時序來設定,結合“LCD控制器的輸出時序

 

VIDTCON1

 

VIDTCON2

 

WINCON0暫存器

bit1:使能window0 

 

bit5-2選擇RGB888模式 1011

bit15:設定輸出順序red green blue還是 blue green red  設定為1:BGR 設定為0:RGB

VIDOSD0A VIDOSD0B這兩個暫存器是用來設定記憶體中window0大小

比如設定為LCD螢幕的尺寸(即左上座標為(0, 0) 右下座標為(799, 479))

VIDOSD0C也是設定記憶體中window0的大小

比如設定為LCD螢幕的尺寸=800*480

VIDW0xADD0Bx設定記憶體中window0的起始地址的

VIDW0xADD1Bx設定記憶體中window0的結束地址的

 

 SHODOWCON暫存器來設定虛擬windows顯示的;

以下位可以分別設定哪個windows顯示;

補充:看核心板、地板原理圖相應引腳要設定為LCD的引腳模式,LCD背光要開啟;