You are on page 1of 9

电容感应式触控原理

1. 电容触摸感应基本知识
首先,人体是具有一定电容的。当我们把 PCB 上的铜画成如下形式的时候,
就完成了一个最基本的触摸感应按键。

上图左边,是一个基本的触摸按键,中间圆形绿色的为铜(我们可以称之为
“按键”),在这些按键中会引出一根导线与 MCU 相连,MCU 通过这些导
线来检测是否有按键“按下”(检测的方法多种多样,这将在后面章节中谈
到);外围的绿色也是铜,不过外围的这些铜是与 GND 大地相连的。在“按
键”和外围的铜之间是空隙(我们可以称为空隙 d)。上图右边是左图的截
面图,当没有手指接触时,只有一个电容 Cp ,当有手指接触时,“按键”
通过手指就形成了电容 Cf 。由于两个电容是并联的,所以手指接触“按键”
前后,总电容的变化率为
C%  =  ((Cp+Cf)‐Cp)/Cp  =  Cf/Cp              ………………公式 1
下图更简单的说明了上述原理。
   
2. 电容感应触摸器件的参数选择
  
  弄清楚了上述原理后很自然的就会想到下面两个问题:
①   空隙 d 的大小应该为多少呢?即“按键”与地之间的距离为多少?d 的
大小会不会影响“按键”的性能?
②   “按键”的大小应该为多少呢?它的形状、大小会不会影响“按键”
的性能呢?
为了弄清楚这两个问题,我们首先介绍公式 2:

 
在这个公式中 d 就是我们所说的空隙的间距,A 表示的“按键”面积的大
小,C 表示没有手指接触按键时电容的大小 Cp。显然,空隙间距 d 越大,Cp 越
小;面积 A 越大,Cp 越大。已知手指触摸产生的电容范围为 5~15pf,这是一个
非常小的容值。当 Cp 非常小时,公式 1 中的 C%将会比较大,也就是说 MCU 更
加容易检测到这个电容值的变化。基于这种考虑,对于 FR4 材料的 PCB(1~1.5
mm 厚度)板来说我们一般选取 d=0.5mm,按键的面积 A 一般选取成人手指大小
即可。
 
3. 电路板底层的覆铜处理
前面我们说的都是在电路板的顶层如何绘制触摸按键。下面我们来看看
电路板的底层如何覆铜。
 
首先,在电路板底层覆铜是很有必要的,这些接地的覆铜能够最大限度
的降低触摸按键的噪声以及外部环境对触摸按键的影响。对于底层覆铜的方
法一般有四种:完全不覆铜、25%网格覆铜、50%网格覆铜、100%实心覆铜。
 

很多人一般会选择 100%实心覆铜,这种覆铜方式确实能够最大限度的降低噪声
和外界的干扰,但同时,它也大大增加 Cp 的值,而 Cp 的值我们是不希望它很
大的。所以,在这里推荐采用 50%~75%网格覆铜。

4、触摸按键表面的覆盖物

在许多的应用中,我们需要在触摸按键上添加一些覆盖物,如:塑料等。
在这种情况下,人的手指就不能和触摸按键直接接触了。那么电容触摸是不
是就失效了呢?答案是否定的。
从第二节的图中我们可以看到,电容容量的大小与三种东西有关:触摸
按键的面积 A,触摸按键与地平面的间距 d 以及介电常数ε。触摸按键与地
平面的间距一般来说在按键做好了以后就是固定的,所以电容容量的大小就
与触摸按键的面积 A 以及介电常数ε有关。当我们选择了某些覆盖物(如:
塑料时)其介电常数就固定。一般来说介电常数越小越不容易导电,所以我
们要尽可能的选择介电常数小的覆盖物。
第二个方面,触摸按键的面积 A,虽然在 PCB 做好后 A 就固定下来了,
但是,随着覆盖物厚度的增加,手指就越难接触到触摸按键。即,手指与触
摸按键接触的有效面积就越小,也就是说,Cf 就越小。这样就越难检测到触
摸按键电容值的变化。下表列举出了在通常情况下,覆盖物的厚度与容值的
关系。
  

5  用 MSP430 来实现电容触摸感应


   有两种方式来实现电容触摸感应,下面我们将详细讲述这两种方法:
 
①  基于张弛震荡器的检测
  
 
 
图就是使用 MSP430 内部的比较器来实现一个张弛震荡触摸按键的的电路。在在
输入端,比较器的正接到了一个电阻网络,比较器的负接到了电阻 Rc 与感应
电容之间。比较器所接的电阻网络为比较器提供了参考电压,而这个参考电压
又受到了比较器输出反馈的激励,所以其值在 1/3Vcc 和 2/3Vcc 之间反复变化。
造成张弛振荡器的持续震荡,其震荡频率可由以下公式算出:
fOSC = 1/[1.386 × RC × CSENSOR]
 当手指接触到触摸按键以后,显然,CSENSOR 的值将会被改变,于是 fosc 也随之变化。
如果我们能够检测到这种变化的话,也就自然知道何时触摸按键被“按下”了。
检测的方法也很简单,上面我们说过,当手指接触到触摸按键以后, CSENSOR 的值将
会被改变,于是 fosc 也随之变化。频率的倒数就是周期,只要我们在一个固定的时间
内去计算上升沿或下降沿的数目,那么如果在某一时刻该数目有较大的变化的话,那就
说明 CSENSOR 的值已经被改变,即按键被“按下”了。

