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

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

  • 使用 USB Type-C 的 USB 双角色功能
  • 使用 USB Type-C 电流等级和 USB 电力传输 2.0 加快充电速度
  • 通过使用替代模式和有线对接体验实现 Display-Out 功能。

支持 USB Type-C 组件的驱动程序

USB Type-C 软件组件的 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 微 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 类型 C/PD 电源信息用于确定系统应充电的级别。 客户端驱动程序管理 USB Type-C 和 PD 状态机。 客户端驱动程序可以将某些任务委托给其他驱动程序,例如,Mux 可能由另一个驱动程序控制。 若要编写客户端驱动程序,请使用 USB Type-C 连接器驱动程序编程接口

    USB Type-C 端口控制器

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

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

  • 充电仲裁驱动程序

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

  • 电池驱动程序

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