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