Windows 对 USB 类型 C 连接器的支持

本主题适用于想要使用 USB 类型 C 连接器构建 Windows 10 系统的 OEM,并希望利用 OS 功能,以便更快地通过广告牌设备充电、电源交付、双角色、备用模式和错误通知。

传统的 USB 连接在每个端使用带有 USB A 和 USB B 连接器的电缆。 USB A 连接器始终插入主机端,USB B 连接器连接功能端,即设备(手机)或外围设备(鼠标、键盘)。 使用这些连接器,只能将主机连接到函数;从不向另一个主机的主机或另一个函数的函数。 主机是电源提供程序,该函数使用来自主机的电源。

传统配置会限制某些方案。 例如,如果移动设备想要连接到外围设备,设备必须充当主机并向连接的设备提供电源。

USB-IF 在 USB 3.1 规范中定义的 USB 类型 C 连接器解决了这些限制。 Windows 10 引入了对这些功能的本机支持。

usb 连接器比较。

功能摘要

  • 允许通过 USB 类型 C 实现高达 100W 的电源交付速度。
  • USB 主机和 USB 设备的单个连接器。
  • 可以切换 USB 角色以支持 USB 主机或设备。
  • 可以在溯源和下沉电源之间切换电源角色。
  • 支持其他协议,例如 DisplayPort 和 Thunderbolt over USB Type-C。
  • 介绍 USB 广告牌设备类,为备用模式提供错误通知。

官方规范

硬件设计

USB Type-C 连接器是可逆的和对称的。

USB 类型 C 对称电缆。

主要组件包括:USB Type-C 连接器及其端口或 PD 控制器,用于管理连接器的 CC 引脚逻辑。 此类系统通常具有双角色控制器,可将 USB 角色从主机交换为正常运行。 它具有显示出模块,允许通过 USB 传输视频信号。 (可选)它可以支持 BC1.2 充电器检测。

考虑有关 USB 组件设计和开发的建议,包括最低硬件要求、Windows 硬件兼容性计划要求,以及基于这些要求构建的其他建议。 硬件组件指南 USB

选择驱动程序模型

使用此流程图确定 USB 类型 C 系统的解决方案。 驱动程序。

如果系统... 建议的解决方案...
不实现 PD 状态机 将客户端驱动程序写入 UcmTcpciCx 类扩展。

编写 USB 类型 C 端口控制器驱动程序
在硬件或固件中实现 PD 状态机并支持 USB 类型 C 连接器系统软件接口 (UCSI) over ACPI 加载提供的内置驱动程序、UcmUcsiCx.sys和UcmUcsiAcpiClient.sys Microsoft。

请参阅 UCSI 驱动程序
在硬件或固件中实现 PD 状态机,但要么不支持 UCSI,要么支持 UCSI,但需要 ACPI 以外的传输 为 UcmCx 类扩展编写客户端驱动程序。

编写 USB 类型 C 连接器驱动程序

编写 USB 类型 C 策略管理器客户端驱动程序
实现 UCSI,但需要 ACPI 以外的传输 将客户端驱动程序写入 UcmUcsiCx 类扩展。

使用 此示例模板 并根据硬件使用的传输对其进行修改。

编写 UCSI 客户端驱动程序

启动驱动程序

  • 仅当支持 USB 函数模式时,才需要 USB 函数驱动程序启动。 如果以前为 USB micro-B 连接器实现了 USB 函数驱动程序,请在 ACPI 表中将相应的连接器描述为 USB 类型 C,以便 USB 函数驱动程序继续工作。

    有关详细信息,请参阅 有关编写 USB 函数驱动程序的说明。

  • 只有具有同时承担主机角色和功能角色的双角色控制器的设备才需要 USB 角色切换驱动程序启动。 若要启动 USB 角色交换机驱动程序,需要修改 ACPI 表,以启用Microsoft现成的 USB 角色交换机驱动程序。

    有关详细信息,请参阅 有关启动 USB 角色交换机驱动程序的指南。

  • Windows 需要 USB 连接器管理器驱动程序来管理系统上的 USB 类型 C 端口。 USB 连接器管理器驱动程序的启动任务取决于你为 USB 类型 C 端口选择的驱动程序:Microsoft内置 UCSI(UcmUcsiCx.sys 和 UcmUcsiAcpiClient.sys) 驱动程序、UcmCx 客户端驱动程序或 UcmTcpciCx 客户端驱动程序。 有关详细信息,请参阅上一部分中的链接,这些链接介绍如何为 USB 类型 C 系统选择正确的解决方案。

测试

在公开 USB 类型 C 连接器的系统和设备上执行各种功能和压力测试。

  • 使用 USB Type-C ConnEx 测试 USB 类型 C 系统:运行 Windows 硬件实验室工具包(HLK)中包含的 USB 测试。
  • 使用 C-to-A 电缆运行 USB 函数 HLK 测试:在 HLK 中搜索 Windows USB 设备
  • 认证和符合性:参加标准机构主办的电源交付和 USB 类型 C 合规性研讨会。

另请参阅