触控芯片(TP-IC)的 DRV 和 SENS 信号是其实现电容检测最核心的两个通道。
-
DRV : 驱动信号发射端 ,是触控屏的"声音源"。
-
SENS : 感应信号接收端 ,是触控屏的"麦克风"。
它们共同构成了一个检测电容变化的系统,下面我们进行详细解析。
一、基础原理:投射式电容触控
现代触控屏(手机、平板等)基本都是投射式电容屏 。它的结构可以想象成一层密密麻麻、不可见的"键盘",但这个键盘的按键是由无数个微小的电容组成的。
-
驱动通道 和 感应通道 的电极在屏幕的玻璃盖板下方交叉排列,形成一个个交叉点 ,每个交叉点都产生一个微小的寄生电容。
-
当你的手指(一个导体)靠近时,会改变这个交叉点处的电场,从而改变这个电容的值。
-
触控芯片的任务就是持续不断地扫描所有这些交叉点的电容,并找出哪些点的电容发生了变化,从而计算出触摸点的坐标。
二、详细解析 DRV 和 SENS 信号
1. DRV - 驱动信号
-
全称: Drive, Driver, TX
-
功能 : 主动发出 一个特定波形(通常是方波或正弦波)的 electrical signal。
-
工作方式:
-
你可以把 DRV 通道想象成一条条"发射线"。
-
触控芯片会按顺序、一条一条地激活这些 DRV 通道,给它们发送驱动脉冲。
-
当一条 DRV 线被激活时,它周围的电场就会建立起来,并耦合到与之交叉的 SENS 线上。
-
2. SENS - 感应信号
-
全称: Sense, Sensor, RX
-
功能 : 被动接收 从 DRV 通道耦合过来的信号。
-
工作方式:
-
你可以把 SENS 通道想象成一条条"接收线"。
-
所有 SENS 通道都时刻保持"监听"状态。
-
当某条 DRV 线被驱动时,所有与它交叉的 SENS 线都会接收到一个信号,这个信号的强度与它们交叉点处的电容值直接相关。
-
三、协同工作流程:如何检测触摸
我们用一个简单的 2x2 矩阵为例,来说明 DRV 和 SENS 是如何协同工作的:
-
初始状态:
- 芯片内部存储着所有交叉点(C11, C12, C21, C22)在无触摸时的基准电容值。
-
扫描阶段:
-
第一步 : 芯片激活 DRV1,发出一个脉冲。
-
SENS1 读取到的信号,反映了电容 C11 的值。
-
SENS2 读取到的信号,反映了电容 C12 的值。
-
-
第二步 : 芯片切换到 DRV2,发出一个脉冲。
-
SENS1 读取到的信号,反映了电容 C21 的值。
-
SENS2 读取到的信号,反映了电容 C22 的值。
-
-
这样,一次完整的扫描就完成了,芯片得到了当前整个触控屏的"电容地图"。
-
-
数据处理:
-
芯片将这次扫描得到的"电容地图"与存储的"基准电容地图"进行对比。
-
如果发现某个交叉点(例如 C11)的电容值发生了显著变化(增大了),芯片就判定该位置发生了触摸。
-
通过分析多个点的变化,芯片甚至可以计算出多点触摸的坐标、面积,并识别手势。
-
四、硬件设计与布局的重要性
DRV 和 SENS 信号是高阻抗、模拟、微弱的信号,非常容易受到干扰。因此,在PCB设计(FPC软板或硬板)中,它们的布线至关重要:
-
等长等宽: 同一组的DRV线或SENS线应尽可能保持相同的长度和宽度,以保证信号时序和特性一致。
-
屏蔽与隔离:
-
DRV和SENS线之间需要保持足够的间距,或用地线进行隔离,以减少它们之间的串扰。
-
它们应远离噪声源,如LCD的显示信号、电源线等。
-
-
走线方式 : 通常采用 蛇形走线 来保证等长,但转弯处应使用钝角或圆弧。
-
阻抗控制: 对于高频驱动信号,控制走线的特征阻抗有助于保证信号完整性。
一个常见的干扰现象:如果DRV/SENS线受到LCD噪声干扰,触控屏在刷新显示时可能会出现"跳点"、"划线不流畅"或"幽灵触摸"等问题。
触控屏在显示刷新时出现"跳点"、"划线不流畅"或"幽灵触摸"等问题,几乎可以肯定是由LCD的显示噪声耦合到了触控传感器导致的。
要系统性地解决这个问题,需要从 噪声源(LCD)、传播路径 和 受害端(TP) 三个方面入手。下面是一个详细的排查和改善指南。
问题根源:显示噪声如何干扰触控?
LCD显示屏在工作时:
-
公共电极 上会有一个高频跳变的电压。
-
源极驱动器 在给像素充电时会产生巨大的电流瞬变。
这些都会产生强烈的交变电场 和传导噪声。当触控传感器进行高灵敏度检测时,这些噪声会耦合进来,被误认为是手指的触摸信号。
系统性解决方案
一、 硬件改进
这是最根本、最有效的方法,尤其是在设计阶段。
-
增加屏蔽层
-
方法 :在LCD显示模组和触控传感器之间增加一个透明的ITO屏蔽层 。这个屏蔽层需要被良好地接到系统的静地上。
-
原理:这相当于在噪声源和受害者之间建立了一个"法拉第笼",可以极大地削弱电场耦合噪声。这是目前中高端设备最常用的方法。
-
-
优化FPC和PCB布局
-
电源滤波 :在触控IC的电源引脚附近放置足够多的、性能良好的去耦电容。通常建议使用一个较大容值的储能电容和一个小容值的高频滤波电容并联。
-
信号保护:
-
对DRV和SENS走线进行包地处理,即用地线包围敏感的触控信号线。
-
确保DRV/SENS走线远离LCD的排线、背光电源线和其它高速数字信号线。
-
-
接地:确保整个系统有一个完整、干净的"静地",避免数字地噪声串入模拟地。
-
-
使用性能更好的触控IC
-
选择具有更强驱动能力 和更高信噪比的触控芯片。更强的驱动能力意味着DRV信号本身更"强壮",不易被噪声淹没。
-
现代高级触控IC内置了针对显示噪声的硬件滤波电路 和智能算法。
-
二、 软件/固件优化
如果硬件已经固定,软件调试是成本最低且非常有效的改善手段。
-
调整触控扫描频率
-
原理:LCD的噪声有其固定的频率(如60Hz刷新率及其谐波)。触控扫描频率如果与这些噪声频率相同或接近,就会发生共振,导致干扰被放大。
-
方法:
-
在触控IC的驱动配置中,尝试修改触控报告的扫描频率。
-
通过微调,让触控扫描频率避开LCD的刷新频率及其主要谐波。例如,如果LCD是60Hz,可以尝试将触控频率设置为70Hz或80Hz。
-
-
-
启用和优化"显示噪声抑制"功能
-
现代触控IC的驱动中通常都有一个名为 "Display Noise Rejection" 或类似的功能。
-
方法:
-
同步 :让触控IC获取LCD的TE信号。TE信号是显示屏告诉主控"我正在开始刷新一帧"的同步信号。触控IC可以在LCD刷新的"安静间隙"进行采样,从而避开噪声最大的时刻。
-
动态滤波:当检测到与显示刷新同步的强噪声时,芯片可以动态地提高滤波阈值,或者丢弃该时间段内采集的异常数据。
-
-
-
优化滤波器参数
-
触控驱动通常提供一系列软件滤波器,可以调整其参数以平衡响应速度和抗噪能力:
-
均值/中值滤波器:可以有效滤除尖峰脉冲噪声。
-
IIR滤波器:可以平滑数据,但会引入微小延迟。可以调整其截止频率。
-
-
注意:过度滤波会导致触控响应变慢或划线不跟手,需要找到最佳平衡点。
-
-
更新固件
- 触控IC厂商会持续优化其算法。检查是否有更新的触控固件或驱动版本。
三、 系统整合优化
-
调整LCD自身参数
- 与显示屏供应商合作,尝试调整LCD的VCOM电压 、栅极开关时序等。优化这些参数可以一定程度上降低显示屏自身产生的噪声强度。但这需要面板厂的支持,难度较高。
-
改善机械结构
- 确保触控传感器、屏蔽层和LCD显示屏之间的光学胶填充均匀,没有气泡。空气间隙会形成电容,加剧电场耦合。
实践排查步骤总结
当遇到此类问题时,建议按照以下流程进行排查:
-
确认问题:用划线APP测试,确认问题是否与LCD显示特定内容(如纯白、灰色)或高刷新率时特别明显。
-
软件优先:
-
更新触控驱动和固件。
-
进入工程模式或联系驱动工程师,调整触控扫描频率,这是最快验证问题的方法。
-
开启并配置 "显示噪声同步" 功能。
-
-
硬件检查:
-
检查触控FPC的连接是否良好,接地是否可靠。
-
用示波器测量触控IC的电源,看是否存在明显纹波。如果有,加强电源滤波。
-
-
寻求供应商支持:
- 将问题现象和日志提供给触控IC供应商 和LCD模组供应商,他们通常有丰富的经验和专业工具进行联合调试。
总而言之,解决显示噪声干扰触控的问题是一个系统工程。最佳的方案是在设计初期就通过增加屏蔽层和优化布局来预防。对于已经量产或处于调试阶段的设备,则主要通过软件调整扫描频率和启用同步降噪功能来显著改善。
"断线" 和 "触控延时较长" 这两个问题。它们和之前的"跳点"问题根源不同,通常指向其他方面的原因。
另一个现象:断线或者触控延时
问题一:划线时"断线"
现象:在屏幕上快速、连续地划线时,线条出现中断、不连贯,变成一段一段的虚线或点。
核心原因 :触控芯片无法持续、快速地报告连续的坐标点。这好比一个传感器在高速运动时"丢帧"了。
主要原因及改善方案:
1. 报告率过低
-
是什么:报告率是指触控芯片每秒向主处理器上报坐标的次数,单位是Hz。例如,125Hz表示每秒报告125个坐标点。
-
为什么会导致断线:当你的手指移动速度很快时,如果报告率太低,两个连续上报的坐标点之间的物理距离就会很大,软件连接这些点画出的线自然就是断开的。
-
如何改善:
-
软件配置 :在触控驱动或固件中,将报告率调到更高档位,如 250Hz 或 500Hz 。这是解决断线问题最先尝试且最有效的方法。
-
硬件限制:报告率的上限受触控IC本身性能、I²C/SPI通信速度限制。如果IC最大只支持125Hz,软件无法无中生有。
-
2. 触控扫描频率/算法过于保守
-
是什么:触控芯片为了抗噪声,设置了较强的软件滤波器(如均值滤波、中值滤波)或降低了扫描频率。
-
为什么会导致断线:过强的滤波器会"平滑"掉快速、细微的移动,或者因为处理数据耗时更长,导致有效的数据点变少。
-
如何改善:
-
优化滤波器参数 :在触控配置中,适当降低滤波器的强度 或关闭某些非必要的滤波算法,但这可能会引入一些抖动,需要在流畅度和稳定性之间权衡。
-
确保"主动笔模式"开启:如果支持手写笔,确保在检测到笔时切换到更高报告率和更灵敏的算法模式。
-
3. 系统负载过高或总线拥堵
-
是什么:主处理器正在处理高负载任务,或者I²C/SPI总线上有其他设备在频繁通信。
-
为什么会导致断线:CPU没来得及处理触控中断,或者触控数据在总线上排队,导致数据上报被延迟或丢弃。
-
如何改善:
-
提升触控中断优先级:在驱动中设置触控中断为高优先级,确保它能被及时响应。
-
优化系统负载:排查是否有后台应用占用大量CPU资源。
-
4. 硬件问题
-
是什么:FPC连接器接触不良、触控传感器或IC本身有瑕疵。
-
为什么会导致断线:物理连接的不稳定会导致数据在传输过程中出现错误或丢失。
-
如何改善:
-
检查FPC连接器是否插紧、有无氧化或破损。
-
如果断线现象在屏幕的特定区域出现,可能是传感器该通道的灵敏度有问题。
-
"触控延时较长"
现象:从手指触摸屏幕,到系统做出反应(如图标高亮、开始划线)有明显的滞后感。
核心原因 :从触摸事件发生到最终在UI上呈现,整个处理链条中的任何一个环节出现延迟都会导致总延时变长。
主要原因及改善方案:
触控延时的构成可以用下图清晰地展示其全链路分析:
1. 触控IC本身延时
-
原因:IC扫描所有通道、计算坐标、执行滤波算法都需要时间。
-
改善:选择处理能力更强的触控IC。
2. 数据处理与上报延时
-
原因:
-
报告率低:如上所述,低报告率不仅导致断线,也直接增加延时。因为一个触摸事件需要等到下一个报告周期才能被上报。
-
通信速率慢:使用低速的I²C模式,或者SPI时钟配置过低。
-
-
改善:
-
提高报告率。
-
使用更快的通信模式:如果硬件支持,将I²C从标准模式切换到快速模式甚至高速模式;优化SPI时钟。
-
3. 系统软件栈延时
-
原因:这是Android系统中最常见的延时来源。
-
驱动效率:触控驱动程序本身代码效率低下。
-
系统负载:CPU繁忙,导致输入事件在从内核层传递到应用层的队列中等待。
-
VSYNC同步:为了显示流畅,Android的UI渲染与VSYNC信号同步。触控输入可能需要等待下一个VSYNC周期才能开始被处理,这可能会增加最多16ms(在60Hz下)的延迟。
-
-
改善:
-
优化驱动和固件。
-
降低整体系统负载。
-
提升显示刷新率:切换到90Hz或120Hz屏幕,不仅使动画更流畅,也减少了VSYNC等待时间,从而间接降低了触控延迟。
-
4. 应用与渲染延时
-
原因:应用程序本身响应慢,或者UI复杂,渲染一帧需要很长时间。
-
改善:优化应用代码和UI布局。
总结与排查步骤
对于断线和延时,可以遵循以下步骤排查:
-
确认问题模式:用专业的触控测试APP(如"Touch Screen Test")划线,看是随机断线还是特定区域断线。感受延迟是全局性的还是特定应用才有的。
-
检查并优化报告率 :这是首要步骤。联系触控IC供应商或驱动工程师,确认当前配置的报告率,并尝试提高到硬件允许的最大值。
-
检查通信总线:确认I²C/SPI的时钟配置是否合理,是否有其他设备在总线上造成拥堵。
-
调整滤波参数:在保证抗噪能力的前提下,适当降低滤波器强度,以换取更快的响应和更多的数据点。
-
更新固件/驱动:始终使用触控IC厂商提供的最新版本。
-
系统级排查:在纯净的系统环境下(无后台应用)测试,排除系统负载的影响。同时,尝试提高屏幕刷新率,观察延迟是否有改善。
-
硬件检查:如果以上均无效,最后考虑硬件故障的可能性,如FPC连接、传感器或IC本身的问题。
简单来说,断线更偏向于"数据不连续" ,而延时更偏向于"数据处理慢" ,但两者都深受 报告率 和 系统性能 的影响。