与传统的机械按钮相比,电容式触摸感应按钮不仅美观、耐用、寿命长,而且颠覆了传统意义上的机械按钮控制,只要轻轻触摸,就可以实现开关控制、定量调整甚至方向控制,现在电容式触摸感应按钮广泛应用于手机,DVD、洗衣机等消费品。本文从硬件方面讲述。MSP30系列徽控器实现了电容式触摸感应按钮的设计原理。
首先,让我们了解影响电容的主要参数,如下图所示。
两极板面积A=XxY,d两平行板之间的距离,&epSILon;0是空气中的电介质常数,εr电介质常数为两个电极板材料。
根据电容器的电场形式与电容器两极板之间的关系,当电容器两极板平行时,电场完全控制在两极板之间;当两个电极板向相反的方向弯曲并弯曲到两个电极板完全平躺时,电场显著向外透射,如下图所示。
电容触摸感应的按钮其实只是PCB一小块覆铜焊盘,如下图所示,
PCB板上中心的“覆钢焊盘”与四周“地信号”构成一个电容(感应电容),当手指触摸到PCB当铜焊盘部分时,手指会影响电容的电场,相当于在两个电容极板之间增加一些介质,增加电容值)电容触摸感应按钮的原理是通过检测电容值的变化来确定手指是否按下。
触摸感应电容按键的焊盘大小通常选用φl0mm,接触面积与手指接触面积相似。当没有手指接触时,焊盘和地面信号产生约5个~1OpF电容值,我们称之为基准电容,需要注意的是,如果手指触摸面积大于按钮焊盘面积,则焊盘面积外的接触部分对电容值的变化基本无效。
基准电容基准电容值设置为Co,触摸手指后的电容值设置为Cs,设计应遵循一个原则:尽量Cs-Co最大化差值,即在触摸和非触摸C状态下尽可能增加焊盘的电容变化值。只有当焊盘面积增加时,接触后的电容值才能增加,而基准电容也会相应增加。两者之间总是存在矛盾,因此在具体设计中应选择中点作为基准。
本文采用外部电阻对焊盘的感应电容进行充放电,同时结合MCU的I/0口中断和定时器检测感应电容器的瞬时变化,以检测手指是否按压。
1.单按键检测原理
单按键电阻检测原理框图及感应电容的放电波形如下图所示,
感应电容Csensor一端接到MCU任何具有中断功能的中断功能I/0IIPxy,本文Csensor“基准电容”取1OpF,因为需要严格的测量Csensor通过R因此,放电时间应该是R电阻值足够大,这里选5.1M,确保电容放电时间可以在任何情况下测量,图4中Csensor从VCC放电到OV的时间约为250μs。
当Pxy当输出高电平时,Csensor开始充电,充电到设定时间后,Pxy此时设置为输入状态Csensor则通过电阻R放电,因MSP430管脚漏电流值很小,只有50nA,因此,不会影响电容放电时间的测量。
本文的Pxy端口需要具有中断功能的端口I/0口,在MSP430系列MCU中P1和P两口都有中断功能,会Pxy嘴的低压阈值作为中断信号。Csensor开始放电时,启动Timer_A定时器从Tstar开始计时,当Csensor达到放电电压I/0口低压阈值时,Pxy在I/0口中断程序Timer-A定时器捕获电容放电结束时间Tend,(Tend-Tstar)即为Csensor放电时间。
MCU内部DCO可根据不同型号选择8个时钟模块作为系统时钟源MHz或16MHz晶体振动,系统时钟越高,定时器检测感应电容器变化时的计数值越多,按钮的精度就越高。该系统将基准电容器的平均放电时间作为放电的参考时间Tsensor,MCU工作时不断检测Csensor放电时间T,并于Tsensor比较,若T>Tsensor,说明感应电容容量增加,即感应电容按钮由手指连接,Timer-A定时器检测流程图如图所示a所示。
图b为Csensor放电电压和时间Timer-A模块计时曲线图,包括TAR即为Timer_A模块捕获的放电时间Tsensor值,当Csensor当开始放电并达到低阈值MCU,在其他放电过程中进行中断处理MCU均处于LPMO低功耗模式。
2.连续按键检测原理
多感应电容触摸按钮的结构框图如下图所示,
感应电容器连接到类似于单个按钮的检测原理MCU的I/0口,区别在于电路优化为每两个感应电容器之间连接一个放电电阻,通过两个I/0口软件配合完成充放电检测。
检测多个按钮时,系统上电后多次预充放电每个按钮焊盘,将两次充放电时间的平均值作为初始电容值。比较每个按键焊盘的初始电容值后,设置阈值,然后以阈值为基准。当在程序执行过程中检测到按键焊盘的电容值大于阈值,且是每个按键焊盘值中的最大值时,按键焊盘。
以两个电容触摸按键为例,如下图所示,
充放电的具体过程如下:从左侧的按键焊盘开始,首先是P2.0设置为输出高电平,P1.0设置为输出低电平,此时向左键焊盘充电,延迟一段时间,充电完成,然后P2.0设置为输入状态,并设置为下降沿触发并中断能量。此时,当左键焊盘通过电阻开始放电)进入中断时,记录放电时间,退出中断后中断两个I/0口输出低。充电右键焊盘时,先充电P1.0设置为输出高电平,延迟一段时间后,P2.0设置为输入状态,并设置为上升沿触发和中断使能P1.0口输出输出的高电平,按键焊盘通过电阻充电。当进入中断时,记录充电时间,最后将充放时间取平均值作为改变按键焊盘的初始阈值。
一方面,多个感应电容触摸按钮节省了大量的放电电阻,另一方面,由于使用了两个I/0口相互配合,检测时可以从两个方向进行:(1)感应电容从OV充电到Vit (I/0口高电平阈值电压)充电时间值;(2)感应电容从VCC放电到Vit-(I放电时间值/0口低电平阈值电压)Timer_A如下图所示,分别捕捉相应的时间值。
只要系统采用统一算法,最终检测结果可以是两个方向Timer_A时间值相加或取平均值,不影响感应电容按键的检测,同时,从两个方向进行充、放电检测时,可以更好抵消如外界50/60Hz主频噪声。
3.系统功耗分析
利用MSP430设计的电容键系统的平均功耗很低,如下图所示,
分别以1MHz、8MHz、12MHz和16MHz以四个充放电计数频率为例。
系统选5.1MHz充放电电阻时,单个感应电容器的充放电检测时间一般为毫秒级,用于检测充放电时间的频率越高,Timer_A定时器模块用于检测电容充放电时间的变化值At上图中系统频率越大,1MHz当频率时,计数值△t只有1,不使用子多按钮检测;当频率为16时MHz时,计数值△t将其增加到8左右,以便更敏感地感知是否有关键的临界状态。
4.Demo板及PCB板的设计四个感应电容按键Demo板原理图如上图所示,
MCU选用MSP430x2Oxx系列。
触摸按键感应的灵敏度主要由按键焊盘和地信号之间的间隙决定,设计中常采用0.5mm的间距;同时,PCB板的厚度也会影响电容感应的灵敏度,当PCB板太薄,比如使用柔性PCB板时,则使得地信号和按键焊盘耦合性变得更紧密,导致按键灵敏度降低,一般推荐标准的FR4PCB板,厚度大约为1~l.5mm。
通常我们在触摸按键焊盘的背面覆盖一层地信号,这样做有利于屏蔽和减小系统中其它电路对按键产生的电磁干扰,也有利于保持“基准电容”的稳定性,同时“基准电容"会受PCB板上一些寄生电容影响,当然还受环境影响,如工作温度、湿度等,工作时系统须不断检测和跟踪“基准电容”信号的变化,提高检测的可靠性和灵敏性。