admin 管理员组

文章数量: 887016

Windows 硬件实验室工具包 (HLK) 测试可用于系统、USB 主机控制器、集线器和设备的其他测试。 这些测试涵盖基本设备功能、可靠性和与 Windows 的兼容性。

先决条件

在开始运行徽标测试之前,请确保满足以下要求:

  • 若要运行这些测试,至少需要两台计算机:一台测试服务器和一台测试客户端;
  • 测试客户端必须具有最新版本的 Windows;
  • 测试客户端必须具有集成或作为加载项卡的 EHCI 和 xHCI 控制器。 控制器必须公开用户可访问的根端口 (没有集成中心) ;
  • 从 Windows Hardware Lab Kit 下载将 Windows HLK 下载到测试服务器;
在 HLK 中运行 USB 测试的硬件要求

若要运行 HLK 测试,需要:

  • 主控制器 (集成或作为加载项卡) 、集线器或设备进行认证。在测试客户端上打开设备管理器,并确保要使用的 USB 控制器公开用户可访问的根端口 (没有集成集线器) 。

  • 符合 USB-IF 的外部 SuperSpeed 集线器,用于评估系统兼容性。 我们已使用以下中心测试 HLK 测试:

Texas Instruments SuperSpeed (USB 3.0) Hub 参考设计板 (TUSB8040EVM) 。SuperMUTT 包。 MUTT 设备 作为中心和控制器测试的测试设备。此处提供了完整的一组要求:

  • USB 总线控制器测试先决条件
  • USB Hub.Connectivity 测试先决条件
USB 的 HLK 测试选择

适用于系统、主机控制器、集线器或设备的 USB 测试将在 HLK Studio 中自动选择。

在 Windows HLK 入门中执行步骤 1-5 后,请确保:

  • 在步骤 5 中,在 HLK Studio 的“ 选择 ”选项卡中选择了正确的设备。
  • 在步骤 6 中,适用于设备的所有测试都显示在 HLK 工作室的“ 测试 ”选项卡中。 若要运行这些测试,必须在左侧检查框中选择测试,然后单击“运行所选测试”。 本文档的以下部分列出了 USB 测试测试。
建议的 Windows HLK 测试

除了 HLK Studio 中自动选择的所有 USB 测试外,我们还建议使用连接到受测系统、控制器或集线器的 MUTT 或 SuperMUTT 运行基础测试。 对于系统提交,这些是系统基础知识 (SysFund) 测试,对于控制器、中心或设备提交,这些是设备基础知识 (DevFund) 测试。

  • SysFund系统基础知识
  • 设备基础知识 (DevFund)
建议用于系统开发的 USB 测试

如果要构建新系统,建议使用本文中的测试。

若要运行本文中列出的 DF 测试,必须具有 MUTT 设备。 根据具体阶段,需要运行以下命令来更新设备的驱动程序:

muttutil -updatedriver <driver_inf>.inf

MuttUtil 工具包含在 MUTT 软件包中。

如果要生成新系统,建议进行以下 USB HCK 测试:

