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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于NiosⅡ處理器的TFT-LCD圖形顯示設計

          基于NiosⅡ處理器的TFT-LCD圖形顯示設計

          作者: 時間:2010-11-24 來源:網(wǎng)絡 收藏

            2.2 系統(tǒng)建立

            基于FPGA的方案[3]的可配置性表現(xiàn)在搭建硬件平臺時,用戶可以根據(jù)自己要實現(xiàn)的功能來靈活選擇所需要的存儲器以及外圍接口設備,而不用把所有提供的元件添加到系統(tǒng)中,這樣就可以因功能不同而有針對性地設計每一個系統(tǒng),從而也避免了添加無用元件占用FPGA資源而引起浪費。例如,由系統(tǒng)的整體結構可知,本系統(tǒng)所需要的基本組件有CPU、SDRAM控制器、JTAG-UART、SRAM、定時器以及用三態(tài)橋來連接的CPI-FLASH,因為在已經(jīng)帶有控制器了,所以就不需要以自定義組件的形式在 Builder中添加該元件的控制器。

            本系統(tǒng)的構建基于QuartusⅡ8.0版本的SoPC Builder工具,它使用CPU、存儲器接口和外圍設備(例如本設計中添加的掛接在三態(tài)橋上的接口gx_tft_lcd)生成系統(tǒng)模塊,并在Avalon總線模塊和所有系統(tǒng)組件上的從屬設備端口之間自動生成互連邏輯。由于利用總線方式來訪問已經(jīng)帶有控制器(TCB8000A)的TFT LCD,因此需要在Nios Ⅱ系統(tǒng)模塊中手動添加一個三態(tài)接口gx_tft_lcd。因為是只創(chuàng)建一個接口,因此不需要HDL文件和HAL文件,但是在信號設置時,應根據(jù)Avalon總線三態(tài)從端口寫時序圖和TCB8000A的控制接口來添加需要的信號。

            設置生成新元件后就可以將新定制的gx_tft_lcd添加到Nios系統(tǒng)中,產(chǎn)生Nios II 系統(tǒng)模塊,并添加到工程中。保存編譯,通過之后可將編譯生成的sof文件下載到FPGA芯片,至此硬件方面的工作基本完成。

            圖2所示為搭建本設計的硬件平臺中使用SoPC Builder工具來添加生成的系統(tǒng)模塊。

          基于NiosⅡ處理器的TFT-LCD圖形顯示設計

            3 軟件設計

            Nios II處理器的軟件程序設計使用HAL (Hardware Abstraction Layer)系統(tǒng)庫。HAI系統(tǒng)庫[4]為程序員提供了應用程序與底層硬件交互的設備驅動接口,簡化了應用程序的開發(fā),同時還為應用程序與底層硬件驅動劃分了一條很清晰的分界線,從而大大提高了應用程序的可復用性,使得應用程序不受底層硬件變化的影響實現(xiàn)系統(tǒng)硬件和應用程序之間的通信。HAI API[5](Application Program Interface)集成了ANSI C標準庫,使上層程序像訪問C函數(shù)庫一樣訪問系統(tǒng)硬件和軟件。軟件設計不用考慮底層硬件實現(xiàn)的細節(jié)而直接編寫應用程序。系統(tǒng)軟件結構如圖3所示。

          基于NiosⅡ處理器的TFT-LCD圖形顯示設計

            軟件系統(tǒng)主要分為兩部分:系統(tǒng)的初始化對LCD控制器的控制以及顯示數(shù)據(jù)的處理。



          關鍵詞: TFT-LCD NiosⅡFPGA SoPC

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁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); })();