<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 光電顯示 > 設(shè)計應(yīng)用 > 用FPGA實現(xiàn)DSP與液晶顯示器的快速接口

          用FPGA實現(xiàn)DSP與液晶顯示器的快速接口

          作者: 時間:2009-12-11 來源:網(wǎng)絡(luò) 收藏

            考慮到實際應(yīng)用方便,可把一些常用的操作按指令的方式編碼。所得到的控制指令如下:

          控制顯示器開關(guān):0010 0000 1111 111x

          指定顯示起始行:0100 0000 11xx xxxx

          指定列地址和頁地址:0110 0yyy yyyy yxxxy:

          列地址(0~191)x:

          行地址寫入數(shù)據(jù):1000 0000 xxxx xxxx

          讀顯示器狀態(tài):1010 0000 0000 0000

          讀顯示數(shù)據(jù):1100 0000 0000 0000

            框圖中微指令ROM在控制中起著決定性的作用,每條指令的執(zhí)行都被看作一系列單步時序操作的集合。如果從ROM的某一地址開始依次讀出ROM里的數(shù)據(jù),那么在每一個數(shù)據(jù)位上就會出現(xiàn)隨時間變化的電平跳變。這樣就可以用它作為控制信號進行控制操作。由于ROM是并行輸出的,如果用不同的數(shù)據(jù)位代表不同的控制信號線,就能很容量地各個信號線之間的同步操作。這樣就能很容易形成時序圖中的時序邏輯,而且擴展方便。在上述的指令表示中,通過對高3位進行譯碼,可以得到ROM尋址時的起始地址。ROM各個數(shù)據(jù)位的含義如下:

            其中,低七位是控制線,FREE是微程序執(zhí)行完標志,每條指令所對應(yīng)的微程序分為招待狀態(tài)(有多條微指令,FREE位為0)和閑置狀態(tài)(一條指令,FREE位為1)。當指令執(zhí)行狀態(tài)機檢測到FREE位的上跳沿時,加載下一條指令。LD是數(shù)字寄存器從獲得數(shù)據(jù)時的加載信號,微程序執(zhí)行過程中,在某些指令執(zhí)行時需要加載數(shù)據(jù),可由該信號完成。RD是數(shù)據(jù)寄存器從讀入數(shù)據(jù)的加載信號,主要完成從讀入數(shù)據(jù)。

            取指控制邏輯主要功能是根據(jù)FIFO的狀態(tài)決定是否寫入新的指令以及根據(jù)執(zhí)行狀態(tài)機的狀態(tài)讀入新的指令,填寫狀態(tài)寄存器,給出中斷信號。


            根據(jù)上述硬件設(shè)計,的軟件設(shè)計就大大簡化了。以寫入數(shù)據(jù)為例,在寫入數(shù)據(jù)前先查詢一下模塊的狀態(tài),如果可以寫入就寫入數(shù)據(jù);否則保持現(xiàn)有數(shù)據(jù)指針,等待下次寫入。一讀一寫兩次外部I/O操作,如果按7個等待周期、主頻100MHz計算,只有140ns,加上判斷所需時間,200ns內(nèi)就可以完成寫入數(shù)據(jù)。這里,7個等待周期是考慮到系統(tǒng)內(nèi)還其它器件。如果只是對該接口模塊操作,兩三個等待周期是沒有問題的。這樣,100ns內(nèi)就可完成寫入數(shù)據(jù)。

            在實際應(yīng)用中,采用上述接口控制模塊來完成LCD控制大大減輕了DSP的壓力。推而廣泛,這種方法還可以應(yīng)用在其它慢速設(shè)備上,如打印機等,對于提高系統(tǒng)效率是比較有效的。需要指出的是,盡管這種方法能夠建立雙向通道,卻是以占用可編程器件有限的資源為代價的。但是隨著目前可編程器件容量的日益擴大,這個問題已不是很突出的了。



          上一頁 1 2 3 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();