基于Avalon總線的TFT LCD控制器設計
FIFO模塊實現(xiàn)
FIFO的作用是對DMA輸出的圖像數(shù)據進行緩存,以匹配時序控制模塊的輸出速度。FIFO大小暫定為4096×16bit,在實際設計時,再根據系統(tǒng)需要以及資源狀況做出適當調整。原則是,在系統(tǒng)資源允許的情況下,將FIFO大小盡量設置大點。
FIFO由DMA控制器寫入數(shù)據,寫入時鐘為100MHz;由LCD控制器的時序發(fā)生模塊讀出數(shù)據,讀出時鐘為PCLK,即LCD的像素點掃描頻率,通常取25MHz。在獨立的寫時鐘和讀時鐘作用下,F(xiàn)IFO可以提供rdusedw[11:0]信號,用于指示FIFO中已經使用掉的容量。系統(tǒng)可以設置一個上限和一個下限,當FIFO中的數(shù)據量高于上限或低于下限時,控制器暫停DMA傳輸或啟動DMA傳輸,用以保證系統(tǒng)性能。
在本例應用中,將wrclk接系統(tǒng)時鐘(100MHz),wrreq接master_readdatavalid,data接writedata,即可完成DMA的數(shù)據寫入操作;將rdclk接12.5MHz(因為TFT的時鐘為25MHz,數(shù)據寬度為16bit,而FIFO的寬度為32bit,所以用一半的時鐘12.5MHz去讀取FIFO,然后依次輸出32bit的高16bit和低16bit),rdreq由時序發(fā)生模塊控制,即可在每個rdclk的上升沿讀出一個數(shù)據到q。aclr接~reset_n,可以完成復位操作。當然,所有信號都受controller_GoBit的控制。
FIFO設計采用了Quartus II自帶的fifo宏模塊,自動生成所需要的模塊,供調用。
LCD 時序發(fā)生器設計模塊實現(xiàn)
時序發(fā)生器用于產生TFT所需的時序,將圖像數(shù)據按特定的時序輸出。每種控制器的設計關鍵就是時序設計,本文專門針對三菱公司的AA084VC05液晶屏,圖4,圖5是其時序圖。
LCD時序發(fā)生器以DCLK為時鐘基準,該DCLK即上面所說的PCLK,也就是像點時鐘,每個像素點的數(shù)據以該時鐘驅動進入LCD。圖4為AA084VC05的水平掃描時序,其中,DATA為18位數(shù)據信號(本設計中只用其中的16位),DENA為數(shù)據有效信號,高電平使能,其有效寬度THA為640個DCLK;HD為水平同步信號,低電平有效,其有效寬度TWHL為96個DCLK。一行640個象素掃描完畢之后,控制器將驅動HD有效,在HD有效之前插入THFP(Horizontal Front Porch)為16個DCLK,有效之后插入THBP(Horizontal Back Porch)為144個DCLK,然后再開始下一行的掃描。如此一來,行掃描信號的頻率FH典型值為31.5KHz。而讀FIFO信號要提前DENA信號一個時鐘節(jié)拍到來,提前一個時鐘節(jié)拍結束,因為該FIFO有一個時鐘節(jié)拍的延遲。
AA084VC05的垂直掃描時序與水平掃描時序類似,該時序以HD為時鐘基準,其中,VD為垂直同步信號(幀同步)。每掃描完一幀(480行),控制器將驅動VD有效(低電平),有效寬度TWVL為2個HD。同樣,在VD有效之前插入TVFP(Vertical Front Porch)為10個HD,有效之后插入TVBP(Vertical Back Porch)為35個HD,如此一來,垂直掃描信號頻率FV的典型值為60Hz。
時序發(fā)生器采用狀態(tài)機實現(xiàn)。由于該控制器的參數(shù)比較大,為了便于觀察仿真結果,本文對這些參數(shù)做了一些處理(成倍減少)。
結語
本文設計實現(xiàn)了一個簡單的基于Avalon總線的TFT LCD控制器,能實現(xiàn)640×480,顏色深度為16bit的彩色圖形顯示,可應用于各種TFT LCD,亦可改寫為VGA控制器,有較大的靈活性。根據設計好的控制器編寫了相應的Linux下的FrAME buffer驅動程序。很好的實現(xiàn)了界面環(huán)境的開發(fā),可以用于很多手持設備的電子產品。該設計最大的特點是有很強的可移植性,不論是控制器的設計還是Frame buffer驅動程序的設計都很靈活。
LCD顯示屏相關文章:lcd顯示屏原理
lcd相關文章:lcd原理
評論