②  基于电阻的电容充放电时间的检测
第二种方法就是基于电容充、放电时间长短的检测,下图给出了这种触摸检测方法
的原理图。
在这种方法中,主要检测的是电容充电和放电的时间。首先,由一个 GPIO(Load)
对电容 Cx 进行充电;同时开启计时器进行计时;随着充电的进行,Cx 的电压中不断升
高,最终它将会操作某个门限电压 V,当其超过门限电压 V 后,Acq I/O GPIO 将会检测
到这个事件,同时停止计时器并读出此时的数值。这样,就完成了一次充电计时过程,
当手指接触到触摸按键时,Cx 将会变大,显然,充电时间也会变长。通过不断比较每
次充电的时间,很自然地就能得知当前是否有按键被“按下”。
同样,既然能检测充电时间,那么也能检测放电时间。这里不再赘述。

6.多按键的处理
显然,如果触摸只支持一个按键,这是不实用的。所以,对于触摸按键来说一般都
要求能够支持多个按键的动作。由于实现电容触摸的方法不同,所以存在着不同的对多
个按键的处理。
① 基于张弛震荡器多按键的处理
  这种方法连接图如下所示:
 
   在这种方式下,比较器的一端还是和原来一样接到电阻网络中,比较器的另外
一端接在一个 MUX 上,通过 MUX 选择不同的 IO 口读取不同按键的上的电容震
荡周期。每个按键上的震荡原理和单独一个按键的震荡原理一样,上面已经讲过
了。

② 基于电阻的电容充放电时间检测的多按键处理
   这种方法其连接图如下所示:

从图中大家可以看到,每个按键接在不同的 IO 端口上,并且每两个按键为一组,
通过电阻进行连接。系统工作时,首先通过一个 IO 口对一个按键进行充电(如需要检
测第一个按键 ,则是第一组 IO 中的下面那个负责对按键进行充电)并且开启计时器;
另外一个 IO 口(第一组 IO 中的上面那个)监视 IO 口上电压的大小,当电压超过某一
个阈值的时候停止计时器并读出当前值。同时,下面那个 IO 口设置为输入,对触摸按
键的电容进行放电(同时启动计时器),当电容上的电压低于某个值时停止计时器并读
出当前值。这两个值就是电容按键的充、放电时间。如果此时有手指“按”在按键上,
那么这两个时间也将会变化。
通过不停的扫描各个按键,这个可以很容易的得到当前那个按键被“按下”。

7.在有限的 IO 中扩展按键数量
前面我们讲到两种多按键的处理方法,仔细观察可以发现,这两种处理方法都是基于
多个 IO 的,也就是说有多少个 IO 我们就能扩展出多少个按键。如果我只有 6 个可用的
IO,那么能不能实现多余 6 个按键呢?答案是肯定的。回想一下单片机中我们是如何做
的,当时,我们提出了一个 3*3 矩阵键盘的概念,那么在触摸按键中能否用矩阵键盘呢?
下图给出了这个问题的实现。
在上图中,每个触摸按键不再是一块铜皮,而是由两块铜皮构成,每块铜皮分别连接在
不同的 IO 端口上,当我们触摸了某个按键后,显然两块铜皮上的电容都会变化,这样
我们通过检测那两块铜皮的电容变化了,也就确定了哪个按键被按下了。
这种方法完全借鉴了矩阵键盘的思想,但如果只是简单的把一块铜皮分成两块的话,
也会带来一个严重的问题:有的时候人的手指会按偏,比如说只是按到了一个按键的一
块铜皮上,那么这时算法如何处理?为了解决这个问题,于是提出了下面这种按键的设
计方法,即采用交错走线法:

采用交错走线后,将会很有效的避免按键时按偏的问题。
采用矩阵键盘法可以实现在有限的 IO 中实现多个按键,但它也不是无限制的使用。
例如:如果一个按键有两个 IO 来确定则每个 IO 铜皮所占的面积只占了这个按键的面积
的 1/2,如果由三个 IO 来确定则每个 IO 只占了 1/3,而我们前面又提到过,产生的寄生
电容和接触面积 A 成正比,当每个 IO 接触面积减少时,其寄生电容也就随之减少。换
句话说就是越难检测到这个寄生电容的变化。所以,对于采用矩阵键盘思想扩充按键数
目的方法只适用于按键比较少的情况,一般来说,10 个按键比较合适,如触摸滑条等。
那么如果确实要超过 10 个按键的扩展该怎么办呢?这时我们可以考虑用外围 IO 扩
展芯片。

如上图所示,我们把一个 IO 口引出来,外接到一个 IO 扩展芯片上,通过这个扩展


芯片实现了一个到多个 IO 的扩展。但这种方法也有一个很大的缺点:对于 IO 扩展芯片
来说其内部有一个寄生电容:

这个寄生电容将会影响到我们的基本电容,而手指按下按键产生的电容总是
一定的,这样在手指按下按键前后电容的变化率将会变小,也就是说按键的灵敏
度将会下降。这当然是用户所不希望看到的。为了减少这种变化所带来的影响,
我们只有延长检测窗口的时间。
 

You might also like