一、电阻触摸屏原理
触摸屏包含上下叠合的两个透明层,一般覆盖在lcd表面,两个透明层是由均匀的电阻介质组成,如下图。
当触摸屏表面受到的压力(如通过笔尖或手指进行按压)足够大时,顶层与底层之间的薄膜会产生接触,此时会形成x方向和y方向的坐标。那么x,y坐标的值是怎么得来的呢?本质上就是通过ADC转换得来的。详解如下:
触摸屏的等效电路可以看成如下图:
计算触点的X,Y坐标分为如下两步(见下图):
1.计算Y坐标:
在Y+电极施加驱动电压Vdrive, Y-电极接地,由于上下两层膜形成触点,X+做为触点的引出端,测量得到接触点的电压,触点电压与Vdrive电压之比等于触点Y坐标与屏高度之比。如下图:
2.计算X坐标:
在X+电极施加驱动电压Vdrive, X-电极接地,由于上下两层膜形成触点,Y+做为触点的引出端,测量得到接触点的电压,Y+做为引出端测量得到接触点的电压,触点电压与Vdrive电压之比等于触点X坐标与屏宽度之比。如下图:
二、电阻触摸屏的几种模式
1.等待中断模式
平时的时候上下两层膜并不粘在一起,我们把这种状态称为“等待中断模式”, 等效电路如下图的右边那幅图:
s5、s4闭合,s1、s2、s3断开,这个时候Y_ADC/XP通过S5接上拉电阻,处于高电平状态,X_ADC/YP接地。没法读取x,y坐标。
2.读取x坐标模式:
给X方向通电,也就是让S1、S3开关闭合,s2、s4断开,那么当屏幕按下,触点YP的电平就对应x坐标。(XP到XM之间是均匀的电阻介质)
x_adc电压/vcc = x坐标/width, 所以x坐标= width * x_adc电压/vcc
3.读取y坐标模式:
给Y方向通电,也就是让S2、S4开关闭合,s1、s3断开,那么当屏幕按下,触点XP的电平就对应y坐标。(YP到YM之间是均匀的电阻介质)
y_adc电压/vcc = Y坐标/height, 所以y坐标= height * y_adc电压/vcc
4.我们总结一下单次触发TS中断,使用触摸屏的流程:
<1>按下触摸屏,产生TS中断 <2>启动ADC(目的是获取x,y方向上的坐标值) <3>ADC转换完成,产生adc中断(adc转换需要一定的时间) <4>ADC中断中来读取x y坐标 松开,结束
我们知道,现在的手机都是支持屏幕滑动翻页和长按的功能。那么这些功能是如何做到的呢?
如何让触摸屏支持长按或者滑动操作(多次触发TS中断)
答案:定时器,当长按屏幕,会产生多次TS中断,因此我们需要用定时器来判断,当定时一段时间后,还有TS中断产生,那么我们认为是长按操作,进行中断响应。滑动也是类似的道理,当定时时间到后,如果还有TS中断产生,且坐标发生了改变,就认为是滑动操作。
<5> 启动定时器
<6> 一段时间后,定时器中断发生,判断触摸屏是否仍被按下(是否有定时器中断产生),如果有就循环上述过程<2><3><4><5>
可以用如下流程图概括TSC的整个SW flow.
TSC触摸屏中断处理流程