《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于嵌入式Linux的TFT LCD IP及驅動的設計
基于嵌入式Linux的TFT LCD IP及驅動的設計
摘要: 本文設計實現了一個簡單的基于Avalon總線的TFT LCD控制器,能實現640×480,顏色深度為16bit的彩色圖形顯示,可應用于各種TFT LCD,亦可改寫為VGA控制器,有較大的靈活性。根據設計好的控制器編寫了相應的Linux下的FrAME buffer驅動程序。很好的實現了界面環境的開發,可以用于很多手持設備的電子產品。該設計最大的特點是有很強的可移植性,不論是控制器的設計還是Frame buffer驅動程序的設計都很靈活。
Abstract:
Key words :

系統總體設計方案

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

       本系統的總體設計框圖如圖1所示。

系統框圖
圖1 系統框圖

 

LCD控制器的FPGA實現

Avalon Bus Slaver從總線接口模塊實現

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

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

Avalon Bus DMA Master主設備接口模塊實現

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

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

LCD BSF圖
圖2 LCD BSF圖

設備接口模塊BSF圖
圖3 設備接口模塊BSF圖

 

FIFO模塊實現

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

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

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

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

 

LCD 時序發生器設計模塊實現

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

水平時序圖
圖4 水平時序圖

 

垂直時序圖
圖5 垂直時序圖

    LCD時序發生器以DCLK為時鐘基準,該DCLK即上面所說的PCLK,也就是像點時鐘,每個像素點的數據以該時鐘驅動進入LCD。圖4為AA084VC05的水平掃描時序,其中,DATA為18位數據信號(本設計中只用其中的16位),DENA為數據有效信號,高電平使能,其有效寬度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信號一個時鐘節拍到來,提前一個時鐘節拍結束,因為該FIFO有一個時鐘節拍的延遲。

    AA084VC05的垂直掃描時序與水平掃描時序類似,該時序以HD為時鐘基準,其中,VD為垂直同步信號(幀同步)。每掃描完一幀(480行),控制器將驅動VD有效(低電平),有效寬度TWVL為2個HD。同樣,在VD有效之前插入TVFP(Vertical Front Porch)為10個HD,有效之后插入TVBP(Vertical Back Porch)為35個HD,如此一來,垂直掃描信號頻率FV的典型值為60Hz。

    時序發生器采用狀態機實現。由于該控制器的參數比較大,為了便于觀察仿真結果,本文對這些參數做了一些處理(成倍減少)。

