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