一、输入类设备简介

1、input/output

(1) IO 输入输出,是计算机系统中的一个概念。计算机的主要功能就是从外部获取数据,,然后进行计算加工得到输出数据,并输出给外部(计算机可以看成数据处理器)。计算机和外部交互就是通过 IO。每一台计算机都有个标准输入和标准输出。


2、常见输入类设备

(1) 键盘、鼠标、触摸屏、游戏摇杆、传感器、(摄像头并不是一个典型的输入类设备)


3、触摸屏的特点

(1) 触摸屏和人的关系很紧密,尤其是电容式触摸屏。

(2) 触摸屏和显示器关系很紧密。

(3) 典型应用:手机、平板电脑、收银机、工业领域。


4、触摸屏的分类

(1) 常见的触摸屏分为 2 种:电阻式触摸屏和电容式触摸屏。早期用电阻式触摸屏,后来发明了电容式触摸屏。

(2) 这两种的特性不同、接口不同、编程方法不同、原理不同。


5、触摸屏和显示屏的联系与区别

(1) 首先要搞清楚:触摸屏是触摸屏,用来响应人的触摸事件的;显示屏是显示屏,用来显示的。现在用的显示屏一般都是 LCD。

(2) 为什么很多人会搞混这两个概念,主要是因为一般产品上触摸屏和显示屏是做在一起的。一般外层是一层触摸屏,触摸屏是透明的,很薄;底下是显示屏用来显示图像,平时看到的图像是显示屏显示并且透过触摸屏让人看到的。


二、电阻式触摸屏的原理

1、薄膜+玻璃(需要尖锐硬物来点击)

(1) 要点是薄、透明。前面板硬度稍弱,可以被硬物按下弯曲,后面板硬度很高,不会弯曲。

(2) 前面板和后面板在平时没有挨住,在外力按下之后,前面板发生(局部)形变,在这一点上 前后面板会挨住。


2、ITO(导电+透明+均匀压降)

(1) ITO是一种材料,其实是一种涂料,特点就是透明、导电、均匀涂抹。

(2) 本来玻璃和塑料都是不导电的,但是涂上 ITO 之后就变成导电了(同时还保持着原来透明的特性)。

(3) ITO不但导电而且有电阻,所以中间均匀涂抹了 ITO 之后,就相当于在 x1 和 y1 之间接了一个电阻,在 x2 和 y2 之间也接了一个电阻。因为 ITO 形成的等效电阻在整个板上是均匀分布的,所以在板子上某一点的电压值和这一点的位置值成正比。

(4) 触摸屏经过操作,按下之后要的就是按下的坐标,坐标其实就是位置信息,这个位置信息和电压成正比了,而这一点的电压可以通过 AD 转换得到。这就是整个电阻式触摸屏的工作原理。


3、X/Y轴分时AD转换

(1) 下面要研究如何得到按下的这点的电压。

(2) 在第一个面板的一对电极上加电压,然后在另一个面板的一个电极和第一个面板的地之间去测量。在没有按下时测试无结果,但是在有人按下时在按下的那一点2个面板接触,接触会导致第二个面板上整体的电压值和接触处的电压值相等,所以此时测量到的电压就是接触处在第一个面板上的电压值。

(3) 以上过程在一个方向进行一次即可测得该方向的坐标值,进行完之后撤掉电压然后在另一个方向的电极上加电压,故伎重施,即可得到另一个方向的坐标。至此一次触摸事件结束。


4、电压值对应坐标值(校准)

(1) 电压值和坐标值成正比的,所以需要去校准它。校准就是去计算(0, 0)坐标点的电压值是多少。


5、思考:为什么电阻式触摸屏不支持多点触摸


三、S5PV210 的电阻触摸屏控制器

1、ADC与触摸屏控制器结构框图

(1) S5PV210 一共支持 10 路模拟输入,分别为 AIN0-AIN9。其中 AIN0 和 AIN1 是只做模拟输入的,AIN2-AIN9 分别可以支持 2 个电阻式触摸屏。所以 4 个模拟输入引脚负责一个电阻式触摸屏。

(2) AD转换和触摸屏控制部分有 2 个附属单元。其中一个是反向控制 AINn 引脚的逻辑,主要作用是在触摸屏获取坐标的过程中,分时给 xy 方向供电和测量;第二个是中断产生部件,如果 AD 转换完成(主要针对 AIN0 和 AIN1 这两路的)或者触摸屏被人按下/弹起时,中断产生部件会产生一个中断通知 CPU 来处理事件,这样就不用轮询监测触摸屏事件了。


2、Normal Operation Mode & Separate X/Y Position Convertion Mode

(1) AD转换器有2种工作模式:正常操作模式,分时 X/Y 位置转换模式。

(2) 正常操作模式用作普通的 AD 转换,分时 X/Y 位置转换模式用作电阻式触摸屏。

