原创 普通电阻触摸屏多点触摸低成本解决方案

2010-3-19 22:09 4834 10 17 分类: 消费电子

苹果公司iPhone的成功将多点触摸技术推到了一个前所未有的高度,经典的弹钢琴应用程序可以支持超过5点的同时触摸,虽然这一性能并不见得有太多的实用价值,但绝对带给了用户技术无限领先的震撼感。苹果公司的iPhone采用电容屏和他们的专利技术来实现对多点触摸的支持,价格自然不菲,但一点可以肯定,在支持的点数和性能稳定方面,目前还少有公司能在这方面挑战苹果的权威。

对于消费电子产品来说,流行就是硬道理,在iPhone大行其道的同时,一时间但凡是有触摸屏的产品,都想让自己通过多点触摸等特性与iPhone攀上亲戚关系,尤其是手机、MP4GPS等产品,仿苹果的心理更是急切。

苹果公司的技术虽然在性能方面无可挑剔,但过高的成本使得这项技术只适合iPhone之类的奢侈品,对于更多的触摸屏产品显然无法承受这一成本。正是这个原因,寻找一种更为便宜的多点触摸解决方案,成为众多技术人员的期望,本文在不增加其它硬件成本的前提下,基于普通四线电阻屏,提出一种低成本解决方案,能够在一定限制条件下可实现两点触摸的识别。

 

几种现有的多点触摸方案

1.硬件采用电容屏,通过软件实现多点触摸。优点是灵敏度高,性能稳定,支持的点数可满足绝对大部分应用需求;缺点是成本高,而且苹果有专利保护。

2.硬件采用数字电阻屏,实际上是用电阻屏的材料做成一个透明键盘矩阵,通过行列扫描判断所按下的点。优点是价格便宜,性能可靠,可支持的点数最多;不足是需要比较多的行列连线接口,不能实现手写功能。

3.硬件采用模拟电阻屏,在专用芯片中通过软件计算出多点触摸。优点是既能支持多点触摸,又保持手写功能,另外成本增加不多;缺点是支持的点数最少,方案商在实现细节上大都语焉不详,性能和稳定性尚待验证。

4.采用红外、表面超声波等方式实现触摸检测,实际应用比较少,这里不做探讨。

 

低成本多点触摸方案

毫无疑问,四线模拟电阻屏是触摸屏中成本最低的一种,如果我们能在这种屏的基础上找到一种实现多点触摸的方法,只要控制额外增加的硬件成本,成本上考虑能够有所突破的可能性最大。

虽然现在有不少MCU带有触摸屏接口,因为我们需要识别多点触摸,所以这类MCU的触摸屏接口并不适用,实际上方案的要求更简单,只需要选用MCU能提供4ADC口使用,另外再用4条双向IO进行控制。来看一下这种低成本方案的构成细节,图(一)中(d)部分为方案示意图,并不需要对电阻屏做出过多改动,只是在外围增加了两个电阻,这几乎是可以忽略不计的成本。

 

 

 

tp1.jpg


图(一) 低成本电阻触摸屏原理及方案示意图

 

 

 

图(一)中(a)(b)(c)三部分对电阻触摸屏的原理做了简单示意,对单点触摸位置的识别方法这里不做详述,不清楚的朋友请自行查阅相关资料进行了解。单点触摸的识别只需要4条双向IO就可以实现,其中2条需要支持ADC功能,从图(一)中(d)部分可以看出方案做了一点修改,使用的IO口数量增加了一倍,另外还有两个电阻。

为便于分析,我们需要建立一个触摸屏工作的等效电路模型。因为触摸屏XY方向对触摸检测方法是一样的,所以我们只建立一个电路模型,图(二)展示了触摸屏按下一个点和两个点的状态。

 

 

 

tp_sch.jpg


图(二) 触摸屏等效电路模型示意图

 

 

 

图(二)标号说明:

R1R2IO口的输出电阻,只要知道它的存在,不用管具体大小;R3R4R5R64ADC口的输入电阻,阻值远大于其它电阻;R7R8R9为触摸屏的分段等效电阻,阻值总和为几百欧;R12R13R14为触摸屏另外一层的分段等效电阻,阻值总和为几百欧;R10R11为按下触摸屏时的接触电阻,阻值动态变化; K1K2表示按下触摸屏的位置。

R15为限流电阻,因为触摸屏的电阻通常为几百欧,普通IO驱动能力可能不够,所以用R15IO输出进行限流,R15对应图(一)中(d)部分R1R2

假定IO1输出高电平,IO2输出低电平, V1~V44ADC口测量到的电压。

