タッチダウン ハードウェアの待機時間測定の概要
待機時間とは、タッチ デジタイザー システムで発生した遅延時間の測定値です。 システム固有の待機時間はタッチ デバイスの最も重要なパラメーターの 1 つであり、通常はノイズ レベル (SNR)、感度、電力消費量、ジッターなど、いくつかの重要な機能間のトレードオフを表します。
待機時間の測定の開始点は、適切に定義された標準的な地点、つまり指またはスタイラス (アクチュエータ) で、画面上の指定された接点に初めて触れた時点となります。 タッチダウン ハードウェア待機時間の終点は、ホスト オペレーティング システム (たとえば、Windows 8) がターゲット タッチ デジタイザーからのメッセージを認識する瞬間です (USB デバイスの場合、これはタッチ デジタイザー用の専用 USB コントローラーで一括割り込み要求が検出された瞬間です。通常、この要求は初期連絡先情報を含む受信 HID レポートを示します)。すべての実用的な目的で、このエンドポイントは WndProc エンドポイントと同じです。これは、ホスト アプリケーションが最初に連絡先を認識する瞬間です (たとえば、ネイティブ アプリケーションのWM_INPUTメッセージやWM_POINTER メッセージ、または Microsoft Store アプリケーションの Windows::UI::Input::P ointerPoint メッセージを介して)。
手法
この手順は、この待機時間を測定するために、指でデジタイザーをタッチすることで生成される音波および力学的波に依存します。 軽く接点に触れただけでもデジタイザーの表面に大きな音波/力学的波が生成されることに注意してください (つまり、SNR が極端に高く、事実上偽陽性も偽陰性もほぼゼロ)。最もシンプルな最新のマイクを使用しても、明確に検出される可能性があります。
手法は、何度もタッチ画面に手で触れる被験者に依存します。 これは、スキャン機能に固有の不確定要素により、待機時間が本質的に確率論的となるためです。 これにより、経験に基づいた累積分布関数を構築できます。 この関数では予想値を予測できるため、全体的な測定値の精度を推測することができます。 このデータを使用して、分布の基本パラメーターを抽出できます。
どの測定も、非常に簡単に実行されます。被験者が指でデジタイザーに触れると、音波/力学的波が作成されます。 実際の接点からその波形がデジタイザーのマイクに到達するまでの間のわずかな遅延時間が記録されます。 次に、この波形がマイクで検知され、適切に増幅し、しきい値が設定されます。これにより、論理 0 または 1 レベルに変換されます。 この論理値はマイクロコントローラー ボード (たとえば、AT90USBKEY2) に取り込まれます。このボードは、低待機時間 (μs 単位) でこの変更を受け入れ、USB HID レポートを介して最大で 1 ミリ秒の待機時間でテスト対象のデバイスに送信します (1 ミリ秒は、AT90USBKEY2 などの全速度の USB デバイスの最小ポーリング期間です)。
ホスト (つまり、テスト対象のデバイス) 側では、2 つのイベントが予測されます。 1 つ目は、マイクロコントローラー ボードからの HID レポートの受信です。これは、物理的な接点が発生したことを示します。 2 つ目は、タッチ デジタイザーからの HID レポートです。 2 つのレポート間の時間差が、タッチ ダウン待機時間を表します。
これらの測定には、2 つの不確定要素があり、1 つのメソッドがこれらの不確定要素を減らすために考案されました。 最初の不確定性要素は、実際の接点と時間の波形がマイクに到達するまでに時間的遅延がある (具体的には、実際の接点からマイクロコントローラーで論理 1 を受信するまでの時間差) ことです。 これは、手法に較正という手順を追加することで補完されます。 待機時間の測定を開始する前に、波形がデジタイザー上の最も遠い位置からマイク (マイクロコントローラー) に伝達されるまでの時間を測定します。 この情報を使用して、後で個々の測定値の絶対誤差を算出します。 ほとんどの場合、これは 2 ミリ秒を下回ります (画面のサイズとデジタイザーの表面に使用される材質によって異なります)。
2 つ目の不確定要素は、マイクロコントローラーとホスト コンピューター (テスト対象のデバイス) の間の USB チャネルによって発生する待機時間です。 これは、マイクロコントローラーから各 HID レポートに 48 ビット タイムスタンプを導入することで対応します。 このタイムスタンプは、マイクロコントローラーの入力ポートで論理 1 が検出された場合に設定されます (このイベントとタイムスタンプ値の生成の間には、μs 単位の待機時間があります)。 次に、ホスト (テスト対象のコンピューター) とターゲット (マイクロコントローラー) 側のクロックを同期して、最も正確な結果を得ます。
この手法は完全に自動化でき、繰り返し実行することができます。ロボットを使用して、人間の代わりにタッチを行うことができます。 しかしそれよりも、より簡単で便利な設定での人間による自然な測定に依存することをお勧めします。 観測された結果は、設定の複雑さと測定値の精度のバランスが達成されたことを示す、一貫した精度を示します。
ハードウェア要件
ここでは、必要なハードウェア コンポーネントについて詳しく説明します。 機器の目的についても説明していますが、実際の部品番号はここには記載されていません (後ほど説明します)。
マイク - タッチ デジタイザーで音波を検出するために使用します。 タッチ画面に簡単に録音できる、小型で均一な圧電マイクを使用することをお勧めします。
音響増幅器 - マイクからの信号を増幅します。
二値化回路 - 環境ノイズとタッチ音を識別します。
USB HID 機能と、μs 単位の待機時間がある 2 つ以上の入力ポートに対するポーリング機能が搭載されたマイクロコントローラー ボードです。
較正回路 - 音波の伝達を測定します。つまり、タッチしてから論理 1 をマイクロコントローラーで受信するまでの時間を測定します。
次のセクションでは、タッチ ダウン待機時間測定の設定を実装する方法について説明します。
詳しい手順
次の図は、測定を実行するハードウェア デバイスを示しています。 ボックスには、マイク入力、調整メタル プレート入力、およびマイクロコントローラー用マイクロ USB 出力に使用する 3 つの穴があります。
次の図は、マイク、音響増幅器、しきい値の回路を示しています。 マイクロコントローラーの比較演算子は、しきい値を適用するために使用できます。
マイク接続は次の図のようになります。 このセットアップでは、非常に単純な既製のマイクが使用されていますが、タップ音と環境ノイズを確実かつ正確に識別することができます。
次の図に示すように、調整プレート入力をもう一方の穴に差し込みます。
使用されるマイクロコントローラー ボードは、AT90USBKEY2 です。
手法で説明したように、このマイクロコントローラー ボードを使用して、しきい値化回路 (論理 0 と 1。調整メタル プレートの場合も同じ) の出力の変化を検出します。 しきい値を超える音声信号が検出されると、その変更を検知してイベントごとに HID レポートがホストに送信されます。 音波が振動すると、しきい値が何度も超えてしまいいます。しきい値を超えるたびに変更イベントが送信されないようにするため、コントローラーのロジックで、各変更イベントの後に一定の時間、音声信号を無視する必要があります。 最終的な結果がタップするごとに 1 つの変更イベントとなるように、この時間間隔は十分にとる必要があります。 通常は、500 ミリ秒より長く設定します。 または、単安定マルチバイブレーターを使用することも、音声増幅器と MCU 入力の後に追加の論理回路を配置して使用することもできます。 推奨されるセットアップ (ファームウェア + ソフトウェア) を再利用するには、オーディオのしきい値化回路の出力を入力ピン C0 に、メタル プレート回路の出力を入力 C1 に供給する必要があります。 マイクロコントローラー ボードとしきい値化回路には、共有のアースが必要です (アースは接続されている必要があります)。 次の 2 つの図に、ピン C0 と C1 の位置、およびアースの配置を示します。
次の図は、上の図の赤い四角形が描かれたエリア (AT90USBKEY ボードのポート C) の拡大図です。ピン C0、C1、およびアースが適切にマークされていることがわかります。
このボードの詳細については、製造元の web サイトとボードのハードウェア ユーザー ガイドを参照してください。