阶段 1 - 系统启动
  • DF – 在基本) 之前和之后使用 IO 睡眠 (
  • DF - PNP(禁用和启用),带 IO 之前和之后(基本)
  • USB 公开端口控制器测试
  • USB xHCI 传输速度测试
  • USB3 终止

阶段 2 - 系统集成
  • DF - 在 (功能) 之前和之后重启 IO
  • DF - 睡眠和 PNP (禁用和) 启用 IO 之前和之后 (功能)
  • USB xHCI 传输速度测试

阶段 3 - 系统优化

系统 1

  • DF - 在 (认证) 期间使用 IO 休眠
  • DF - 并发硬件和操作系统 (CHAOS) 测试 (认证)

系统 2

  • DF - 睡眠和 PNP (禁用和) 启用 IO 之前和之后 (功能)
  • USB xHCI 传输速度测试

如果支持扩展坞,则系统 3:

  • 在停靠的系统上运行为 系统集成阶段 列出的测试。

USB-IF 认证

硬件供应商和设备制造商指南,用于为 Windows 硬件认证计划提交准备 USB 设备和主机控制器。

USB-IF 测试

USB 硬件(特别是 USB 设备或主机控制器)必须满足 USB-IF 的机电要求才能获得 Windows 认证。 USB-IF 认证涵盖 USB 设备和主机控制器的更深入测试,并确保高质量的实现。

早期版本的 Windows 硬件认证工具包要求制造商将其设备提交到 USB-IF 进行测试。 新版本的 HLK USB-IF 测试要求允许制造商从 USB-IF 网站下载并运行测试,然后断言这些测试已通过 HLK。 如果设备已通过 USB-IF 认证,则需要向 HLK 提供设备的 USB-IF 测试 ID (TID) 。

即使 USB 设备通过了当前的 Microsoft Windows 认证计划要求,其中许多设备也不完全符合 USB 规范。 最常见的示例包括:

  • 中心:通常失败,因为它们报告它们实际上只有总线电源时具有外部电源。 错误报告会导致总线上的电压条件无效。
  • 硬盘驱动器:通常由于 USB 总线的耗电过多而无法正确枚举,因此会发生故障。 在许多情况下,这些硬盘驱动器需要非标准电缆才能正常工作。
  • 闪存驱动器:通常失败,因为它们无法正确处理描述符请求;这会导致设备挂起,并使 Microsoft 操作系统描述符失败。
  • 读卡器:通常失败,因为它们未进入选择性挂起状态。
  • 打印机:通常失败,因为它们不会从待机状态恢复。
  • 音频:通常失败,因为它们不会从待机状态恢复。

不合规的 USB 设备可能会导致用户体验不佳、公共关系困难、产品退货、产品支持呼叫量高,以及与已发货产品中的服务 bug 相关的成本增加。

USB-IF 测试的 Windows HLK 要求
  • 设备 (Device.Connectivity.UsbDevices.UsbifCertification) :

我们强烈建议通过 USB-IF 认证。 但是,Windows HLK 要求 Device.Connectivity.UsbDevices.UsbifCertification 不再需要 USB 设备的 USB-IF 认证。 该要求指出,设备可以经过 USB-IF 认证,或者 USB-IF 的一部分认证测试可以在设备上运行。

  • 主机控制器 (Device.BusController.UsbController.UsbifCertification)

USB 主机控制器制造商必须获得完整的 USB-IF 认证才能满足各自的 Windows HLK 要求。

  • Hubs (Device.Connectivity.UsbDevices.UsbifCertification)

USB 集线器制造商必须获得完整的 USB-IF 认证才能满足各自的 Windows HLK 要求。

系统制造商在选择要集成到其系统中的 USB 主机控制器时,应了解这些要求。 这些要求可以显著改善 USB 设备的客户体验。 它们有助于防止崩溃和挂起的关键原因,并减少排查和调试不合规问题所花费的时间。

Windows 硬件认证提交选项

此图显示了如何获取 Windows 认证的过程流。

可以使用以下方法之一提交 USB 设备进行 Windows 认证,以满足新的 USB-IF 测试要求:

  • USB-IF 认证

从 USB-IF 授权的独立测试实验室获取 USB-IF 认证,然后提交设备以获得 Windows 认证资格。 可以选择以下选项之一来获取设备或主机控制器的 USB-IF 认证:

将设备提交到 USB-IF 授权的独立测试实验室进行测试。 

 备注 它通常需要一到两周的授权独立测试实验室来测试单个 USB 设备是否符合 USB 规范。

若要将 USB 设备提交到授权的独立测试实验室进行 USB-IF 认证,制造商必须在实验室注册,并具有有效的供应商 ID (VID) 。

设备成功通过 USB-IF 认证测试后,你拥有该设备的以下权限:

可以将 USB 徽标用于设备的宣传册、包装和产品信息。
可以在 USB-IF 集成商列表中列出。
将设备带到 USB-IF 赞助的合规性研讨会。 每年在美国举办四次研讨会,在亚洲举办一次研讨会。
设备通过 USB-IF 认证测试后,你将收到来自测试实验室或车间的测试 ID 号 (TID) 。 运行设备的其余 Windows HLK 测试时,请向 Windows HLK 提供此 TID 编号。

在授权的独立测试实验室测试和认证 USB 设备的成本因实验室而异。 某些授权的独立测试实验室为某些关联企业提供批量折扣或折扣。 在任何 USB-IF 赞助的合规性研讨会上测试和认证 USB 设备都无需支付任何费用。 你必须是 USB-IF 的成员才能参加 USB-IF 赞助的合规性研讨会。

  • USB-IF 自测试

下载 USB 命令验证程序测试工具和 USB 互操作性测试文档,并从 USB-IF 运行所需的测试。 然后提交设备以获取 Windows 认证资格。

USB 主机控制器和集线器不符合 USB-IF 自测试选项的条件,必须获得完整的 USB-IF 认证。

如果你决定使用 USB-IF 自测试选项来获取 Windows 认证,则必须至少执行以下 USB-IF 测试:

USB 命令验证程序测试:USB 命令验证程序测试验证设备理解和接受常见 USB 命令的能力。
USB 互操作性测试:USB 互操作性测试针对设备与其他 USB 外设共存的功能和能力。
这些测试在 Windows HLK 外部下载并运行。 请注意,这些测试必须在最新版本的 Windows 上运行,仅 (USB-IF) 指定的,即使你提交的 USB 设备是多个 Windows 版本的 Windows 认证资格。 测试结果适用于所有 Windows 版本的所有 Windows 认证提交。

以下步骤介绍如何执行所需的 USB-IF 测试,以限定设备获得 Windows 认证。

  1. 从 USB 软件和硬件 工具下载 USB 命令验证程序测试工具 (USB3CV) 以及 互操作性测试文档。
  2. 运行下表中指定的 USB 硬件的 USB-IF 测试:
  3. 如果测试通过,请输入字符串“SELFTEST”作为测试 ID (TID,) 输入 HLK 中的 USB-IF 认证验证测试。
Windows HLK 中 USB 测试的常见故障

适用于 USB 的 DevFund 测试

  • 错误条件:设备状态检查失败,并显示一个错误,指示 MUTT 设备不存在。
  1. SuperMUTT 作为驱动程序运行 Winusb.sys 或 Usbtcd.sys。 可以通过安装 MUTT 软件包来获取驱动程序和驱动程序安装包文件。
  2. 确保设备管理器将 SuperMUTT 的硬件 ID 显示为“USB\VID_045E&PID_078F”。 注意 PID_078E不正确。
  3. 确保设备管理器 (按连接查看 > 设备) 显示 xHCI 控制器下游枚举的 SuperMUTT。
  4. 在 USBView 中,确保 SuperMUTT 设备以 SuperSpeed 运行。 注意 可以从 Microsoft Windows 软件开发工具包 (SDK) 中的 安装 Windows 调试工具包 安装 USBView。 或者,USBView 安装在 Windows 驱动程序工具包 (WDK) 的调试器文件夹中。
  5. 确保 MUTT 固件是最新的。 在提升的提示符下,在安装 MUTT 软件包的目录中运行“muttutil -updatefirmware”。
  6. 如果问题仍然存在,请报告以下附件的问题:
    设备管理器 和 USBView 的屏幕截图,其中显示了上述列表中的项 1-4。
    MuttUtil 命令的输出。
  • 错误条件:DevFund 在简单的 I/O 传输过程中失败。
  1. 转到 https://aka.ms/usbtrace 并下载 usbtrace.cmd。
  2. 使用此脚本捕获事件的驱动程序日志,以便进一步调查。
  3. 使用 bug 附加 %SystemDrive%\Windows\Tracing 的所有内容。
  4. 保存并附加失败测试的 .hlkx 文件。
  • 错误条件:MUTT 设备已连接到系统,但未安装正确的驱动程序。
    最有可能的驱动程序安装失败,或者设备没有最新的固件。 安装 Winusb.sys 或 Usbtcd.sys 作为驱动程序。 可以通过安装 MUTT 软件包来获取驱动程序和驱动程序安装包文件。

本文标签: 测试 设备 Windows USB HLK