《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于嵌入式Linux的 TFT LCD IP及驅動的設計
基于嵌入式Linux的 TFT LCD IP及驅動的設計
2007Altera中國大學生電子設計文章
李豐旺 劉小平
摘要: 基于嵌入式Linux的 TFT LCD IP及驅動的設計,本文設計實現(xiàn)了一個簡單的基于Avalon總線的TFT LCD控制器,能實現(xiàn)640×480,顏色深度為16bit的彩色圖形顯示,可應用于各種TFT LCD,亦可改寫為VGA控制器,有較大的靈活性。
Abstract:
Key words :

系統(tǒng)總體設計方案

本系統(tǒng)的總體設計框圖如圖1所示。

圖1 系統(tǒng)框圖

Nios II處理器在SDRAM中開辟幀緩沖(Frame buffer),可以是單緩沖也可以是雙緩沖。以單緩沖為例。處理器將一幀圖像數(shù)據(jù)(640×480×2Bytes,RGB565,16bit)存入幀緩沖,然后將幀緩沖的首地址寫入到LCD控制器,并啟動LCD控制器。該控制器自動從傳來的首地址處開始讀取數(shù)據(jù),并按照TFT的格式輸出。圖中各模塊由 Avalon Bus連接在一起。Avalon Bus是一種簡單的總線結構,Nios II處理器和各種外設都是通過Avalon Bus連接在一起。由圖1可以看出,作為Slaver的SDRAM Controller分別要受到Processor 和LCD Controller的控制,為了解決總線沖突,Avalon Bus自動在有沖突的接口上加入了Arbitrator這樣一個仲裁模塊,用于合理分配總線時間,用戶通過改變每個模塊的權值來改變對其分配總線時間的多少。在這個系統(tǒng)中,SDRAM Controller是影響整個系統(tǒng)性能的關鍵。以SDRAM時鐘頻率為100MHz計算,16bit的SDRAM其數(shù)據(jù)總帶寬為200MByte/s, 640×480×2Bytes×60Hz的TFT LCD要占用36MByte/s左右的帶寬,這對于還要處理其他任務的處理器來說是很大的影響。

LCD控制器的FPGA實現(xiàn)

Avalon Bus Slaver從總線接口模塊實現(xiàn)

Avalon從總線接口負責處理器與LCD控制器的接口控制,LCD控制器在整個系統(tǒng)中作為從設備,NIOS II通過該接口對控制寄存器進行設置,控制LCD。

LCD從模塊有四個32bit的可讀寫寄存器,用于控制LCD控制器的工作和指示其工作狀態(tài)。

Avalon Bus DMA Master主設備接口模塊實現(xiàn)

Avalon Bus DMA Master負責按照控制模塊的指令,讀取SDRAM中的數(shù)據(jù),并寫入到FIFO中,其核心部分是DMA地址累加器。當條件滿足時,地址累加器開始在 100MHz的時鐘下以4為單位開始累加用于生成讀取SDRAM的地址。讀完一幀的數(shù)據(jù)后,自動復位到首地址,繼續(xù)累加。

主設備接口采用帶延遲的主設備讀傳輸模式,在這種傳輸模式下,即使沒有接收到上一次的有效數(shù)據(jù),主設備也可以發(fā)起下一次讀命令。當 waitrequest信號無效(低電平)時,主設備可以連續(xù)的發(fā)起讀命令,當waitrequest信號有效(高電平)時,主設備開始等待,直到其變?yōu)榈碗娖健.攔eaddatavalid信號有效(高電平)時,表示讀數(shù)據(jù)有效,此時主設備可以鎖存數(shù)據(jù)口上的有效數(shù)據(jù)。這里沒有使用flush信號, flush信號會清除前面一切未完成的讀命令。Avalon總線保證數(shù)據(jù)的輸出順序與主設備要求的順序一致(即與主設備地址輸出順序一致)。 readdatavalid信號可以作為FIFO的wrreq信號,這樣可以直接將讀出來的數(shù)據(jù)寫入到FIFO中。當前地址等于尾地址時,則復位累加器,使之重新開始從首地址累加。地址累加器代碼模塊如圖3。

圖2 LCD BSF圖

圖3 設備接口模塊BSF圖

FIFO模塊實現(xiàn)

FIFO的作用是對DMA輸出的圖像數(shù)據(jù)進行緩存,以匹配時序控制模塊的輸出速度。FIFO大小暫定為4096×16bit,在實際設計時,再根據(jù)系統(tǒng)需要以及資源狀況做出適當調(diào)整。原則是,在系統(tǒng)資源允許的情況下,將FIFO大小盡量設置大點。

