硬件设计

当前,移动终端上的按键大部分都是电容按键。电容按键的基本原理跟电容触摸屏是一样的,都是感知被触摸时,电极之间电容值的变化,来判断当前是否有触摸动作。

抛开触摸屏,市面上大部分独立电容按键的设计,都是RC串联电路(如图1),VCC一端不断发出扫描脉冲,使电路中电容C1重复充放电,从而在A点引起电压变化。由于有触摸时,会引起电容值增加,从而引起充放电周期变长。若把有触摸时,电容C1充放电周期为T1,没有触摸时,周期为T0。则T1 > T0

从而能够判断出,当前是否有触摸动作。这种设计在当前普通家电控制面板上很常见,耐用,不易损坏,设计简单。

回到触摸屏这个大环境。由于基本原理的相似性,现有的按键设计都没有用独立的扫描电路,而是从触摸屏控制器里,拉出一条驱动通道用作按键公共端(VCC脚),并把按键的另一端(A脚)连接到触摸屏的感应通道上。从而实现在触摸屏里扩展出电容按键,并由触摸屏控制IC来检测按键是否被触摸。

在触摸屏里,还有一种扩展按键的方法,那就是完全没有按键。直接把触摸屏幕的一部分(一般是底部,30-40高度)用作按键区域,并在触摸屏控制IC的固件里定义相应的按键区域。当触摸点落入这个区域,控制IC就把这次触摸当做按键动作。我们可以把这种方式叫做虚拟电容按键,上面介绍的方法叫做独立电容按键。虚拟电容按键的好处就是,不需要在触摸屏里植入额外的感应电极,触摸屏制作厂商只需在丝印工序阶段,在规定的区域印上特定的按键形状就可以了。

软件处理(基于Android)

触摸屏上的虚拟电容按键和独立电容按键有一个共性,那就是两者都是由触摸屏控制IC来控制。也就是说,其往驱动层上报数据的格式也是由控制IC决定的。

懒人模式

控制IC对按键的处理也分为两种,一种是懒人模式,就是什么都不做,把按键当做触摸一样处理,直接上报具体的坐标给驱动层,把按键解析的工作完全推给上层软件。

在这种模式下,触摸屏的驱动里,其实也不会做什么按键处理,而是继续把触摸坐标往Android上层传递。一般会提前在驱动层定义好相应的按键区域,并把该配置信息通过linux kernel的sysfs暴露给上层。比如://按键数量

#define TPD_KEY_COUNT 4

//按键中心坐标

#define key_1 60,850

#define key_2 180,850

#define key_3 300,850

#define key_4 420,850

//按键类型

#define TPD_KEYS {KEY_BACK, KEY_HOME, KEY_MENU, KEY_SEARCH}

//按键区域,每个数字分别表示:{X_CENTER, Y_CENTER, X_RANGE, Y_RANGE}

#define TPD_KEYS_DIM { {key_1,50,30}, {key_2,50,30}, {key_3,50,30}, {key_4,50,30} }

而在Android Native层,frameworks/base/services/input/EventHub.cpp:loadVirtualKeyMapLocked会去读取这个按键配置文件,具体定义在源文件frameworks/base/libs/androidfw/VirtualKeyMap.cpp。

这里要注意的是,在驱动层,并不是所有的情况下,都把按键解析工作传递给上层。当手机处于factory mode和recovery mode的时候,由于Android上层并没有运行起来,所以在这种情况下,驱动层还是得做按键解析工作。

好人模式

触控IC的另一种模式是“好人模式”,这种模式下,触控IC会专门分配寄存器标志位给每一个电容按键,用来标示当前按键状态。驱动层读到这个状态后,也会直接利用input_report_key上报keyevent给Android上层。

结语

当然,这里阐述的只是正常流程下的处理。对于一些有特殊需求的,可能需要触控IC固件、触摸屏驱动和Android上层三者相互配合,处理情况也和这里阐述的不一样。

