基于NiosⅡ處理器的TFT-LCD圖形顯示設計
2.2 SoPC系統(tǒng)建立
基于FPGA的SoPC方案[3]的可配置性表現(xiàn)在搭建硬件平臺時,用戶可以根據(jù)自己要實現(xiàn)的功能來靈活選擇所需要的存儲器以及外圍接口設備,而不用把所有提供的元件添加到系統(tǒng)中,這樣就可以因功能不同而有針對性地設計每一個系統(tǒng),從而也避免了添加無用元件占用FPGA資源而引起浪費。例如,由系統(tǒng)的整體結(jié)構(gòu)可知,本系統(tǒng)所需要的基本組件有CPU、SDRAM控制器、JTAG-UART、SRAM、定時器以及用三態(tài)橋來連接的CPI-FLASH,因為在TFT-LCD已經(jīng)帶有控制器了,所以就不需要以自定義組件的形式在SoPC Builder中添加該元件的控制器。
本系統(tǒng)的構(gòu)建基于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)模塊。
3 軟件設計
Nios II處理器的軟件程序設計使用HAL (Hardware Abstraction Layer)系統(tǒng)庫。HAI系統(tǒng)庫[4]為程序員提供了應用程序與底層硬件交互的設備驅(qū)動接口,簡化了應用程序的開發(fā),同時還為應用程序與底層硬件驅(qū)動劃分了一條很清晰的分界線,從而大大提高了應用程序的可復用性,使得應用程序不受底層硬件變化的影響實現(xiàn)系統(tǒng)硬件和應用程序之間的通信。HAI API[5](Application Program Interface)集成了ANSI C標準庫,使上層程序像訪問C函數(shù)庫一樣訪問系統(tǒng)硬件和軟件。軟件設計不用考慮底層硬件實現(xiàn)的細節(jié)而直接編寫應用程序。系統(tǒng)軟件結(jié)構(gòu)如圖3所示。
軟件系統(tǒng)主要分為兩部分:系統(tǒng)的初始化對LCD控制器的控制以及顯示數(shù)據(jù)的處理。
評論