本節說明如何撰寫 簡式周邊匯流排 (SPB) 控制器裝置或連線到 SPB 的周邊裝置驅動程式。 SPB 類別包括匯流排,例如 I²C 和 SPI。 SPB 控制器裝置的硬體廠商會提供 SPB 控制器驅動程式來管理控制器中的硬體功能。 此驅動程式可能支援一系列類似的控制器裝置。 SPB 連線周邊裝置的硬體廠商會提供 SPB 周邊驅動程式來管理周邊裝置中的硬體功能。 此驅動程式可能會支援在多種硬體平台上提供相容 SPB 的周邊裝置系列。
在 Windows 8 之前的 Windows 版本中,作業系統只會透過平臺韌體間接從電腦主機板上的 SPB 連線裝置取得資訊。 從 Windows 8 開始,硬體廠商可以提供 Windows 驅動程式,以直接控制其 SPB 控制器及其 SPB 連線的周邊裝置,並讓這些裝置可供作業系統和應用程式使用。 如需詳細資訊,請參閱 SPB 控制器驅動程式 和 SPB 周邊裝置驅動程式。
SPB 經常用於將低速外圍設備連接到主板芯片組和片上系統 (SoC) 模塊。 集成電路連接到串行總線所需的引腳數量較少,而並行總線每個時鐘週期會傳輸多位數據。 通常,SPB 用於對成本敏感的應用,在這些應用中,低引腳數和簡單的連接比數據傳輸速度更重要。 由於 SPB 以低速運行且需要很少的電氣連接,因此它們經常用於必須節省電池電量的應用。
例如,筆記型電腦中的個人電腦主機板可能會使用 I²C 匯流排來與監控電池電量的低速裝置進行通訊。 同樣地,智慧型手機或其他行動裝置中的 SoC 模組可能會使用 I²C 匯流排來連接至感測器裝置,例如加速計、GPS 裝置或溫度感測器。
SPB 不是隨插即用匯流排。 外圍設備通常與 SPB 有固定連接,無法移除。 即使周邊裝置可以從 SPB 上的插槽拔下,插槽通常也專用於此裝置。 在系統啟動期間,硬體平臺中的 ACPI 韌體會列舉隨插即用管理員的 SPB 連線周邊裝置,並指定每個裝置專用的硬體資源。
這些資源中包含一個連線標識碼,可識別裝置與 SPB 的連線。 連線識別碼封裝了 SPB 控制器為建立與裝置連線所需的資訊(例如,匯流排位址和匯流排時脈頻率)。 其他硬體資源可能包括驅動程式連接至其 ISR 的中斷。 不過,裝置的硬體資源不包括裝置暫存器的記憶體。 SPB 連接的周邊裝置不會被映射到記憶體,只能透過 SPB 存取。 如需詳細資訊,請參閱 SPB-Connected 周邊裝置的連線識別碼。
SPB 不提供匯流排特定的方法,將中斷要求從周邊裝置傳送至處理器。 相反地,SPB 連線的周邊裝置會透過位於 SPB 和 SPB 控制器外部的個別硬體路徑發出中斷訊號。 SPB 連線周邊裝置的中斷服務常式 (ISR) 必須以 IRQL = PASSIVE_LEVEL 執行,才能同步傳送 I/O 要求,以透過 SPB 循序存取裝置的硬體暫存器。 如需詳細資訊,請參閱 SPB-Connected 周邊裝置的中斷。