18、TSP报点率优化:报点率概念、提高报点率的方法、帧同步

各位同学,今天我们来聊聊触摸屏里一个非常核心的性能指标——报点率

说实话,我刚开始做驱动那会儿,对报点率这个概念理解得比较浅。总觉得“能报点就行呗”。直到有一次,我在一个游戏手机上做调试,用户反馈“滑动时感觉有延迟,跟不上手指”。我查了半天,最后发现就是报点率没达标。嗯,从那以后,我再也不敢小看这个参数了。

一、什么是报点率?

报点率,英文叫 Report Rate,单位是 Hz。它指的是触摸屏每秒向主机(AP)上报触摸点数据的次数。

举个例子:

  • 报点率 120Hz:每秒上报 120 次,约 8.3ms 一次
  • 报点率 240Hz:每秒上报 240 次,约 4.1ms 一次
  • 报点率 360Hz:每秒上报 360 次,约 2.7ms 一次

说白了,报点率越高,手指移动时上报的位置就越密集,滑动轨迹就越平滑。你想想看,如果报点率只有 60Hz,手指快速划过屏幕,中间可能就丢了十几个点,画出来的线就会“断断续续”。

核心公式:

报点间隔 (ms) = 1000 / 报点率 (Hz)

例如:120Hz → 8.3ms,240Hz → 4.1ms

我在项目中遇到过,有些厂商的触控 IC 默认配置只有 60Hz。用户一玩游戏就抱怨“不跟手”。其实不是硬件不行,是驱动里没把报点率调上去。

二、提高报点率的方法

提高报点率,不是简单地在驱动里改个数字就行的。它涉及硬件、固件、驱动三层配合。我给大家梳理一下常见的优化手段。

2.1 硬件层面:缩短扫描周期

触摸屏的报点,本质上是 IC 不断扫描电容矩阵、计算坐标的过程。扫描周期越短,报点率就越高。

  • 减少扫描行数:比如原来扫 20 行,现在只扫 15 行。但会降低精度,需要权衡。
  • 提高 ADC 采样率:IC 内部的模数转换器跑得更快,扫描时间就缩短了。
  • 使用差分扫描:只扫描变化区域,不扫描静止区域。这个在低功耗场景很常见。

我记得有一次,某款 IC 的扫描周期是 12ms,算下来报点率只有 83Hz。后来我们和 IC 原厂沟通,把扫描模式从“全屏扫描”改成“局部扫描”,周期降到了 6ms,报点率直接翻倍到 166Hz。

2.2 固件层面:优化数据处理流程

IC 扫描完原始数据后,还要做滤波、去抖、坐标计算。这些处理步骤如果太慢,也会拖累报点率。

  • 简化滤波算法:比如用一阶低通滤波代替高阶滤波,减少计算量。
  • 减少去抖次数:去抖是为了防误触,但去抖次数太多会引入延迟。我建议在游戏模式下关闭去抖。
  • 使用查表法:坐标计算中的三角函数、开方运算,提前算好存成表格,运行时直接查表。

避坑指南:

我曾经在某个项目里,为了追求高报点率,把固件里的滤波全关了。结果报点率是上去了,但噪声也上去了,手指静止时坐标乱跳。后来我加了一个“动态滤波”策略:快速滑动时用轻滤波,静止时用重滤波。效果很好。

2.3 驱动层面:减少中断与传输开销

IC 算好坐标后,通过 I2C 或 SPI 总线传给 AP。这个传输过程如果太慢,也会成为瓶颈。

  • 使用 DMA 传输:代替 CPU 轮询,减少 CPU 占用。
  • 批量上报:一次中断上报多个点,而不是报一个点就中断一次。
  • 提高 I2C/SPI 时钟频率:比如从 400kHz 提到 1MHz,传输时间直接减半。

嗯,这里要注意:提高总线频率可能会引入信号完整性问题。我建议在量产前做一下眼图测试,确保波形没问题。

三、帧同步

帧同步,英文叫 Frame Sync。这个概念很多初学者容易忽略,但它对报点率的实际体验影响非常大。

3.1 为什么要做帧同步?

你想想看,手机屏幕的刷新率是 60Hz、90Hz 或 120Hz。触摸屏的报点率也是 120Hz、240Hz。如果两者不同步,会出现什么情况?

举个例子:

  • 屏幕在 16.6ms 时刷新一帧
  • 触摸屏在 8.3ms 时上报一个点
  • 这个点上报后,AP 可能等到下一个 VSync 信号才去读取
  • 结果就是:触摸数据虽然采集到了,但显示出来晚了半个周期

说白了,就是“触摸延迟”变大了。用户感觉“我手指动了,但画面没跟上”。

3.2 帧同步的实现方式

帧同步的核心思路是:让触摸屏的上报时刻,对齐到屏幕的 VSync 信号上。

  • 硬件同步:IC 直接接收 AP 的 VSync 信号,在 VSync 到来时触发扫描和上报。
  • 软件同步:驱动里注册 VSync 回调,在回调中读取触摸数据。
  • 半同步:IC 以固定频率扫描,但驱动在 VSync 中断中才去取数据。

我个人的习惯:

在游戏手机这类对延迟敏感的产品上,我倾向于用硬件同步。因为软件同步会有调度延迟,不够稳定。而在普通手机上,软件同步就够用了,成本更低。

3.3 帧同步的典型配置

场景 屏幕刷新率 报点率 同步方式
普通办公 60Hz 120Hz 软件同步
视频播放 90Hz 180Hz 软件同步
游戏模式 120Hz 240Hz 硬件同步
专业电竞 144Hz 360Hz 硬件同步

我曾经在调试一个 144Hz 屏幕时,发现报点率虽然到了 360Hz,但用户还是觉得“有点肉”。后来用示波器抓了 VSync 和触摸中断的时序,发现两者相位差很大。做了硬件同步后,延迟直接降了 3ms。用户反馈“终于跟手了”。

四、知识体系总览

下面这张图,我把报点率优化的核心逻辑画出来了。大家可以对照着理解。

TSP报点率优化知识体系 报点率优化 硬件层面 固件层面 驱动层面 缩短扫描周期 提高ADC采样率 差分扫描 简化滤波算法 减少去抖次数 查表法计算坐标 DMA传输 批量上报 提高总线频率 帧同步(Frame Sync) 硬件同步 软件同步 半同步 VSync对齐

重要提醒:

报点率不是越高越好。过高的报点率会带来功耗增加、CPU占用上升、发热等问题。我建议根据产品定位来定:

  • 普通手机:120Hz 足够
  • 游戏手机:240Hz 起步
  • 专业电竞:360Hz 或更高

另外,帧同步一定要做。不做帧同步,再高的报点率也是白搭,用户感知到的延迟并不会降低。

好了,关于报点率优化,今天就聊到这里。核心就三件事:硬件扫得快、固件算得快、驱动传得快,最后用帧同步把节奏对齐。你想想看,是不是这个理?


公众号:蓝海资料掘金营,微信deep3321