(转自:https://www.cnblogs.com/deng-tao/p/6122142.html)
一、输入类设备简介
1、IO输入输出,是计算机系统中的一个概念。计算机的主要功能就是从外部获取数据然后进行计算加工得到输出数据并输出给外部(计算机可以看成数据处理器)。计算机和
外部交互就是通过IO。每一台计算机都有个标准输入和标准输出。
2、常见的输入类设备
键盘、鼠标、触摸屏、游戏摇杆、传感器、(摄像头并不是一个典型的输入类设备)。
二、触摸屏介绍
1、触摸屏的特点
(1)触摸屏和人的关系很紧密,尤其是电容式触摸屏。
(2)触摸屏和显示器关系很紧密。
(3)典型应用:手机、平板电脑、收银机、工业领域。
2、触摸屏的分类
(1)常见的触摸屏分为2种:电阻式触摸屏和电容式触摸屏。早期用电阻式触摸屏,后来发明了电容式触摸屏。
(2)这两种的特性不同、接口不同、编程方法不同、原理不同。
3、触摸屏和显示屏的联系与区别
(1)首先要搞清楚:触摸屏是触摸屏,用来响应人的触摸事件的;显示屏是显示屏,用来显示的。现在用的显示屏一般都是LCD。
(2)为什么很多人会搞混这两个概念,主要是因为一般产品上触摸屏和显示屏是做在一起的。一般外层是一层触摸屏,触摸屏是透明的,很薄;底下是显示屏用来显示图像,平时看到的图像是显示屏显示并且透过触摸屏让人看到的。
三、电阻式触摸屏的原理
电阻式触摸屏其实就是一种传感器,虽然已经用的不多了,但是还是有过很多的LCD模块采用电阻式触摸屏,这种屏幕可以用四线、五线、七线或八线来产生屏幕偏置电压,同时读回触摸点的电压,在这里主要以四线为例进行说明。
1、薄膜+玻璃(需要尖锐硬物点击)
(1)要点是薄、透明。前面板硬度稍弱,可以被硬物按下弯曲,后面板硬度很高,不会弯曲。
(2)前面板和后面板在平时没有挨住,在外力按下之下,前面板发生(局部)形变,在这一点上前后面板会挨住。 如下下面左图所示:
2、ITO(导电+透明+均匀压降)
(1)ITO是一种材料,其实是一种涂料,特点就是透明、导电、均匀涂抹。 (如上面右图中的金属涂层)
(2)本来玻璃和塑料都是不导电的,但是涂上ITO之后就变成导电了(同时还保持着原来透明的特性)。
(3)ITO不但导电而且有电阻,所以中间均匀涂抹了ITO之后就相当于在同一层的两边之间接了一个电阻。因为ITO形成的等效电阻在整个板上是均匀分布的,所在在板子上某一点的电压值和这一点的位置值成正比。
(4)触摸屏经过操作,按下之后要的就是按下的坐标,坐标其实就是位置信息,这个位置信息和电压成正比了,而这一点的电压可以通过AD转换得到。这就是整个电阻式触摸屏的工作原理。
3、X/Y轴分时AD转换
(1)下面要研究如何得到按下的这点的电压
(2)在第一个面板的一对电极上加电压,然后在另一个面板的一个电极和第一个面板的地之间去测量。在没有按下时测试无结果,但是在有人按下时在按下的那一点2个面板接触,接触会导致第二个面板上整体的电压值和接触处的电压值相等,所以此时测量到的电压就是接触处在第一个面板上的电压值。
(3)以上过程在一个方向进行一次即可测得该方向的坐标值,进行完之后撤掉电压然后在另一个方向的电极上加电压,故伎重施,即可得到另一个方向的坐标。至此一次触摸事件结束。
例如下图所示: 我们先在X+ 和 X-之间加上一个电压,当有人按下触摸屏之后就会在相应的位置形成一个触点,那么此时我们去测量Y+与GND(或者是Y-与GND)之间的电压,那么
其实得到的电压值就是发生触点处的电压值,因为电阻是均匀分布的,所以可以算出该点在x方向上的位置;同理测量Y轴也是一样的道理。
4、电阻触摸屏的校准
(1)电压值和坐标值成正比的,所以需要去校准它。校准就是去计算(0, 0)坐标点的电压值是多少。
5、电阻式触摸屏的硬件接口
(1)对于电阻式触摸屏来说,他的硬件接口主要分为两种:一种是SoC内置电阻式触摸屏控制器,另一种是外置的专门触摸屏控制芯片,将触摸板传感器与这个控制芯片相连接,这个芯片内部逻辑电路或者是内置程序代码能够根据上面说的原理将触点坐标算出来并且转化为数字量通过I2C接口发送给主机Soc。
(2)而对于第一种接口需要Soc的电阻式触摸屏控制器能够自己完成上面说的任务,并且需要将传感器的模拟量转换为数字量,所以这个一般就会和ADC联系在一起,而在s5pv210这款SoC中其实就是将ADC模块和触摸屏模块集成在一起的,后面会来重点分析。
四、电容式触摸屏的原理
1、人体电流感应
利用人体电流感应现象,在手指和屏幕之间形成一个电容,手指触摸时吸走一个微小电流,这个电流会导致触摸板上4个电极上发生电流流动,控制器通过计算这4个电流的比例就能算出触摸点的坐标(这个计算过程中涉及到AD转换)。
2、专用电路计算坐标(硬件接口)
(1)电阻式触摸屏传感器本身原理很简单,坐标的计算也是很简单的事,所以可以通过SoC的电阻式触摸屏控制器直接与触摸板传感器相连接,由Soc内部的控制器来完成坐标的计算和AD转换是没有问题的,对于SoC本身来说并不是一个太大的负担。但是电容式触摸屏不同,电容式触摸屏需要自带一个IC进行坐标计算因此电容式触摸屏工作时不需要主机SoC控制器参与。所以电容式触摸屏的这种接口其实就是上面说的电阻式的第二种硬件接口,而且电容式触摸屏目前只能实现为第二种接口。
(2)为什么这样设计?主要原因是因为电容式触摸屏传感器的坐标计算太复杂,普通程序员无法写出合适的代码解决这个问题,因此在电容式触摸屏中除了触摸板之外还附加了一个IC进行专门的坐标点计算和统计。这个IC全权负责操控触摸板得到触摸操作信息,然后再通过数字接口(一般是I2C)和主机SoC进行通信。
3、多个区块支持多点触摸
(1)电阻触摸屏不支持多点触摸,这是它本身的原理所限制,无法改变无法提升。
(2)电容式触摸屏可以支持多点触摸(也可以单点触摸)。按照之前讲的电容式触摸屏的原理,单个电容式触摸屏面板也无法支持多点触摸,但是可以将一个大的触摸面板分成多个小的区块,每个区块相当于是一个独立的小的电容式触摸屏面板。
(3)多个区块支持多点触摸让电容触摸屏坐标计算变复杂了,但是这个复杂性被电容触摸IC吸收了,还是通过数字接口和主机SoC通信报告触摸信息(触摸点数、每个触摸点的坐标等)。
4、对外提供I2C的访问接口
(1)整个电容触摸屏包含2部分:触摸板传感器和电容触摸IC。触摸板传感器就是一个物理器件,电容触摸IC一般做到触摸屏的软排线(FPC,例如下图中软排线上的那颗芯片)上面,电容触摸IC负责操控触摸板、通过AD转换和分析得到触摸点个数、触摸坐标等信息,然后以特定的数字接口与SoC通信。这个数字接口就是I2C。
(2)对于我们主机SoC来说,电容式触摸屏其实就是一个I2C从设备。主机只需要通过I2C总线对这个从设备进行访问即可(从设备有自己特定的从设备地址)。从这里来讲,其实电容式触摸屏和其他的传感器(gsensor等)并没有任何区别。
参考:《朱老师嵌入式Linux开发\1.ARM裸机全集\1.15.ARM裸机第十五部分-触摸屏TouchScreen》