CapSense capsense是Cypress Semiconductor使用CY8C21x34系列PSoC芯片开发的用于触摸按钮、触摸滑块和触摸板的CapSense。它利用PSoC的CY8C21x34系列芯片的一些独特资源,根据电容传感原理和张弛振荡器技术实现触摸传感。与其他CapSense不同的是,CAPSENSE技术的优势在于几乎不需要外围元件,每个按键的灵敏度可以独立调节,一个芯片可以同时触摸多个触摸键和触摸滚动条。它可以用在各种家用电器中,代替传统的触摸键和薄膜键盘。也很适合时尚的手机。本文介绍了CapSense技术的基本原理及其在手机中的应用。

一、 cap sense技术的基本原理

CapSense技术是基于电容感应和张弛振荡器原理实现触摸感应。我们知道PCB上相邻导线或铜箔之间存在寄生电容Cp。当手指接近或接触铜箔时,相当于增加了两个电容,相当于一个电容Cf并联到Cp上。如果手指和铜箔之间有不导电的介质,会对CF产生影响,介质越厚,介电常数r越小,对其影响越大。为了检测Cp和Cp变化Cf,我们使用图3所示的电路对其进行操作。图的左半部分是一个张弛振荡器,其工作过程如下:用一个恒流源给Cp充iCHARGE电流,当Cp上的电压上升,刚好超过比较器反向输入端的电压VBG(1.3V)时,比较器转为高电平,控制复位开关闭合,Cp迅速放电到零。比较器翻转回低电平,恒流源用iCHARGE电流给Cp充电……这个过程周而复始,形成振荡。振荡周期类似于充电时间:

tCHARGE=CpVBG/iCHARGE

图的右半部分是一个间隔计数器。它由一个8位PWM和一个16位定时器组成。它实现了一个16位定时器,在一个时间间隔(PWM占空比)内计算系统时钟。PWM的输入来自比较器的输出,16位定时器设置为捕获定时器,其输入来自系统时钟SYSCLK。当PWM进入工作状态时,启动16位定时器,当PWM的工作状态结束时,捕获16位定时器的计数。该计数器的值为:

n=NPERIODS.tCHARGE.SYSCLK

其中,NPERIODS是PWM处于占空比状态时张弛振荡器的振荡次数,其值设置为PWM的周期值减2。将tCHARGE=CpVBG/iCHARGE代入上式为:

n=周期。CpVBG.SYSCLK/iCHARGE

当其他值固定时,n和Cp有唯一确定的关系。如果手指触碰,Cp会变成Cp Cf,n会从n1变成n2:

n=N2n1

当n大于预设阈值时,可以指示存在手指触摸。图4是对应于无手指触摸和无手指触摸的张弛振荡器的波形和PWM以及定时器计数变化的示意图。

二。的实现。CapSense技术

CapSense所需的资源,包括张弛振荡器和间隔定时器都包含在PSoC芯片中,芯片外围不需要任何元件。为了实现CapSense,PSoC的集成开放环境(IDE)Designer4.2为CY8C21x34芯片建立了CSR模块,通过CSR模块的硬件配置和函数调用可以实现CapSense。

1.CSR模块的配置

在IDE的设备编辑状态下,选择放置CSR模块后,激活CSR模块指南(图4),CSR模块指南中可以设置每个按钮对应的触摸按键和管脚的数量;也可以同时设置一个或两个滑块,滑块由几个传感块和它们相应的引脚组成。滚动条的分辨率可以大于组成滚动条的键数,也是在这里设置的。

在该模块的参数设置窗口中,您可以设置CSR模块的工作模式(周期或频率)、手指信号的阈值、噪声信号的阈值、基本线校正率和防ESD信号的周期。当所有设置完成后,点击生成设备应用按钮,可以自动生成与CSR模块相关的程序供用户调用。

2.调用几个关键函数

以下是CSR模块的几个关键功能:

void CSR _ Start();

void CSR _ Stop();

CSR _ setdacurrent(BYTE b value,BYTE bRange);

CSR_SetScanSpeed(字节BDI vider);

void CSR_StartScan(bStrtSw,bSwCnt,b mode);

BYTE CSR _ GetScanStatus();

字节CSR_iReadSwitch(字节b switch);

CSR _ bUpdateBaseline(bsw group);

字节CSR _ bGetCentroidPos(bsw group);

CSR_Start和CSR_Stop分别用于启动和停止CSR模块。CSR_SetDacCurrent用于设置给Cp充电的恒流源的大小,bValue和bRange参数用于分两个阶段设置恒流源的值。CSR_SetScanSpeed用于设置PWM的周期值,其参数bDivider的值减2就是PWM的占空比值。上述两个功能的参数调整可以调整触摸键和触摸滚动条的灵敏度和扫描周期。CSR_StartScan用于开始扫描,bStrtSw、bSwCnt和bMode的参数分别用于设置第一个扫描键的键号、顺序扫描键的个数和扫描模式。有两种扫描模式:单次扫描和连续扫描。CSR_GetScanStatus函数返回扫描状态,CSR_iReadSwitch函数获取扫描结果,即定时器的计数值。

