次の方法で共有


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

Note

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

このトピックでは、Windows ペン デバイスのバス接続方法について説明します。

統合 Windows ペン デバイスは、Microsoft が提供するインボックス ドライバーを使用して、Windows ホストに接続できます。そのためには、HID over USB、HID over I²C、または HID over SPI (Windows 11 以降) を使用します。 ただし、ペン デバイスに必要な Windows 互換のサードパーティ HID ミニポート ドライバーを提供する限り、他の任意のバスを使用できます。 次の図は、Windows ペン デバイスの Windows 11 ドライバー スタックを示したものです。

diagram showing the windows 11 driver stack for a windows pen device.

Windows 11 デスクトップ エディション (Home、Pro、Enterprise、Education) との完全な互換性のためには、Microsoft 提供のインボックス ドライバーを使うことをお勧めします。 サードパーティのミニポート ドライバーを使う場合は、このサードパーティのドライバーを適切な OEM およびシステム復元イメージに追加してから、これらのイメージを Windows Update でダウンロードできるようにする必要があります。

以下のセクションでは、デバイス構成の例をいくつか紹介します。

I²C デバイス

統合 Windows ペン モジュールは、コントローラー IC とセンサーの組み合わせとして定義されます。

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

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

次に示すのは、Windows ペン デバイスとその Windows ホストの間の接続ラインの図です。

diagram showing the connections lines between a windows pen device and its windows host.

I²C コントローラーに接続するときは、そのコントローラーを共有するすべてのコンポーネントの帯域幅要求を理解することが重要です。 統合 Windows ペンには、400 KHz 以上の I²C クロック速度が推奨されます。 統合 Windows ペン コントローラーと、高帯域幅を使用するコンポーネントで、同じ I²C コントローラーを共有しないことを強くお勧めします。

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

ウェイク機能を使用する場合は、統合 Windows ペン デバイスに接続されている電力ラインを、ウェイク対応ではない他のデバイスと共有しないでください。 ウェイク シナリオが適切に機能するためには、接続されたスタンバイまたは S3 状態で使用される電力ラインに電力が供給されている必要があります。

ACPI テーブル エントリ

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

ACPI テーブル エントリには、次の情報を指定する必要があります。

入力 説明
ACPI デバイス エントリ名 デバイスを参照するための、この ACPI テーブルに一意の 4 文字の識別子。 たとえば、“WPEN”。
ACPI ハードウェア ID デバイスを参照する 4 文字 + 4 数値の ACPI ハードウェア ID。 これは、デバイス マネージャーで公開されます。 たとえば、“MSFT0001”。
互換性 ID これは、常に、デバイスが HID I²C と互換性を持つことを示す "PNP0C50" にする必要があります。
I²C コントローラー Windows ホストで I²C コントローラーを指定します。 このコントローラーは、ペンを Windows ホストに接続するために使用され、ペンとホストが通信できるようにします。 たとえば、"I2C3" – I²C コントローラー #3 を示します。
I²C スレーブ アドレス デバイスの I²C スレーブ アドレスを指定します。 ホストは、このアドレスを使用して、I²C バス上のペン デバイスを通信対象として選びます。 たとえば、"0x6F"。
I²C の速度 デバイスと I²C コントローラーの両方でサポートされる最大速度を指定します。 ACPI テーブルで速度を指定すると、信頼できる通信が確保されます。 この速度は、400 KHz (0x61A80) 以上にする必要があります。
GPIO コントローラー ペンの割り込みラインが接続されている GPIO コントローラー。 これで、割り込み信号を "リッスン" するホストに指示します。 たとえば、"GPIO0" – GPIO コントローラー #0 を示します。
GPIO リソース/ピン ペンの割り込みラインが接続されている GPIO コントローラー ピン。 ホストは、この特定の GPIO ピンと、ペンからの割り込み信号を関連付けます。 たとえば、“{35}” – ピン 35 を示します。
GPIO リソースの種類 GPIO リソースに関する制約を定義します。 SoC ウェイクを選択しない限り、ACPI テーブルのこのエントリは "Exclusive" に設定する必要があります。 SoC ウェイクを選択する場合は、この項目を "ExclusiveAndWake "に設定します。
GPIO 割り込みアサーションの種類 ペンが割り込みに対して提供するトリガーの種類を定義します。 これは、"Edge-triggered" または "Level-triggered" のいずれかにできます。 HID I²C 準拠のデバイスは、"Level-triggered" を使用する必要があります。
GPIO 割り込みアサーションのレベル 割り込みがデバイスによってアサートされる場合、割り込みラインの電圧レベルを定義します。 これは、"ActiveLow" または "ActiveHigh" として指定できます。

USB デバイス

USB 2.0 経由で接続されている、高速および最高速の統合 Windows ペン モジュールでは、ホスト接続に必要なピンを公開する必要があります。

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

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

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

USB ブリッジを使って、統合 I²C Windows ペンをホストに接続する場合は、ブリッジで、デバイスの固有の属性 (wVendorID、wProductID、wVersionID) を使用して、統合 Windows ペンを個別のデバイス ノードとして公開する必要があります。

HID SPI デバイス

Windows ペン モジュールは、コントローラー IC とセンサーの組み合わせとして定義されます。

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

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

次に示すのは、Windows ペン デバイスとその Windows ホストの間の接続ラインの図です。

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

ACPI テーブル エントリ

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

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