电容式触摸感应按键的基本原理就是一个不断地充电和放电的张弛振荡器。如果不触摸开关,张弛振荡器有一个固定的充电放电周期,频率是可以测量的。如果我们用手指或者触摸笔接触开关,就会增加电容器的介电常数,充电放电周期就变长,频率就会相应减少。测量周期的变化,就可以侦测触摸动作。
具体测量方式有两种:一是可以测量频率,计算固定时间内张弛振荡器的周期数。如果在固定时间内测到的周期数较原先校准的为少,则此开关便被视作为被按压;二是可以测量周期,即在固定次数的张弛周期间计算系统时钟周期的总数。如果开关被按压,则张弛振荡器的频率会减少,则在相同次数周期会测量到更多的系统时钟周期。C8051F9xx MCU系列,可通过使用芯片上比较器和定时器实现触摸感应按键功能,连接最多23个感应按键。而且无须外部器件,通过PCB走线/开关作为电容部分,由内部触摸感应按键电路进行测量以得知电容值的变化。与C8051F93x-F92x方案相比,唯一所需的外部器件是(3+N)电阻器,其中N是开关的数目,以及3个提供反馈的额外端口接点。
以上这两种测量方法,都需要通过比较测量数值和一个预先设置的门限值,来判断开关是否被按压。所以,门限值需要被适当地校准,以免影响开关的灵敏度。在系统中,可以对所有开关做一次初始校准,设置门限值。如果系统工作的一个动态变化的环境中,还应当在系统增加周期性校准。如果门限值设置过于远离空闲值(开关没有被按压时候的数值),开关事件就可能很难被检测到,除非手指非常用力地按压。如果门限值设置过于接近空闲值,在用户的手指还没有接触到开关时,就可能误检测出开关事件。
因为要侦测电容值的变化,所以希望变化幅度越大越好。现在,有3个主要因素会影响开关电容及变化幅度:PCB上开关的大小、形状和配置;PCB走线和使用者手指间的材料种类;连接开关和MCU的走线特性。测试结果表明,在特定区域中的开关越大且走线越多,则此开关的闲置电容便越高。由于开关上方的材料种类,会影响闲置电容和电容的变化率。我们发现,尽可能使用最薄的材料,使电容变化极大化,建议使用具有高介电常数的材料,例如玻璃、以增加开关的绝对电容。
此电容式触摸感应按键优点很多。首先,只需要很少的微控制器开销(overhead),硬件资源只需要一个比较器和定时器。还可以采用高效率算法,让微控制器可以进入低功耗模式,并能定期唤醒以侦测开关动作。总体只占用低于0.05% 的CPU资源。其次,没有外部硬件开销,可以将开关走线直接连至MCU端口管脚,无须其他外部的反馈电阻器或电容器。按键的侦测不易受到噪声和供应电压的影响,不受50/60Hz噪声的影响,也不需要精密电压源(VDD)。