s5pv210——LCD基础理论
以下內容源于朱友鵬《物聯網大講堂》課程的學習,以及博客http://www.cnblogs.com/biaohc/p/6286946.html的學習,如有侵權,請告知刪除。
一、LCD簡介
1、什么是LCD?
(1)LCD,Liquid Crystal Display,俗稱液晶。
(2)液晶是一種材料。
- 在電信號的驅動下液晶分子進行旋轉,旋轉時會影響透光性。
- 在液晶面板背面用白光照(稱為背光),可以通過不同電信號讓液晶分子進行選擇性的透光,此時在液晶面板前面看到的就是各種各樣的顏色,這就是LCD顯示。
(3)被動發光和主動發光。
- 有些顯示器(譬如LED顯示器、CRT顯示器)本身會發光,稱為主動發光;
- 有些(LCD)本身不會發光只會透光,需要背光的協助才能看起來是發光的,稱為被動發光。
(4)液晶應用領域:電視機、電腦顯示屏、手機顯示屏、工業顯示屏等·……
2、主流顯示設備(LED、CRT、等離子、OLED)
(1)CRT:陰極攝像管顯示器。(像以前的大屁股電視)
(2)等離子顯示:未成為主流。
(3)OLED:目前未成為主流,但是很有市場潛力。有機材料組成,可以被揉卷!
(4)LED:主要用在戶外大屏幕。
(5)LCD:目前是主流顯示器。
3、LCD的顯示原理和特點
(1)液晶分子可以選擇性透光+后面有背光;
(2)白光由各種不同顏色的光組成的,所以白光被選擇性透光之后可以產生各種不同顏色的光。
4、LCD的發展史、種類(TN/STN/TFT)
(1)TN面板最早。壞處是響應性不夠好,有拖尾現象。(2)STN是TN的升級版。有效解決拖尾現象,顯示更清晰。
(3)TFT的最大特點就是超薄。
(4)TFT技術之上發展出來很多更新的技術。
參考資料:http://display.ofweek.com/2013-12/ART-8321301-8300-28763136.html)
二、LCD的接口技術
1、本質上都是TTL信號
(1)什么是TTL接口?
- +5V表示邏輯1,0V表示邏輯0,這種就叫TTL電平。
- 與CMOS電平相對。
(2)SoC的LCD控制器硬件接口是TTL電平的,LCD的硬件接口也是TTL電平的。
- 因此它們本來可以直接對接的(比如手機、平板、開發板都是直接對接的),一般用軟排線連接。
- 然而,TTL電平的缺陷是不能傳遞太遠,如果LCD屏幕和主板控制器太遠(1米甚至更遠)則不能直接TTL連接,要進行轉換。
- 轉換方式:主機SoC(TTL) ->VGA-> LCD屏幕(TTL)
2、各種接口(TTL、LVDS、EDP、MIPI、)
- 參考資料:http://blog.csdn.net/wocao1226/article/details/23870149;
-
在傳輸速率、距離、適配性方面不同。
3、RGB接口詳解
(1)參考數據手冊P1207頁時序圖;
(2)VD[23:0]:24根數據線,用來傳輸圖像信息。可見LCD是并行接口,速率才夠快。
(3)HSYNC(水平同步信號) ;
(4)VSYNC(垂直同步信號):時序信號線,為了讓LCD能夠正常顯示給的控制信號;
(5)VCLK(像素時鐘):LCD工作時,需要主板控制器給LCD模組一個工作時鐘信號,就是VCLK。
(6)VDEN(數據有效標志):時序信號,和HSYNC、VSYNC結合使用。
(7)LEND(行結束標志,不是必須的):時序信號,非必須,譬如X210接口就沒有。
三、LCD如何顯示圖像1
1、像素(pixel)
(1)組成圖像的最基本元素,或者說顯示中可以被控制的最小單位,整個圖像由很多個像素組成。
(2)像素可以被單獨控制
- 控制其亮或不亮(單色屏);
- 或控制其亮度強弱(譬如亮50%,35%,這樣叫灰度屏,以前的黑白電視機);
- 控制其顯示一定的顏色(彩色顯示屏)。
- 我們要在顯示器上顯示一個圖像,就要把這個圖像離散化成一個一個的點,然后把各個點的顏色對應在顯示器的像素上。
2、掃描
(1)掃描是一個動作,掃描是依次將顏色數值放到屏幕中所有的像素的這個過程。(一個個地格子填充,從左到右,從上到下)
(2)掃描這個詞是由最早的CRT顯示器遺留下來的,到LCD顯示器的年代本來已經失去意義了,但是我們還是延續著這么叫。
(3)顯示器的掃描顯示原理依賴于人眼的視覺暫留。只要顯示器掃描頻率大于人眼的發現頻率,人眼看到的圖像就是恒定的。如果掃描頻率偏小,人眼就會看到閃動。
(4)掃描頻率的概念就叫做刷新率。
3、驅動器&控制器
(1)LCD驅動器一般和LCD顯示面板集成在一起- 本來是分開的;
- 做面板的是只做面板的(譬如說三星、LG、臺灣的友達、奇美都是做面板的);驅動器也由專門的IC廠商生產;
- 集成廠商買來面板和驅動器后集成在一起做成LCD屏幕;
- 面板需要一定的模擬電信號來控制液晶分子,LCD驅動器芯片負責給面板提供控制液晶分子的模擬電信號;
- 驅動器的控制信號(它是數字信號)來于數字接口,這個接口就是LCD屏幕的外部接口(第二節中講到的接口)
(2)LCD控制器一般集成在SoC內部
- 通過數字接口,向遠端的LCD驅動器提供(控制像素顯示的)數字信號。
- LCD控制器的關鍵在于時序,它必須按照一定的時序和LCD驅動器通信;
- LCD控制器受SoC控制,SoC會從內存中拿像素數據給LCD控制器并最終傳給LCD驅動器。
4、顯示內存(簡稱:顯存)
(1)SoC在內存中挑選一段內存(一般來說是程序員隨便挑選的,但是挑選的時候必須符合一定規矩(比如說對齊訪問)),然后通過配置將LCD控制器和這一段內存(以后稱為顯存)連接起來構成一個映射關系。一旦這個關系建立之后,LCD控制器就會自動從顯存中讀取像素數據傳輸給LCD驅動器。這個顯示的過程不需要CPU的參與。(2)顯示體系建立起來后,CPU就不用再管LCD控制器、驅動器、面板這些東西了;CPU只關心顯存,因為CPU只要把要顯示的圖像的像素數據丟到顯存中,硬件就會自動響應(屏幕上就能自動看到顯示的圖像了)。
(3)LCD顯示是分為2個階段的
- 第一個階段,就是建立顯示體系的過程,目的就是CPU初始化LCD控制器使其和顯存聯系起來構成映射;
- 第二個階段,就是映射建立之后,將要顯示的圖像丟到顯存中去。
四、LCD的六個主要時序參數
1、LCD顯示單位:幀(frame)
(1)顯示器上一整個畫面的內容成為一個幀(frame),整個顯示器工作時是一幀一幀的在顯示。
(2)電影實際就是以每秒種24幀的速度在播放圖片。
(3)幀內數據:一幀分為多行,一行分為多像素,因此一幀圖像其實就是多個像素組成的矩陣。
(4)幀外數據:整個視頻由很多個幀構成,最終播放視頻時逐個播放各個圖像幀即可。
2、LCD顯示一幀圖像的過程
(1)首先把幀分為行,然后再把行分為像素,然后逐個像素顯示。
- 顯示像素:其實就是LCD驅動器按照接收到的(LCD控制器給的)顯示數據,驅動一個像素的液晶分子旋轉,讓這個像素顯示出相應的顏色值的過程。
(2)關鍵點:LCD控制器和驅動器之間一次只能傳一個像素點的顯示數據。
- 所以一幀圖像在屏幕上其實是串行的依次被顯示上去的,不是同一時間顯示出來的。
3、LCD的六個時序參數
- HSPW 水平同步信號脈寬
- HBPD 水平同步信號前肩
- HFPD 水平同步信號后肩
- VSPW 垂直同步信號脈寬
- VBPD 垂直同步信號前肩
- VFPD 垂直同步信號后肩
- LCD控制器先發送一個HSYNC高電平脈沖(脈沖寬度是HSPW),脈沖告訴驅動器下面的信息是一行信息。
- 然后開始這一行信息,這一行信息包括3部分:HBPD+有效行信息+HFPD。
- 其中前肩和后肩都屬于時序信息(和LCD屏幕具體有關),有效行信息就是橫向分辨率。
- 一行總共包含4部分:HSPW+HBPD+有效行信息+HFPD。
(2)一幀圖像其實就是一長行,一長行由多個行組成,每行都是上面講的這個時序。
(3)一幀圖像的通信過程
- 整個幀圖像信號分為4部分:VSPW+VBPD+幀有效信號+VFPD。
- VSPW是幀同步信號寬度,用來告訴驅動器一幀圖像要開始了;
- VBPD和VFPD分別是垂直同步信號前后肩。
- 老式的CRT顯示器才需要這些參數,LCD本身不需要(比如行末像素到另一行伊始像素的時間,與行間像素之間的時間沒什么區別);
- 但是出于歷史兼容性要求,LCD選擇了兼容CRT顯示器的這些時序要求,所以理解LCD顯示器時序和編程時,用CRT的方式來理解不會錯。
- 第一,廠家一般以實例代碼的形式給出。如x210v3裸機開發教程\src\template-framebuffer-font\source\hardware\s5pv210-fb.c的第774行
- 第二,來自于LCD的數據手冊。P14,13可見上述值。
(6)注意這些數字的單位。H開頭的三個單位都是DCLK(像素時鐘),V開頭的三個單位是TH。
- 這樣設置的好處是我們改變了像素時鐘的設置時,不用改變這里的時序參數。(個數是不會變的)
- 這些時序參數如果沒設置好會影響什么?屏幕會跑偏。
五、LCD顯示的主要相關概念
1、像素(pixel)
整個圖像是由一個個的像素組成的,像素就是一個顯示點。
2、像素間距(pitch)
(1)pitch是連續2個像素的像素中心的距離。一般的像素是方形的,所以橫向pitch和縱向的pitch一樣的。但是也有不一樣的。
(2)像素間距會影響屏幕的最佳觀看距離。像素間距大的適合遠距離看,像素間距小的適合近距離看。
3、分辨率(resolution)
(1)整個屏幕的橫向和縱向的像素個數就叫分辨率,譬如X210開發板用的屏幕是800×480。
(2)屏幕尺寸和分辨率無關的,像開發板的屏幕尺寸是7寸的(純屏幕對角線尺寸是7英寸)。
(3)屏幕尺寸和分辨率和像素間距三者之間有關聯。
4、清晰度
(1)清晰度是一個主觀概念,是人眼對顯示效果的一個主觀判斷。
(2)客觀來講,清晰度由分辨率和像素間距共同決定。
- 一般的,屏幕尺寸固定時分辨率越高越清晰,分辨率越低就越不清晰;
- 分辨率固定下,屏幕尺寸越小越清晰,越大越不清晰。
(3)清晰度還由其他很多因素共同決定。
5、像素深度(bits per pixel,簡稱bpp)
(1)一個像素在計算機中由多少個字節數據來描述。
(2)計算機中用二進制位來表示一個像素的數據,用來表示一個像素的數據位越多,則這個像素的顏色值更加豐富、分的更細,顏色深度就更深。
(3)一般來說像素深度有這么幾種:1位、8位、16位、24位、32位。
六、顏色在計算機中的表示
1、顏色的本質
(1)顏色是主觀存在,顏色其實是自然光在人的眼睛中和大腦中產生的一種映像。
(2)顏色的本質決定于光的波長。
2、自然光的顏色是連續的
光的波長是連續的,導致顏色也是連續的。理論上,只要你的眼睛分辨能力足夠好,可以在自然界中發現無數種顏色。
3、計算機中的顏色是離散的
(1)計算機中不可能存儲無數種顏色,所以必須將顏色有限化,所以就用有限種顏色來代表自然界中的無限種顏色。這個理論非常類似于之前學過的AD轉換。
(2)這種離散化表達顏色的缺點是不夠真實,漏掉了很多種顏色。因此計算機中所能表達的顏色沒有自然界中豐富(計算機屏幕上顯示的圖像和真實圖像有差別)
(3)計算機所能表達的顏色種類個數,這個參數叫:像素深度bpp。
4、常見像素深度:1位、8位、16位、24位、32位
(1)1位
- 用1個二進制位來表示顏色,這種就叫單色顯示。
- 示例就是小飯店、理發店門口的LED屏。
(2)8位
- 用8個二進制位來表示顏色,此時能表示256種顏色。這種叫灰度顯示。
- 這時候是黑白的,沒有彩色,我們把純白到純黑分別對應255到0,中間的數值對應不同的灰。
- 示例就是以前的黑白電視機。
(3)16位
- 用16個二進制位表示顏色,此時能表示65536種顏色。這時候就可以彩色顯示了。
- 一般是RGB565的顏色分布(用5位二進制表示紅色、用6位二進制表示綠色、用5位二進制表示藍色)。
- 這種紅綠藍都有的顏色表示法就是一種模擬自然界中所有顏色的表示方式。
- 但是因為RGB的顏色表達本身二進制位數不夠多(導致紅綠藍三種顏色本身分的都不夠細致),所以這樣顯示的彩色失真比較重,人眼能明顯看到顯示的不真實。
(3)24位
- 用24個二進制位來表示顏色,此時能表示16777216種顏色。
- 這種表示方式和16位色原理是一樣的,只是RGB三種顏色各自的精度都更高了(RGB各8位),叫RGB888。
- 此時顏色比RGB565更加真實細膩,雖然說比自然界無數種顏色還是少了很多,不過由于人眼的不理想性所以人眼幾乎不能區分1677萬種顏色和無數種顏色的差別。
- 于是把這種RGB888的表示方法叫做真彩色。(RGB565就是假彩色)
(4)32位
- 總共用32位二進制來表示顏色,其中24位表示紅綠藍三元色(還是RGB888分布),剩下8位表示透明度。
- 這種顯色方式就叫ARGB(A是阿爾法,表示透明度),現在PC機中一般都用ARGB表示顏色。
5、三元色
(1)也叫三基色,即RGB。
(2)所有的顏色都可以由紅綠藍三種顏色組成。詳見http://baike.so.com/doc/4551839-4762377.html。
總結
以上是生活随笔為你收集整理的s5pv210——LCD基础理论的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux进程的诞生和消亡
- 下一篇: IDEA 当前项目jdk版本查看