正常 AD 转换下,将 AD 转换值放在 TSDATX 中,在分时 X/Y 模式下,会将X/Y坐标分别放在 TSDATX 和 TSDATY 中。

(3) 对于 AIN0 和 AIN1 来说,没有这么多模式,他们只能工作在普通模式;对于 AIN2-AIN9 来说,因为被复用,所以才有 2 种模式。如果我们将这几个引脚用作普通 AD 转换,则配置为普通模式,如果用作电阻式触摸屏检测,则配置成分时 X/Y 模式。


3、中断参与

(1) 其实普通 AD 转换和触摸屏 AD 转换本身都可以不在中断参与下完成。

(2) 普通 AD 转换如果不要中断,那就去查询。开启一次转换后,然后不断查询标志位,直到 AD 转换完,硬件自动置位标志位后 我们才去读取转换值就不会错。当然也可以用中断,控制器提供了一个相应的中断给普通 AD 转换。

(3) 触摸屏也可以用或者不用中断。对于 SoC 来说 永远不知道人会什么时候按下或者弹起触摸屏,所以触摸屏的按下/弹起对 SoC 来说是纯粹的异步事件。对于这种情况,SOC 只有 2 种解决方案:轮询和中断。


4、主要寄存器


四、电容触摸屏的原理

1、人体电流感应

(1) 利用人体电流感应现象,在手指和屏幕之间形成一个电容,手指触摸时吸走一个微小电流,这个电流会导致触摸板上 4 个电极上发生电流流动,控制器通过计算这 4 个电流的比例就能算出触摸点的坐标(这个计算过程中涉及到 AD 转换)。


2、专用电路计算坐标

(1) 电阻式触摸屏本身是一个完全被动器件,里面没有任何 IC 和电路,它的工作逻辑完全在 SoC 控制器上;但是电容式触摸屏不同,电容式触摸屏需要自带一个 IC 进行坐标计算。因此电容式触摸屏工作时不需要主机 SoC 控制器参与。

(2) 为什么这样设计?主要原因是因为电容式触摸屏的坐标计算太复杂,普通程序员无法写出合适的代码解决这个问题,因此在电容式触摸屏中除了触摸板之外,还附加了一个 IC 进行专门的坐标点计算和统计。这个 IC 全权负责操控触摸板得到触摸操作信息,然后再通过数字接口和主机 SoC 进行通信。

3、多个区块支持多点触摸

(1) 电阻触摸屏不支持多点触摸,这是它本身的原理所限制,无法改变无法提升。

(2) 电容式触摸屏可以支持多点触摸(也可以单点触摸)。

按照之前讲的电容式触摸屏的原理,单个电容式触摸屏面板也无法支持多点触摸,但是可以将一个大的触摸面板,分成多个小的区块,每个区块相当于是一个独立的小的电容式触摸屏面板。

(3) 多个区块支持多点触摸,让电容触摸屏坐标计算变复杂了,但是这个复杂性被电容触摸 IC 吸收了,还是通过数字接口和主机 SoC 通信报告触摸信息(触摸点数、每个触摸点的坐标等)。

4、对外提供 I2C 的访问接口

(1) 整个电容触摸屏包含 2 部分:触摸板和电容触摸 IC。触摸板就是一个物理器件,电容触摸 IC 一般做到触摸屏的软排线(FPC)上面,电容触摸 IC 负责操控触摸板、通过 AD 转换和分析得到触摸点个数、触摸坐标等信息,然后以特定的数字接口与 SoC 通信。这个数字接口就是 I2C。

(2) 对于我们主机 SoC 来说,电容式触摸屏其实就是一个 I2C 从设备。主机只需要通过 I2C 总线对这个从设备进行访问即可(从设备有自己特定的从设备地址)。从这里来讲,其实电容式触摸屏和其他的传感器(gsensor等)并没有任何区别。


五、ft5x06 电容触摸 IC 简介

1、电阻式触摸屏和电容式触摸屏的特点对比

(1) 耐久性 电容式触摸屏不容易坏,电阻式触摸屏易坏
(2) 抗干扰性 电容式触摸屏差一些,电阻式触摸屏要好一些
(3) 精准度 电容式触摸屏差一些,电阻式触摸屏好一些
(4) 用户体验 电容式触摸屏要好一些,电阻式触摸屏要差一些
(5) 价格 电容式触摸屏贵一些,电阻式触摸屏便宜很多


2、思考:为什么工业应用中要用电阻式触摸屏?

(1) 消费电子产品(手机、平板电脑)用电容式触摸屏。但是在工业领域都是用电阻式触摸屏,就是因为工业领域环境比较恶劣,电容式触摸屏容易受干扰,所以不合适。


3、触摸屏的发展方向

(1) 更薄、更透明、更精准、支持点数更多。

(2) 把电容触摸屏和LCD做在一起。可以做到更薄、更透明、价格更低。但是面临的困难是抗干扰性要求更高。