android 电容触摸屏,剖析触摸屏上的电容按键相关推荐

  1. Ctone T01双卡双待Android 2.2的3.5英寸电容式多点触摸的GSM智能手机带GPS无线上网

    Ctone T01双卡双待Android 2.2的3.5英寸电容式多点触摸的GSM智能手机带GPS无线上网 作为中国移动的批发,bluelans.com股你最畅销的Andr​​oid还支持一个G传感器 ...

  2. pcb上钽电容丝印图_avx钽电容的丝印与代码

    avx钽电容的方法分为手艺.真空浸渍和加压浸渍这三种.为了注入凝胶电解的质量改变,可以通过用玻璃棒将冷却的凝胶得到解放,对于电解电容来说,是有一定活动性的,可以在选用适当的针管来抽取一定量的凝胶来注入 ...

  3. 485通讯的校验和_一个粉丝朋友问:欧姆龙E5EZ温控表与触摸屏通讯不上怎么回事?...

    一个粉丝朋友问:欧姆龙E5EZ温控表与触摸屏通讯不上怎么回事? 送鱼不如送钓竿,遇到这种问题,有非常多的可能性,请自行分析: 1.接线不对: 正常情况下,按照A接A,B接B,但有时候发现两边的文字标志 ...

  4. android移植 开发板,Android在TQ2440开发板上的移植

    原标题:Android在TQ2440开发板上的移植 一.目前进展 1.已经可以通过NFS在开发板上运行 最近自己编译了android的文件系统,并在TQ上运行了,比熊猫版的bin程序多些,基本功能已经 ...

  5. y电容如何选型_开关电源中电容如何快速选型

    电容在开关电源中是一种很常见的电子元器件,它可以用来降低纹波噪声,可以用来提高电源的稳定性以及瞬态响应性,但是由于市场上的品类繁多,我们该如何快速的选择可靠性高和性能稳定的电容呢? 1.电容种类的了解 ...

  6. 电容ESR表(一) 电容ESR表的特点、测量原理、电路分析

    电容ESR表(一) 电容ESR表的特点.测量原理.电路分析 这个专题起源于笔者偶然得到的信息.在完成所译<音频功率放大器设计手册>一书的勘误工作后,笔者因需在网上查阅美国Tektronix ...

  7. FDC2214学习笔记——如何从数字量确定电容值,胎教级别计算电容教程

    数字量to电容值计算 说在前面的话 准备工作: step1:三个公式 step2 推导计算 到底怎么将计算体现在程序中? 说在前面的话 最近在做一个用FDC2214测量液位的小东西,真的查了很多资料, ...

  8. 无极性的电容能代替有极性的电容吗?

    理想的电容,本来是没有极性的.但是在实际中,为了获得大容量,就使用了某些特殊的材料和结构,这就导致了实际的电容有些是有极性的.常见的有极性电容有铝电解电容,钽电解电容等.电解电容一般是容量相对比较大的 ...

  9. 深入了解电容(四):钽电容、聚合物有机半导体电容(POSCAP,ECAS)和薄膜电容

    钽电容 简介 钽电容有固体钽电容和液体钽电容,容量都很大.固体钽电容容量达数百uF,液体钽电容容量高达数千uF,大多用于军工领域.如下是KEMET T493系列钽电容的内部结构: 优点 容量一般比较大 ...

  10. 平板一定要用原装电容笔吗?十大电容笔知名品牌

    要为ipad配备一款电容笔,如果你觉得原来的Apple电容笔的成本要比你的预算高得多.平替电容笔,就是一个很好的选择.可以想象,一支原版的苹果电容笔,可以买四支平替电容笔,而有些平替电容笔的性能甚至可 ...

最新文章

  1. 为jQuery写插件
  2. 把数据保存到cook_将用户信息保存到Cookie中
  3. VC++中进程间相互通信的十一种方法
  4. 小程序开发(3)-之wx.request封装
  5. 7-34 点赞 (20 分)
  6. 关于K8s技术架构的几个问题
  7. 13.1.DataGrid的增、删、改、查前台页面
  8. AMOLED面板驱动芯片紧缺将持续至2022年
  9. Mac安装jadx查看dex文件
  10. Json 入门例子【3】
  11. QQ邮箱鸡肋存储型XSS漏洞利用
  12. 《剑指offer》面试题41/42——和为s的两个数字VS和为s的连续正数序列(C++代码实现)
  13. Atitit uke plnsy安全隐私保护法案 目录 第一章 一般规定 2 第1节 主题与目标 2 第二章 常见安全原则 3 第1节 隔离 保密 shell 3 第2节 隐藏 保密 不出头 3
  14. Webx mvc 源码
  15. IDEA报错解决:Cannot resolve com.oracle:ojdbc7:12.1.0.2或‘com.oracle:ojdbc7:12.1.0.2‘ not found
  16. 股指期货开户的条件和流程
  17. IPv4过渡到IPv6的方案选择
  18. Unity InControl插件 按键映射对照表
  19. 无心剑英译秦观《鹊桥仙》
  20. 从春招到秋招,算法工程师养成记

热门文章

  1. MeanShift跟踪MATLAB实现
  2. 工行u盾显示316_工行银行网上交易老是提示插入u盾
  3. 江苏省计算机二级python往年卷_历年江苏省计算机二级考试真题及答案2008-2009
  4. 免费下载百度文库等文档
  5. ftp命令及dos中操作ftp命令
  6. 企业标准化产线建设_机加生产线:标准化管理.ppt
  7. 数据库实战入门——SQL全方位学习
  8. 中证登 中债登 上清所 证券清算 证券账户 资金账户
  9. docker bi工具superset汉化
  10. 《软件架构/架构师书库》读后感