TFT液晶顯示屏 控制器的設計_第1頁
TFT液晶顯示屏 控制器的設計_第2頁
TFT液晶顯示屏 控制器的設計_第3頁
TFT液晶顯示屏 控制器的設計_第4頁
TFT液晶顯示屏 控制器的設計_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、一設計原理:1、系統(tǒng)工作原理:圖1如圖1所示,Nios II處理器在SDRAM中開辟framebuffer,可以是單緩沖也可以是雙緩沖,以單緩沖為例。Nios II處理器將一幀圖象數(shù)據(jù)(6404802Bytes,RGB565,16bit)存入framebuffer,然后將framebuffer的首地址寫入到LCD控制器,并啟動LCD控制器,該控制器自動從傳來的首地址處開始讀取圖象數(shù)據(jù),并按照TFT的格式輸出。圖中各模塊由Avalon Bus連接在一起。Avalon Bus是一種簡單的總線結(jié)構(gòu),在SOPC中,Nios II軟核處理器和各種外設都通過Avalon Bus連接在一起。由圖1可以看出,

2、作為Slaver的SDRAM Controller分別要受到Processor 和LCD Controller的控制,為了解決總線沖突,Avalon Bus自動在有沖突的接口上加入了Arbitrator這樣一個仲裁模塊,用于合理分配總線時間,用戶通過改變每個模塊的權(quán)值來改變對其分配總線時間的多少。在這個系統(tǒng)中,SDRAM Controller處的沖突是影響整個系統(tǒng)性能的關(guān)鍵。以SDRAM時鐘頻率為100MHz計算,16bit位寬的SDRAM其數(shù)據(jù)總帶寬為200MByte/s,640*480*2Bytes*60Hz的TFT LCD要占用36MByte/s左右的帶寬,這對于還要處理其他任務的處理器

3、來說是很大的影響。解決的辦法是另外增加一塊SDRAM,專門用作Frame buffer,這樣就可以有效減少對系統(tǒng)總線帶寬的占用。2、LCD Controller工作原理圖2如圖2所示,LCD Controller主要由Avalon 總線接口、寄存器組、控制模塊、DMA、FIFO以及時序生成模塊組成。每個寄存器獨立編址,處理器可以通過總線讀寫存儲器的方式來訪問。處理器通過Avalon總線接讀寫寄存器,從而完成對LCD控制器工作狀態(tài)的設定與控制??刂破鲉雍?,DMA Master通過avalon總線讀取SDRAM中的數(shù)據(jù),然后存入FIFO中,時序生成模塊按照TFT時序要求從FIFO中讀取數(shù)據(jù),然后

4、送出去顯示。整個數(shù)據(jù)讀取過程不需要處理器干涉,實際上是一個DMA過程??紤]到DMA讀取的速度與TFT時序發(fā)生器輸出的速度不一致(前者大于后者),所以在DMA與TFT時序發(fā)生器之間加入了FIFO用來緩沖數(shù)據(jù)。DMA有控制模塊控制其工作??刂颇K不斷檢測FIFO狀態(tài),當FIFO快滿時,暫停DMA,當FIFO快空時,重新啟動DMA,如此循環(huán),可保證FIFO不溢出,保證顯示畫面連續(xù)穩(wěn)定。二、設計目標:設計一個LCD控制器,該控制器基于Altera的SOPC系統(tǒng),通過SOPC中的Avalon總線接口與Nios II處理器和SDRAM控制器通信,使之能顯示640*480分辨率,顯示顏色深度達到16bit,

5、輸出接口兼容TFT LCD。三、設計細節(jié)1、Avalon Bus Slaver從總線接口Avalon從總線接口負責處理器與LCD控制器的接口控制,LCD控制器在整個系統(tǒng)中作為從設備,通過該接口,接受CPU的控制。根據(jù)設計需要,該接口所需要的各信號為:input:chipselect片選,高電平有效Write_n寫信號,低電平有效Read_n讀信號,低電平有效Reset_n復位,低電平有效clk系統(tǒng)時鐘address1:0地址信號writedata31:0寫數(shù)據(jù)output:readdata31:0讀數(shù)據(jù)irq_n中斷請求,低電平有效這些信號均要求滿足Avalon總線的時序要求:(采用基本時序)

