架構:Windows 系統的USB Type-C設計
描述USB Type-C系統的典型硬體設計,以及支援硬體元件的 Microsoft 提供的驅動程式。 本文適用於使用 USB Type-C 連接器開發系統的 OEM。
- 使用 USB Type-C 的 USB 雙重角色功能
- 使用USB Type-C目前層級和電源傳遞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驅動程式。
注意
並非所有 USB 裝置類別都支援 Windows 10 行動裝置版。
USB 角色切換驅動程式 (URS)
系統可以設計成雙重角色 USB 埠需要 Windows,才能將它設定為主機或功能模式。 這些設計必須使用 USB 角色交換器 (URS) 驅動程式堆疊。
URS 驅動程式會根據平台的硬體事件,管理連接器、主機或函式的目前角色,以及載入和卸除適當的裝置端或主機端驅動程式。 Microsoft 提供 Synopsys USB 3.0 和 ChipIdea USB 2.0 控制器的內建用戶端驅動程式。 您可以使用 USB 雙角色控制器驅動程式程式設計介面來撰寫角色交換器用戶端驅動程式。 若要啟用角色切換驅動程式,您必須對ACPI數據表進行變更。 如需詳細資訊,請參閱 USB雙重角色驅動程式堆疊架構。
在具有USB micro-AB 連接器的系統上,此決策是根據連接器中的標識碼針腳進行。 標識子釘選偵測是由客戶端驅動程式使用指派給它的中斷資源來執行。
在具有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 連接器管理員擴充功能,可讓 OS 在未實作 PD 狀態機器的連接器 (TCPM) 行為。 UcmTcpciCx 用戶端驅動程式可讓軟體 TCPM 控制硬體,並即時取得其狀態。
如需撰寫用戶端驅動程式的相關信息,請參閱 撰寫USB Type-C埠控制器驅動程式。
收費仲裁驅動程式
此驅動程式是由 Microsoft 針對 Windows 10 行動裝置版 提供。 驅動程式可作為多個充電來源的 Arbiter。 USB 連接器管理員會將USB Type-C和 PD充電來源資訊回報給 CAD,這會從該資訊中選取該資訊,以及USB裝置端驅動程式所執行的 BC1.2 電池偵測, (適用的) 。 CAD 接著會報告最適合的充電來源,以用於電池子系統。
電池驅動器
類別驅動程式會定義系統中電池的整體功能,並與電源管理員互動。 迷你類別驅動程式會處理裝置特定的功能,例如新增和移除電池,以及追蹤其容量和充電。 迷你類別驅動程式會匯出類別驅動程式所呼叫的例程,以取得其所控制裝置的相關信息。