下面是LCD RGB 控制的典型時序圖數組
天啊,一下就上這玩意,怎麼看???blog
其實要解釋上面的時序圖,咱們還須要瞭解一些LCD的顯示過程。因此如今只是有個印象,稍後咱們詳細講解。圖片
LCD顯示一張圖片,實際上是每個像素點的填充,只是速度很快咱們人眼沒有察覺而已。若是將LCD的顯示頻率下降,咱們能明顯感受整個屏幕的閃爍現象。同步
通常咱們的行在水平方向,LCD每一行的像素點被逐一填充,填充完一行繼續填充下一行,填充順序能夠爲左->右 或者 右->左it
- 一行有多少像素點?
- 一個LCD須要填充多少行?
經過查看LCD的手冊,例如一個800*480的液晶屏,表示一行(水平)800個像素點,一共有480行。im
例以下圖中現實一幀的圖像(從左到右,從上到下)d3
每一幀圖像,就從第一行的第一個像素點一直填充到最後一行的最後一個像素點。數據
爲了能簡單演示一下效果,假設咱們如今讓LCD顯示藍色,那麼LCD的填充效果就像下面的圖片img
好了,若是能瞭解這個像素填充的過程。那麼我接下來就開始分時時鐘和LCD顯示的關係。時間
咱們知道了LCD現實一幀圖像也就是像素填充的過程,可是因爲速度太快咱們察覺不出來,那麼這個「快」究竟是多快呢?
顯示一行,咱們LCD須要填充800個像素點。每個像素由RGB三元素組成,每一個元素(R、G、B)由8bit位數組成,也就是說一個像素咱們須要經過信號線傳輸24bit的數據。
那麼顯示一行800個像素須要多長時間呢?咱們先看一個要介紹的時鐘–像素時鐘CLK
上圖中CLK就是像素時鐘,每個時鐘週期發送一個像素的數據。根據咱們LCD的參數,例如一行有800個像素,那麼通過800個CLK時鐘,咱們就填充完了800個像素。
問題來了…
因此針對上面的問題,咱們還須要介紹兩個時鐘行同步時鐘HSYNC和有效數據使能VDEN
HSYNC水平同步信號,表示一行數據的開始。具體以下圖
其中CLK沒有任何變化,只是多了HSYNC和DEN兩個信號。
如圖中的紅色箭頭,當HSYNC產生了如圖所示的變化表示新的一行數據傳送立刻開始,當ENB信號線爲高電平期間傳輸的數據視爲有效數據。這樣一來,一行800個像素的數據才能正確的傳送完成。
爲何要有VSYNC呢,按照咱們以前假設的800*480LCD。從第一行一直到最後一行,整個LCD屏幕全部像素填充完畢,這一過程也就是寫了一幀數據,咱們若是要LCD可以實時顯示畫面,很顯然一幀數據確定不夠,因此L要給LCD不斷的提供新的幀數據,這無非也就是重複上述顯示一幀的過程。
上圖中VSYNC垂直同步信號,當產生如圖所示的變化,就表明新的一幀數據立刻開始傳送。那麼這裏沒有有效數據信號呢??
其實很簡單,由於新的一幀數據不就是從LCD第一行的第一個像素開始填充嘛,那麼前面咱們已經說明了每一行都本身的同步信號,而每一行也有對應的數據有效信號線。因此垂直同步信號只用關心從一幀數據(8000*480)的同步,而不一樣關心每一行的同步。
因而,咱們將上面分析的時鐘放在一塊兒,就變成了LCD RGB模式的典型時序圖
上圖中VSYNC垂直同步信號,當產生如圖所示的變化,就表明新的一幀數據立刻開始傳送。那麼這裏沒有有效數據信號呢??
其實很簡單,由於新的一幀數據不就是從LCD第一行的第一個像素開始填充嘛,那麼前面咱們已經說明了每一行都本身的同步信號,而每一行也有對應的數據有效信號線。因此垂直同步信號只用關心從一幀數據(8000*480)的同步,而不一樣關心每一行的同步。
因而,咱們將上面分析的時鐘放在一塊兒,就變成了LCD RGB模式的典型時序圖