首页资源分类嵌入式处理器PSoC > 防水电容感应

防水电容感应

已有 447969个资源

下载专区

文档信息举报收藏

标    签:电容感应防水触摸

分    享:

文档简介

触摸按键,电容感应做防水措施。 

文档预览

电容感应 — 防水电容感应 AN2398 (ZH) 作者:Victor Kremin 和 Ruslan Bachunskiy 相关项目:是 相关器件系列:CY8C21x34、CY8C24x94 在此获取免费样本 软件版本:PSoC Designer™ v. 4.3 相关应用笔记:AN2352 PSoC® 应用笔记索引 应用笔记摘要 电容感应系统可以用于暴露在雨或水中的应用。此类应用包括:自动化应用、室外设备、ATM、公共访问系统、手机等便携设 备、PDA 以及厨房和浴室应用。本应用笔记将论述必须持续在潮湿、雨淋或水滴环境中运行的系统上使用电容感应。所提供的 技术可保证即使在感应区域完全处于水中也不会发生错误的触摸检测。 简介 电容感应技术可以有效地用于触摸感应区暴露在潮湿、雨淋 或水滴环境的应用。PSoC® CapSense 能让您更换成本高昂 的机械开关、改进设备可靠性,并降低总的系统成本。 防水电容感应可应用在众多区域。在车辆应用中的示例有门 开关设备、代码输入系统、报警传感器和电容式停车接近传 感器。防水电容传感器可以广泛用于家庭应用,包括厨房设 备、浴室照明开关、自动水龙头,以及洗碗机和洗衣机。防 水电容触摸屏幕可以用在 ATM、PDA、手机、便携 GPS 导 航系统以及其他室外设备上。 在测试模拟应用中防水电容感应技术的项目中,我们使用键 盘上的三个简单按钮。您可以根据特定应用要求对项目进行 扩展。例如,可以增加按钮数量,使用不同大小和形状的按 钮,等等。相关项目的技术特征如表 1 所示。 表 1. 键盘特征 特征 按键数 传感器大小 主机通讯接口 绝缘覆盖层厚度 电源电压 值 3 15 × 15 mm I2C(用于调试目的) 1-5 mm(玻璃或塑料) 5 ± 0.25V 试验安排 创建一个简单的测试设置,用于测试水对电容感应的影响。 CYC821x34 PSoC® 系列设备用于使用 CSD (CapSense Sigma Delta) 用户模块感应方法进行测试。PSoC® 设备放置 在感应板上。为显示感应状态,将若干附加的 LED 放在一个 小辅助板上并将其连接到 PSoC® 板上。该板在测试期间可 以位于不同位置,以便于观测传感器的状态。 为在实时测试期间监视传感器、计数值和其他数据,使用了 I2C-USB 桥接器。桥接 GUI 计算机工具同时监视多个跟踪, 将其记录到文件中,并对收集到的数据计算比例和偏移因 子。有关使用 I2C-USB 桥接调试 CapSense 应用的更详细信 息,请参见 AN2352“I2C-USB 桥接器的使用”。图 1 显示 了试验环境。 2008 年 12 月 8 日 文件编号:001-50440 修订版 ** 1 [+] Feedback AN2398 (ZH) 图 1. 试验环境 Sensor Board PSoC Board LED Display Board I2C-USB Bridge PC 传感 器 位于 一 个独 立 的板 上 ,并 使 用薄 软 导线 与 PSoC® CapSense 板连接。传感器与 CapSense PCB 分开放置,以便传 感器板轻松适应各种不同条件,例如使用流水冲刷传感器板。 传感器板是使用 2 mm 厚的单面箔 FR4 材料做成的。传感器 板图示如图 2 所示。 图 2. 传感器板图示 传感器板包含三个触摸传感器、一个位于边缘位置的保护传 感器,还有两个并行连接的屏蔽电极。 三个触摸传感器由屏蔽电极的内环围绕。内部屏蔽电极可保 护按钮传感器不会检测到由水滴导致的错误触摸。保护传感 器位于屏蔽电极的内环和外环之间,用于检测是否有水流存 在。外部屏蔽电极环可让保护传感器不会检测到由水滴导致 的错误触摸。另外,屏蔽电极还会降低 Sigma Delta 调制器 输入电流,从而降低寄生电容所造成的影响。有关屏蔽电极 操作的更详细信息,请参见 PSoC Designer™ 中的 CSD 用 户模块数据手册。 从绝缘层侧向传感器板上加水。为防止感应电极与水直接接 触,将它们涂上了绝缘漆。连接导线也有防水绝缘。传感器 板的金属区为 95*45 mm。每个传感器都是 15 mm 的正方 形。保护传感器的宽度为 2.5 mm。 测试设置原理图 图 3 所示为测试设置原理图。带有限流电阻器的 LED 安装在 独立的显示板上。可使用标准的 CY3212 或 CY3213 板进行 试验。CY3213 板支持 CSD 方法。通过安装调制器反馈电阻 器,对 CY3212 加以修改后,也可支持 CSD 方法。 2,52 S1 S2 S3 15,00 Key: Touch Sensor Guard Sensor Shield Electrode PCB 2008 年 12 月 8 日 文件编号:001-50440 修订版 ** 2 [+] Feedback 图 3. 测试设置原理图 CMOD 5V C4 10nF R6 2.2k R4 240 27 26 25 Vdd P0[6] P0[4] P0[2] P0[7] 28 32 31 30 29 Vss P0[3] P0[5] R1 240 D1 Sens2 R2 240 D2 Guard 1 2 P0[1] 3 4 5 6 P2[7] P2[5] P2[3] P2[1] 7 8 P3[3] P3[1] P1[7] U1 CY 8C21434 24 P0[0] 23 P2[6] P2[4] P2[2] P2[0] 22 21 20 19 P3[2] P3[0] XRES 18 17 R3 240 D3 Sens1 D4 Sens3 AN2398 (ZH) P1[0] P1[2] P1[4] P1[6] 13 Vss P1[5] P1[3] P1[1] 14 15 16 9 10 11 12 5V C3 100nF + C2 10uF FB SENS3 SENS1 SHIELD I2CSDA I2CSCL SENS2 GUARD Sens1 Sens2 Sens3 5V J1 1 2 3 4 5 IS S P /I2 C 水影响测试 以下内容用于针对水对原始传感器计数的影响进行的所有测 试。传感器板在所有试验中都垂直放置。测试照片如附录 A 所示。传感器板测试所使用的是自来水。为模拟最差条件, 在水中溶入了食用盐,以增加水的导电性。 所完成的测试如下: ƒ 用手指触摸干传感器。 ƒ 在屏蔽电极与接地端连接时,用喷雾器洒上小水滴。 ƒ 在使用流水冲刷并且有小水滴留在绝缘体上后,用手指 触摸传感器。 ƒ 在屏蔽电极处于活动状态时,用喷雾器洒上小水滴。 ƒ 用大水杯子持续向板上倾倒流水。 这些测试的结果如图 5 所示。为使收集到的数据易于直观 分析,使用 I2C-USB 桥接器 GUI 计算机工具中的偏移功能 使不同传感器的计数值数据产生偏差。示例中的设置如图 4 所示。 图 4. I2C-USB GUI 变量设置示例 此外,还检查了在小水滴测试期间设置不同调制器参考值的 效果。这些结果将在后面讨论。 第一个测试检查在板上没有水的情况下,手指连续触摸所有 传感器时的键盘操作(如图 5a 所示)。如您在图中看到的 那样,可以轻易地检测到手指触摸。 第二个测试检查在传感器上有水滴的情况下启用屏蔽电极, 并且手指连续触摸所有传感器时的传感器功能(如图 5b 所 示)。如您在图中看到的那样,由于手指先触摸小水滴,然 后才触摸板,因此会出现小的尖峰信号。这些尖峰信号与手 指引发的信号比较是可以忽略的,而且不会导致触摸检测出 现任何问题。手指触摸信号可以很容易检测到。 2008 年 12 月 8 日 文件编号:001-50440 修订版 ** 3 [+] Feedback Raw Counts AN2398 (ZH) 图 5. 水影响测试结果 Dry Sensors Finger Touch with no Water 2 400 2 300 2 200 2 100 2 000 1 900 1 800 1 700 1 600 1 500 1 400 1 300 1 200 1 100 1 000 900 800 700 600 500 400 300 200 100 Sensor 1 Sensor 2 Sensor 3 Guard 350 400 450 500 550 600 650 700 750 800 850 900 Sample # a) Raw Counts Water Droplets with Shield Electrode Enabled 1 800 1 700 1 600 1 500 1 400 1 300 1 200 1 100 1 000 900 800 700 600 500 400 300 200 100 0 20 40 60 Sensor 1 Sensor 2 Sensor 3 Guard 80 100 120 140 160 180 200 220 240 260 Sample # d) Wet Sensors Finger Touch Response after Applying Water Stream 2 400 2 300 2 200 2 100 2 000 1 900 1 800 1 700 1 600 1 500 1 400 1 300 1 200 1 100 1 000 900 800 700 600 500 400 300 200 100 Sensor 1 Sensor 2 Sensor 3 Guard 200 250 300 350 400 450 500 550 600 650 700 750 Sample # b) Raw Counts Water Stream Applying to Sensors Panel, sample #1 2 400 2 300 2 200 2 100 2 000 1 900 1 800 1 700 1 600 1 500 1 400 1 300 1 200 1 100 1 000 900 800 700 600 500 400 300 200 100 1 000 1 100 1 200 1 300 Sensor 1 Sensor 2 Sensor 3 Guard 1 400 1 500 Sample # e) Water Droplets with Shield Electrode Disabled 3 100 3 050 3 000 2 950 2 900 2 850 2 800 2 750 2 700 2 650 2 600 2 550 2 500 2 450 2 400 2 350 2 300 2 250 Sensor 1 Sensor 2 Sensor 3 500 600 700 800 900 1 000 Sample # c) Raw Counts Water Stream Applying to Sensors Panel, sample #2 2 400 2 300 2 200 2 100 2 000 1 900 1 800 1 700 1 600 1 500 1 400 1 300 1 200 1 100 1 000 900 800 700 600 500 400 300 200 100 Sensor 1 Sensor 2 Sensor 3 Guard 400 450 500 550 600 650 700 750 800 850 900 950 Sample # f) Raw Counts Raw Counts 2008 年 12 月 8 日 文件编号:001-50440 修订版 ** 4 [+] Feedback 第三个测试检查在板上洒有水和禁用屏蔽电极的情况下的传 感器功能(如图 5c 所示)。如您在图中看到的那样,洒水 可以产生接近手指引发信号的尖峰信号;手指触摸信号为基 线以上 400 次计数,而水滴信号为 200 次计数,只有一半 左右。这在某些条件下可能导致错误的触摸检测。 第四个测试检查在板上洒有水的情况下,启用屏蔽电极时的 传感器功能(图 5d)。如您在图中看到的那样,尖峰信号 远远低于手指信号的六分之一,可以很容易区分。因此,屏 蔽电极能有效地防止键盘控制器发生错误触摸检测。 下一项测试检查用流水冲刷板并且启用屏蔽电极时(图 5e 和 图 5f)的传感器功能。如您在图中看到的那样,水流会 在所有传感器上生成和手指触摸振幅相同的尖峰信号。这些 尖峰信号会产生错误的触摸检测。但保护传感器会产生比触 摸传感器级别更高的信号,原因是保护传感器的感应面积更 大。因此保护传感器可以用于检测板上有无水流并在检测到 水流时实施阻止判断逻辑。 有一些图示显示了水测试期间的 CapSense 配置。请参见 图 6。 图 6. 干燥表面 (a)、有小水滴的表面 (b) 以及 有水流的表面 (c) 的感应 AN2398 (ZH) 当手指触摸干燥表面时,手指会向感应电极添加电容 Cx (图 6a)。当感应电极和屏蔽电极之间存在一个孤立 水滴 (图 6b)时,屏蔽电极和感应电极之间的电容耦合会增加 (通过 Cwd 和 Cws 电容)。 使用连续水流冲刷感应表面时(图 6c),会增加较大的水 流电容。此电容可能会比屏蔽电极到水电容 Cwd 大数倍。 因此,屏蔽电极的效果被完全掩藏,而且传感器计数值等于 甚至大于手指触摸。这种情况下,保护传感器会很有用。当 检测到水流时,它可以阻止其他传感器的触发。 另外,还使用不同 Sigma Delta 参考电压进行了若干测试, 以确定它们对测试的影响。其中的两个结果如图 7 所示。 计数值变化很小的区域对应的是传感器的干燥状态。然后, 在绝缘体上洒水。 图 7. 按不同参考设置施加小水滴时的计数值变化 如您在图 7 中看到的那样,当参考电压较低时,尖峰信号 通常为正,与手指触摸方向相同。当参考电压增加时,峰值 通常低于“无水”级别,原因是当小水滴处于屏蔽电极和感 应电极之间时,调制器电流降低的幅度要比参考值高时的 大。尖峰信号方向与手指触摸信号变化相反。高级别 API 例程可以利用该特征,而且,如果在有短期负尖峰信号时不 重置基线级别,就可以从中获益。这一功能在 CSD 用户模 块的当前版本 v. 1.0 中不被支持,但在以后的版本中可能会 添加它。 2008 年 12 月 8 日 文件编号:001-50440 修订版 ** 5 [+] Feedback 在绝缘体上施加小水滴时,水可以在绝缘表面形成薄膜,从 而生成感应电极电容。这就是为什么当调制器参考电压较低 时,计数值更改会更趋向正值,而在电压较高时更趋向负 值。这是由于屏蔽电极的影响增大。 其目的是通过选择最佳参考电压,来获取手指触摸信号和小 水滴尖峰信号之间的最大差值。而当小水滴导致负的峰值时 更是如此,因为此时 CSD API 会将基线重置为最小值。图 8 显示了各种不同参考电压的小水滴“信噪比”。 图 8. 不同参考设置的手指触摸响应和小水滴噪音之间的关系 6 Water Droplet “SNR” 5 4 3 2 1 0 0,10 0,15 0,20 0,25 0,30 0,35 0,40 0,45 Reference, x Vdd 如您在此图中看到的那样,在参考电压为 0.30 Vdd 时获得 最大值关系。这与 CSD UM 参数中的 Ref Value = 1 对 应。该值对于不同的电极和覆盖层配置是不同的,因此您的 配置可以使用不同的值。在另一个版本的传感器面板中,最 佳结果是在 Ref Value = 2 时获得的。 我们使用的试验结果和简单模型清楚地显示,要想实现可靠 的触摸检测和消除小水滴和水流导致的错误检测,就应该使 用屏蔽电极和保护电极的组合。屏蔽电极可从物理层面降低 小水滴的影响,而保护电极可从逻辑层面重置决策逻辑操 作。下一节将讨论建议的高级别数据处理方案。 AN2398 (ZH) 示范固件 固件使用 CSD 用户模块。已经添加了某些后处理,用以处 理保护传感器信号。更新的基线算法仍保持不变。选定的 CSD 用户模块参数如图 9 所示。请注意,已经启用了 Sensors Autoreset 参数,以便在任何传感器状态下都允许 基线更新。 图 9.CSD UM 参数 固件使用不同的扫描参数、FingerThreshold 和 Reference 值来扫描触摸传感器和保护传感器,这是因为触摸传感器和 保护传感器有用于不同用途的不同区域。保护传感器位于触 摸传感器附近,而且保护传感器区域分布于一个更大的板区 域。保护传感器应该比触摸传感器有更好的灵敏度和更低的 FingerThreshold 值。 为提供可靠的手指触摸检测并排除错误的触摸检测,我们采 用了一种特殊算法用于。这种算法对每个触摸传感器和保护 传感器使用特殊的可重置计数器,这是在固件中实现的。这 些计数器提供去抖动功能。触摸感应计数器设置一个最小时 间间隔,只有在这个间隔内触摸传感器,决策逻辑才会检测 到它。触摸计数器能让您消除漏水引起的短尖峰信号,并排 除错误的触摸检测。 保护传感器计数器能让您排除使用水流后由于板上有剩余水 分导致的错误触摸检测。当用流水冲刷板时,保护传感器会 检测该事件并禁用触摸传感器处理逻辑。附加的保护传感器 “静默”时间可防止永久解除锁定传感器计数器。当清除水 流后,保护计数器会暂时抑制触摸处理。这样便可消除由板 上剩余水分导致的错误触摸检测。 2008 年 12 月 8 日 文件编号:001-50440 修订版 ** 6 [+] Feedback 算法以简化的等价电子原理图的形式显示在图 10 中,以便 于理解。 图 10. 后处理逻辑的等价简化原理图 Counters Update Upon Scan Completion Sensors Array Sg in Sg out S1 S1 in S2 S2 in Guard Counter -1 Load En 0 Gcnt out S1 … Adder Sn >1 Multiple Touch Detection AN2398 (ZH) SN-1 SN SN-1 in S1 out SN in SN out CSD API Sensor 1 Counter R1 +1 R En =Thl #include "PSoCAPI.h" // part-specific constants and macros // PSoC API definitions for all User Modules #define SENSOR_TOUCH_COUNT_TH 15 #define GUARD_TOUCH_COUNT_TH 10 #define GUARD_SENS_NUM 3 WORD iI2CBuf[CSD_TotalSensorCount]; BYTE touch_cnt_array[CSD_TotalSensorCount]; BYTE touch_cnt = 0; BYTE guard_state = 0; BYTE i; extern BYTE EzI2C_bRAM_RWcntr; void main() { M8C_EnableGInt; CSD_Start(); CSD_SetDefaultFingerThresholds(); CSD_baBtnFThreshold[GUARD_SENS_NUM] = 100; CSD_SetRefValue(0); CSD_InitializeBaselines(); for (i = 0; i < CSD_TotalSensorCount; i++) touch_cnt_array[i] = 0; EzI2C_SetRamBuffer(2*CSD_TotalSensorCount, 0, (BYTE *)iI2CBuf ); EzI2C_Start(); while (1) { CSD_SetRefValue(1); CSD_ScanSensor(GUARD_SENS_NUM); CSD_SetRefValue(1); CSD_ScanSensor(0); CSD_ScanSensor(1); CSD_ScanSensor(2); CSD_UpdateAllBaselines(); M8C_DisableGInt; if ((0 == EzI2C_bRAM_RWcntr) || (EzI2C_bRAM_RWcntr > (2*CSD_TotalSensorCount-1))) for (i = 0; i < CSD_TotalSensorCount; i++) iI2CBuf[i] = CSD_waSnsResult[i]; M8C_EnableGInt; touch_cnt = 0; for (i = 0; i < CSD_TotalSensorCount; i++) if (GUARD_SENS_NUM != i) { if (0 != CSD_bIsSensorActive(i)) { 2008 年 12 月 8 日 文件编号:001-50440 修订版 ** 10 [+] Feedback AN2398 (ZH) touch_cnt++; if (touch_cnt_array[i] < SENSOR_TOUCH_COUNT_TH) touch_cnt_array[i]++; } else touch_cnt_array[i] = 0; } if(0 != CSD_bIsSensorActive(GUARD_SENS_NUM)) touch_cnt_array[GUARD_SENS_NUM] = GUARD_TOUCH_COUNT_TH; else { if (0 != touch_cnt_array[GUARD_SENS_NUM]) touch_cnt_array[GUARD_SENS_NUM]--; } guard_state = (touch_cnt_array[GUARD_SENS_NUM] > 0); if ((0 != guard_state) || (touch_cnt > 1)) for (i = 0; i < CSD_TotalSensorCount; i++) if (GUARD_SENS_NUM != i) touch_cnt_array[i] = 0; (0 != guard_state)?(PRT2DR |= 0x80):(PRT2DR &= ~0x80); (SENSOR_TOUCH_COUNT_TH == touch_cnt_array[0])?(PRT0DR |= 0x01):(PRT0DR &= ~0x01); (SENSOR_TOUCH_COUNT_TH == touch_cnt_array[1])?(PRT0DR |= 0x02):(PRT0DR &= ~0x02); (SENSOR_TOUCH_COUNT_TH == touch_cnt_array[2])?(PRT0DR |= 0x04):(PRT0DR &= ~0x04); } } 2008 年 12 月 8 日 文件编号:001-50440 修订版 ** 11 [+] Feedback 文件历史记录页面 文件标题:电容感应 — 防水电容感应 文件编号:001-50440 修订版 ECN 变更来源 ** 2616553 HJIA 提交日期 2008 年 12 月 8 日 变更描述 Spec 001-14501 的译文 AN2398 (ZH) 2007 年 3 月,赛普拉斯使用新文档编号和修订代码重新将其所有应用笔记进行了编目。这种新文档编号和修订代码(001-xxxxx,以“修订版 **”开头) 位于文档脚注部分,并将在所有后续修订版中使用。 PSoC® 是赛普拉斯半导体公司的注册商标。“可编程片上系统”、PSoC Designer™ 和 PSoC Express™ 是赛普拉斯半导体公司的商标。此处引用的所 有其它商标或注册商标归各自所有者所有。 本应用手册为英文版本的译本,而非原始材料。应用手册编号由英文版本编号加语言代码组成,ZH 代表中文,JA 代表日文。例如,ANxxxxx (ZH) 或 Anxxxxx (JA)。赛普拉斯文件编号和修订代码(001-xxxxx 修订版**)位于本文件的页脚。每分文件的文件编号和修订代码均是唯一的。 Cypress Semiconductor 198 Champion Court San Jose, CA 95134-1709 电话:408-943-2600 传真:408-943-4730 http://www.cypress.com/ © 赛普拉斯半导体公司,2006-2007。此处所包含的信息可能会随时更改,恕不另行通知。除赛普拉斯产品内嵌电路之外,赛普拉斯半导体公司不对其它 任何电路的使用承担任何责任,也不根据专利或其他权利以明示或暗示的方式授予任何许可。除非与赛普拉斯签订明确的书面协议,否则赛普拉斯产品不 保证,也不适用于医疗、生命支持、救生、关键控制或安全应用等用途。此外,对于可能发生运转异常和故障并对用户造成严重伤害的生命支持系统,赛 普拉斯不授权将其产品用作此类系统的关键组件。若将赛普拉斯产品用于生命支持系统中,则表示制造商将承担因此类使用而招致的所有风险,并确保赛 普拉斯免于因此而受到任何指控。 此源代码(软件和/或固件)归赛普拉斯半导体公司所有,并受到全球专利法规(美国和美国以外的专利法规)、美国版权法以及国际条约规定的保护和 约束。赛普拉斯据此向获许可者授予适用于个人的、非独占性、不可转让的许可,用以复制、使用、修改、创建赛普拉斯源代码的派生作品、编译赛普拉 斯源代码和派生作品,并且其目的只能是创建自定义软件和/或固件,以支持获许可者仅将其获得的产品依照适用协议规定的方式与赛普拉斯集成电路配 合使用。除上述指定的用途之外,未经赛普拉斯的明确书面许可,不得对此源代码进行任何复制、修改、转换或演示。 免责声明:赛普拉斯不针对此材料提供任何类型的明示或暗示保证,包括(但不仅限于)针对特定用途的适销性和适用性的暗示保证。赛普拉斯保留在不 做出通知的情况下对此处所述材料进行更改的权利。赛普拉斯不对此处所述之任何产品或电路的应用或使用承担任何责任。对于可能发生运转异常和故障 并对用户造成严重伤害的生命支持系统,赛普拉斯不授权将其产品用作此类系统的关键组件。若将赛普拉斯产品用于生命支持系统中,则表示制造商将承 担因此类使用而招致的所有风险,并确保赛普拉斯免于因此而受到任何指控。 产品使用可能受到适用的赛普拉斯软件许可协议限制。 2008 年 12 月 8 日 文件编号:001-50440 修订版 ** 12 [+] Feedback

Top_arrow
回到顶部
EEWORLD下载中心所有资源均来自网友分享,如有侵权,请发送举报邮件到客服邮箱bbs_service@eeworld.com.cn 或通过站内短信息或QQ:273568022联系管理员 高进,我们会尽快处理。