一.触摸屏概述
触摸屏作为一种新的输入设备,它是目前最简单、方便、自然的一种人机交互方式。
触摸屏又称为“触控屏”、“触控面板”,是一种可接收触头等输入讯号的感应式液晶显示装置;当接触了屏幕上的图形按钮时,屏幕上的触觉反馈系统可根据预先编程的程式驱动各种连结装置,可用以取代机械式的按钮面板,并借由液晶显示画面制造出生动的影音效果。
二.常见触摸屏分类
目前市面上主要有几种类型的触摸屏:电阻式,表面电容式和感应电容式触摸屏,表面声波式,红外式,以及弯曲波式、有源数字转换器式和光学成像式触摸屏。其中又可以为两类,一类需要ITO,比如前三种触摸屏,另一类的结构中不需要ITO, 比如后几种屏。目前市场上,使用ITO材料的电阻式触摸屏和电容式触摸屏应用最为广泛。
三.电阻式触摸屏
电阻式的触摸屏结构如下图,它主要由表面硬涂层、两个ITO层、间隔点以及玻璃底层构成,这些结构层都是透明的,整个触摸屏覆盖在液晶面板上,透过触摸屏可看到液晶面板。表面涂层起到保护作用,玻璃底层起承载的作用,而两个ITO层是触摸屏的关键结构(实际上是一种电阻导体),它们是涂有铟锡金属氧化物的导电层。两个ITO层之间使用间隔点使两层分开,当触摸屏表面受到压力时,表面弯曲使得上层ITO与下层ITO接触,在触点处连通电路。
简单来说就是,当屏幕有位置被按下时,相应位置的两层ITO层接触,也就是两个电阻导体并联起来了,从而导致电器特性的改变。
四.电容式触摸屏
与电阻式触摸屏不同,电容式触摸屏不需要通过压力使触点变形,再通过触点处电压值来检测坐标,它的基本原理和前面定时器章节中介绍的电容按键类似,都是利用充电时间检测电容大小,从而通过检测出电容值的变化来获知触摸信号。
电容屏的最上层是玻璃(不会像电阻屏那样形变),核心层部分也是由ITO材料构成的,这些导电材料在屏幕里构成了人眼看不见的静电网,静电网由多行X轴电极和多列Y轴电极构成,两个电极之间会形成电容。触摸屏工作时,X轴电极发出AC交流信号,而交流信号能穿过电容,即通过Y轴能感应出该信号,当交流电穿越时电容会有充放电过程,检测该充电时间可获知电容量。若手指触摸屏幕,会影响触摸点附近两个电极之间的耦合,从而改变两个电极之间的电容量,若检测到某电容的电容量发生了改变,即可获知该电容处有触摸动作。
五.触摸屏接口分类
当前市面上使用的触摸屏一般都使用了I2C
接口,当然也有UART、USB
等接口,同时支持多点触摸。
I2C
接口触摸屏:
首先,需要了解I2C
触摸屏的工作原理。I2C
触摸屏是一种通过I2C
接口连接到SoC
的输入设备,它的工作原理类似于普通的触摸屏。一般来言,I2C触摸屏
内部驱动板都会有一个触摸IC
,比如FT5426
;
- 此芯片一端连接触摸屏的模拟信号,对触摸动作采样然后
AD
转换; - 另一端通过
I2C
连接SoC
,即将AD
转换后的数据通过I2C
接口发给SoC
;
对于I2C
接口触摸屏来说:
-
所谓的触摸驱动本质上就是
I2C
设备驱动; -
触摸
IC
提供了中断信号引脚,当检测到触摸信息后就会触发中断,那么就要在中断处理程序里来读取触摸信息;得到的是触摸位置绝对信息以及触摸屏是否有按下;
USB
接口触摸屏:
首先,需要了解usb
触摸屏的工作原理。USB
触摸屏是一种通过USB
接口连接到SoC
的输入设备,它的工作原理类似于普通的触摸屏。一般来言,USB
触摸屏内部驱动板都会有一个USB
芯片;
- 此芯片一端连接触摸屏的模拟信号,对触摸动作采样然后AD转换;
- 另一端通过
USB
连接SoC
,即将AD
转换后的数据通过USB
接口发给SoC
;
在linux
内核中,USB HID transport layer
驱动程序实现了USB
接口的HID
设备,其中包括USB
接口的keyboards
(键盘)、mice
(鼠标)、joysticks
(摇杆)、graphic tablets
(绘图板)、触摸屏等其他的。具体来说,它会通过USB
总线获取来自触摸屏的数据,并将其转换为标准的输入事件(例如按键、鼠标移动等),然后将其传递给系统。
UART接口触摸屏:
串口触摸屏驱动主要是采用linux系统的input子系统功能,由于Android系统内置采用input输入系统,故串口触摸屏驱动在linux操作系统移植成功后,对android系统将不用任何修改,直接使用。
当然,在串口触摸屏驱动可以使用前,前提就要求底层的串口驱动已经写完而且可以正常工作,否则串口触摸屏驱动就无从谈起了。