6、讀時序:圖3如圖3所示,讀時序在一個系統(tǒng)時鐘周期內(nèi)完成。在第一個clk上升沿,系統(tǒng)將address、byteenable、read信號輸出到從設備接口,系統(tǒng)內(nèi)部對address進行地址譯碼,生成chipselect信號也傳輸?shù)綇脑O備接口,一旦chipselect被置高,從設備立即將readdata信號輸出到從設備接口,系統(tǒng)在第二個時鐘上升沿讀取該數(shù)據(jù),從而完成一次讀操作。為滿足此時序,可利用第一個clk的下降沿來檢測address、read、chipselect信號是否有效,如果有效,立即輸出數(shù)據(jù)。代碼如下:always (posedge slave_clk or negedge reset_

7、nbeginif(reset_n = 0beginslave_readdata = 0;endelse if(slave_chipselect & slave_read_nbegincase(slave_address2b00: slave_readdata = controlReg;2b01: slave_readdata = interStatus;2b10: slave_readdata = startAddress;2b11: slave_readdata = addressCounter;endcaseendend寫時序:圖4如圖4所示,寫操作也在一個時鐘周期內(nèi)完成。在第一個clk上

8、升沿,系統(tǒng)設置address、byteenable、writedata、write信號有效,然后內(nèi)部將address信號譯碼得出chipselect信號并立即傳輸?shù)綇脑O備接口,從設備在第二個clk上升沿捕獲接口上的數(shù)據(jù),從而完成一個寫操作。為滿足此時序,從設備接口在第二個clk上升沿檢測address、write、chipselect信號是否有效,若有效,則將數(shù)據(jù)口上的數(shù)據(jù)writedata寫入到內(nèi)部寄存器。代碼如下:always (posedge slave_clk or negedge reset_nbeginif(reset_n = 0begincontrolReg = 0;/ stat

9、usReg = 0;startAddress= 0;frameLength = 0;endelse if(slave_chipselect & slave_write_nbegincase(slave_address2b00: controlReg = slave_writedata;/2b01: statusReg = slave_writedata;2b10: startAddress = slave_writedata;2b11: frameLength = slave_writedata;endcaseend endclk信號為系統(tǒng)時鐘信號,這里取100MHz。reset_n為復位信號

10、,低電平有效,復位后,LCD控制器應該處于一個設定好的狀態(tài)。irq為中斷請求信號,當控制器滿足下列條件之一時,向系統(tǒng)發(fā)出中斷請求信號,將irq信號置高,直到系統(tǒng)響應該信號,并用軟件將其清零。(暫時未使用)2、Avalon Bus DMA Master主設備接口Avalon Bus DMA Master負責按照控制模塊的指令,讀取SDRAM中的數(shù)據(jù),并寫入到FIFO中。其核心部分是DMA地址累加器,當條件滿足時,地址累加器開始在100MHz的時鐘下以4為單位開始累加(為何以4為單位,是由avalon總線的地址映射方式?jīng)Q定的。avalon總線按字節(jié)進行編址,而SDRAM控制器一次讀取32bit即4

11、Byte的數(shù)據(jù),所以地址要以4為單位累加),用于生成讀取SDRAM的地址。讀完一幀的數(shù)據(jù)后,自動復位到首地址,繼續(xù)累加。主設備接口信號列表:input:Master_clk主設備時鐘100MHzMaster_waitrequest主設備等待信號Master_readdatavalid主設備數(shù)據(jù)有效信號Master_readdata31:0主設備數(shù)據(jù)Output:Master_read_n主設備讀信號Master_address31:0主設備地址信號主設備接口時序:圖5如圖5所示,主設備接口采用帶延遲的主設備讀傳輸模式,在這種傳輸模式下,即使沒有接收到上一次的有效數(shù)據(jù),主設備也可以發(fā)起下一次讀命

12、令。當waitrequest信號無效(低電平)時,主設備可以連續(xù)的發(fā)起讀命令,當waitrequest信號有效(高電平)時,主設備開始等待,知道其變?yōu)榈碗娖?。當readdatavalid信號有效(高電平)時,表示讀數(shù)據(jù)有效,此時主設備可以鎖存數(shù)據(jù)口上的有效數(shù)據(jù)。這里我們沒有使用flush信號,flush信號會清楚前面一切未完成的讀命令。Avalon總線保證數(shù)據(jù)的輸出順序與主設備要求的順序一致(即與主設備地址輸出順序一致)。readdatavalid信號可以作為FIFO的wrreq信號,這樣可以直接將讀回來的數(shù)據(jù)寫入到FIFO中。地址累加器滿足以下條件時,則開始累加,當當前地址等于尾地址時,則復

13、位累加器,使之重新開始從首地址累加:1)、非FIFO快滿(即fifo_almostfull信號無效)2)、master_waitrequest無效地址累加器代碼:wire 31:0 endAddress;reg 31:0 addressCounter;wire addressCounter_sload;wire addressCounter_inc;assign endAddress = startAddress + frameLength;assign addressCounter_sload = (controller_GoBit | (addressCounter = endAddres

14、s;assign addressCounter_inc = (master_read_n & (master_waitrequest &(controller_GoBit;assign master_address = addressCounter;assign master_read_n = (fifo_almostfull controller_GoBit;always (posedge master_clk or negedge reset_nbeginif(reset_n = 0beginaddressCounter = 0;endelse if(addressCounter_sloa

15、d = 1beginaddressCounter = startAddress;endelse if(addressCounter_inc = 1begin/ address incs as 0,4,8,16,.addressCounter = addressCounter + 4;endend3、FIFO(先入先出存儲器)FIFO的作用是對DMA輸出的圖象數(shù)據(jù)進行緩存,以匹配時序控制模塊的輸出速度。FIFO大小暫定為4096*16bit,在實際設計時,再根據(jù)系統(tǒng)需要以及資源狀況作出適當調(diào)整,原則是,在系統(tǒng)資源允許的情況下,將FIFO大小盡量設置大點。THBP + COLUMNS - 2:be

16、gin /fifo read request signal ends earlier for 1 clock than oDENAWe do after-school activities every afternoon. =我們每天下午進行室內(nèi)活動。 0;advantage n. 優(yōu)勢,長處 = disadvantage n. 劣勢,缺點,不利條件endadvantage s and disadvantage s. 住在農(nóng)村既有優(yōu)勢也有劣勢。 THBP + COLUMNS - 1: 13 建議,勸告 advise sb.to do sth. 建議某人做某事我們英語教師建議我們盡可能多說英語。

17、 = 0;advice ) cCounter建議,勸告,忠告 cCounter + 1; give sb. some advice 給某人提一些建議 endI dont know how to learn English well.I hope you can give me some advice.THBP + COLUMNS + THFP - 1:我不知道怎樣學好英語。我希望你可以給我一些建議。 beginoffer sb. some suggestions14、affect 影響 affect our moods 影響我們的心情你知道顏色能影響我們情緒嗎?end 影響,作用 cCount

18、er + 1;對某人有好的/壞的影響endcase、afford vt./ vi. 買的起,能做買的起 afford to do sth. 有能力做某事/vertical sync signal generatoralways (negedge oHSYNCbegin我們沒有能力承擔這樣的價格。if(tft_reset_n = 0 /reset active The car is too expensive. I cant afford it/I cant afford to buy it.這輛太貴了,begin我買不起。lineENA = 0;oVSYNC 0;我有許多家庭作業(yè)要做,恐怕我不能和你去了。 lCounterIm afraid of snakes.我害怕蛇。 0;Im afraid of going out alone at night.我害怕晚上單獨出去。Dont be afraid to ask questions.不要害怕問問題。beginfrightened adj. case(lCounterfrightened. begin他們聽到一些異常情況,他們感到恐懼。7 oVSYNC = 0;against prep. = lCounter + 1

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論