共用方式為


簡單周邊匯流排 (SPB)

注意

本文包含「從屬」一詞的參考,Microsoft 已不再使用該字詞。 從軟體中移除該字詞時,我們也會將其從本文中移除。

本主題涵蓋Windows 10中簡單周邊匯流排的建議。Windows 包含低電源、簡單匯流排的支援,例如 Inter Integrated Circuit (IーC) 和 (IーC) 和 Simple Peripheral Interface (SPI) ,使用核心模式驅動程式架構 (KMDF) 架構的架構延伸模組。 控制器驅動程式未在內建提供。 晶片組廠商、OEM 或 IHV 必須開發在 KMDF 中實作的控制器驅動程式。 此架構提供彈性裝置組態拓撲,可同時使用匯流排進行控制和資料交易,以及用於訊號和中斷的 GPIO。 完整的裝置定義是透過進階設定和 Power Interface (ACPI) 來定義。

在 Windows 中,會透過 KMDF 控制器驅動程式支援匯流排。 利用 KMDF 平臺的協助,控制器驅動程式主要用來定義啟用控制器功能所需的硬體特定介面。

Windows 基礎結構支援共用公車的裝置、在相同線路上多工處理,以及透過 ACPI 進行裝置設定的裝置。 Windows 使用 ACPI 作為裝置識別、設定和控制的主要方式。

下表摘要說明簡單周邊匯流排的支援。

匯流排 收件匣支援 提供的架構延伸模組 允許的協力廠商 其他支援詳細資料
I¹C No Yes 是,使用 SPB Framework 擴充功能

僅限主圖形

不支援「一般通話」

支援的直接記憶體存取 (DMA)

SPI No Yes 是,使用 SPB Framework 擴充功能

僅限主圖形,不支援「一般通話」

支援全雙工

支援 DMA

MIPI-HSI No No 是,使用 Windows Driver Foundation (WDF)
MIPI-SLIMbus No No 是,使用 WDF
MIPI-CSI No No 是,使用 WDF
UART No Yes 是,使用串列架構延伸模組 (SerCx2)

支援 DMA

SerCx2 支援的自訂傳輸模式

SPB 的設計考慮

以下是 SPB 的一些泛型考慮:

  • SPB 不是隨插即用匯流排。 周邊裝置通常具有 SPB 的固定連線,而且無法移除。 系統製造商必須確保 ACPI 中的精確資訊,以列舉隨插即用管理員的 SPB 連線周邊裝置,並指定每個裝置專用的硬體資源。

  • SPB 沒有頻內中斷支援。 大部分周邊都支援透過個別的中斷 (裝置訊號,通常是以 GPIO 為基礎的) 機制,並在 ACPI 中正確對應。

  • Windows 支援 spB 類別延伸模組 (spbcx.sys) Windows 8和更新版本。 SoC 合作夥伴負責開發和轉散發其適當的 SPB 控制器驅動程式。

  • SPB 裝置的周邊驅動程式通常是由 SPB 裝置合作夥伴提供。 Microsoft 為 SPB 裝置提供一個類別驅動程式,適用于透過 IーC 的 HID (hidi2c.sys) 。

  • 裝置類別可能會針對下列與 IHsC 相關的主題提供 HLK 需求或 WEG 指引:

    • 與其他裝置共用 I IoC 控制器
    • 慣用的 I IoC 訊號速度
    • 透過 I¹C 和 GPIO 的電源管理和喚醒案例。
  • Inter Integrated Circuit (IーC) :IーC 是作為 SPB 一部分進行驗證的主要匯流排,強烈建議在 SoC 系統上使用。

    Microsoft 提供 I¹C 的Windows 硬體相容性計畫需求。 使用 Windows 硬體實驗室套件 (HLK) ,根據這些需求測試裝置。

  • 簡單周邊介面 (SPI) :支援 SPI 是選擇性的,最多支援 SoC 合作夥伴。 Windows 硬體相容性計畫不包含 SPI 匯流排特有的任何需求。

跨系統支援 SPB

Microsoft 支援在 Arm 系統和 x86/x64 平臺上 (在 S3 組態中執行的 SPB) 。 Microsoft 支援在連線待命 (CS) 和 S3 組態中執行的平臺上執行 SPB。

請連絡您的平臺提供者以取得驅動程式和支援。

有許多裝置案例會利用 SPB 進行連線。 I¹C 適用于 CS 和 S3 傳統電源模型。 具有 On-SoC 感應器低電源核心的新式 SoC 可以視需要實作非I解決方案。

卸載式擴充座/埠上的裝置也應該遵循有關停駐案例的指引,也包含在 WEG 中。 有些裝置可能比 USB 等匯流排更合理,而不是 IUsbC。

