次の方法で共有


デバイス バス接続 (touchpad-device-bus-connectivity)

Note

この記事には、Microsoft が使用しなくなった "スレーブ" という用語への言及が含まれています。 ソフトウェアからこの用語が削除された時点で、この記事から削除します。

このトピックでは、Windows 高精度タッチパッドのバス接続方法について説明します。

Windows 高精度タッチパッド デバイスは、Microsoft が提供する受信トレイドライバーを使用して、Windows ホストに接続できます。そのためには、hid over USB、hid on I ² C、または (Windows 11 以降) SPI 経由で hid を使用します。 ただし、タッチパッド デバイスに必要な Windows 互換のサードパーティ HID ミニポート ドライバーを提供する限り、他の任意のバスを使用できます。

Diagram showing the driver stack for an integrated windows precision touchpad device, in windows 11 and later operating systems.

I²C デバイス

Windows 高精度タッチパッド モジュールは、コントローラー IC、センサー、および関連するすべてのメカニズムの組み合わせとして定義されます。

I²C バスを介して Windows ホストに接続されている高精度タッチパッド モジュールは、少なくとも次の 5 つの接続ピンを公開する必要があります。

  • データ行 (SDA)
  • クロック ライン (SCL)
  • 割り込みライン
  • 電源ライン
  • グランド接続 (GND)

次の図は、Windows 高精度タッチパッドとその Windows ホストの間の信号線を接続する I²C を示しています。

diagram showing the i2c connecting signal lines between a windows precision touchpad and its windows host.

I²C コントローラーに接続するときは、そのコントローラーを共有するすべてのコンポーネントの帯域幅要求を理解することが重要です。 Windows 高精度タッチパッド モジュールには、400KHz の最小 I²C クロック速度が推奨されます。 タッチスクリーン コントローラーと Windows 高精度タッチパッド コントローラーが同じ I²C コントローラーを共有しないことを強くお勧めします。これにより、バスの能力を超える帯域幅が要求される可能性があります。

割り込み線 (ATTN 行とも呼ばれる) が On-SoC GPIO コントローラーまたは IOAPIC に接続されることをお勧めします。 ウェイク機能が必要な場合、Windows 高精度タッチパッドがさまざまなシナリオでシステムをウェイクアップできるようにするには、割り込み線が接続されている GPIO または IOAPIC リソースが SoC をウェイクアップできる必要があります。

ウェイク機能を使用する場合は、Windows 高精度タッチパッド モジュールに接続されている電力線を、ウェイク対応ではない他のデバイスと共有しないでください。 ウェイク シナリオが正常に機能するためには、接続されたスタンバイまたは S3 状態で使用される電力線に電力が供給されている必要があります。

ACPI テーブル エントリ

I²C バスを介して Windows ホストに接続されている Windows 高精度タッチパッド デバイスは、デバイスが認識されるように ACPI テーブルにエントリを定義する必要があります。 エントリには、次の情報を指定する必要があります。

入力 説明
ACPI デバイス エントリ名 デバイスを参照するために、この ACPI テーブルに一意の 4 文字の識別子。 例、"TPAD"。
ACPI ハードウェア ID デバイスを参照する 4 文字 + 4 数値の ACPI ハードウェア ID。 ACPI ハードウェア ID は、デバイス マネージャーで公開されます。 たとえば、"MSFT0001" のようになります。
互換性 ID これは、常に、デバイスが HID I²C と互換性を持つことを示す "PNP0C50" にする必要があります
I²C コントローラー デバイスが接続されている I²C コントローラーは、通信するために指定する必要があります。 たとえば、コントローラー #3) を表す "I2C3" などです。
I²C スレーブ アドレス ホストがアドレスを指定できるようにするには、デバイスの I²C スレーブ アドレスを指定する必要があります。 例、"0x6F"。
I²C の速度 良好な通信パフォーマンスを確保するために、デバイスと I²C コントローラーの両方でサポートされる最大速度をここで指定する必要があります。 この値には、400KHz (または、16 進数の 0x61A80) より小さい値を指定する必要があります。
GPIO コントローラー デバイスの割り込み回線が接続されている GPIO コントローラーは、ホストがそれにアクセスできるように指定する必要があります。 たとえば、コントローラー ゼロ (0) の場合は "GPIO0" です。
GPIO リソースまたはピン デバイスの割り込み回線が接続されている GPIO コントローラー上の実際のピンを指定して、ホストがピンをデバイスに関連付けることができるようにする必要があります。 たとえば、"{35}" はピン 35 を表します)。
GPIO リソースの種類 これにより、GPIO リソースに関する制約が定義されます。 SoC ウェイクが必要な場合を除き、これは "Exclusive" である必要があります。必要な場合は、"ExclusiveAndWake" である必要があります。
GPIO 割り込みアサーションの種類 これは、デバイスがエッジをトリガーするか、レベルでトリガーされる割り込みを提供するかを定義します。 HID I²C 準拠のデバイスは、"レベル" でトリガーされた割り込みを提供して示す必要があります。
GPIO 割り込みアサーションのレベル これは、デバイスによって割り込みがアサートされたときの行レベルを定義します。 これは、"ActiveLow" または "ActiveHigh" として指定できます。

USB デバイス

高速/フルスピードの USB 2.0 を介して Windows ホストに接続されている Windows 高精度タッチパッド モジュールは、ホスト接続に必要なピンを公開する必要があります。

ホストへの接続にはさまざまな形式があり、インテグレーターの裁量に任されます。

USB ハブに接続するときは、そのハブを共有するすべてのコンポーネントの帯域幅の要件を理解することが重要であることに注意してください。 高帯域幅デバイスと Windows 高精度タッチパッド コントローラーが同じ USB ハブを共有しないことを強くお勧めします。これにより、バス容量を超える帯域幅の要件が発生する可能性があります。

USB ブリッジ デバイス (I²C -> USB)

I²C Windows 高精度タッチパッドを Windows ホストに接続するために USB ブリッジを使用する場合、ブリッジはタッチパッドをデバイスの一意の属性 (wVendorID, wProductID, wVersionID) を持つ別個のデバイス ノードとして公開する必要があります。

HID SPI デバイス

Windows 高精度タッチパッド モジュールは、コントローラー IC とセンサーの組み合わせとして定義されます。

SPI バスを介して Windows ホストに接続する Windows タッチパッド モジュールは、少なくとも次の 5 つの接続ピンを公開する必要があります。

  • データ行 (SDA)
  • クロック ライン (SCL)
  • チップ選択ライン (SS)
  • 割り込みライン
  • 電源ライン
  • グランド接続 (GND)

次に示すのは、Windows タッチパッド デバイスとその Windows ホストの間の接続線の図です。

diagram showing the driver stack for an integrated windows precision touchpad device, for windows 11 and later operating systems.

ACPI テーブル エントリ

SPI 経由で接続されている Windows Precision タッチパッド デバイスは、デバイスがホストによって認識されるように、ホストの Advanced Configuration and Power Interface (ACPI) テーブルにエントリを定義する必要があります。 ACPI の詳細については、「高度な構成と電源インターフェイスの仕様」を参照してください。

ACPI テーブル エントリでは、「HID over SPI でのプラグ アンド プレイのサポート」で説明されている情報を指定する必要があります。