7.9.1. 模块介绍

7.9.1.1. 术语定义

术语

定义

注释说明

ADC

Analog Digital Converter

模拟数字转换器

ADCIM

ADC Interface Management

ADC接口管理模块

RTP

Resistance Touch Panel

电阻触摸屏

7.9.1.2. 模块简介

RTP模块特性:
  • 支持4线RTP,即X+、X-、Y+、Y-

  • 支持压力感应

  • 支持最多2点触摸

  • 支持采样滤波,滤波参数可配置

  • 支持触摸检测中断

  • FIFO深度16

RTP需要依赖ADCIM模块(统一管理硬件通路和处理信号校准),其关系如图:

../../../_images/hw_system2.png

图 7.38 RTP和ADCIM的逻辑关系图

对于一次RTP的点击动作,会有4个相关的采样点:X+、X-、Y+、Y-(详见下文), 这些采样点的选择和控制方式可以有不同的组合,分为两大类采样模式:

手动模式

手动去配置硬件4个采样点的电路信号,来组合得到XN、YN、ZA、ZB等采样数据。

自动模式

自动模式意味着硬件自动配置电路,直接输出XN、YN、ZA、ZB等采样结果。 在自动模式中,根据采样数据是否连续进行又分为:

  • Period sample:周期采样,硬件会按照配置的周期自动采集和上报数据

  • Single sample:为避免和“单个采样点”混淆,称作 非周期采样,由软件触发完成一次采样

7.9.1.3. 工作原理

7.9.1.3.1. 硬件结构原理

下图是RTP硬件结构的一个侧面剖视图:

../../../_images/hw_structure.png

图 7.39 RTP硬件结构图

  • 表面硬图层:手指触摸的表面是一个硬涂层,用以保护下面的PET层。

  • PET层:很薄、有弹性,当表面被触摸时它会向下弯曲,并使得下面的两层ITO涂层能够相互接触并在该点连通电路。

  • ITO陶瓷层:两个ITO层之间是约千分之一英寸厚的一些隔离支点使两层分开。

  • 玻璃底层:最下面是一个透明的硬底层用来支撑上面的结构,通常也可以用塑料。

RTP的多层结构会导致很大的光损失,对于手持设备通常需要加大背光源来弥补透光性不好的问题, 必然会增加电池的消耗。

RTP的优点是它的屏和控制系统都比较便宜。

7.9.1.3.2. 坐标计算

ITO陶瓷层分为上下两层:
  • X层和Y层,中间用隔离支点分开,当有触摸按下,就触摸点的X层、Y层就会导通。

  • 当没有触摸按下时,X层和Y层是分离的,此时就测不到电压。

X层上X-到X+和Y-到Y+的电阻是均匀分布的,其电路等效图如下:

../../../_images/xy_layer.png

图 7.40 RTP的X层、Y层等效电路

  1. 计算X坐标:在X+电极施加驱动电压V, X-电极接地,Y+做为引出端测量得到接触点的电压。

../../../_images/x_coordinate.png

图 7.41 计算X坐标的关系图

由于ITO层均匀导电,触点电压与Vdrive电压之比等于触点X坐标与屏宽度之比。

x = (Vy/Vdrv) * width
  1. 计算Y坐标:在Y+电极施加驱动电压V,Y-接地,芯片通过X+测量接触点的电压。

../../../_images/y_coordinate.png

图 7.42 计算Y坐标的关系图

由于ITO层均匀导电,触点电压与V电压之比等于触点Y坐标与屏高度之比。

y/height = Vx/Vdrv
y = (Vx/Vdrv) * height

7.9.1.3.3. 坐标采样

基于以上原理,对X+、X-、Y+、Y-加不同的电信号,拉低、还是拉高,会得到多种组合, 常用的组合命名为:XN、XP、YN、YP、ZA、ZB、ZC、ZD,具体电信号定义见spec。 可以简单理解为:X*、Y*都是和位置有关的数据,Z*是和压感有关的数据。

7.9.1.3.4. 坐标校准

触摸屏和LCD屏需要合在一起使用,LCD屏中运行的GUI需要知道的是一个转换后的坐标, 这个坐标值需要是在LCD屏分辨率的范围内。所以需要一个触摸屏坐标到LCD坐标之间的线性转换,通用公式如下:

../../../_images/coordinate_adjustment.png

其中s是RTP的ADC分辨率,12bit的话就是4096(即RTP采样得到的数据范围是0~4095)。

校准过程的操作方法

在屏幕4个角落分别点击,就可以测到4组LCD坐标值和触摸屏触摸屏坐标值,从而可以列出8个等式, 求解出a、b、c、d、e、f的值。

小技巧

开源tslib库附带的ts_calibrate工具,提供了5点校准的处理。

7.9.1.3.5. 压感计算

当打开压感数据后,便于根据压力数据来过滤掉一些抖动的点。 尤其在触摸时抬起的瞬间会大概率产生压力很小的采样数据,这样的数据会存在较大误差,可以根据压力将其过滤掉。

可以通过两个公式来计算压力数据:(Z1、Z2对应上述的ZA、ZB数据)

公式1:

../../../_images/pressure_formula1.png

公式2:

../../../_images/pressure_formula2.png

两个公式的计算结果有一点误差,10%以内。 其中两个参数x-plate和y-plate需要用户根据屏幕实测的电阻值来配置DTS, 可以看到两个公式使用上的差别在于公式1只需要一个x-plate,公式2需要x-plate和y-plate。