基于SOPC 的觸控屏控制器IP核設計

3)LCD 圖像顯示模塊測試
LCD 顯示模塊是將從FIFO 中讀出的圖像數據在觸控屏上顯示出來。從圖4 可以看出, 當DEN 有效時, 將像素數據分為R、G、B 傳送給LCD,HCount 和VCount 為行計數器和場計數器,隨著LCD 時鐘將各個像素點傳送給觸控屏。
圖4 LCD 顯示的數據
基于SOPC 觸控屏系統硬件設計如圖5 所示, 其中,SDRAM 控制器實現處理器和SDRAM 之間的數據存取,包括SDRAM 存儲程序和字符、圖形以及顏色等數據;JTAG UART實現PC 和開發板通信, 主要用于調試, 從鍵盤輸入相應數據,然后通過NiosⅡ軟件調試處理器,將數據通過LCD 接口傳輸到觸控屏上顯示出來[4].開發板采用大連宇華公司的H3C40-V6 開發板。板上的FPGA 芯片為EP3C40F484C6, 觸控屏為4.3 英寸彩色數字TFT-LCD 觸控屏,分辨率800×484,可以顯示文字、彩圖等。板上自帶觸控屏顯示驅動器。
根據所用到的外設和器件特性,在SOPC Builder 中建立系統所要添加的外設模塊, 主要包括:NiosⅡ、SDRAM 控制器、JTAG UART、時鐘橋、三態橋、鎖相環PIO 等[5-6].設定好各個參數,再添加LCD 控制器,將LCD 控制器的Avalon 主端口接口連接到SDRAM 上。
創建的包含NiosⅡ系統的QuartusⅡ頂層模塊,如圖6所示。
根據硬件設計編寫軟件測試程序,以驗證LCD觸控屏顯示。首先往顯存中寫入預定的數據來初始化顯存,然后通過編程將相應的參數寫入LCD 的各個控制寄存器, 最后使能-LCD 控制器,以觀察顯示屏的顯示輸出是否正確。本設計采用C 語言編程,讓觸控屏顯示彩條。在NiosⅡIDE 軟件平臺上, 創建C/C++ 工程, 配置工程的系統屬性,然后編譯及運行程序。在編譯成功后,自動下載到硬件平臺上開始運行程序,這時在觸控屏上觀察到效果如圖7 所示, 圖中彩條顏色從上至下分別為紅、淺綠、藍、綠、粉、紅、紫、白、藍。
6 結論
采用自定義添加觸控屏接口控制模塊來定制用戶邏輯外設。使用硬件描述語言建立控制器模塊并進行仿真測試;采用參數化組件設計,使其具有較強的通用性和兼容性。該控制器IP核設計有效利用FPGA 資源,節約成本,增強系統可靠性和設計靈活性,并且可移植性強。
評論