4、ft5x06的数据手册浏览

(1) 软件工程师并不关心触摸屏的工艺问题,只关心软件编程接口(物理层是 I2C)。


源自朱有鹏老师.

ARM 触摸屏 TouchScreen相关推荐

  1. android4.0触摸屏(touchscreen)以及屏幕按键驱动解析

    本人用的触摸屏IC是FocalTech公司的ft5306,是一款i2c的电容屏多点触控芯片.对于它的整体驱动官方已经给了,我们就触摸屏和按键部分的代码做相关说明.说明其中应该注意的地方. 对于所有的i ...

  2. ⑧tiny4412 Linux驱动开发之触摸屏(TouchScreen)驱动程序

    本节主要是说一下触摸屏驱动的编写. 触摸屏输入输入设备,所以我们本次通过输入子系统的方式来实现,输入子系统的框架图如下: 然后,我们看一线电路图的触摸屏部分: 可以看到触摸屏是通过I2C接口进行数据和 ...

  3. linux下arm触摸屏显示,一些显示和触摸代码(linux on arm 平台)

    一些显示和触摸代码(linux on arm 平台) linux on arm 平台的一些显示和触摸功能 一.版本和平台: 代码版本:1.1 平台:linux arm开发板; LCD: 800x480 ...

  4. 触摸屏基本原理介绍【转】

    (转自:https://www.cnblogs.com/deng-tao/p/6122142.html) 触摸屏基本原理介绍 一.输入类设备简介 1.IO输入输出,是计算机系统中的一个概念.计算机的主 ...

  5. 【超详细】嵌入式软件学习大纲

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/qq_34981463/article/ ...

  6. 朱有鹏嵌入式核心课程路线图

    朱有鹏嵌入式核心课程路线图 整个学习路线图很庞大,为了描述简单我把目录分成了几个层次,分层浏览. 第一层目录: 0.基础预科 1.ARM裸机全集 2.uboot和linux内核移植 3.linux驱动 ...

  7. 朱有鹏嵌入式免费课程

    https://eyun.baidu.com/s/3pKIbS6Z 密码:mfkc 朱有鹏嵌入式核心课程路线图 整个学习路线图很庞大,为了描述简单我把目录分成了几个层次,分层浏览. 第一层目录: 0. ...

  8. 计算机科学导论第五章计算机组成课后答案,计算机科学导论第五章计算机组成.ppt...

    计算机科学导论第五章计算机组成.ppt 计算机导论 第5章计算机组成 计算机硬件系统的组成 计算机系统由硬件子系统和软件子系统组成 硬件 Hardware 子系统 组成一台计算机的物理设备的总称叫做计 ...

  9. Linux 2.6内核*必须修正*问题列表 ver 6 (转)

    Linux 2.6内核*必须修正*问题列表 ver 6 (转)[@more@] Andrew Morton发表了Linux 2.6内核*必须修正*问题列表 ver 6.该版本分为两个部分:" ...

最新文章

  1. Apache Unable to find the wrapper https - did you forget to enable it when you configured PHP?
  2. php5.3.8添加eaccelerator扩展 加速php代码执行效率
  3. 软件开发管理规范流程图
  4. 学生为什么要在CSDN写博客?
  5. 删除windows换行符^M
  6. mysql select db 废弃_php 项目放服务器显示mysql_connect 已经废弃 ?
  7. Scala数组元素的修改update
  8. 优化器是怎么得到执行计划的?
  9. C++远征之封装篇——类和封装、实例化和对象成员访问
  10. Java 项目 接口开发规范
  11. (day 43 - 二分查找 ) 剑指 Offer 53 - II. 0~n-1中缺失的数字
  12. 拉格朗日插值多项式及其余项
  13. 北航的计算机与技术专业如何,计算机科学与技术考研北航的这个专业怎么样
  14. python之matplotlib画二元函数图像
  15. 计算机办公软件的课件,计算机常用办公软件ppt课件
  16. SDN相关组织之ODL(opendaylight)
  17. 如何查看电脑的上一次开机时间
  18. 谷歌扩展插件官方下载地址
  19. 创业公司,老板说等公司做大了,给5%股权,建议你不要轻易相信
  20. C语言结构体实现简单通讯录管理系统

热门文章

  1. 【u007】血色先锋队
  2. 利用用“蓝牙”遥控远程手机--黑客博客
  3. dialog definition
  4. Sparrow RecSys 源码阅读
  5. 关于Mac App Store无法下载、无法安装、一直转圈的解决方法
  6. python+vue+django旅游景点酒店线路套餐管理系统
  7. 人工智能在计算机视觉方面的应用3000字,人工智能在计算机视觉及网络领域中的应用...
  8. 解决内联汇编64位Linux系统调用提示Bad Address
  9. iOS中使用Fastlane实现自动化打包和发布
  10. 神奇的Css3(3) 多列布局