SPB 架構延伸模組

SPB 架構延伸模組程式庫會擴充 Windows 驅動程式架構以支援 SPB 驅動程式。 SPB 架構可簡化 SPB 控制器驅動程式的開發,並藉由提供處理 I/O 要求的「上半部」驅動程式的一般實作,藉此改善周邊驅動程式與控制器驅動程式之間的相容性,此驅動程式處理 I/O 要求 (與「下半部」相較之下,由上半部驅動,並控制硬體) 。 SPB 架構延伸模組是 KMDF 擴充功能程式庫。 它會處理 SPB 要求的前置處理,以及它們傳遞給控制器驅動程式的順序。 SPB 架構延伸模組的設計目的是要支援 I}C 和 SPI 匯流排,而且可能適用于具有類似語意的其他匯流排。

序列架構延伸模組

序列架構擴充程式庫會擴充 Windows 驅動程式架構,以支援序列控制器驅動程式。 與 SPB 架構類似,序列架構可簡化串列控制器驅動程式的開發,並藉由提供處理 I/O 要求之驅動程式的「前半部」驅動程式的一般實作,來改善周邊驅動程式與控制器驅動程式之間的相容性。 序列架構延伸模組是 KMDF 延伸模組程式庫。 它會處理對序列 API 的呼叫的前置處理,以及它們傳遞給控制器驅動程式的順序。 序列架構延伸模組的設計目的是要支援新式 UART 控制器,並簡化控制器驅動程式實作和診斷能力。

IHsC 和 UART HLK 需求

I≦C和 UART 控制器有硬體相容性計畫需求。 未來也會考慮 SPI 的需求。 標誌需求主要適用于匯流排界面硬體和相關控制器驅動程式的 SoC 晶片廠商。 不需要 OEM 和 ODM 才能重新驗證硬體或控制器驅動程式,但歡迎視需要執行測試。 需要特殊的設定步驟,才能驗證這些需求。 安裝套裝程式含下列專案:

  • 具有可存取 I¹C /UART 針腳/埠的開放式系統
  • ACPI 中的修改,以將I/UART 測試裝置公開至軟體
  • 特定測試裝置 (WITT) 附加至系統進行驗證

如需其他設定資訊,請參閱 硬體實驗室套件 (HLK) 檔

周邊驅動程式

周邊是由 ACPI 列舉,而且通常是靜態的。 周邊函式驅動程式會與架構擴充功能互動,以判斷其適當的匯流排資源。 周邊和控制器不是階層式,周邊可能會使用數個 SPB、GPIO、序列和其他高速匯流排。 存取內嵌裝置的周邊驅動程式,例如感應器、輸入裝置、數據機和無線電,可能會以核心模式或使用者模式撰寫。 只要適當地更新 ACPI,這些驅動程式就可以跨不同的 ODM 或 OEM 面板設定進行移植。

韌體

控制器 ACPI 設定和匯流排參數是廠商特定的,且相依于特定控制器。 下表摘要說明控制器和周邊匯流排的 ACPI 設定。

匯流排 控制器 ACPI 設定 周邊 ACPI 設定
I¹C

控制器位址

釘選設定

公車位址

時脈速率

從屬模式

定址模式

SPI

控制器位址

釘選設定

晶片選取線

時脈速率

時鐘極性

時鐘階段

線路模式

裝置選取

裝置選取極性

從屬模式

UART

控制器位址/釘選

設定初始傳輸速率

初始傳輸速率

Parity

開始位和停止位長度

流量控制方法 (硬體/軟體/無)

使用中的行

接收緩衝區大小

傳輸緩衝區大小

Endian-ness

如需 ACPI 範例,請參閱 如何取得裝置的連線設定。 如需如何在低電源匯流排上整合裝置的詳細資訊,請參閱 存取 GPIO、I2C 和 UART 裝置

工具和技術參考

資源標題 內容類型 描述 連結
使用 Windows 驅動程式架構來建置更好的驅動程式 影片 討論 WDF 如何改善驅動程式可靠性,以及如何在多個 Windows 版本上進一步實現省電和部署驅動程式。 Channel 9
瞭解Low-Power匯流排 影片 示範如何在新的匯流排上整合裝置,並建立驅動程式。 您將瞭解如何撰寫 ACPI 來列舉您的周邊,並開始撰寫和測試周邊驅動程式。 Channel 9
Kernel-Mode Driver Framework 設計指南 發行項 介紹 Kernel-Mode Driver Framework (KMDF) 。 MSDN
UMDF 1.x 設計指南 發行項 介紹User-Mode Driver Framework (UMDF) 。 MSDN
Windows 硬體相容性計劃 發行項 提供 Windows 認證計畫的相關資訊。 MSDN