CapSense接触感应技能是Cypress半导体运用CY8C21x34系列PSoC芯片开发的、用于接触式按键、接触式滚动条(Slider)、接触式平板(Touchpad)的接触感应技能。它运用PSoC的CY8C21x34系列芯片一些特有的资源,依据电容感应的原理和松懈震动器的技能完结接触感应。差异于其他接触感应技能,CapSense技能具有简直不需求外围元件,每一个按键的灵敏度可独自调整,一个芯片可一起施行触多个接触式按键和接触式滚动条等长处。可用于各种家电产品替代传统的轻触按键和薄膜键盘。相同它也十分适合在时髦的手机上运用。本文介绍CapSense技能的基本原理以及它在手机中的运用。
一、 CapSense技能的基本原理
CapSense技能是依据电容感应的原理和松懈震动器来完结接触感应。咱们知道PCB板上相邻的导线或铜箔之间存在寄生电容Cp。当有手指挨近或接触铜箔时,相当于附加了两个电容,这两个电容等效于并联在Cp上的一个电容Cf。假如在手指与铜箔之间有不导电的介质,它将影响Cf。介质越厚、介质的介电常数εr越小,对它的影响就越大。为了检测Cp和Cp的改变Cf咱们用图3所示的电路对其施行操作。图中左半面是一个松懈震动器,它的作业进程是这样的:运用恒流源以iCHARGE电流对Cp充电,当Cp上的电压上升并刚好超越比较器的反向输入端的电压VBG(1.3V)时,比较器翻转到高电平,操控复位开关闭合,Cp敏捷放电到零。比较器翻转康复到低电平,恒流源以iCHARGE电流再对Cp充电… 这个进程循环往复,构成震动。而震动的周期近似于充电的时间为:
tCHARGE=CpVBG/iCHARGE
图中右半面是一个距离计数器。它由一个8位的PWM和一个16位的定时器组成。它施行一段时间距离(PWM的Duty)里16位的定时器对体系时钟的计数。PWM的输入来自比较器的输出,16位的定时器被设置成捕捉定时器,它的输入来自体系时钟SYSCLK。当PWM进入Duty状况时发动16位的定时器作业,当PWM的Duty状况结束时捕捉16位的定时器的计数。这个计数的值为:
n = NPERIODS.tCHARGE.SYSCLK
其间NPERIODS为当PWM为Duty状况时松懈震动器的震动次数,它的值被设置成PWM的周期值减2。将tCHARGE=CpVBG/iCHARGE代入上式有:
n = NPERIODS.CpVBG.SYSCLK/iCHARGE
当其他值都被固定今后n和Cp有仅有确认的联系。假如有手指接触时,Cp将改变到Cp+Cf,而n将由n1改变到n2:
⊿n = n2 – n1
当⊿n大于预先设定的阀值时,就能够标明有手指接触。图4是无手指接触和有手指接触对应松懈震动器的波形和PWM及定时器计数值改变的示意图。
二.CapSense技能的施行
CapSense所需求的资源包含松懈震动器和距离定时器悉数都被包含在PSoC芯片里,芯片外围不需求任何元件。为了施行CapSense,PSoC的集成敞开环境(IDE)Designer4.2现已为CY8C21x34芯片 建立了CSR模块,经过对CSR模块的硬件装备和函数的调用能够来施行CapSense。
1. CSR模块的装备
在IDE的器材修改状况,挑选并放置CSR模块后,激活CSR模块导向器(图4),在CSR模块导向器中能够设置多少个接触按键以及每一个按键所对应的管脚;也能够一起设置一个或两个滚动条(Slider)以及滚动条由几个感应块组成和它们所对应的管脚。滚动条的分辨率能够大于组成它按键的个数,它也在这里被设定。
在模块的参数设置窗口,能够设置CSR模块的作业形式(周期或频率)、手指信号的阀值、噪声信号的阀值、基本线批改的速率和抗ESD信号的周期。当一切设置完结今后,点击Generate Device Application按钮,即可主动生成CSR模块有关的程序供用户程序调用。
2. 几个要害函数的调用
下面是CSR模块的几个要害函数:
void CSR_Start();
void CSR_Stop();
CSR_SetDacCurrent(BYTE bValue, BYTE bRange);
CSR_SetScanSpeed(BYTE bDivider);
void CSR_StartScan(bStrtSw, bSwCnt, bMode);
BYTE CSR_GetScanStatus();
BYTE CSR_iReadSwitch(Byte bSwitch);
CSR_bUpdateBaseline(bSwGroup);
BYTE CSR_bGetCentroidPos(bSwGroup);
CSR_Start和CSR_Stop别离是发动和中止CSR模块。CSR_SetDacCurrent用于设定给Cp充电的恒流源的巨细,bValue, bRange参数用于分两级设定恒流源的值。CSR_SetScanSpeed用于设置PWM的周期值,其参数bDivider的值减2为PWM的Duty值。上面两个函数的参数的调整能够调理接触按键和接触滚动条的灵敏度和扫描周期。CSR_StartScan用于发动扫描,bStrtSw, bSwCnt, bMode参数别离用于设置榜首个扫描的键的键号、次序扫描键的个数和扫描的方法,扫描的方法有单次扫描和接连扫描两种方法。?CSR_GetScanStatus函数回来扫描的状况,CSR_iReadSwitch函数得到扫描的成果即定时器的计数值。
CSR_bUpdateBaseline是一个重要而有多种功用的函数。关于每一个接触感应键,都有一个Baseline用于盯梢在没有手指接触时的定时器的计数值,它是经过将每一次扫描得到的定时器的计数值做IIR滤波并契合有关条件后才作批改。作为差值比较的基准线,每一次扫描得到的定时器的计数值都要和它比较得到差值,该差值再和手指信号的阀值比较以断定有无手指接触。参数bSwGroup可选0,1和2,标明本次调用是批改接触按键仍是榜首或第二滚动条。回来值是0或1,标明无或有手指接触。除了施行以上功用外,该函数还要完结峰值检测和ESD检测。用于进步测验的功能。
3.手指在滚动条上的定位
滚动条一般被做成锯齿摆放,每一个锯齿条对应一个感应块,当手指接触滚动条或在其上移动时,某一时间会有几个接连的感应块被感应(如图6),手指中心对应的感应块感应量最大,两头次序递减。这就能够用重心法来确认手指在滚动条上的方位,式(2)是
中心法的核算公式。用这种方法定位的一起也能够进步定位的精度,CSR模块答应滚动条的最大分辨率是(滚动条上感应块数-1)*15.94。分辨率的进步使它能够运用在需求高分辨率的场合。函数CSR_bGetCentroidPos(bSwGroup)用于核算手指在滚动条上的定位并回来定位值。bSwGroup挑选1(榜首个滚动条)和2(第二个滚动条)。
三.手机中运用CapSense技能
CapSense技能因为它的许多优势现已被运用在手机上。在手机上接触按键能够替代传统的轻触按键,滚动条能够用于调理音量或在菜单上移动光标。因为没有机械的动作和位移,接触式按键和滚动条的寿数要更持久,一起这种方法也给手机的外形和工业设计带来更多的幻想空间和发挥地步,使手机变得更时髦。但差异于其他运用,CapSense技能在手机中运用有其特色需求特别重视。
手机的按键一般比较小,所以有一些用于感应手指的铜箔面积会很小,这将影响手指感应的灵敏度。所以一般要求,感应面上的覆盖层应尽量薄,覆盖层的厚度能够操控在0.2~1.5mm以内。而覆盖层的资料应尽量挑选介电常数比较高的塑料、聚酯或有机玻璃等等。在印制板上,感应手指的铜箔面积应尽量做大,而用于投射背光的孔应尽量小。印制板上的铺地应放在底层并用30~60%网格作为铺地。以确保每一个感应块有适宜的Cp和满足的灵敏度。
手机选用电池供电,待机时间是手机重要的技能指标之一。待机时,PSoC芯片能够经过SLEEP方法下降功耗。SLEEP下降功耗有两种方法:IDLE方法和深度SLEEP方法。前者运用PSoC的SLEEP定时器在设定的一段时间内(如125mS)主动唤醒PSoC后扫描一切感应块一次,假如没有任何接触,则再次进入SLEEP。不然,激活PSoC。这种方法是选用间歇扫描方法来下降待机时的均匀功耗,适用按键比较少的状况。后者是SLEEP定时器主动唤醒PSoC后查看由主控端经过I/O口设定的电平信号,以决定是持续SLEEP仍是激活PSoC。这种方法可使待机时的PSoC功耗下降到4uA。可适用对功耗要求很高的手机。
手机在拨打电话时会发生很强的射频信号。这种射频信号对CapSense会发生严峻的搅扰和影响。它有必要经过硬件和软件两方面采纳办法加以解决。硬件采纳的办法包含芯片和地线合理的布局、芯片上未运用的管脚有必要接地、在感应PCB的反面运用锡箔加以屏蔽,必要的时分能够在一些输入管脚上和I2C输入端串接300~500欧姆的电阻。软件上采纳的办法主要是对显着反常的数据进行判别并加以挑选和滤波。
ESD测验是手机有必要测验的项目,一般在手机上它要求能接受10KV以上的静电冲击。CapSense 技能选用电容感应原理,仍是有或许遭到静电的搅扰。静电对CapSense的搅扰一般有其显着的特征,在CSR模块中,函数 CSR_bUpdateBaseline(bSwGroup)现已对受典型的静电搅扰数据施行了过滤和处理。并有过滤的参数可供用户挑选。硬件上也能够采纳一些办法能够有用地避免静电搅扰。如按键周围能够设置接地环路;进步面板和外壳的密封程度。衔接器地线的牢靠衔接;确保静电有有用的开释途径。
四、结束语
CapSense接触感应技能是一种有用而易于运用的接触感应技能。它所供给的CSR模块包含硬件结构和软件API函数,运用户很简单上手。它不仅能够用于按键的接触感应,一起也能够用于滚动条的接触感应运用,相关API函数能够直接给出手指在接触区的键值和在接触滚动条上的方位值。因为CSR模块是可结构硬件和软件的结合,使得它在键的数量、灵敏度的调理、滚动条的挑选与否等方面给用户很大的灵活性和空间。它的外围元件很少,充分体现了PSoC芯片的优势,下降了用户的体系本钱。