触摸屏没有按下时,测量ADC1ADC2得到V1_0V2_0;触摸屏按下一点时,假设此时按下位置为K14ADC测量的电压为Vn_1;触摸屏按下两点时,4ADC测量的电压为Vn_2。忽略ADC口输入电阻的影响,这些电压会满足下面的关系。

V1_0=V1_1V2_0=V2_1

V3_1=V4_1=(V1_1-V2_1)*(R8+R9)/(R7+R8+R9)

(V1_1-V2_1)(V1_2-V2_2)

后一种关系式因为两点按下后会让与R1R2R15串联的触摸屏等效电阻变小,从而使得分在触摸屏两端的电压也变小。现在引入三个新参数L7L8L9,分别表示同标号电阻等效的触摸屏宽度,三者的总和等于触摸屏宽。另外还根据实际引入一个限制条件,当有两点被按下时,只要程序检测速度够快,对于程序来说就不会有同时按下的情况,始终都是依次按下或松开,这一点非常重要。

对于单点位置的检测不存在任何问题,现在我们来处理两点的情况,结合前面引入的限制条件,程序可以检测到中间有一小段时间是单点按下,也就是程序先检测到K1按下,经过一小段时间才检测到K2按下。这个中间过程可以准确得到K1位置,如果我们利用前后变化的比例关系,就可以计算出后面K2按下的位置。

K1单独按下:

L7=(L7+L8+L9)*(V1_1-V3_1) /(V1_1-V2_1)

K1K2同时按下(忽略R10R11的影响)

(V1_2-V3_2)/L7=(V4_2-V2_2)/L9

因为L7+L8+L9为已知条件触摸屏的宽度L,所以有:

L7=L*(V1_1-V3_1)/(V1_1-V2_1)

L9=(V4_2-V2_2)*L7/(V1_2-V3_2)

L9=L*(V4_2-V2_2)*(V1_1-V3_1)/((V1_1-V2_1)*(V1_2-V3_2))

到这里我们已经得到所按两点的具体位置,只要我们依照此方法对触摸屏的XY轴分别处理,就可以在普通电阻屏上实现两点触摸位置的检测。

 

方案的其它说明

前面的公式推导过程忽略了接触电阻R10R11的影响,这两个电阻的大小并不固定,主要由使用者按下的力度决定,按的力越大,其阻值越小。当只按下一个点时,所按力度的大小对K1位置的计算影响可以不用考虑,但对于两点的计算则要考虑其影响,按的力度越小,计算出来的K2位置误差就越大。这样在按下的过程中,会存在一个误差从大变小的过程,不过只要用力足够,最后还是保证误差在允许范围内。另外触摸屏并不是完全线性,这里是简化为线性关系。

该方案在两点按下时最好保持先按下的点位置不变动,这样可以保证计算结果更为精准。如果两点按下后需要移动,虽然通过比例关系也可以计算出运动轨迹,但误差会随之加大,这里也不做过多分析。松开的过程与按下相反,由两点按下变为一点按下,最后全松开。如果在精度上适度降低要求,在此方案的基础还可以利用三角形重心的原理进行第三点的判断,笔者进行的验证实验发现难点是需要考虑的组合情况偏多,从而导致判断程序复杂。

实际应用中还需要进行触摸屏是否按下的检测,这里不详述具体的检测方法,只是要留意为了防止触摸屏悬空状态的影响,可以在两端接一个比较大的电阻到地,建议用470k510k的阻值。

使用该方案除了具备普通电阻屏的基本功能,还可以实现对屏幕的拖动,用手指合分动作实现图像的缩放,对两个游戏功能键的同时控制。从成本上看除了需要另外增加4IO口外并无其它硬件开销,主要是通过软件计算来实现多点检测。该方案虽然性能上相较电容屏存在明显差距,但成本上占有绝对优势,对于一些对精度要求不高的应用还是具有一定的实用价值。

文章评论7条评论)

登录后参与讨论

allen_zhan_752827529 2014-5-26 16:16

