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

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是固定的,因為使用的是12bit的AD,故除以4096。對于觸摸屏壓力檢測來說,式6即能說明當前壓力大小關(guān)系。
Ft=XPOS*Z2POS/Z1POS-XPOS (式6)
Ft的絕對值越小,說明按下越可靠,采樣值有效。反之,可以認為是輕按,采樣值無效。 |