linux嵌入式系统开发之触摸屏---驱动篇(上/硬件原理)
时间:2011-03-20 来源:☆&寒 烟☆
时间:3月20日
地点:咖啡厅
“小涛哥,你说上节课讲的触摸屏应用的部分,从测试代码来看确实也没啥,但一个触摸屏确实很神秘啊,确实吸引人,也确实引的那么多的Iphone迷,要不你今天把驱动篇给我讲讲吧,我请你喝咖啡..”(听着声音,看这神情,不用我介绍,大家也知道是谁啦..)
“切,你呢?还不了解你啊.每次都这样,有问题时就乖的很,开心时就把我忘到脑袋后啦,而且还常欺负人,就你着咖啡啊,那次不是付账时,你就淘气着赖着我负啊”我愤愤不平的吼道。
“咋了,我还没说啥呢,眼睛有红了,唉,怕你了”我还没说话,小王就..我也是个软心肠。“既然你提到了触摸屏的驱动,那今天就讲讲,我想这样的,话说触摸屏驱动啊,内容有点多,分上下节吧,上节讲讲硬件原理,下节再讲驱动源码”。好,开始 linux嵌入式系统开发之触摸屏---驱动篇(上/硬件原理):
按照触摸屏的工作原理和传输信息的介质而言,我们把触摸屏分为4种:电阻式,电容式,红外线式和表面声波式。鉴于现在电阻式的触摸屏比较简单常见,给我了让我的精力更多的集中到驱动程序这块而非硬件这块,所以我这里主要就讲电阻式,其余的咋办?小王啊,这样的问题还问啊,百度一下呗(帅哥找不到,她肯定知道用百度一下的).. 电阻式触摸屏利用压力感应进行控制,包含上下叠合的两个透明层,通常还要用一种弹性材料来将两层隔开。在触摸某点时,两层会在此点接通。四线和八线触摸屏由两层具有相同表面电阻的透明材料组成,五线和七线触摸屏由一个阻性层和一个导电层组成(如图一所示)。
原理:触摸屏包含上下叠合的两个透明层,四线和八线触摸屏由两层具有相同表面电阻的透明阻性材料组成,五线和七线触摸屏由一个阻性层和一个导电层组成,通常还要用一种弹性材料来将两层隔开。当触摸屏表面受到的压力(如通过笔尖或手指进行按压)足够大时,顶层与底层之间会产生接触。所有的电阻式触摸屏都采用分压器原理来产生代表X坐标和Y坐标的电压。如图一图二所示,分压器是通过将两个电阻进行串联来实现的。上面的电阻(R1)连接正参考电压(VREF),下面的电阻(R2)接地。两个电阻连接点处的电压测量值与下面那个电阻的阻值成正比。为了在电阻式触摸屏上的特定方向测量一个坐标,需要对一个阻性层进行偏置:将它的一边接VREF,另一边接地。同时,将未偏置的那一层连接到一个ADC的高阻抗输入端。当触摸屏上的压力足够大,使两层之间发生接触时,电阻性表面被分隔为两个电阻。它们的阻值与触摸点到偏置边缘的距离成正比。触摸点与接地边之间的电阻相当于分压器中下面的那个电阻。因此,在未偏置层上测得的电压与触摸点到接地边之间的距离成正比。
四线触摸屏包含两个阻性层。其中一层在屏幕的左右边缘各有一条垂直总线,另一层在屏幕的底部和顶部各有一条 水平总线,见图三。为了在X轴方向进行测量,将左侧总线偏置为0V,右侧总线偏置为VREF。将顶部或底部总线连接到ADC,当顶层和底层相接触时即可作一次测量。为了在Y轴方向进行测量,将顶部总线偏置为VREF,底部总线偏置为0V。将ADC输入端接左侧总线或右侧总线,当顶层与底层相接触时即可对电压进行测量。图三显示了四线触摸屏在两层相接触时的简化模型。对于四线触摸屏,最理想的连接方法是将偏置为VREF的总线接ADC的正参考输入端,并将设置为0V的总线接ADC的负参考输入端。
五线触摸屏使用了一个阻性层和一个导电层。导电层有一个触点,通常在其一侧的边缘。阻性层的四个角上各有一个触点。为了在X轴方向进行测量,将左上角和左下角偏置到VREF,右上角和右下角接地。由于左、右角为同一电压,其效果与连接左右侧的总线差不多,类似于四线触摸屏中采用的方法。为了沿Y轴方向进行测量,将左上角和右上角偏置为VREF, 左下角和右下角偏置为0V。由于上、下角分别为同一电压,其效果与连接顶部和底部边缘的总线大致相同,类似于在四线触 摸屏中采用的方法。这种测量算法的优点在于它使左上角和右下角的电压保持不变;但如果采用栅格坐标,X轴和Y轴需要反 向。对于五线触摸屏,最佳的连接方法是将左上角(偏置为VREF)接ADC的正参考输入端,将左下角(偏置为0V)接ADC的负 参考输入端。如图四所示 。
七线触摸屏七线触摸屏的实现方法除了在左上角和右下角各增加一根线之外,与五线触摸屏相同。执行屏幕测量时,将左上角的一根线连到VREF,另一根线接SAR ADC的正参考端。同时,右下角的一根线接0V,另一根线连接SAR ADC的负参考端。导电层仍用来测量分压器的电压。
八线触摸屏除了在每条总线上各增加一根线之外,八线触摸屏的实现方法与四线触摸屏相同。对于VREF总线,将一根线用来连接VREF,另一根线作为SAR ADC的数模转换器的正参考输入。对于0V总线,将一根线用来连接0V,另一根线作为SAR ADC的数模转换器的负参考输入。未偏置层上的四根线中,任何一根都可用来测量分压器的电压。
检测接触所有的触摸屏都能检测到是否有触摸发生,其方法是用一个弱上拉电阻将其中一层上拉,而用一个强下拉电阻来将另一层下拉。如果上拉层的测量电压大于某个逻辑阈值,就表明没有触摸,反之则有触摸。这种方法存在的问题在于触摸屏是一个巨大的电容器,此外还可能需要增加触摸屏引线的电容,以便滤除LCD引入的噪声。弱上拉电阻与大电容器相连会使上升时间变长,可能导致检测到虚假的触摸。四线和八线触摸屏可以测量出接触电阻,即图5中的RTOUCH。RTOUCH与触摸压力近似成正比。要测量触摸压力,需要知道触摸屏中一层或两层的电阻。图6中的公式给出了计算方法。需要注意的是,如果Z1的测量值接近或等于0(在测量过程中当触摸点靠近接地的X总线时),计算将出现一些问题,通过采用弱上拉方法可以有效改善这个问题。
附图:
图一 图二 图三 图四 图五
“小王呢?这些硬件知识看的不是很懂吧,其实没关心,具体电路时,会有详细说明的,这里只是给你个大致的意思,懂了就可以的”我拍拍小王的头说。
“嗯嗯,小王乖乖的点了头,只是..只是这些我好像在哪儿看过,过年前你都说要讲触摸屏方面的东西了,我想提前准备点,掌握着,就是想不起来了”小王苦想到。
“呵呵,说的好,这些确实我在网上找到的,是百度百科里的,鲁迅谓之---拿来主义..哈哈”