基于STR750與TSC2003的觸摸屏接口設計
觸摸屏技術經(jīng)過十幾年的發(fā)展已經(jīng)成為一種方便、經(jīng)濟的人機界面輸入手段,廣泛應用于手機、掌上電腦、車載設備及銀行ATM等領域。根據(jù)工作原理的不同,觸摸屏可以分為電阻式、紅外式、電容式和聲表面波式4種類型,其中應用最為廣泛的是電阻式觸摸屏。本文討論2種電阻式觸摸屏的接口設計,分別為觸摸屏與ARM STR750直接連接及其通過專用觸摸屏檢測器件連接。
1、器件簡介
1.1 電阻式觸摸屏的分類與工作原理
電阻式觸摸屏分為四線與五線2種形式。其中四線電阻式觸摸屏由于造價低廉和便于實現(xiàn),在工業(yè)和掌上設備中得到了廣泛的使用。電阻式觸摸屏的本質(zhì)是電阻分壓器,觸摸屏由2層被絕緣層隔開的電阻層構成。當有觸摸動作按下時,2層電阻層因形變達到電氣連接,從而通過A/D檢測2層電阻層間的電壓值來確定觸摸點的位置。
1.2 STR750
STR750是意法半導體公司生產(chǎn)的基于ARM7TDMI—S的32位RISC CPU。STR750最高主頻可達60 MHz,具有16 KB RAM,最大片內(nèi)Flash為256 KB,最大支持64 MB擴展F1ash。通用I/O(GPIO)支持模擬輸入、輸入上拉、輸入下拉、輸入懸浮、推挽輸出、開漏輸入、推挽復用和開漏復用8種配置模式。模數(shù)轉(zhuǎn)換器(ADC)共有16個通道,支持10位A/D采樣。
1.3 TSC2003
TSC2003是TI公司生產(chǎn)的采用TSSOP一16封裝的四線電阻式觸摸屏控制芯片,集成了多個功能模塊,具有測量電量、片上溫度和觸摸壓力等功能,通過I2C總線與單片機連接。TSC2003是一款基于命令控制的觸摸屏檢測器件,通過I2C總線發(fā)送控制命令來控制芯片采集X軸、Y軸和Z軸的壓力等相關量。
1.4 觸摸屏與單片機的接口分類
觸摸屏與單片機的接口有利用專用觸摸屏檢測芯片和利用單片機自身A/D轉(zhuǎn)換來檢測觸摸屏位置這兩種方式。利用專用觸摸屏檢測芯片檢測觸摸屏位置時,單片機與專用芯片通過總線進行通信,接口的外圍電路簡單,受外界干擾小,精度較高,但專用芯片的使用增加了成本。利用單片機自身的A/D轉(zhuǎn)換檢測時,單片機直接連接觸摸屏進行A/D檢測,接口的外圍電路較復雜,受外界干擾大,精度較差,但成本較低。
2、觸摸屏與STR750的接口
2.1 利用STR750自帶A/D轉(zhuǎn)換
STR750可以通過自身推挽輸出,在觸摸屏的X軸和Y軸上施加電壓。當輸出電壓施加在X軸上時,利用STR750 A/D采樣Y+軸的電壓來獲取Y軸的坐標值;當輸出電壓施加在Y軸上時,A/D采樣X+軸的電壓來獲取X軸的坐標值。
STR750的P0.01引腳通過電阻R1連接X+。當需要在X軸上施加電壓時,PO.01引腳輸出+5 V電壓。PO.02引腳為STR750 ADC通道O,直接連接X+。當在Y軸上施加電壓時,通過PO.02讀取X軸坐標。P1.12引腳連接在X一上,當需要在X軸上施加電壓時接地。STR750的P1.13引腳通過電阻R2連接Y+,當需要在Y軸上施加電壓時,P1.13引腳輸出+5 V電壓。P1.04引腳為STR750 ADC通道9,直接連接Y+。當在X軸上施加電壓時,通過P1.04讀取Y軸坐標。P1.14引腳連接在Y一上,當需要在Y軸上施加電壓時接地。觸摸屏與STR750的連接如圖1所示。
系統(tǒng)開始運行后,將P0.01和P1.12配置為推挽輸出低電平(即令X+和X一兩個端口接地),P0.02配置為模擬輸入,P1.13配置為輸入上拉保持高電平并檢測外部觸摸動作,P1.14配置為輸入懸浮并保持懸浮態(tài)(即在Y+上施加5 V電壓),P1.04配置為模擬輸入。如果系統(tǒng)采用中斷方式檢測觸摸屏按下,則需將P1.13配置為外部下降沿觸發(fā)中斷,那么系統(tǒng)開始運行后,如果有觸摸動作,Y+上的電壓通過X+和X一連接到地,從而觸發(fā)P1.13引腳的外部下降沿中斷。
外部下降沿觸發(fā)中斷后,系統(tǒng)經(jīng)過一段時間的消抖操作,開始檢測X軸坐標。此時,將P0.01引腳配置為推挽輸出高電平,在X+上施加電壓,并將P1.13引腳配置為輸入懸浮,去除在Y+上施加的電壓。通過對P1.04引腳A/D采樣,讀取當前觸摸點的X軸坐標。讀取完成后,將P0.01和P1.12引腳配置為輸入懸浮,去除X軸方向的施加電壓,并將P1.13配置為推挽輸出高電平,P1.14配置為推挽輸出低電平,即在Y軸方向上施加電壓。通過對PO.02引腳進行A/D采樣,讀取到當前觸摸點的Y軸坐標。這樣,就完成了一次對當前觸摸點的坐標軸采樣過程。循環(huán)讀取坐標軸數(shù)值,通過計算平均值及剔除野值得到觸摸屏坐標值。輸出坐標值后,將每個引腳的狀態(tài)配置為初始狀態(tài),等待下一次中斷的發(fā)生。
這里需要注意的是,在變換X軸和Y軸方向上的電壓時,需要在變換電壓方向后加入一段延時,等待電壓穩(wěn)定,使A/D變換后讀取到的值逼近真實值。通過STR750的引腳配置變換來讀取X軸和Y軸坐標值的方法具有結(jié)構簡單、易實現(xiàn)、成本低等優(yōu)勢,可用于一般的手指觸摸界面。如果需要高精度的手寫操作,或者觸摸屏與STR750之間有較長的電纜連接,這時就需要用到專門的觸摸屏檢測芯片。
2.2 利用專用觸摸屏芯片
TSC2003的參考連接如圖2所示。
STR750向TSC2003發(fā)送控制字節(jié)來控制TSC2003的操作。其中d7~d4是配置位,用來配置當前TSC2003的操作類型;d3~d2是節(jié)能位,用來配置是否打開內(nèi)部參考電壓和ADC;d1為精度控制位,用來選擇12位采樣精度或8位采樣精度;d0位為保留位。TSC2003控制命令格式如下:
TSC2003上電后,由STR750通過I2C總線向TSC2003發(fā)送控制命令,其中配置位為“測量X軸坐標”,發(fā)送該控制命令使TSC2003進入等待狀態(tài)。當TSC2003檢測到有觸摸按下事件,會在IRQ引腳產(chǎn)生下降沿電平,從而觸發(fā)STR750的下降沿中斷。進入中斷后,經(jīng)過消抖延時,STR750向TSC2003發(fā)送控制命令,配置位為“測量X軸坐標”。通過讀取TSC2003狀態(tài)獲取X軸坐標值。下一步,STR750向TSC2003發(fā)送控制命令,配置位為“測量y軸坐標”,通過讀取TSC2003狀態(tài)獲取Y軸坐標值。至此,完成一次讀取X軸和Y軸坐標的操作。這樣讀取若干次坐標軸,通過計算平均值和剔除野值得到觸摸屏坐標值。整個過程中控制命令的節(jié)能位和精度控制位分別始終保持為“在2次轉(zhuǎn)換間節(jié)能”和“12位采樣精度”。這里需要注意的是,在發(fā)送控制命令讀取坐標軸的2次操作之間需要一段延時以獲得比較準確的A/D采樣值,一般至少延時10μs。
3、總結(jié)
本文針對四線式觸摸屏與單片機間2種形式的接口進行了討論,這2種方案均達到了很好的實際使用效果。不同的設計思路適用于不同的應用領域,以達到節(jié)約成本、降低功耗和提供滿足需求的觸摸屏檢測精度等目的。
評論