觸摸屏在電子產(chǎn)品中用得越來越多,其技術(shù)也在不斷發(fā)展。目前常見的有電阻式、電容式、紅外式和表面聲波式等幾大類,其中電阻式最為普遍。最近在WinCE下調(diào)試了一款四線電阻式的觸摸屏驅(qū)動(dòng),利用檢測觸摸壓力的方法實(shí)現(xiàn)了動(dòng)態(tài)調(diào)整觸摸屏的靈敏度。
一般的嵌入式處理器中會有幾個(gè)通道的AD,通常有四個(gè)通道用于連接觸摸屏的XP、XM、YP和YM。如果MCU 沒有Touch Screen Interface,可以選擇如TSC2003一類的觸摸屏控制器芯片。MCU可通過IIC總線與其通訊,以得到相應(yīng)的觸摸屏AD采樣值。目前正在調(diào)試的TCC8900芯片內(nèi)部集成了觸摸屏控制器,原廠的BSP中也提供了相應(yīng)的驅(qū)動(dòng),實(shí)際測試時(shí)發(fā)現(xiàn),該驅(qū)動(dòng)在4.3寸屏上工作得挺好,但在某些7寸屏上經(jīng)常會出現(xiàn)跳筆,尤其是在開始按下和最后抬起時(shí),跳筆非常嚴(yán)重。在快速手寫時(shí)也有跳筆的情況,并且導(dǎo)致筆跡非常不圓滑。在觸摸驅(qū)動(dòng)中使用多次采樣、去頭掐尾求平均等簡單濾波算法,問題仍然存在。經(jīng)分析,問題的根源在于輕點(diǎn)觸摸屏?xí)r采樣值嚴(yán)重不準(zhǔn),所以即使采用濾波算法也無濟(jì)于事了。解決問題要從根本出發(fā),在上報(bào)數(shù)據(jù)時(shí)須嚴(yán)進(jìn)寬出,壓力較小的采樣直接PASS,這樣可以很好的去除一些抖動(dòng)和跳筆。
參考TSC2003獲取觸摸壓力的方法修改觸摸驅(qū)動(dòng),單獨(dú)獲取XP、YP等值,通過計(jì)算得到按下觸摸屏?xí)r的電阻值。該值與點(diǎn)擊觸摸屏的位置無關(guān),只與點(diǎn)擊觸摸屏壓力大小有關(guān),壓力越大,該值越小。在實(shí)際使用時(shí)規(guī)定一個(gè)參考值,當(dāng)該值小于該參考值時(shí)才認(rèn)為是可靠按下,將采樣得到的坐標(biāo)值上報(bào),否則直接扔掉。由于觸摸屏硬件的差別,不同觸摸屏的靈敏度可能不一樣,可以通過應(yīng)用程序修改驅(qū)動(dòng)中的參考值,從而實(shí)現(xiàn)動(dòng)態(tài)調(diào)整觸摸屏靈敏度。修改后實(shí)際測試發(fā)現(xiàn),效果比原來要好一點(diǎn)。
按下四線電阻式觸摸屏,采樣時(shí)的等效電路圖如下所示。

XPOS=V*R2/(R1+R2) (式1)
Z1POS=V*R2/(R3+Rt+R2) (式2)
Z2POS=V*(Rt+R2)/(R3+Rt+R2) (式3)
由式2和3可得,Rt=(Z2/Z1-1)*R2 (式4)
由式1可得R2=XPOS*(R1+R2)/V,即R2=XPOS*(RXplate)/V (式5)
將式5和式4可得,

對于同一觸摸屏來說,Rx-plate是固定的,因?yàn)槭褂玫氖?2bit的AD,故除以4096。對于觸摸屏壓力檢測來說,式6即能說明當(dāng)前壓力大小關(guān)系。
Ft=XPOS*Z2POS/Z1POS-XPOS (式6)
Ft的絕對值越小,說明按下越可靠,采樣值有效。反之,可以認(rèn)為是輕按,采樣值無效。 |