基于電阻觸摸屏和CPLD來實現(xiàn)多點觸摸系統(tǒng)
觸摸屏是成熟的技術(shù),最基本、也是最常用的是4/5線電阻觸摸屏。很多標(biāo)準(zhǔn)屏支持多種尺寸,可以選擇多種解碼模擬解決方案。電阻觸摸屏支持多種輸入方法,比如手指、觸摸筆、手套和指甲等等。電容觸摸屏是一種新的解決方案,也有4/5線選擇,標(biāo)準(zhǔn)屏比較少,復(fù)雜的模擬解碼器解決方案也比較少。電容觸摸屏比較適合手指的輸入,不太適合指甲、觸摸筆和手套的輸入。電容屏幕最主要的優(yōu)勢是表面耐用性,成熟的電阻和電容觸摸屏限于單點觸摸。iTouch等產(chǎn)品則采用了多點觸摸技術(shù),多點觸摸增加了人機接口,并增加了兩路以上的同時輸入或者觸摸點。靜態(tài)輸入觸摸的例子有鍵盤或者游戲手柄上的Shift鍵和Control、Alt、Delete功能鍵等,它們都有多路獨立的控制;動態(tài)輸入的例子有手勢、命令、旋轉(zhuǎn)動作或者收縮、擴大等等。使用過多點觸摸技術(shù)以后,傳統(tǒng)的觸摸技術(shù)就顯得太簡單了。
目前,可以使用到多點觸摸技術(shù)的應(yīng)用包括醫(yī)療影像(超聲、X射線和MRI在進行圖像處理時需要用到)、信息查詢終端 (相片打印、零售信息查詢終端、地圖/導(dǎo)航等)、音樂/視頻播放器(iTouch)、家電等。本文將介紹一個使用數(shù)字電阻觸摸屏和MAX II CPLD來實現(xiàn)多點觸摸系統(tǒng)的簡單數(shù)字低成本替代方案。
多點觸摸解碼
任何多點觸摸解決方案都從觸摸屏開始。文中的例子使用NKKSwitch的數(shù)字SmartTouch,型號為FTAS225-5.7A-N。還有別的供應(yīng)商提供的尺寸不同的其他數(shù)字電阻屏。處理接口是I2C,但也可以使用其他接口。
FTAS225-5.7A-N采用了5.7”疊層屏幕,15行×15列,觸點分辨率為5mm×7mm。屏幕疊層實際上是15×15的開關(guān)矩陣。數(shù)字電阻屏疊層使用水平和垂直的銥錫氧化物(ITO)走線。走線之間是分開的,觸摸時會使兩層短路。
在此次演示中,設(shè)計簡化為8×8數(shù)字電阻觸摸屏。本例子使用了處理器I2C接口,但是也可以為任何處理器提供任意串行或者并行接口。該設(shè)計只需要MAX II將數(shù)字電阻觸摸屏與處理器連接起來,利用MAX II內(nèi)部上拉電阻和內(nèi)部振蕩器減少外部元件。
在圖1中,垂直寄存器在每一列為每一行進行采樣,水平寄存器組成了移位寄存器,陣列每次都被驅(qū)動為低電平。圖中波形顯示了沒有觸摸時屏幕是怎樣解碼的。當(dāng)屏幕上沒有點被觸摸時,行探測信號保持高電平。當(dāng)屏幕上第2行第2列被觸摸時,導(dǎo)致第二行在C2采樣期間被拉低。每次掃描顯示屏?xí)r,I2C模塊向處理器發(fā)送8字節(jié)數(shù)據(jù)。
表1 觸摸屏的優(yōu)缺點
圖1 單點觸摸解碼的工作模式
多點觸摸解碼是怎樣工作的呢?圖2中的波形顯示了三個觸點。圖中的手指符號表示每一個觸點是怎樣映射到行列采樣信號的。三個觸點導(dǎo)致掃描期間出現(xiàn)3個低電平脈沖。在某些3手指觸摸條件下,簡單解碼器會錯誤地報告出現(xiàn)混疊信號,而后者是不正確的觸點解碼。3個觸點必須呈三角形,其中兩個點共享一行,兩個點共享一列。圖中的紅圈畫線顯示了混疊信號解碼脈沖。
圖2 多點觸摸解碼的工作模式
改進后的解碼器電路可以減小甚至消除混疊信號。首先,我們要做的是時鐘速率提高,通常將時鐘速率提高10-100倍。在圖3中,I2C時鐘從100kHz提高到4MHz。增加了同步移位和采樣使能信號(綠色)。 SFT是移位使能信號,SEN是采樣時能信號。加入了時序控制模塊,支持SFT至SEN延時調(diào)整(紅色),支持移位使能信號對使能延時調(diào)整進行采樣。時序控制模塊能夠減小移位使能采樣,使能延時可以增大移位使能。采樣使能延時獨立地控制每一列、每一行延時。
圖3 改進后的電路減小了混疊信號(1)
電路是怎樣去掉混疊信號的呢?在實際系統(tǒng)中并沒有調(diào)整時序,時鐘更快一些。RA到RE詳細(xì)顯示了產(chǎn)生混疊信號的觸摸屏通路,包括ITO走線阻抗、I到RE。I到RE詳細(xì)闡述了產(chǎn)生混疊信號的觸摸屏通路。由于采用了電阻,從手指觸點1到混疊信號脈沖的延時比較大,因此,控制采樣使能時序會忽略它。如左下部的箭頭所示,通過改進采樣使能信號,可以消除混疊信號。圖5詳細(xì)顯示了延時和時序變化。時鐘頻率還是比實際例子慢,以方便理解該圖。第0列和第5列的采樣時序不同,以消除混疊信號。雖然C5 SEN信號比C0 SEN信號滯后,但還是比最初設(shè)計短得多。設(shè)計人員的目標(biāo)是根據(jù)觸摸屏和PCB特性,使每一列和每一行的采樣時序足夠長,能夠正確采樣真正的觸摸;同時采樣時序還要足夠短,從而可以忽略混疊信號。利用MAX II器件的可編程能力,使用JTAG可以迅速重新配置設(shè)計或者動態(tài)進行控制,很容易對電路進行調(diào)整。
圖4 改進后的電路減小了混疊信號(2)
圖5 改進后的電路減小了混疊信號(3)
參考設(shè)計電路板非常簡單(圖6)。只需將MAX II器件直接連接至觸摸屏的30個引腳,以及15×15 LED陣列。還有下載連接線J1,以及SPI或者I2C連接用的擴展插頭J3。相對于I2C接口,LED陣列更容易進行交互式演示。
圖6 演示電路板原理圖
圖7是MAX II電路結(jié)構(gòu)圖。它包括移位寄存器,含有來自時序控制模塊的移位控制信號。時序控制模塊還控制采樣寄存器。為能夠有效地演示時序變化的影響,將使用JTAG源探測特性Mega向?qū)б约癚uartus II和MAX II系列支持的源探測編輯器。
圖7 MAX II電路結(jié)構(gòu)圖
如圖8所示,時序控制模塊有4個狀態(tài),顯示在左下角。“復(fù)位”驅(qū)動所有引腳為高電平,建立時間為16個時鐘周期。“移位”將列掃描移到左側(cè)。“等待”是從移位到采樣的可編程延時。JTAG8模塊控制延時,是從JTAG電纜下載的8位數(shù)值,控制來自Quartus源探測編輯器窗口。它還對內(nèi)部節(jié)點進行采樣,以便在Quartus中實時讀取。“等待”周期后,采樣狀態(tài)采集列數(shù)據(jù)。
圖8 時序控制模塊
MAX II是可編程邏輯器件,很容易采用免費的Quartus II設(shè)計工具對其進行定制,滿足使用者的應(yīng)用需求。同時,MAX II CPLD具有以下特性,非常適合數(shù)字電阻觸摸屏解碼:大量的I/O引腳,其中超低功耗MAX IIZ系列含有160個I/O,MAX II系列含有272個I/O,很少有處理器提供足夠的I/O來解碼數(shù)字電阻觸摸屏;所有MAX II器件都有內(nèi)部振蕩器和可編程內(nèi)部I/O上拉電阻;MAX II器件支持在系統(tǒng)可編程,這樣可以先設(shè)計印刷電路板,然后再調(diào)整時序;MAX II的功耗非常低,MAX IIZ適用于很多電池供電的便攜式應(yīng)用;最后,可編程MAX II能夠靈活的支持需要標(biāo)準(zhǔn)或者專用接口的處理器。