CSR_bUpdateBaseline是一个具有多种功能的重要函数。对于每个触敏键,在没有手指触摸时,都有一个基线来跟踪计时器的计数器值。通过IIR滤波从每次扫描获得的定时器的计数器值并满足相关条件来校正它。作为差值比较的基线,每次扫描得到的定时器的计数值要与之进行比较,得到差值,再与手指信号的阈值进行比较,判断是否有手指触摸。参数bSwGroup可以从0、1和2中选择,指示该调用是纠正触摸键还是第一或第二滚动条。返回值为0或1,表示没有手指触摸。除上述功能外,该功能还完成峰值检测和ESD检测。用于提高测试的性能。

3.手指在滚动条上的定位

滚动条通常呈之字形排列,每个之字形条对应一个感应块。当手指触摸滚动条或在滚动条上移动时,某一时刻会感应到几个连续的感应块(如图6),手指中间对应的感应块感应量最大,两边依次递减。这可以用来通过重心法确定手指在滚动条上的位置,公式(2)为

中心法的计算公式。这样定位也可以提高定位精度。CSR模块允许滚动条的最大分辨率为(滚动条上感应块数为-1)*15.94。分辨率的提高使其能够应用于需要高分辨率的场合。函数CSR_bGetCentroidPos(bSwGroup)用于计算手指在滚动条上的位置并返回位置值。BSwGroup选择1(第一个滚动条)和2(第二个滚动条)。

3.在手机中使用CapSense技术

CapSense技术因其诸多优势,已应用于手机。在手机上触摸按键可以代替传统的触摸按键,滚动条可以用来调节音量或者移动菜单上的光标。因为没有机械运动和位移,触摸按键和滚动条的寿命更长。同时,这种方式也为手机的工业设计带来了更多的想象空间和空间,让手机更加时尚。但与其他应用不同,CapSense技术有其自身的特点,需要特别注意。

手机的按键一般都比较小,所以一些用来感应手指的铜箔面积会比较小,影响手指感应的灵敏度。因此,一般要求传感表面的涂层尽可能薄,涂层厚度可控制在0.2 ~ 1.5 mm以内,覆盖层的材料应尽量选择介电常数高的塑料、聚酯或有机玻璃。在印制板上,感应手指的铜箔面积要尽量大,投射背光的孔要尽量小。印制板上的地板应放在底层,用30~60%的网格作为地板。以确保每个感测块具有适当的Cp和足够的灵敏度。

手机由电池供电,待机时间是手机的重要技术指标之一。在待机状态下,PSoC芯片可以通过睡眠来降低功耗。睡眠可以通过两种方式降低功耗:空闲模式和深度睡眠模式。前者利用PSoC的休眠定时器,在设定的时间段内(例如125mS)自动唤醒PSoC,然后扫描一次所有的感知块。如果没有触摸,它会再次进入睡眠。否则,激活PSoC。这种方式采用间歇扫描来降低待机时的平均功耗,适用于按键较少的情况。后者是在睡眠定时器自动唤醒PSoC后,通过I/O口检查主控端设置的电平信号,以决定是继续睡眠还是激活PSoC。这样,PSoC在待机模式下的功耗可降至4uA。可应用于高功耗要求的手机。

当手机打电话时,会产生很强的射频信号。这种射频信号会对CapSense产生严重的干扰和影响。必须从硬件和软件两方面采取措施加以解决。硬件措施包括芯片和地线的合理布局,芯片上不用的管脚必须接地,感应PCB背面用锡箔屏蔽,必要时可以在I2C输入端串联一个300~500欧姆的电阻。软件中采取的措施主要是对明显异常的数据进行判断和筛选过滤。

ESD测试是手机的必测项目。通常要求手机能承受10KV以上的静电冲击。CapSense技术采用电容感应原理,仍有可能受到静电干扰。静电对CapSense的干扰通常有其明显的特点。在CSR模块中,函数CSR _ Update Baseline (BSW集团)对典型的静电干扰数据进行了过滤和处理。并且有过滤后的参数供用户选择。在硬件上也可以采取一些措施来有效防止静电干扰。比如可以在按键周围设置接地回路;提高面板与外壳的密封性。连接器接地线连接可靠;确保静电有有效的释放途径。

结论

CapSense capsense是一款有效易用的CapSense。它提供的CSR模块包括硬件结构和软件API函数,方便用户上手。它不仅可以用于按键的触摸感应,还可以用于滚动条的触摸感应应用。相关的API函数可以直接给出手指在触摸区域的键值和在触摸滚动条上的位置值。由于CSR模块是一个可配置的软硬件结合体,在按键数量、灵敏度的调节、滚动条的选择等方面给了用户很大的灵活性和空间。它的外围元器件少,充分体现了PSoC芯片的优势,降低了用户的系统成本。