USB Type-C 手动互作性测试过程

本文介绍如何测试已启用 USB Type-C 系统和 Windows 的互作性。 它为设备和系统制造商提供了针对公开 USB Type-C 连接器的系统和设备执行各种功能和压力测试的指南。 它假定读者熟悉官方 USB 规范和 xHCI 互作性测试过程。 可以从 USB.ORG 下载 USB 规范。

若要使用 USB Type-C ConnEx 板运行这些测试,请参阅 使用 USB Type-C ConnEx 测试 USB Type-C 系统

测试产品可以属于以下一个或多个类别:

  • 系统:具有公开 Type-C USB 端口的台式机、笔记本电脑、平板电脑、服务器或手机。 系统必须运行 Windows 10 版本,例如 Windows 10 桌面版(家庭版、专业版、企业版和教育版)、Windows 10 移动版或其他版本。
  • 扩展坞:任何提供多个端口的 USB Type-C 设备。
  • 设备:任何带有 Type-C 端口的 USB 设备,可以连接到系统或底座。 此类别包括支持 USB Type-C 规范中定义的配件和备用模式的传统 USB 设备和设备。

官方规范和程序

USB Type-C 互作性测试过程分为两个部分:功能测试(FT)和压力测试(ST)。 每个测试部分描述测试用例,并标识适用于测试的类别。 产品必须针对整个适用类别进行测试。 某些测试用例包含指向相关提示和建议的链接,以提供更多信息。 本文档侧重于 USB Type-C 功能和体验。 USB Type-C 解决方案可能包含其他 USB 组件,例如 USB 集线器或 USB 控制器。 USB-IF 的 xHCI 互作性测试过程 和 Windows 硬件认证工具包都介绍了 USB 中心和控制器的详细测试。

压力测试部分介绍压力和边缘案例方案的过程,这些方案在一段时间内测试设备稳定性。 压力测试需要一个自定义设备,即 Microsoft USB 测试工具(MUTT)设备,用于旧版 USB(非 USB Type-C)验证。 可以通过即将推出的 USB Type-C 测试设备实现更多的测试和自动化。

FT 案例 1:设备枚举

适用于:系统、扩展坞、设备

若要确认设备枚举正常工作,请执行以下操作:

  1. 重启测试系统并登录到 Windows。

  2. 在测试系统上打开 Device Manager 。 从“开始”开始,在“搜索”文本框中键入 devmgmt.msc

  3. 将设备连接到已启用 USB Type-C 的系统。 如有必要,请确保设备已打开或连接到外部电源。

    • 系统:将任何 USB Type-C 设备连接到系统。
    • 设备:将设备连接到已启用 USB Type-C 的系统。
    • 扩展坞:连接任何 USB 3.0 设备和任何支持备用模式或作为 USB Type-C 配件的 USB Type-C 设备到扩展坞。 将扩展坞连接到系统。
  4. 确认设备节点已添加到 Device Manager 中。 有关详细信息,请参阅 “如何确认设备添加”。

  5. 确认插入的设备功能没有错误。

  6. 断开设备(以及扩展坞,如果适用),并观察设备管理器中的更改。 扩展坞和设备不应显示在 设备管理器中。 有关详细信息,请参阅 如何确认设备删除

  7. 翻转或反转 USB Type-C 电缆的方向,并重复步骤 3 到 6。

FT 案例 2:系统启动

适用于:系统、中心、设备

