有关测量向下触控硬件延迟的概述
延迟性是触控数字化器系统中所经历的时间延迟的衡量标准。 系统的固有延迟是触控设备最重要的参数之一,始终代表几个重要功能之间的权衡:噪声级别 (SNR)、灵敏度、功耗、抖动等。
延迟测量的起点是一个明确的标准;它是手指或触笔(执行器)在给定接触中第一次接触屏幕的时刻。 触摸硬件延迟的终点是主机操作系统 (,例如,Windows 8) 意识到来自 USB 设备的目标触摸数字化器 (的消息,此时,触摸数字化器的专用 USB 控制器上检测到批量中断请求;通常此请求指示传入的 HID 报告以及初始联系信息。) 对于所有实际用途,此终结点是相同的到 WndProc 终结点,此时主机应用程序首次意识到联系 (,例如,通过本机应用程序的WM_INPUT和WM_POINTER消息,或者通过 Microsoft Store 应用程序的 Windows::UI::Input::P ointerPoint 消息) 。
方法
此过程依赖于手指触控数字化器所产生的声波/机械波来测量此延迟。 值得注意的是,即使是最轻微的触控接触,也会在数字化器表面产生大量的声波/机械波,即便使用最简单的现成麦克风,也可以清晰明确地(即具有极高的信噪比,几乎为零的误报,几乎无漏报)检测到。
方法依赖于测试对象多次手动触摸触控屏。 这是因为延迟在本质上是概率性的,这是由于扫描功能具有固有的不确定性。 这使我们能够建立一个经验性的累积分布函数。 这个函数存在可预测的期望值,从而使估计整体测量的质量成为可能。 使用这些数据,可以提取分布的基本参数。
每次测量都相当简单:测试对象用手指触控数字化器,产生声波/机械波。 实际接触与波到达数字化器上的麦克风的那一刻之间的微小但可测量的延迟被记录下来。 然后,麦克风会检测到该波,并对其进行适当的放大和阈值处理,因此它被转换为逻辑 0 或 1 水平。 此逻辑值被馈入微控制器板(例如 AT90USBKEY2),它以低延迟 (~µs) 接受这个变化,并通过 USB HID 报告以最多 1ms 的延迟将其传输到受测设备(1ms 是 AT90USBKEY2 等全速 USB 设备的最小轮询周期)。
在主机(即受测设备)方面,预计会发生两个事件。 第一个是从微控制器板上接收到 HID 报告,表明发生了物理接触。 第二个是来自触控数字化器的 HID 报告。 两个报告之间的时间差代表触控延迟。
该测量存在两个不确定性;我们设计了一种方法来减少这两个不确定性。 第一个不确定性是实际接触和波到达麦克风的时间之间(更具体地说是实际接触和微控制器上接收到逻辑 1 的时间之间)存在时间延迟。 这可以通过在方法中添加一个额外的步骤来补偿 - 校准。 在开始测量延迟之前,测量波从数字化器上的最远位置传播到麦克风(微控制器)所需的时间。 此信息用于为以后的每个单独测量提供绝对误差估计。 在大多数情况下,这低于 2ms(取决于屏幕的大小和数字化器表面使用的材料)。
第二个不确定性是微控制器和主机计算机(受测设备)之间的 USB 通道所带来的延迟。 这可以通过为来自微控制器的每个 HID 报告引入一个 48 位时间戳来解决。 当在微控制器的输入端口上检测到逻辑 1 时,就会设置此时间戳(此事件与时间戳值生成之间存在 ~µs 的延迟)。 然后主机(受测计算机)和目标(微控制器)端的时钟可以同步,以产生最精确的结果。
这种方法可以完全自动化,并且是完全可重复的;可以使用机器人来诱导触控,无需人来参与。 相反,建议采用更简单的解决方案,依靠人类参与者和自然测量,设置过程也会更简单、更方便。 观察到的结果表明精度一致,这表明在设置的复杂性和测量的精度之间取得了平衡。
硬件要求
本节详细介绍了所需的硬件组件。 介绍了每件设备的用途,但这里没有提供实际的零件编号(本文后面会提供)。
麦克风 - 用于检测触控数字化器上的声波。 建议使用易于贴在触控屏上的小型扁平压电麦克风。
声波放大器 - 用于放大来自麦克风的信号。
阈值电路 - 用于区分触控声音与环境噪音。
位于至少两个输入端口上的微控制器板,具有 USB HID 功能和轮询功能(存在 ~µs 的延迟)。
校准电路 - 用于测量声波的传播,即发生触控与微控制器收到逻辑 1 之间的时间。
下一节将讨论触控延迟测量设置的实现。
详细说明
下图显示了用于执行测量的硬件设备。 盒子有三个孔:麦克风输入孔、校准金属板输入孔和微控制器微型 USB 输出孔。
下图显示了麦克风、声波放大器和阈值器的电路。 微控制器比较器可用于采用阈值。
麦克风的连接如下图所示。 请注意,此设置中使用了一个非常简单的现成麦克风,足以可靠且准确地区分了触碰声音和环境噪声。
校准板输入进入另一个孔,如下图所示。
使用的微控制器板是 AT90USBKEY2。
如方法中所述,此微控制器板用于检测阈值电路输出的变化,即逻辑 0 和 1(校准和金属板相同)。 当检测到幅度超过阈值的音频信号时,会检测到该变化,并针对每个此类事件向主机发送一次 HID 报告。 随着声波的振荡,将多次超过阈值;为了避免在每次超过阈值时发送更改事件,控制器逻辑必须在每次更改事件后的一段时间内忽略音频信号。 这个时间间隔应该足够长,以便最终结果是每次手指点击只产生一个更改事件。 超过 500ms 的持续时间通常是有效的。 或者,可以使用单稳态多谐振荡器,或者使用一个附加的逻辑电路,放置在音频放大器和 MCU 输入之后。 为了重复使用推荐的设置(固件 + 软件),必须将音频阈值电路的输出馈入输入引脚 C0,并将金属板电路的输出馈入输入 C1。 微控制器板和阈值电路应该共用接地(接地应该连接)。 下面两个图显示了引脚 C0 和 C1 以及接地的位置。
上图的红色矩形圈定区域(AT90USBKEY 板的端口 C)在下图中放大显示,其中引脚 C0、C1 和接地都有适当的标记。