基于NiosⅡ處理器的TFT-LCD圖形顯示設(shè)計(jì)
2.2 SoPC系統(tǒng)建立
基于FPGA的SoPC方案[3]的可配置性表現(xiàn)在搭建硬件平臺時,用戶可以根據(jù)自己要實(shí)現(xiàn)的功能來靈活選擇所需要的存儲器以及外圍接口設(shè)備,而不用把所有提供的元件添加到系統(tǒng)中,這樣就可以因功能不同而有針對性地設(shè)計(jì)每一個系統(tǒng),從而也避免了添加無用元件占用FPGA資源而引起浪費(fèi)。例如,由系統(tǒng)的整體結(jié)構(gòu)可知,本系統(tǒng)所需要的基本組件有CPU、SDRAM控制器、JTAG-UART、SRAM、定時器以及用三態(tài)橋來連接的CPI-FLASH,因?yàn)樵?a class="contentlabel" href="http://www.ex-cimer.com/news/listbylabel/label/TFT-LCD">TFT-LCD已經(jīng)帶有控制器了,所以就不需要以自定義組件的形式在SoPC Builder中添加該元件的控制器。
本系統(tǒng)的構(gòu)建基于QuartusⅡ8.0版本的SoPC Builder工具,它使用CPU、存儲器接口和外圍設(shè)備(例如本設(shè)計(jì)中添加的掛接在三態(tài)橋上的接口gx_tft_lcd)生成系統(tǒng)模塊,并在Avalon總線模塊和所有系統(tǒng)組件上的從屬設(shè)備端口之間自動生成互連邏輯。由于利用總線方式來訪問已經(jīng)帶有控制器(TCB8000A)的TFT LCD,因此需要在Nios Ⅱ系統(tǒng)模塊中手動添加一個三態(tài)接口gx_tft_lcd。因?yàn)槭侵粍?chuàng)建一個接口,因此不需要HDL文件和HAL文件,但是在信號設(shè)置時,應(yīng)根據(jù)Avalon總線三態(tài)從端口寫時序圖和TCB8000A的控制接口來添加需要的信號。
設(shè)置生成新元件后就可以將新定制的gx_tft_lcd添加到Nios系統(tǒng)中,產(chǎn)生Nios II 系統(tǒng)模塊,并添加到工程中。保存編譯,通過之后可將編譯生成的sof文件下載到FPGA芯片,至此硬件方面的工作基本完成。
圖2所示為搭建本設(shè)計(jì)的硬件平臺中使用SoPC Builder工具來添加生成的系統(tǒng)模塊。
3 軟件設(shè)計(jì)
Nios II處理器的軟件程序設(shè)計(jì)使用HAL (Hardware Abstraction Layer)系統(tǒng)庫。HAI系統(tǒng)庫[4]為程序員提供了應(yīng)用程序與底層硬件交互的設(shè)備驅(qū)動接口,簡化了應(yīng)用程序的開發(fā),同時還為應(yīng)用程序與底層硬件驅(qū)動劃分了一條很清晰的分界線,從而大大提高了應(yīng)用程序的可復(fù)用性,使得應(yīng)用程序不受底層硬件變化的影響實(shí)現(xiàn)系統(tǒng)硬件和應(yīng)用程序之間的通信。HAI API[5](Application Program Interface)集成了ANSI C標(biāo)準(zhǔn)庫,使上層程序像訪問C函數(shù)庫一樣訪問系統(tǒng)硬件和軟件。軟件設(shè)計(jì)不用考慮底層硬件實(shí)現(xiàn)的細(xì)節(jié)而直接編寫應(yīng)用程序。系統(tǒng)軟件結(jié)構(gòu)如圖3所示。
軟件系統(tǒng)主要分為兩部分:系統(tǒng)的初始化對LCD控制器的控制以及顯示數(shù)據(jù)的處理。
評論