确认正在测试的产品不会抑制正常的系统启动过程

  1. 重启测试系统并登录到 Windows。

  2. 使用以下 USB 设备连接到具有公开的 USB Type-C 端口的系统:

    • 系统:使用 USB Type-C 转 USB Type-A 适配器将这些设备连接到系统的外露 USB Type-C 端口,如下图所示:

      USB Type-C 配置示意图。

      • USB 集线器
      • USB 键盘
      • USB 3.0 闪存驱动器
    • 停靠:将这些设备连接到测试中的坞站上暴露的端口。

      • USB 集线器
      • USB 键盘
      • USB 3.0 闪存驱动器
    • 设备:将设备连接到系统公开的 USB Type-C 端口。

  3. 在测试系统上打开 Device Manager 。 从“开始”开始,在“搜索”文本框中键入 devmgmt.msc

  4. 确认设备节点已添加到 Device Manager 中。 有关详细信息,请参阅 “如何确认设备添加”。

  5. 重启系统;确保系统关闭并正确启动。 调查系统故障(如果有)。

  6. 对于系统或停靠测试:

    • 确认 UEFI/BIOS 将 USB 闪存驱动器识别为可启动媒体,并且可以从中启动系统。
    • 确认 UEFI/BIOS 识别 USB 键盘,并可用于输入 UEFI/BIOS。
  7. 系统启动后,确认设备显示在 Device Manager 中,指示设备已正确枚举。

  8. 验证所有附加设备的设备功能。

  9. 对于系统,通过将 USB Type-C 扩展坞连接到系统,并将这些设备连接到扩展坞,重复步骤 3 到 8。

    • USB 集线器
    • USB 键盘
    • USB 3.0 闪存驱动器

FT 案例 3:系统电源转换

适用于:系统、扩展坞、设备

请确认通过从低功耗状态转换,该产品不会影响系统的电源转换和唤醒功能。

  1. 重启测试系统并登录到 Windows。
  2. 将 USB 3.0 集线器连接到系统上暴露的 USB Type-C 端口。 有关详细信息,请参阅 如何将设备连接到系统
  3. 将 USB 设备连接到中心。
  4. 在测试系统上打开 Device Manager
  5. 确认设备已添加到设备管理器中。 有关详细信息,请参阅 “如何确认设备添加”。
  6. 通过“开始”菜单或自动化将系统发送到较低的电源状态,例如睡眠或休眠状态。
  7. 将系统从低功耗状态唤醒。 如果设备支持远程唤醒,请使用设备唤醒系统。 有关详细信息,请参阅 系统唤醒疑难解答。 否则,请正常唤醒系统(使用电源按钮或键盘)。
  8. 确认设备仍然正常运行。 有关详细信息,请参阅 “如何确认设备功能”。

针对其他可用的系统电源状态重复此测试:睡眠(S3)、休眠(S4)和混合睡眠。

注释

若要简化到电源状态的转换,请使用 Windows 驱动程序工具包(WDK)中包含的 pwrtest.exe。 有关详细信息,请参阅 PwrTest

FT 案例 4:选择性暂停

适用于:扩展坞、设备

确认设备切换至选择性挂起状态

  1. 在测试设备和系统之间连接 USB 总线分析器。 有关详细信息,请参阅: 使用分析器确认选择性挂起
  2. 启动捕获会话。
  3. 允许设备进入选择性挂起。 确保设备上没有进行任何数据传输的同时,等待 15 秒。 例如,如果测试设备是闪存驱动器,请确保未打开任何文件;对于键盘或鼠标,请将设备保持空闲状态。
  4. 通过执行某个操作将设备从选择性挂起状态唤醒。 例如,在闪存驱动器上打开文件;对于键盘,可以按下任意键,或者移动鼠标。
  5. 验证设备是否在分析器中输入了选择性挂起状态。

关于选择性挂起的更多信息可以从以下来源获得:

FT 案例 5:停靠标识

适用于:扩展坞

  1. 重启测试系统并登录到 Windows。
  2. 将 USB Type-C 扩展坞连接到系统。
  3. 确保正确标识停靠状态。

FT 案例 6:替代模式协商

适用于:系统、扩展坞、设备

确认支持模式的备用模式协商

  1. 重启测试系统并登录到 Windows。

  2. 在测试系统上打开 Device Manager 。 从“开始”开始,在“搜索”文本框中键入 devmgmt.msc

  3. 将启用了备用模式的 USB Type-C 设备连接到系统上启用了备用模式的 USB Type-C 端口。 如有必要,请确保设备和系统共享至少一个备用模式,并且设备已供电或连接到外部电源。

    注释

    对于 Type-C 的加密锁/适配器,请确保适当的外围设备已打开并连接到加密锁/适配器的非Type-C 端。

  4. 确认在 设备管理器中添加了备用模式设备。 在某些情况下,备用模式设备可能显示为监视器设备或其他总线设备。 有关详细信息,请参阅 “如何确认设备添加”。

  5. 断开设备的连接并观察 设备管理器中的更改。 中心和设备不应再显示在 设备管理器中。 有关详细信息,请参阅 如何确认设备删除

  6. 翻转或反转 USB Type-C 电缆的方向,并重复步骤 2-5。

