透過 SPI 傳輸的 HID 架構和概觀
本文說明透過 SPI 傳輸支援 HID 的裝置驅動程式堆疊。
架構和概觀
HID SPI 驅動程式堆疊包含由 Microsoft 提供的現有和新元件,以及 SPI 晶片製造商所提供的元件。 下圖說明堆疊和這些元件。
Windows 提供低功率、簡單的總線介面,以有效地與操作系統通訊。 這個介面稱為簡單的周邊總線(SPB),它支援總線,例如整合式電路(I2C)和序列周邊介面(SPI)。 如需SPB的其他詳細數據,請參閱 簡單周邊總線 (SPB) 主題。
Windows 提供以 KMDF 為基礎的 HID 迷你埠驅動程式,可實作透過 SPI 的 HID 通訊協定規格 1.0 版。 此驅動程式名為 HIDSPI.sys。 Windows 會根據相容的標識符比對載入此驅動程式,這會由進階設定和 Power Interface (ACPI) 公開。 系統整合者可以使用擴充功能 INF,根據其周邊硬體標識碼載入此驅動程式。 驅動程式可確保使用 HID IOCTLs 應用層級相容性的應用程式適用於利用 HID IOCTLs 和 API 集合的軟體。 GPIO 聯機會提供給驅動程式,這可讓裝置在需要注意或擁有數據時判斷提示中斷。
注意
HIDSPI.sys設備驅動器僅支援 SPI 總線。 它不支援 Windows 中的 I2C、SMBUS 或其他低功率匯流。
SPI 控制器驅動程式
SPI 控制器驅動程式會公開序列周邊總線 (SPB) IOCTL 介面來執行讀取和寫入作業。 此驅動程式提供實際的控制器內部函數(例如 SPI)。 SPB 類別延伸模組代表控制器驅動程式處理與資源中樞的所有互動,並實作必要的佇列來管理同時的目標。
注意
HID SPI 驅動程式不會在沒有與 SPB 平臺相容的 SPI 總線系統上運作。 請連絡您的系統製造商,以判斷裝置系統上的 SPI 總線是否與 SPB 平臺相容。
GPIO 控制器驅動程式
一般用途輸入/輸出 (GPIO) 控制器會透過 GPIO 從裝置傳遞中斷。 這通常是使用 GPIO 針腳向 Windows 發出新數據或其他事件的訊號的簡單次級元件。 GPIO 也可以透過 SPI 通道以外的方法來控制裝置。
資源中樞
SoC 平臺上的連線通常是無法探索的,因為 SoC 上使用的公交車上沒有裝置列舉的標準。 因此,這些裝置必須在進階設定和電源介面 (ACPI) 中以靜態方式定義。 此外,元件通常會有多個相依性跨越多個總線,而不是嚴格的分支樹狀結構。
資源中樞是一種 Proxy,可管理所有裝置和總線控制器之間的連線。 HIDSPI 驅動程式會使用資源中樞,將裝置開啟的要求重新路由傳送至適當的控制器驅動程式。 如需資源中樞的詳細資訊,請參閱 SPB連線裝置 的聯機標識符主題。
HIDSPI 類別延伸模組 (HIDSPICx)
對於需要更高效能或整合的實作,系統製造商可以開發自定義晶元來處理HIDSPI交易。 為此,HIDSPICx 類別延伸模組隨附於 Windows。 HIDSPICx 允許開發自定義 HIDSPI HWA 控制器驅動程式,而不需要使用 SpbCx。
針對 HWA 裝置,廠商會提供用戶端驅動程式,負責實作類別擴充功能所定義的介面,並與類別延伸模組通訊。