armv7-A, 作为一个支持 visual address 的版本. 谈及 visual memory是重要的, 因其与 real memory/physical memory 相对应. 想想看, 在一个 32-bit buses 的OS上, 理论上任何一个进程都可以用到极限 4GB size 的memory space(当然事实上 OS 保留了其中的部分, 比如 32-bit 的windows OS 给用户进程以 2GB 的memory space). 在 page 系统中,我们需要包含有页表项的 TLB buffer 来协助定位查找 page 的过程. 而page 的使用, 使得我们在有限的 real memory 空间中, 实现了上述多个用户进程并存的目的(每个进度都当自己有极限的 memory 可以用). 在这个基础上, 如果我们允许 page 在辅存和 main memory 的换入换出, 那么我们甚至可以实现进程占用的主存可以超过 real memory. 当然, 这带来系统的复杂与access效率的降低. 但这就是现代操作系统所做的, 它广泛存在我们视线中的任何一台 pc(我指无论是 desktop 还是 laptop). 但允许 page 的换入换出是否是 OS 的必要条件, 答案似乎也不是. 因为我们注意到现在最流行的 iPhone5 与 iphone5s, 前者使用 A6 后者使用 A7 CPU(它可能是在 mobile 上实现的第一个 64-bit 的 uController, 据说是 cortex A57的苹果改版).在一个与 iOS 饶有兴趣的讨论中, 讨论者指出(当前的)iPhone 不会对 page 进行换入换出, 如果进程(的使用)超过了 real memory, 那么简单中止这个进程就好了.

用户1030829 2013-9-3 09:42

嵌入式系统的中高端基本被ARM统治,现在cotex-m0/m0+迅速向低端市场进发,估计很快低端市场也会ARM化。ARM的开放性政策(内核授权模式)确实给其发展带来了先天优势。但是microsoft 和 封闭的intel 可以靠企业市场存活很久。

allen_zhan_752827529 2013-9-2 17:47

我是大陆气息十足的本土工程师..... *()* 单身... 怪怪的就对了, 是不是和看多了技术资料有关? 觉得严谨和有出处最重要, 就写成这样了```

用户1320373 2013-9-2 17:35

博主的行文,怪怪的感觉。。。博主不是大陆人吗?

用户593166 2013-9-2 14:53

不明觉厉!

用户1628315 2013-9-2 12:03

恩........

用户1711448 2013-9-2 08:54

学习学习啊!高手!

allen_zhan_752827529 2013-8-31 14:17

蟹蟹, Ana. 从历史回顾, ARM 的架构发展例程, 使我们可以大胆猜测, 5年后, 甚至一个 decade 后是什么样子. 事实上, 如果将来 Intel 与 microsoft 破产的消息传来, 我将毫不怀疑(尽管现在听起来这很疯狂). ARM无疑试图向下延伸至传统 8-bit 市场, 向上挑战台式机市场. 我们不知道未来会发生什么, 只能猜想电子和PC时代大变革还在继续发生与深化, -- 远远未曾结束.

用户1602177 2013-8-30 16:00

随笔都能随得这么深刻而惬意~~GOOD!

用户1410717 2010-5-31 09:37

我司就有四线电阻式二点触控IC,有兴趣了解的可来电:15999575965杜小姐
相关推荐阅读
daishangju_162733976 2015-12-19 20:46
个人所见植保无人机
      实在是太久太久没有了上来了,在过去的这段时间里,一些不方便说的原因,还一些方便说的原因,缠绕在一起,让自己封闭(不好意思用蛰伏这个词)一年多,不单是博客没有来,就是邮箱都很少打开。...
daishangju_162733976 2014-10-23 19:48
微观经济1409
位于东莞市凤岗镇的一家小吃店,旁边是一家酒店,老板去年请了7个工人,每天销售5000~7000,今年9月只有1个工人,销售肯定1000以内。   ...
daishangju_162733976 2014-10-23 17:27
市场去哪儿了
好像是从2008年开始,但凡是市场情况不好,总是能见到是经济危机导致欧美市场疲软的解释,看到电视里面安然轰然倒下、华尔街员工茫然抱着纸箱的画面,我对这个解释也是深信不疑。转眼五、六年过去,可是市场...
daishangju_162733976 2014-09-10 14:29
一名电子工程师在深圳的迁移路线图
1999年中,来到宝安区翻身村,在某电子厂工程部当小弟混饭吃,当时小霸王系诸多好汉豪杰正在那边分猪肉。(今天是WWW要搞的前海CBD)   1999年末,转往福田区华强北,在某电子公司开发...
daishangju_162733976 2014-09-05 16:37
另眼看客户“你自己去做,我一定支持你”这句话
我们常常看到或听到这样的事,小X在某行业中打工,经过一番努力,做得还不错,这时候就有客户说:“小X啊,你自己去做吧,我一定支持你”,这个时候小X往往都是已经在考虑是不是要自己出去单干,听到这样的话...
daishangju_162733976 2014-07-03 16:47
谁是优秀的职业经理人?
LEE是公司元老,在公司上下眼里,他能力超凡,数次于水火中力挽狂澜,没有人不承认他是一名福将。LEE有多厉害呢?他主导的产品成功率大约为三分之一,除了他自己,没人知道他是如何选定产品的,甚至他自己...
我要评论
7
10
关闭 站长推荐上一条 /2 下一条