次の方法で共有


HID over SPI トランスポートのアーキテクチャと概要

このセクションでは、HID over SPI トランスポートをサポートするデバイスのドライバー スタックについて説明します。

アーキテクチャと概要

HID SPI ドライバー スタックは、Microsoft によって提供される既存および新しいコンポーネントと、SPI シリコン製造元によって提供されるコンポーネントで構成されます。 次の図は、スタックとこれらのコンポーネントを示しています。

The HID over SPI driver stack.

Windows には、オペレーティング システムと効果的に通信するための低電力でシンプルなバス用のインターフェイスが用意されています。 このインターフェイスは単純な周辺機器バス (SPB) と呼ばれ、相互集積回路 (I2C) やシリアル周辺機器インターフェイス (SPI) などのバスをサポートします。 SPB の詳細については、Simple Peripheral Bus (SPB) のトピックを参照してください。

Windows には、HID over SPI のプロトコル仕様バージョン 1.0 を実装する KMDF ベースの HID ミニポート ドライバーが用意されています。 このドライバーの名前は HIDSPI.sys です。 Windows では、互換性のある ID の一致に基づいてこのドライバーが読み込まれます。これは、Advanced Configuration and Power Interface (ACPI) によって公開されます。 システム インテグレーターは、拡張機能 INF を使用して、周辺機器のハードウェア ID に基づいてこのドライバーを読み込むことができます。 このドライバーは、HID IOCTL と API セットを利用するソフトウェアに対して、アプリが HID IOCTL のアプリケーション レベルの互換性を使用することを保証します。 ドライバーに GPIO 接続が提供されます。これにより、デバイスは、注意が必要な場合やデータがある場合に割り込みをアサートできます。

Note

HIDSPI.sys デバイス ドライバーは、SPI バスのみをサポートします。 Windows では、I2C、SMBus、またはその他の低電力バスはサポートされていません。

SPI コントローラー ドライバー

SPI コントローラー ドライバーは、読み取りおよび書き込み操作を実行するシリアル周辺機器バス (SPB) IOCTL インターフェイスを公開します。 このドライバーは、実際のコントローラー組み込み関数 (SPI など) を提供します。 SPB クラス拡張機能は、コントローラー ドライバーに代わって、リソース ハブとの対話をすべて処理し、同時ターゲットを管理するために必要なキューを実装します。

Note

HID SPI ドライバーは、SPB プラットフォームと互換性のある SPI バスがないシステムでは機能しません。 お使いのデバイス システム上の SPI バスが SPB プラットフォームと互換性があるかどうかを確認するには、システムの製造元にお問い合わせください。

GPIO コントローラー ドライバー

汎用入出力 (GPIO) コントローラーは、GPIO 経由でデバイスから割り込みを提供します。 これは多くの場合、GPIO ピンを使用して Windows に新しいデータやその他のイベントを通知する単純な下位コンポーネントです。 GPIO は、SPI チャンネル以外の方法でデバイスを制御することもできます。

リソース ハブ

SoC プラットフォーム上の接続は、SoC で使用されるバス上のデバイスの列挙に標準がないため、通常は検出できません。 そのため、これらのデバイスは、Advanced Configuration and Power Interface (ACPI) で静的に定義する必要があります。 さらに、コンポーネントには、厳密な分岐ツリー構造ではなく、複数の依存関係が複数のバスにまたがっていることがよくあります。

リソース ハブは、すべてのデバイスとバス コントローラー間の接続を管理するプロキシです。 HIDSPI ドライバーは、リソース ハブを使用して、デバイスを開く要求を適切なコントローラー ドライバーに再ルーティングします。 リソース ハブの詳細については、トピック「SPB 接続機器の接続 ID」を参照してください。

HIDSPI クラス拡張 (HIDSPICx)

より高いパフォーマンスまたは統合を必要とする実装の場合、システム製造元は HIDSPI トランザクションを処理するためのカスタム シリコンを開発できます。 このために、Windows には HIDSPICx クラス拡張機能が提供されています。 HIDSPICx では、SpbCx を使用せずにカスタム HIDSPI HWA コントローラー ドライバーを開発できます。

HWA デバイスの場合、ベンダーは、クラス拡張機能によって定義されたインターフェイスを実装し、クラス拡張機能と通信するクライアント ドライバーを提供します。

The HIDSPICx and HWA driver stack.