FIFO由DMA控制器寫入數(shù)據(jù),寫入時鐘為100MHz;由LCD控制器的時序發(fā)生模塊讀出數(shù)據(jù),讀出時鐘為PCLK,即LCD的像素點掃描頻率,通常取25MHz。在獨立的寫時鐘和讀時鐘作用下,F(xiàn)IFO可以提供rdusedw[11:0]信號,用于指示FIFO中已經(jīng)使用掉的容量。系統(tǒng)可以設置一個上限和一個下限,當FIFO中的數(shù)據(jù)量高于上限或低于下限時,控制器暫停DMA傳輸或啟動DMA傳輸,用以保證系統(tǒng)性能。

在本例應用中,將wrclk接系統(tǒng)時鐘(100MHz),wrreq接master_readdatavalid,data接writedata,即可完成DMA的數(shù)據(jù)寫入操作;將rdclk接12.5MHz(因為TFT的時鐘為25MHz,數(shù)據(jù)寬度為16bit,而FIFO的寬度為32bit,所以用一半的時鐘12.5MHz去讀取FIFO,然后依次輸出32bit的高16bit和低16bit),rdreq由時序發(fā)生模塊控制,即可在每個 rdclk的上升沿讀出一個數(shù)據(jù)到q。aclr接~reset_n,可以完成復位操作。當然,所有信號都受controller_GoBit的控制。

FIFO設計采用了Quartus II自帶的fifo宏模塊,自動生成所需要的模塊,供調(diào)用。

LCD 時序發(fā)生器設計模塊實現(xiàn)

時序發(fā)生器用于產(chǎn)生TFT所需的時序,將圖像數(shù)據(jù)按特定的時序輸出。每種控制器的設計關鍵就是時序設計,本文專門針對三菱公司的AA084VC05液晶屏,圖4,圖5是其時序圖。

圖4 水平時序圖

圖5 垂直時序圖

