李 盾
河南省索克實業有限公司,河南鄭州 450000
觸摸屏操作簡單,控制方便,越來越成為手機及平板電腦的主流輸入和顯示設備。目前,世界上常用的觸摸屏有電阻式觸摸屏和電感式觸摸屏。由于電阻式觸摸屏具備結構簡單、制造便捷、各項功能易被大多數設備所兼容的特點,故本系統選用電阻式觸摸屏作為輸入設備。
FPGA 具有性能高速、控制精準、實時性好的特點,當把FPGA 設置為ASIC,性能和效率將大大提升,功耗得到大幅降低。
本系統選用FPGA 為主控制器,從觸摸數據采集模塊中讀取觸摸點數據,對數據進行處理得到相應點的坐標值,然后在顯示器上顯示相應的數據,同時LED 指示完成相應的操作,系統的總體框圖如圖1。

圖1 觸摸屏控制系統框圖
觸摸屏接受外部觸摸信號,觸摸坐標點的偏置電壓隨著屏幕水平和垂直方向的滑變電阻而變化。觸摸屏控制器主要完成觸摸屏和FPGA 控制器間的數據傳輸,對觸摸數據進行實施采樣,一旦發生觸摸操作,即將中斷信號發送至FPGA,由FPGA進行數據采集,發送指令啟動AD 轉換,并將轉換信號傳輸至FPGA 控制器,完成數據轉換。顯示控制器接受FPGA 發送的控制數據,在TFT 屏幕上進行顯示。
在這里,FGPA 選用ALTERA 公司的EP2C8Q208,觸摸屏控制器選用四線式電阻控制器XPT2046,便于實現觸摸點壓力測量,TFT 控制器選用通用的LCD 控制器ILI9325。
系統電源需要5V、3.3V 和1.2V 電壓,由于TFT 背光需要較高的亮度,故采用5V 供電;3.3V 電壓主要提供給TFT 顯示控制器、觸摸屏控制器、FPGA 芯片IO 接口、SDRAM 等,選用LM1085 穩壓芯片;1.2V 作為FPGA 芯片核心工作電壓,采用AMS117-1.2 穩壓芯片。為保證系統穩定工作,在各電源輸入輸出部分均使用濾波電容。
FPGA 系統由時鐘電路、復位電路和FPGA 芯片構成。本系統選用50MHz 晶振作為FPGA 的工作時鐘,晶振輸出的時鐘信號送至FPGA 的第23 引腳,即CLK0。復位電路輸出到FPGA 的CLKUSR 引腳上。復位電路采用電容充電放電方式,當按下按鍵時,CLKUSR 被拉低至地,電容被放電,進入復位狀態;松開按鍵時,電容經過充電恢復至VCC,復位完成,復位時間與電容容值有關。
FPGA 內部RAM 較小,運行NIOS 系統時,需大量內存配合程序運行,這里選用K4S641632H SDRAM 芯片作為NIOS 的內部存儲器。由于SDRAM 地址線和數據線分離,使數據讀寫速度快,適合RAM 進行擴展。在與NIOS 系統連接方面,ALTERA 公司SOPC Builder 提供了SDRAM 控制的IP 核。
觸摸采集芯片選用XPT2046,該IC 需3.3V 供電。XPT2046共有四個輸入及水平方向的X+、X—和垂直方向的Y+、Y—。此外PEN 是芯片輸出給控制器的中斷信號,當發生觸摸或數據傳輸完成即產生一次下降沿。
TFT 顯示接口電路選用ILI9325 控制器的i80 總線16 位傳輸模式,該總線數據線與地址線復用,通過RD 端確定傳輸的是數據還是命令,RST 端為該芯片的復位端。模塊帶觸摸屏電路,通過X+、X-、Y+、Y-信號線輸出至觸摸屏控制器。
軟件系統由觸摸數據采集模塊、PLL 鎖相環模塊、NIOS 處理器模塊和復位模塊組成。觸摸采集模塊完成全部觸摸部分功能,直接輸出經過濾波的觸摸數據;PLL 鎖相環模塊根據系統需求產生不同的時鐘信號;NIOS 處理器模塊作為控制系統的核心,完成數據讀取、顯示控制以及SDRAM 控制等功能;復位模塊監視PLL 鎖相環是否正常工作,根據需要對CPU 進行復位操作。
觸摸數據采集模塊采用Verilog 編程,以完成寫觸摸控制器命令、觸摸中斷檢測、觸摸數據獲取、算術平均值濾波等功能,復位模塊由兩部分構成,分別是延時復位模塊和二與門。復位延時模塊在收到復位信號或上電復位信號后延時輸出低電平復位信號,與門的另一個輸入是PLL 的locked 信號。當延時時間到達并且PLL 正常工作時,復位完成,與門的輸出連接到NIOS 處理器和觸摸采集單元電路上。
設計NIOS 程序時,首先初始化TFT 控制器,然后TFT 顯示模塊上顯示系統正常工作,進入循環控制狀態;在循環中查詢是否有觸摸采集模塊的數據輸入,如果沒有采集到信號,結束一次循環;如果采集到信號,則將接收到水平和垂直位置的12 位數據通過坐標變換轉換為屏幕上的對應點坐標值,然后判斷是在TFT 區還是LED 區;如果在TFT 區,則接著判斷是在菜單區還是在操作顯示區;如果在菜單區,則清屏。如果在控制顯示區,則以當前坐標值為中心,在相應位置畫一個半徑為20 個坐標的圓。接著,屏幕顯示清屏區域,并查詢觸摸是否在清屏區域內,若在則執行清屏程序,不在則執行后續程序,屏幕左上角顯示當前坐標,TFT 控制顯示操作完成;如果判斷在LED 區,則再判斷是否在控制顯示區,如是將顯示區域編碼為相應數據,然后解碼輸出至TFT 顯示,同時對應數據傳輸給LED 顯示,最后清除觸摸標志,完成一次循環。
本系統的主要功能為觸摸信號采集,實現系統控制功能,屏幕設置了一個簡單的界面來完成觸摸操作。顯示由兩個菜單構成:菜單一顯示當前坐標、以坐標為原點畫圓、清屏操作;菜單二實現LED 控制操作,同時實時顯示當前LED 狀態。經過實操驗證,系統穩定,數據顯示正確,能夠很好的完成觸摸屏控制系統的基本功能。
本系統的最大優點是將硬件語言和軟件語言有效結合,對采集的觸摸數據濾波采用了特別的方法,不但可以使控制比較準確,還能無需設置直接檢測單次和連接觸摸數據,為電阻式觸摸屏系統提出切實可行的解決方案。
[1]姚愛紅,張國印,吳俊鵬.基于FPGA的硬件系統設計實驗與實踐教程[M].北京:清華大學出版社,2011.
[2]李宏,張家田.液晶顯示器件應用技術[M].北京:機械工業出版社,2004.