FT 案例 7:充电和电力传输(PD)

适用于:系统、扩展坞、支持 USB 电源交付协议的设备

使用 USB Type-C 确认充电

  1. 根据 USB-IF 的定义执行 USB 电源传送测试

  2. 重启测试系统并登录到 Windows。

  3. 为系统执行以下步骤:

    1. 将两个系统与 USB Type-C 电缆连接在一起。 确认只有一个系统正在接收电流。
    2. 如果系统包含多个 USB Type-C 端口,请使用 USB Type-C 电缆连接同一系统上的两个 USB Type-C 端口。 确认系统没有在自行充电。
    3. 将捆绑的 USB Type-C 充电器(如果捆绑)连接到系统的 USB Type-C 端口。 确认系统正在充电。
    4. 使用来自其他源的 USB Type-C 充电器重复步骤 3c。
    5. 将 USB Type-C 设备连接到系统上可用的 USB Type-C 端口。 确认设备正在接收电流。
  4. 对扩展坞执行以下步骤:

    1. 使用 USB Type-C 电缆将扩展坞连接到已启用 USB Type-C 的系统。
    2. 确认扩展坞正在为连接的系统充电。
  5. 为设备执行以下步骤:

    1. 将设备连接到支持 USB Type-C 的系统。 确认设备从系统接收电源。
    2. (可选)将设备连接到启用 USB Type-C 的系统。 确认设备正在为系统充电。

FT 案例 8:角色交换

适用于:系统

确认角色交换

  1. 重启测试系统并登录到 Windows。
  2. 将两个系统与 USB Type-C 电缆连接在一起。
  3. 确认每个系统的当前角色。
  4. 执行交换角色所需的步骤。
  5. 请确认每个系统的当前角色已更改。

ST 案例 1:系统电源转换

适用于:系统、扩展坞、设备

  1. 重启测试系统。
  2. 将 USB SuperMUTT 设备插入暴露的 USB Type-C 端口。
  3. 运行 DF - IO During Sleep 测试
  4. 使用 USB Type-C 测试设备重复步骤 3。

ST 案例 2:传输事件

适用于:系统、扩展坞、设备

  1. 重启测试系统。
  2. 将 USB SuperMUTT 设备插入暴露的 USB Type-C 端口。
  3. 运行 DF - 重启动(包括测试之前和之后的 IO 操作)测试。
  4. 使用 USB Type-C 测试设备重复步骤 3。

ST 案例 3:即插即用

适用于:系统、扩展坞、设备

  1. 重启测试系统。
  2. 将 USB SuperMUTT 设备插入暴露的 USB Type-C 端口。
  3. 运行 DF - Sleep and PNP with IO Before and After 测试。
  4. 使用 USB Type-C 测试设备重复步骤 3。

ST 案例 4:设备拓扑

适用于:系统、扩展坞、设备

  1. 重启测试系统。

  2. 通过使用 USB Type-C A/V 适配器,连接 A/V 适配器的所有端口,以便可以使用下图所示的所有功能:

    显示 USB Type-C A/V 适配器配置的示意图。

  3. 如果受测系统有更多的 USB Type-C 端口,请重复步骤 2。

  4. 运行 DF - 在测试期间使用 IO 睡眠

注释

在测试期间,验证通过 USB Type-C A/V 适配器连接的设备没有出现故障,例如视频失真或音频断开。

功能系统互作性测试计划

预期持续时间:20 分钟

