体系结构:Windows 系统的 USB 类型 C 设计

介绍 USB 类型 C 系统的典型硬件设计以及支持硬件组件的 Microsoft 提供的驱动程序。 本文适用于使用 USB 类型 C 连接器开发系统的 OEM。

  • 使用 USB Type-C 的 USB 双角色功能
  • 使用 USB Type-C 电流级别和供电 2.0 加快充电速度
  • 使用备用模式和有线停靠体验 Display-Out 功能。

用于支持 USB 类型 C 组件的驱动程序

USB 类型 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 连接器的系统上,根据连接器中的 ID 引脚做出此决定。 客户端驱动程序使用分配给它的中断资源执行 ID 引脚检测。

    在具有 USB 类型 C 连接器的系统上,根据 CC 引脚做出决策。 连接器的客户端驱动程序执行 CC 检测,并将该信息转发到角色切换驱动程序。

  • USB 连接器管理器 (UCM)

    这组驱动程序管理 USB Type-C 连接器的所有方面。 如果系统通过 ACPI 实现符合 UCSI 标准的嵌入式控制器,请使用 Microsoft 提供的 UCSI 驱动程序。 否则,为非 ACPI 传输 编写 UCSI 客户端驱动程序

    如果硬件不符合 UCSI,则应将作为客户端的 USB 类型 C 连接器驱动程序写入 UCM 类扩展。 它们共同管理 USB Type-C 连接器和连接器驱动程序的预期行为。

    如果要编写驱动程序,USB 连接器管理器类扩展遵循 WDF 类扩展-客户端驱动程序模型。 客户端驱动程序与硬件和类扩展通信,以处理 CC 检测、PD 消息传送、复用和 VBus/VConn 控制等任务,并为电源传输和备用模式选择策略。 类扩展将客户端驱动程序报告的信息传达给操作系统。 例如,CC 检测结果用于配置角色切换驱动程序;USB 类型 C/PD 电源信息用于确定系统应充电的级别。 客户端驱动程序管理 USB 类型 C 和 PD 状态机。 客户端驱动程序可以将某些任务委托给其他驱动程序,例如,Mux 可能由另一个驱动程序控制。 若要编写客户端驱动程序,请使用 USB Type-C 连接器驱动程序编程接口

    USB 类型 C 端口控制器

    Type-C 端口控制器接口类扩展 (UcmTcpciCx.sys) 是 Microsoft 提供的 USB 连接器管理器的扩展,它允许 OS 与不实现 PD 状态机的连接器 (TCPM) 一样运行。 UcmTcpciCx 客户端驱动程序允许软件 TCPM 控制硬件并实时获取其状态。

    有关编写客户端驱动程序的信息,请参阅 编写 USB 类型 C 端口控制器驱动程序

  • 收取仲裁驱动因素

    此驱动程序由 Microsoft 提供,用于Windows 10 移动版。 驱动程序充当多个充电源的仲裁程序。 USB 连接器管理器将 USB Type-C 和 PD 充电源信息报告给 CAD,CAD 会从该信息和由 USB 设备端驱动程序执行的 BC1.2 充电器检测中进行选择( (如果适用) )。 然后,CAD 报告最适合用于电池子系统的充电源。

  • 电池驱动程序

    类驱动程序定义系统中电池的整体功能,并与电源管理器进行交互。 微型类驱动程序处理特定于设备的功能,例如添加和移除电池,以及跟踪其容量和充电。 微类驱动程序导出类驱动程序调用的例程,以获取有关其控制的设备的信息。