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