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