汎用 I/O (GPIO) ドライバーの設計ガイド

このセクションでは、汎用 I/O (GPIO) コントローラー デバイスのドライバーを記述する方法について説明します。 GPIO コントローラーでは、低速のデータ I/O 操作を実行し、デバイス選択として機能し、割り込み要求を受信するよう GPIO ピンが構成されます。 Window 8 以降では、GPIO フレームワーク拡張機能 (GpioClx) により、GPIO コントローラー用のドライバーを記述するタスクが簡略化されます。 さらに、GpioClx により、コントローラー上の GPIO ピンに接続されるデバイスと通信する周辺機器のドライバーに対して、統一された I/O 要求インターフェイスが提供されます。

このセクションの内容

トピック 説明

GPIO ドライバー サポートの概要

Windows 8 以降では、GPIO フレームワーク拡張機能 (GpioClx) により、GPIO コントローラー デバイス用のドライバーを記述するタスクが簡略化されます。 さらに、GpioClx により、GPIO ピンに接続される周辺機器に対してドライバー サポートが提供されます。 カーネル モード ドライバー フレームワーク (KMDF) のシステム提供の拡張機能である GpioClx では、GPIO デバイス クラスのメンバーに共通す処理タスクが実行されます。

GpioClx I/O と割り込みインターフェイス

通常、GPIO コントローラーのクライアントは、GPIO ピンに接続される周辺機器のドライバーです。 これらのドライバーでは、低帯域幅のデータ チャネル、デバイス選択の出力、および割り込み要求の入力として GPIO ピンが使用されます。 周辺機器のドライバーにより、データ入力またはデータ出力として構成されている GPIO ピンへの論理接続が開かれます。 これらの接続を使用して、これらのピンに I/O 要求が送信されます。 さらに、周辺機器のドライバーでは、割り込み要求の入力として構成されている GPIO ピンに、割り込みサービス ルーチンを論理的に接続できます。

GPIO ベースのハードウェア リソース

Windows 8 以降では、GPIO コントローラーのドライバーによって制御される汎用 I/O (GPIO) ピンは、システムで管理されるハードウェア リソースとして他のドライバーで使用できます。 データ入力またはデータ出力として構成されているピンである GPIO I/O ピンは、新しい種類の Windows リソースである GPIO I/O リソースとして使用できます。 さらに、割り込み要求の入力として構成されているピンである GPIO 割り込みピンは、通常の Windows 割り込みリソースとして使用できます。

GPIO 割り込み

一部の汎用 I/O (GPIO) コントローラー デバイスでは、割り込み要求の入力として機能するよう GPIO ピンを構成できます。 これらの割り込み要求の入力は、GPIO ピンに物理的に接続されている周辺機器によって駆動されます。 これらの GPIO コントローラー用のドライバーにより、個々の GPIO ピンで割り込み要求の有効化、無効化、マスク、マスク解除、およびクリアを実行できます。

GpioClx DDI

汎用 I/O (GPIO) コントローラーのドライバーは、GpioClx デバイス ドライバー インターフェイス (DDI) を介して GPIO フレームワーク拡張機能 (GpioClx) と通信します。 この DDI は Gpioclx.h ヘッダー ファイルで定義され、汎用 I/O (GPIO) ドライバー リファレンスに記載されています。 この DDI の一部として、GpioClx により、GPIO コントローラーのドライバーによって呼び出されるいくつかのドライバー サポート メソッドが実装されます。 このドライバーにより、GpioClx によって呼び出される一連のイベント コールバック関数が実装されます。 GpioClx では、これらのコールバックを使用して、割り込みの入力として構成されている GPIO ピンからの割り込み要求が管理され、データ入力およびデータ出力として構成されている GPIO ピンとの間でデータ転送が行われます。