LCD時序發(fā)生器以DCLK為時鐘基準,該DCLK即上面所說的PCLK,也就是像點時鐘,每個像素點的數(shù)據(jù)以該時鐘驅動進入LCD。圖4為AA084VC05的水平掃描時序,其中,DATA為18位數(shù)據(jù)信號(本設計中只用其中的16位),DENA為數(shù)據(jù)有效信號,高電平使能,其有效寬度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控制器,有較大的靈活性。根據(jù)設計好的控制器編寫了相應的Linux下的Frame buffer驅動程序。很好的實現(xiàn)了界面環(huán)境的開發(fā),可以用于很多手持設備的電子產(chǎn)品。該設計最大的特點是有很強的可移植性,不論是控制器的設計還是Frame buffer驅動程序的設計都很靈活。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
欧美福利视频网站| 欧美大片免费| 亚洲欧洲日韩综合二区| 午夜精品久久久久久久| 亚洲视频国产视频| 99热精品在线| 日韩亚洲在线| 亚洲精品影视| 99re6这里只有精品视频在线观看| 黄色综合网站| 一区二区视频免费在线观看| 国产日韩欧美精品一区| 国产精品一区=区| 国产精品任我爽爆在线播放| 国产精品入口福利| 国产日产亚洲精品| 国产亚洲精品aa午夜观看| 国产亚洲激情视频在线| 国产综合色在线视频区| 激情欧美一区二区三区| 一区二区视频在线观看| 亚洲国产国产亚洲一二三| 亚洲激情在线| 日韩亚洲视频在线| 日韩一级裸体免费视频| 亚洲小说欧美另类社区| 中国亚洲黄色| 亚洲尤物精选| 欧美一区二区三区视频在线观看| 国产精品美女久久| 欧美一区日韩一区| 欧美在线播放| 久久亚洲不卡| 欧美高清hd18日本| 欧美日韩一区综合| 国产精品毛片a∨一区二区三区| 国产精品丝袜白浆摸在线| 国产免费成人在线视频| 国产一区二区三区四区在线观看| 黄色工厂这里只有精品| 亚洲国产精品久久久久婷婷884| 亚洲精品美女| 亚洲婷婷综合久久一本伊一区| 亚洲欧美清纯在线制服| 亚洲成色精品| 夜夜爽99久久国产综合精品女不卡| 亚洲一区在线播放| 久久久91精品国产一区二区精品| 免费看黄裸体一级大秀欧美| 欧美日韩精品一区二区天天拍小说 | 欧美一区二区三区久久精品| 亚洲国产精品t66y| 一区二区三区高清| 久久xxxx精品视频| 欧美激情视频给我| 国产精品毛片高清在线完整版| 国产伊人精品| 亚洲精品一区二区三区樱花| 欧美一区二区日韩| 日韩午夜av在线| 欧美诱惑福利视频| 欧美精品国产一区| 国产欧美日韩麻豆91| 亚洲激情图片小说视频| 亚洲欧美日韩电影| 日韩小视频在线观看专区| 欧美亚洲视频| 欧美激情亚洲激情| 国产一区二区三区黄视频| 亚洲精品欧美专区| 久久福利影视| 亚洲欧美日韩另类精品一区二区三区| 久久久午夜精品| 欧美色播在线播放| 亚洲成人在线网站| 夜夜爽夜夜爽精品视频| 欧美专区中文字幕| 欧美日韩国产一区二区三区地区| 国产亚洲一区精品| 一本久久知道综合久久| 亚洲国产成人av| 亚洲欧美视频在线| 欧美久久久久久蜜桃| 黄色免费成人| 亚洲欧美三级伦理| 宅男噜噜噜66一区二区66| 老司机免费视频一区二区| 国产精品一区亚洲| 一本色道久久88综合亚洲精品ⅰ | 欧美日韩在线观看一区二区| 影音先锋亚洲精品| 欧美亚洲在线| 午夜日韩av| 国产精品成人av性教育| 亚洲狠狠婷婷| 久久精品夜色噜噜亚洲a∨ | 久久狠狠亚洲综合| 国产精品国产亚洲精品看不卡15| 亚洲日本免费| 亚洲欧洲一区二区三区久久| 久久免费视频在线观看| 国产日韩精品在线观看| 亚洲网在线观看| 这里只有精品丝袜| 欧美日韩亚洲系列| 亚洲免费激情| 99热在线精品观看| 欧美激情综合色| 亚洲国产视频直播| 亚洲人成绝费网站色www| 久久久噜噜噜久久| 国产曰批免费观看久久久| 亚洲一区二区在| 午夜国产精品视频| 国产精品你懂的在线| 在线亚洲一区观看| 亚洲一区二区精品视频| 欧美午夜不卡在线观看免费| 日韩视频在线观看免费| 夜夜躁日日躁狠狠久久88av| 欧美另类视频在线| 日韩午夜免费| 在线中文字幕一区| 国产精品白丝jk黑袜喷水| 亚洲视频一二| 午夜一级久久| 国产午夜精品久久久久久免费视| 亚洲女人天堂成人av在线| 欧美在线观看视频在线| 国产日韩精品视频一区| 欧美一区二区三区在| 久久久之久亚州精品露出| 性伦欧美刺激片在线观看| 久久精品天堂| 欧美视频在线一区| 99这里有精品| 亚洲男女毛片无遮挡| 国产精品亚洲激情| 欧美一区免费视频| 久久这里只有| 亚洲欧洲另类| 亚洲午夜在线| 国产欧美日韩专区发布| 久久精品国产精品亚洲精品| 美女精品在线| 亚洲理论电影网| 午夜电影亚洲| 一区二区三区在线高清| 99re在线精品| 国产精品性做久久久久久| 欧美在线亚洲综合一区| 欧美成人精品h版在线观看| 日韩网站在线观看| 亚洲欧洲99久久| 樱桃成人精品视频在线播放| 一本色道久久综合亚洲91| 国产精品免费看片| 久久精品国产一区二区电影| 欧美激情性爽国产精品17p| 亚洲一区二区免费看| 老牛嫩草一区二区三区日本| 亚洲精品视频免费在线观看| 午夜亚洲性色福利视频| 影音欧美亚洲| 亚洲嫩草精品久久| 激情国产一区二区| 一区二区三区国产盗摄| 国产日本欧美在线观看| 亚洲精品男同| 国产精品视频xxxx| 最新中文字幕一区二区三区| 国产精品久久久久aaaa樱花| 久久精品亚洲国产奇米99| 欧美午夜久久| 亚洲国产精品一区二区www在线| 亚洲国产精品va在线看黑人| 欧美精品三区| 欧美一级理论性理论a| 欧美另类高清视频在线| 欧美一区二区啪啪| 欧美日韩在线高清| 亚洲国产精品久久久久秋霞不卡| 国产精品国产三级国产专区53| 亚洲国产精品999| 国产精品亚洲网站| 一本色道久久99精品综合| 国产真实久久| 亚洲一区国产精品| 在线观看久久av| 欧美伊人影院| 日韩视频精品| 免费在线日韩av| 香蕉久久一区二区不卡无毒影院 | 欧美1区2区3区| 午夜精彩国产免费不卡不顿大片| 欧美精品在线免费观看| 久久成人18免费观看| 欧美三日本三级少妇三99| 亚洲精品免费在线| 一区免费在线|