此计划的目标是确定系统是否可以处理不同类型的外设和充电器。 此测试计划侧重于从系统 OEM 以外的源进行测试。

  • 系统:具有公开的 USB Type-C 端口的 Windows 10 系统。

  • 外设

    • USB Type-A 到 USB Type-C 适配器 - USB 3.0 中心 - USB 鼠标 - USB 3.0 闪存驱动器
    • USB Type-C 存储硬盘
    • USB Type-C 视频接口(可接受转接器)
  • 电源:USB Type-C 充电器

  • 执行 FT 案例 1: USB Type-C 保护设备枚举。 验证每个设备是否按预期枚举和运行。 此图显示了用于测试 USB 类型 A 适配器的推荐拓扑。

    用于测试 USB Type-A 保护设备的拓扑图。

  • 执行 FT 案例 6: 列表中的剩余外围设备的备用模式协商。 验证每个设备是否按预期枚举和运行。

  • 使用 USB Type-C 充电器执行FT 案例 7: 充电和供电(PD)的缩减版本。 跳过需要两台计算机的部分,并且仅验证系统是否能够使用非Microsoft电源适配器充电(接受电源)。

可用性系统互作性测试计划

预期持续时间:60 分钟

此计划的目标是确定此系统是否可以使用 USB Type-C 外围设备执行最常见的用户方案。 此测试计划假设成功完成 功能系统互作性测试计划中列出的测试。 可用性测试计划侧重于常见的用户、系统和设备方案。

  • 系统:具有公开的 USB Type-C 端口的 Windows 10 系统。

  • 外设

    • USB Type-A 到 USB Type-C 适配器 - USB 3.0 中心 - USB 鼠标 - USB 3.0 闪存驱动器
    • USB Type-C 存储硬盘
    • USB Type-C 视频接口(可接受转接器)
    • USB Type-C A/V 转换器(包括视频、USB,可能还有作为单个适配器的音频)
  • 电源:来自不同供应商的两个 USB Type-C 充电器。

  • 执行 FT Case 3:对列表中每个外围设备进行系统电源转换,并使用 USB 至 Type-C 的转接器。 验证每个设备在系统电源状态更改前后是否按预期进行枚举和运行。

    • 配置 USB Type-A 到 USB Type-C 适配器,如下图所示:

    用于测试 USB Type-A 保护设备的拓扑图。

    • 配置 USB Type-C A/V 适配器,如下图所示。

      USB Type-C A/V 保护程序配置示意图。

  • 执行 FT 例 2: 仅配置 USB Type-C A/V 多媒体扩展器进行系统引导,如上图所示,并验证以下场景:

    • 系统在所有设备连接的情况下启动,并且通过 USB Type-C A/V 转换器将视频显示在显示器上。
    • 系统从通过 USB Type-C 音频/视频适配器连接的 USB 磁盘启动。

完整互作性测试计划

预期持续时间:180 多分钟

完整的互作性测试计划涵盖一组更大的用户方案。 当设备系统准备进行 USB-IF 认证时运行这些测试。

  • 系统

    • 具有公开的 USB Type-C 端口的 Windows 10 系统。
    • 另一个具有公开 USB Type-C 端口的 Windows 10 系统。 我们建议选择来自其他产品线或 OEM 的系统。
  • 外设

    • USB Type-A 到 Type-C 适配器USB Type-A 到 USB Type-C 适配器 - USB 3.0 集线器 - USB 鼠标 - USB 3.0 U盘
    • USB Type-C 存储驱动器 - USB Type-C 视频(可接受)-USB Type-C A/V 保护机(包括视频、音频和 USB 作为单个单元)
  • 电源:来自不同供应商的两个 USB Type-C 充电器。

  • 执行所有函数压力测试用例。 此图显示了 USB Type-C A/V 的建议配置:

    USB Type-C A/V 适配器配置示意图。

如何确认设备添加

  • 确定设备连接到的 USB 主机控制器。
  • 请确保新设备显示在 Device Manager 中的正确节点下。
  • 对于连接到 USB 3.0 端口的 USB 3.0 集线器,预期会看到两台设备:一个是 USB 3.0 下游设备,另一个是连接到全速集线器下游的设备。

如何确认设备删除

  • Device Manager 中标识设备。
  • 执行测试步骤以从系统中删除设备。
  • 请确认该设备不再出现在设备管理器中。
  • 对于 USB 3.0 集线器,请检查是否已移除 SuperSpeed 和配套集线器。 在这种情况下,无法删除设备可能是设备故障。 应调查涉及的所有组件,以对适当的根本原因进行会审。

