描述 USB Type-C 系統的一般硬體設計,以及支援硬體元件Microsoft提供的驅動程式。 本文適用於開發具有 USB Type-C 連接器的系統的 OEM。
- 使用 USB Type-C 的 USB 雙重角色功能
- 使用 USB Type-C 電流電平和 Power Delivery 2.0 實現更快的充電速度
- 藉由使用替代模式和有線對接功能來實現 Display-Out 能力。
支援 USB Type-C 元件的驅動程式
在上圖中,
USB 裝置端驅動程式
USB 裝置端驅動程式 已用於服務這些功能/裝置/周邊設備。 USB 功能控制器類別擴展支援 MTP(媒體傳輸通訊協定)以及使用 BC 1.2 充電器進行充電。 Microsoft提供 Synopsys USB 3.0 和 ChipIdea USB 2.0 控制器的內建用戶端驅動程式。 您可以使用 USB 函式控制器用戶端驅動程式程式設計介面,撰寫函式控制器的自訂用戶端驅動程式。 如需詳細資訊,請參閱 開發 USB 函式控制器的 Windows 驅動程式。
SoC 廠商可能會提供 USB 功能下部篩選驅動程式,以進行舊版專屬充電器偵測。 如果功能控制器是 Synopsys USB 3.0 或 ChipIdea USB 2.0 控制器,您可以實作自己的濾波器驅動程式
USB 主機端驅動程式
USB 主機端驅動程式是一組驅動程式,可與 EHCI 或 XHCI 相容的 USB 主機控制器搭配使用。 如果角色交換驅動程式列舉主機角色,則會載入相應的驅動程式。 如果您的主機控制器不符合規格,您可以使用 USB 主機控制器延伸模組 (UCX) 程式設計介面來撰寫自訂驅動程式。 如需詳細資訊,請參閱 開發 USB 主機控制器的 Windows 驅動程式。
備註
Windows 10 行動裝置版不支援 所有 USB 裝置類別。
USB 角色切換驅動程式 (URS)
系統可以設計成使具備雙重角色的 USB 埠需要 Windows 才能配置為主機模式或裝置模式。 這些設計必須使用 USB 角色交換器 (URS) 驅動程式堆疊。
URS 驅動程式會根據平臺的硬體事件,管理連接器、主機或函式的目前角色,以及載入和卸載適當的裝置端或主機端驅動程式。 Microsoft提供 Synopsys USB 3.0 和 ChipIdea USB 2.0 控制器的內建用戶端驅動程式。 您可以使用 USB 雙角色控制器驅動程式設計介面來撰寫角色切換用戶端驅動程式。 若要啟用角色切換驅動程式,您必須變更 ACPI 資料表。 如需詳細資訊,請參閱 USB 雙重角色驅動程式堆疊架構。
在具有 USB micro-AB 連接器的系統上,此決定是根據連接器中的 ID 針腳做出的。 用戶端驅動程式透過使用分配給它的中斷資源來執行 ID 針偵測。
在具有 USB Type-C 連接器的系統上,決策是根據 CC 引腳做出的。 連接器的用戶端驅動程式會執行 CC 偵測,並將該資訊轉送至角色切換驅動程式。
USB 連接器管理器 (UCM)
這組驅動程式管理 USB Type-C 連接器的所有層面。 如果您的系統透過 ACPI 實作符合 UCSI 規範的內嵌控制器,請使用 Microsoft 提供的 UCSI 驅動程式。 否則,請撰寫非 ACPI 傳輸的 UCSI 用戶端驅動程式 。
如果您的硬體不符合 UCSI 規範,則您應該 寫入 USB Type-C 連接器驅動程式,該驅動程式 是 UCM 類別延伸模組的用戶端。 它們一起管理 USB Type-C 連接器和連接器驅動程式的預期行為。
如果您要撰寫驅動程式,USB 連接器管理員類別延伸模組會遵循 WDF 類別延伸模組用戶端驅動程式模型。 您的客戶端驅動程式會與硬體和類別擴展模組通訊,以處理 CC 偵測、PD 訊息、多工和 VBus/VConn 控制等工作,並選擇電源傳遞和替代模式的策略。 類別延伸模組會將用戶端驅動程式所報告的資訊傳達至作業系統。 例如,CC 偵測結果可用來設定角色切換驅動程式;USB Type-C/PD 電源資訊可用來判斷系統應充電的層級。 用戶端驅動程式會管理 USB Type-C 和 PD 狀態機器。 用戶端驅動程式可以將某些工作委派給其他驅動程式,例如,Mux 可能由另一個驅動程式控制。 若要撰寫用戶端驅動程式,請使用 USB Type-C 連接器驅動程式程式設計介面。
USB Type-C 連接埠控制器
Type-C 埠控制器介面類別延伸模組 (UcmTcpciCx.sys) 是 Microsoft 所提供的 USB 連接器管理員延伸模組,可讓作業系統充當未實作 PD 狀態機器之連接器的 Type-C 埠管理員 (TCPM) 。 UcmTcpciCx 用戶端驅動程式可讓軟體 TCPM 控制硬體並即時取得其狀態。
如需撰寫用戶端驅動程式的相關資訊,請參閱 撰寫 USB Type-C 埠控制器驅動程式。
充電仲裁驅動程式
此驅動程式由 Microsoft 為 Windows 10 行動版提供。 驅動程式會擔任多個充電來源的仲裁者。 USB 連接器管理員會向 CAD 報告 USB Type-C 和 PD 充電來源資訊,CAD 會從該資訊和 USB 裝置端驅動程式 (如果適用) 執行的 BC1.2 充電器偵測中進行選取。 然後,CAD 向電池子系統報告最合適的充電源。
電池驅動器
類別驅動程式會定義系統中電池的整體功能,並與電源管理員互動。 迷你類別驅動程式會處理裝置特定的功能,例如新增和移除電池,以及追蹤其容量和充電。 迷你類別驅動程式會匯出類別驅動程式所呼叫的例程,以取得其所控制裝置的相關信息。