ARM裸机-23(触摸屏TouchScreen)

1、输入类设备简介

1.1、input/output

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

1.2、常见输入类设备

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

1.3、触摸屏的特点

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

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

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

1.4、触摸屏的分类

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

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

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

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

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

2、电阻式触摸屏的原理

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

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

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

2.2、ITO (导电+透明+均匀压隆)

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

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

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

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

2.3、X/Y轴分时AD转换

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

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

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

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

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

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

3、S5PV210的电阻摸屏控制器

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

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

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

3.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.3、中断参与

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

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

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

3 .4、主要寄存器

4、电容触摸屏的原理

4.1、人体电流感应

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

4.2、专用电路计算坐标

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

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

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

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

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

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

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

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

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

5、ft5x06电容触摸IC简介

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

(1)耐久性 电容式触摸屏不容易坏,电阻式触摸屏易坏

(2)抗扰性 电容式触摸屏差一些,电阻式触摸屏要好一些

(3)精准度 电容式触摸屏差一些,电阻式触摸屏好一些

(4)用户体验 电容式触摸屏要好一些,电阻式触摸屏要差一些

(5)价格 电容式触摸屏贵一些,电阻式触摸屏便宜很多

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

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

5.3、触摸屏的发展方向

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

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

5.3、ft5x06的数据手册浏览

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

相关推荐
丁总学Java3 小时前
ARM 架构(Advanced RISC Machine)精简指令集计算机(Reduced Instruction Set Computer)
arm开发·架构
韦德斯1 天前
嵌入式Linux的RTC读写操作应用
linux·运维·c语言·arm开发·实时音视频
byte轻骑兵1 天前
嵌入式 ARM Linux 系统构成全解:从硬件到应用层层剖析
linux·arm开发·arm·嵌入式开发
思尔芯S2C1 天前
面向未来的智能视觉参考设计与汽车架构,思尔芯提供基于Arm技术的创新方案
arm开发·架构·汽车·iot·fpga原型验证·prototyping·智慧视觉
Eternal-Student2 天前
【docker了解】如何将x86镜像转换为适用于Jetson的ARM镜像
arm开发·docker·容器
不怕犯错,就怕不做2 天前
修复kernel编译栈帧大小异常问题error: the frame size of 1928 bytes is larger than 1024 bytes
linux·arm开发·驱动开发
憧憬一下4 天前
UART硬件介绍
arm开发·嵌入式硬件·串口·嵌入式·linux驱动开发
Petal9909124 天前
UEFI学习笔记(十八):ARM电源管理之PSCI和SCMI概述
arm开发·笔记·学习·uefi
古月居GYH4 天前
一文了解ARM内部架构
arm开发·架构
白书宇4 天前
13.100ASK_T113-PRO RTC实验
linux·arm开发·驱动开发·嵌入式硬件·物联网·硬件工程