簡單的周邊匯流排 (SPB) 驅動程式設計指南
本節說明如何為 簡單的周邊匯流排 撰寫驅動程式, (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匯流排來與監視電池計量的低速裝置通訊。 同樣地,智慧型手機或其他行動裝置中的 SoC 模組可能會使用I 匯流排來連線到感應器裝置,例如加速計、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周邊裝置。