以下内容源于朱有鹏嵌入式课程的学习与整理,如有其侵权请告知删除。
一、输入类设备简介
1、input/output
输入输出,是计算机系统中的一个概念。计算机可以看作数据处理器。计算机的主要功能就是从外部获取数据,然后进行计算加工得到输出数据,最后输出给外部。计算机通过IO和外部交互。每一台计算机都有标准输入和标准输出。
2、常见输入类设备
键盘、鼠标、触摸屏、游戏摇杆、传感器。
3、触摸屏的特点
触摸屏和人的关系很紧密,尤其是电容式触摸屏。
触摸屏和显示器关系很紧密。
典型应用:手机、平板电脑、收银机、工业领域。
4、触摸屏的分类
常见的触摸屏分为2种:电阻式触摸屏、电容式触摸屏。
早期用电阻式触摸屏,后来发明了电容式触摸屏。
这两种的特性不同、接口不同、编程方法不同、原理不同。
5、触摸屏vs显示屏
触摸屏是用来响应触摸事件的,而显示屏是用来显示的(现在的显示屏一般都是LCD)
很多人会搞混触摸屏和显示屏这两个概念,因为它们一般是做在一起的。比如手机屏幕的外面层是触摸屏,内层是显示屏。平时我们看到的图像,是显示屏透过触摸屏之后让人看到的。
把电容触摸屏和LCD做在一起,可以做到更薄、更透明、价格更低,但是抗干扰性要求更高。
二、电阻式触摸屏的原理
1、双面板结构
电阻式触摸屏由两个面板组成:塑料材质的前面板、玻璃材质的后面板。
后面板硬度很高,不会弯曲;前面板硬度稍弱,可以被硬物按下弯曲。平时前面板和后面板没有贴在一起,但在外力作用下,前面板发生局部区域形变,在这局部区域内前后面板就会挨在一起。
2、使用ITO材料
ITO是一种涂料,其特点就是透明、导电、均匀涂抹。
本来玻璃和塑料都是不导电的,但是涂上ITO之后就变成导电了,同时还保持着原来透明的特性。
ITO不但导电而且有电阻,当两个面板中间两面均匀涂抹了ITO之后,如果触摸屏按下去(假定接触点坐标为(x,y)),那么就相当于在原点(0,0)和(0,y)之间接了一个电阻,在原点(0,0)和(x,0)之间接了一个电阻。因为ITO形成的等效电阻在整个面板上是均匀分布的,所以某个接触点x轴方向上的电压值以及y轴方向上的电压值,和它的位置值(x,y)成正比。
当触摸屏按下之后,接触点处会有一个电压(包括X轴与Y轴的电压),而这个电压可以通过AD转换得到,我们经过换算可以得到这个接触点的位置信息。这就是整个电阻式触摸屏的工作原理。
3、X/Y轴分时AD转换
那如何得到接触点的电压(包括X轴与Y轴的电压)呢?
在第一个面板的一对电极上加电压,然后在第二个面板的一个电极和第一个面板的地之间去测量。在没有按下时测试无结果,有人按下时在按下的那一点2个面板会接触,接触会导致第二个面板整体的电压值和接触处的电压值相等,所以此时测量到的电压就是接触处在第一个面板上的电压值。
以上过程在一个方向进行一次即可测得该方向的坐标值,进行完之后撤掉电压然后在另一个方向的电极上加电压,故伎重施,即可得到另一个方向的坐标。至此一次触摸事件结束。
4、电压值对应坐标值(校准)
电压值和坐标值是成正比的,所以需要校准。校准就是去计算(0, 0)这个坐标点的电压值是多少。
5、不支持多点触摸
由“X/Y轴分时AD转换”可知,接触点的电压是通过测量第二个面板的电压值得到的。由于第二个面板某一个时刻只能有一个电压,换句话说,就算有多个接触点也只能得到一个电压值,所以电阻式触摸屏不支持多触摸。
三、S5PV210的电阻触摸屏控制器
1、ADC/触摸屏控制器的框图
如下图所示,因为电阻式触摸屏工作时依赖于AD转换,所以在S5PV210中,将电阻触摸屏的接口和 ADC接口合二为一,或者说电阻触摸屏接口复用了ADC的接口(所谓的接口,也就是相关的寄存器的集合;所谓的复用,也就是通过这些寄存器相关bit来区分两者)。
S5PV210一共支持10路模拟输入,也就是说S5PV210有10个模拟输入引脚,分别为AIN0-AIN9。
其中 AIN0 和 AIN1 这两个模拟输入引脚,只用来作为 ADC 的模拟输入引脚,没有其他功能。
而 AIN2 ~ AIN9 除了可以作为 ADC 的模拟输入引脚,还可以支持2个电阻式触摸屏(每4个模拟输入引脚负责一个电阻式触摸屏)。
ADC/触摸屏控制器有2个附属单元,其中一个是反向控制AINn引脚的逻辑,主要作用是在触摸屏获取坐标的过程中分时给XY方向供电和测量;另外一个是中断产生部件,如果AD转换完成(主要针对 AIN0 和 AIN1这两路)或者触摸屏被人按下/弹起时,中断产生部件会产生一个中断通知CPU来处理事件。
2、ADC的2种工作模式
ADC有2种工作模式:正常操作模式、分时X/Y位置转换模式。
正常操作模式下,ADC(的模拟输入引脚)用于普通AD转换,转换得到的值放在TSDATn寄存器中。分时X/Y位置转换模式下,ADC(的模拟输入引脚)用于检测电阻式触摸屏是否发生触摸事件并获取触摸点的坐标),获取的坐标信息(x,y)分别放在TSDATX和TSDATY中。
对于 AIN0 和 AIN1这两个模拟输入引脚(或者说通道)来说,它们没有被复用,只用于AD转换。
对于 AIN2~AIN9 这8个模拟输入引脚(或者说通道)来说,因为它们被复用,所以有2种工作模式。如果我们想将这几个模拟输入引脚,用作AD转换则配置为正常操作模式;如果想将这几个模拟输入引脚,用作电阻式触摸屏检测,则配置成分时X/Y位置转换模式。
3、中断参与
普通AD转换如果不要中断,则可以使用轮询的方法:启动转换开关,然后不断查询标志位,直到AD转换完硬件自动置位标志位后,我们读取转换值就不会错。当然也可以使用中断,控制器提供了一个相应的中断给普通AD转换。
触摸屏可以用或者不用中断。对于SoC来说,什么时候按下或者弹起触摸屏,这是未知的,因此触摸屏的按下/弹起对SoC来说是异步事件。对于这种情况SOC只有2种解决方案:轮询和中断。
4、主要寄存器
待写。
四、电容触摸屏的原理
1、人体电流感应
利用人体电流感应现象,在手指和屏幕之间形成一个电容,手指触摸时吸走一个微小电流,这个电流会导致触摸板上4个电极上发生电流流动,控制器通过计算这4个电流的比例就能算出触摸点的坐标(这个计算过程中涉及到AD转换)。
2、专用电路计算坐标
电阻式触摸屏是一个完全被动的器件,里面没有任何IC电路,它的工作逻辑完全在SoC控制器上。
但是电容式触摸屏不同,电容式触摸屏除了触摸板,还需要自带一个IC电路(我们叫它电容触摸IC电路)进行坐标计算,因此电容式触摸屏工作时不需要主机SoC控制器参与。
为什么要这样设计?主要是因为电容式触摸屏的坐标计算太复杂了,普通程序员无法写出合适的代码来解决这个问题,因此在电容式触摸屏中除了触摸板之外还附加了一个IC电路进行专门的坐标点计算和统计。这个IC电路全权负责操控触摸板得到触摸操作信息,然后再通过数字接口和主机SoC进行通信。
3、多个区块以支持多点触摸
电阻触摸屏不支持多点触摸,这是它本身的原理所限制,无法改变无法提升。
电容式触摸屏可以支持多点触摸。按照之前讲的电容式触摸屏的原理,单个电容式触摸屏面板也无法支持多点触摸,但是可以将一个大的触摸面板分成多个小的区块,每个区块相当于是一个独立的小的电容式触摸屏面板。
多个区块支持多点触摸让电容触摸屏坐标计算变得复杂,但这个复杂性被电容触摸IC电路吸收了,最终还是通过数字接口和主机SoC通信报告触摸信息(触摸点数、每个触摸点的坐标等)。
4、对外提供I2C的访问接口
整个电容触摸屏包含2部分:触摸板和电容触摸IC。触摸板就是一个物理器件;电容触摸IC一般做到触摸屏的软排线上面,负责操控触摸板、通过AD转换和分析得到触摸点的个数、触摸坐标等信息,然后以特定的数字接口与SoC通信。这个数字接口就是I2C。
对于我们主机SoC来说,电容式触摸屏其实就是一个I2C从设备。主机只需要通过I2C总线对这个从设备进行访问即可(从设备有自己特定的从设备地址)。从这个角度来讲,电容式触摸屏和其他的传感器(比如gsensor)并没有任何区别。
五、ft5x06电容触摸IC简介
相关资料见链接,包括以下内容:
本节课简单介绍了ft5x06这款常用的电容触摸IC,主要讲了它的工作模式、I2C接口、寄存器、触摸事件等,试图让大家对电容触摸屏进一步有所理解。
软件工程师并不关心触摸屏的工艺问题,只关心软件编程接口(物理层是I2C,软件层是寄存器)。
六、电阻式触摸屏 vs 电容式触摸屏
以下表格是两者的特点对比:
电容式触摸屏 | 电阻式触摸屏 | |
耐久性 | 好一些 | 差一些 |
抗干扰性 | 差一些 | 好一些 |
精准度 | 差一些 | 好一些 |
用户体验 | 好一些 | 差一些 |
价格 | 贵一些 | 便宜许多 |
从上面可以看出,电容式触摸屏的用户体验好一些,所以消费电子产品,如手机、平板等,都是用电容式触摸屏。但是抗干扰性能方面,电阻式触摸屏比电容性触摸屏好,所以在工业领域都是用电阻式触摸屏,就是因为工业领域环境比较恶劣,电容式触摸屏容易受干扰,所以不合适。
未来触摸屏将往更薄、更透明、更精准、支持点数更多方向发展。