結語

   本文設計實現了一個簡單的基于Avalon總線的TFT LCD控制器,能實現640×480,顏色深度為16bit的彩色圖形顯示,可應用于各種TFT LCD,亦可改寫為VGA控制器,有較大的靈活性。根據設計好的控制器編寫了相應的Linux下的FrAME buffer驅動程序。很好的實現了界面環境的開發,可以用于很多手持設備的電子產品。該設計最大的特點是有很強的可移植性,不論是控制器的設計還是Frame buffer驅動程序的設計都很靈活。

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
欧美黄色网络| 亚洲成人在线网站| 国产精品成人一区二区三区吃奶| 久久综合给合| 久久免费精品视频| 国产一区二区三区在线观看精品 | 欧美一级播放| 亚洲一本视频| 亚洲午夜在线视频| 一区二区三区www| 一本在线高清不卡dvd | 久久久久天天天天| 久久精品视频网| 久久国产精品99精品国产| 性欧美18~19sex高清播放| 午夜精品福利一区二区三区av| 亚洲视频成人| 亚洲午夜精品久久| 亚洲一区二区黄色| 午夜精品久久久久99热蜜桃导演| 亚洲欧美福利一区二区| 亚洲摸下面视频| 欧美一级专区| 久久久久国产免费免费| 久久综合给合| 欧美国产日韩视频| 欧美日韩成人在线观看| 欧美日韩另类一区| 国产精品xxxav免费视频| 国产精品久久久久久久久久三级| 国产精品区免费视频| 国产日本欧美一区二区| 国产综合色在线视频区| 在线播放日韩| 亚洲毛片在线观看.| 一区二区三区国产精品| 午夜精品久久久久久久男人的天堂| 香港成人在线视频| 亚洲激情不卡| 99日韩精品| 亚洲欧洲av一区二区| 久久精品国产2020观看福利| 美女网站在线免费欧美精品| 欧美日韩国产不卡| 国产精品入口| 国产农村妇女毛片精品久久麻豆 | 欧美久久一区| 国产精品视频网| 国内精品模特av私拍在线观看| 影音先锋欧美精品| 日韩一区二区精品视频| 亚洲欧美资源在线| 亚洲高清不卡| 亚洲性色视频| 久久久亚洲高清| 欧美成人黄色小视频| 国产精品xnxxcom| 国产一区二区三区四区老人| 亚洲激情一区二区| 亚洲女同精品视频| 亚洲激情在线| 一区二区三区视频在线播放| 亚洲欧美国产三级| 亚洲国产一区二区三区青草影视 | 亚洲国产精品专区久久| 亚洲无毛电影| 快she精品国产999| 欧美午夜精品久久久久久久| 国产一区二区精品在线观看| 亚洲欧洲日韩综合二区| 亚洲永久精品大片| 亚洲日本成人| 欧美在线在线| 欧美日韩国产二区| 国产香蕉97碰碰久久人人| 91久久精品www人人做人人爽| 亚洲欧美日韩精品一区二区 | 亚洲精品自在久久| 久久精品首页| 午夜一区在线| 欧美精品一区三区| 韩日视频一区| 亚洲午夜小视频| 亚洲精品影院| 久久一综合视频| 一区二区三区精品视频| 日韩一区二区免费看| 亚洲毛片av在线| 亚洲国产精品第一区二区三区| 亚洲——在线| 99国内精品久久| 久久一区精品| 国产精品中文在线| 99在线热播精品免费99热| 亚洲第一精品电影| 香蕉亚洲视频| 国产精品jizz在线观看美国| 91久久午夜| 亚洲激情第一页| 久久成人在线| 国产精品日韩在线观看| aa级大片欧美| 9久草视频在线视频精品| 美女诱惑黄网站一区| 国产在线视频欧美一区二区三区| 亚洲小说区图片区| 亚洲午夜电影| 欧美日韩精品一区二区三区| 亚洲国产婷婷| 亚洲精品久久久久久久久久久久久| 久久久99国产精品免费| 国产女人精品视频| 亚洲一区制服诱惑| 亚洲午夜精品视频| 欧美日韩 国产精品| 亚洲高清不卡av| 91久久久久久久久| 免费观看亚洲视频大全| 精品999在线播放| 香蕉视频成人在线观看| 欧美一区二区三区在线看| 国产精品区二区三区日本| 亚洲午夜视频在线观看| 亚洲欧美怡红院| 国产精品免费网站在线观看| 亚洲香蕉在线观看| 欧美一区二视频| 国产婷婷色一区二区三区在线 | 国语自产精品视频在线看| 欧美亚洲一区| 久久精品国产精品亚洲综合| 欧美国产日本韩| 欧美成人激情在线| 国产精品久久久久久久久久尿 | 性色av一区二区三区在线观看| 亚洲欧美综合国产精品一区| 国产精品国产精品国产专区不蜜| 日韩一级大片| 亚洲欧美日韩国产综合| 国产精品麻豆va在线播放| 亚洲男女自偷自拍| 久久久久国产一区二区三区| 狠狠色伊人亚洲综合网站色| 最新日韩中文字幕| 欧美成ee人免费视频| 亚洲精品女av网站| 亚洲永久字幕| 国产欧美日韩视频在线观看 | 亚洲欧洲在线视频| 欧美日韩激情小视频| 一区二区三区日韩精品| 久久aⅴ乱码一区二区三区| 激情久久婷婷| 99国产精品久久久久久久久久 | 国产精品国产亚洲精品看不卡15| 午夜精品成人在线| 久久这里有精品15一区二区三区| 一区在线视频观看| 一本一道久久综合狠狠老精东影业| 国产精品久久久久永久免费观看| 午夜一区二区三区在线观看| 老司机精品导航| 99国产精品国产精品毛片| 国产精品一级二级三级| 国产精品入口麻豆原神| 久久精品夜色噜噜亚洲a∨| 欧美激情欧美激情在线五月| 夜夜狂射影院欧美极品| 欧美专区中文字幕| 亚洲国产小视频| 午夜精品久久久久久久| 影音先锋国产精品| 亚洲免费在线观看| 在线精品国产欧美| 亚洲欧美中文在线视频| 一区二区三区我不卡| 亚洲视频在线看| 狠狠爱综合网| 亚洲神马久久| 激情婷婷欧美| 亚洲欧美激情一区二区| 伊人伊人伊人久久| 亚洲欧美久久久久一区二区三区| 激情亚洲一区二区三区四区| 一区二区三区不卡视频在线观看| 国产亚洲欧美激情| 亚洲一区二区三区精品动漫| 国产在线不卡视频| 中国成人在线视频| 黄色一区二区三区四区| 亚洲欧美日韩在线综合| 91久久在线播放| 久久久久成人精品免费播放动漫| 日韩一区二区精品| 麻豆精品传媒视频| 亚洲欧美国产三级| 欧美日韩在线第一页| 亚洲国产精品123| 国产精品一二三四区| 在线一区视频|