如何确认设备功能

  • 如果设备是 USB 中心,请确保中心下游的设备正常运行。 验证是否可以将其他设备连接到中心上的可用端口。
  • 如果设备是 HID 设备,请测试其功能。 确保 USB 键盘类型、USB 鼠标移动光标,游戏设备在游戏控制器的控制面板中正常运行。
  • USB 音频设备必须播放和/或录制声音。
  • 存储设备必须可访问,并且应该能够复制大小为 200MB 或更大的文件。
  • 如果设备具有多个功能(如扫描和打印),请确保同时测试扫描和打印功能。
  • 如果设备是 USB 类型 C,请确认适用的 USB 和备用模式是否正常工作。

如何将设备连接到系统

  • 确保 USB 3.x 设备使用适用于测试设备的 USB 3.x 电缆。
  • 如果系统无法识别设备,请通过连接同一类型的其他电缆来检查错误的电缆或连接器。

系统唤醒疑难解答

若要对无法唤醒系统的设备进行故障排除:

  • 确认设备是否支持唤醒。
  • 确认设备连接的主机控制器已设置为唤醒系统。

解决缺失电源状态的问题

如果测试系统无法达到睡眠或休眠状态,请确保系统中的所有设备都安装了最新的设备驱动程序。 最常见的原因之一是系统中不支持的视频卡。

使用 ETW 记录问题

若要为 USB 2.0 端口启用 ETW,请参阅 Windows 7 USB 核心堆栈中的 ETW

若要启用 USB 3.0 日志记录,请改为执行以下命令(或参阅 如何使用 Logman 捕获 USB 事件跟踪):

logman start usbtrace -ets -o usbtrace.etl -nb 128 640 -bs 128
logman update usbtrace -ets -p Microsoft-Windows-USB-UCX Default
logman update usbtrace -ets -p Microsoft-Windows-USB-USBHUB3 Default

捕获日志后,执行测试方案。

使用以下命令停止跟踪:

logman stop usbtrace -ets

使用分析器确认选择性挂起功能

若要分析 USB 2.0 和 3.0 流量,需要 USB 分析器设备,例如 LeCroy Voyager M3i、Advisor T3 或 TotalPhase Beagle 5000。 这些分析器能够捕获并显示选择性暂停功能确认所需的链接状态信息。

例如,使用 TotalPhase 分析器捕获流量后,会在输出中看到类似于以下内容的事件:

USB Type-C 分析器的输出的屏幕截图。

当测试要求设备进入挂起状态时,您应该能够将<暂停>事件与您预期设备进入挂起状态的时间相关联。

使用分析器确认 LPM U1 和 U2 转换

分析器跟踪应明确显示每个链路状态转换:在事件中,语句以“Rx U0 -> U2”的形式出现。 例如,通过使用 LeCroy 软件,在“ 报表 ”选项卡中,选择 USB3 链接状态计时视图。 此选项显示时间轴上的链接状态。 有时,分析器可能不会正确显示 U1 到 U2 的转换。 你可能会看到链接状态进入 U1,但从 U2 中恢复回来。

在设备管理器中停用选择性挂起功能

若要在设备管理器中的 USB 设备上禁用选择性暂停,请首先在设备树中找到设备的节点。 在此示例中,禁用集线器上的选择性挂起功能:

显示 Windows 设备管理器中选择的通用 USB 中心的屏幕截图。

右键单击该设备并选择“属性”。 然后选择 “电源管理 ”选项卡。

Windows 设备管理器中通用 USB 中心的电源管理选项卡的屏幕截图。

若要禁用选择性挂起,请确保 “允许计算机关闭此设备 以保存电源”复选框已清除。

翻转或反转 USB Type-C 电缆

USB Type-C 电缆旨在维护用户功能,而不考虑电缆方向。 通过移除电缆、旋转电缆并重新插入电缆来实现翻转或扭转电缆。

报告测试结果

请提供以下详细信息:

  • 在测试失败之前执行的测试列表(按顺序)。
  • 该列表必须指定失败或通过的测试。
  • 用于测试的系统、设备、扩展坞或集线器。 包括制造商、型号和网站信息,以便我们可以根据需要获取更多信息。