共用方式為


在 Windows 系統的 USB Type-C 上啟動功能控制器

本文說明 OEM 針對具有 USB Type-C 連接器的函式控制器啟動工作

重要 API

函式控制器的驅動程式會通知作業系統其 USB Type-C 連接器所支援的充電階段,並且通知電池子系統何時可以開始充電,以及裝置最大可承受的電流量。

本主題假設函式控制器在任何指定時間管理單一連接器 (UFP)。

1.載入 USB 裝置端驅動程式

有兩個驅動程式可管理函式控制器的作業。 這組是 Microsoft 提供的 USB 功能類別擴充及其用戶端驅動程式。 類別延伸模組會提供用戶端驅動程式傳送到作業系統的資訊。 用戶端驅動程式會使用硬體介面與硬體通訊。 請參閱,Windows中的 USB 裝置端驅動程式。

USB 函式控制器驅動程式。

  • 如果您的系統使用 ChipIdea 和 Synopsys 控制器。

    1. 載入 Microsoft 提供的內建適用於 ChipIdea 和 Synopsys 控制器的用戶端驅動程式。
    2. 撰寫較低的篩選驅動程式,以在連接充電器時取得附加/中斷連結事件。 驅動程式會決定充電器的類型和組態屬性。 它也可以偵測 BC1.2 規格所定義的 USB 充電埠。 充電資訊會傳遞至類別擴充工具,以便向充電仲裁驅動程式報告(CAD.sys)。 如需詳細資訊,請參閱 USB 篩選驅動程式,以支援專屬充電器
  • 如果您的系統使用自定義控制器,請撰寫用戶端驅動程式。 BC1.2 偵測邏輯會在用戶端驅動程序中實作。 如需詳細資訊,請參閱:

    USB 函式控制器用戶端驅動程式程式設計參考

    開發適用於 USB 函式控制器的 Windows 驅動程式

2.修改系統 ACPI,以向函式控制器驅動程式指出連接器是 USB Type-C 連接器

這是透過 ACPI 6.0 規格中定義的 ACPI 方法來完成

_UPC (USB Port Capabilities)

使用 ACPI 6.0 中定義的新值來指出正確的 USB Type-C 連接器類型,例如「Type-C USB2」和「Type-C USB2 和 SuperSpeed with switch」。 函式驅動程式會將這項資訊傳達給 CAD.sys,讓其使用USB Type-C 特定仲裁邏輯來判斷適當的充電來源。

Device (UFN0)
{
    ...

    Name (_UPC, Package()
    {
        0x1,    // Connectable
        0x9,    // Type-C USB2 and Type-C USB2 and SS with switch
        0x0,    // Reserved
        0x0     // Reserved
    })

    Name (_CRS, ResourceTemplate()
    {
        ...
    })

    ...