硬件供应商和设备制造商为提交 Windows 硬件认证计划而准备 USB 设备和主控制器的指南。
USB-IF 认证测试
如果你制造 USB 硬件,尤其是 USB 设备或主控制器,则你的硬件必须满足 USB-IF 的电气和机械要求才能获得 Windows 认证。USB-IF 认证包含对 USB 设备和主控制器的更深入的测试,并确保高质量实现。
较早版本的 Windows 硬件认证工具包要求硬件制造商将其设备提交到 USB-IF 进行测试。不过,该要求已变更。已不再要求将设备提交到 USB-IF 进行测试。
新版 HCK 的 USB-IF 测试要求允许供应商从 USB-IF 网站下载和运行测试,结果由 HCK 使用。如果你的设备已经由 USB-IF 认证,则需要将设备的 USB-IF 测试 ID (TID) 提供给 HCK。这可让设备获得 USB-IF 认证的合作伙伴避免任何重复测试。设备没有获得 USB-IF 认证的合作伙伴只需自己运行一些 USB-IF 测试,然后将这些测试的日志提供给 HCK。
即使 USB 设备符合当前的 Microsoft Windows 认证计划要求,但这些设备中有许多不完全符合 USB 规范。最常见的示例有:
-
集线器:通常会失败,因为它们在实际上仅有总线电源时报告有外部电源。错误报告导致总线上无效的电压条件。
硬盘驱动器:通常会失败,因为它们由于 USB 总线过量的功耗而不能正确枚举。在许多情况下,这些硬盘驱动器需要非标准连接线才能正常工作。
闪存驱动器:通常会失败,因为它们不能正确处理描述符请求;这导致设备挂起并使 Microsoft 操作系统描述符失败。
读卡器:通常会失败,因为它们不能正确进入选择性暂停状态。
打印机:通常会失败,因为它们不能从待机状态恢复。
音频:通常会失败,因为它们不能从待机状态恢复。
Windows HCK 的 USB-IF 测试要求
-
设备 (Device.Connectivity.UsbDevices.UsbifCertification)
我们极力建议进行 USB-IF 认证;不过,Windows HCK 要求 Device.Connectivity.UsbDevices.UsbifCertification 不再要求 USB 设备进行 USB-IF 认证。该要求指出,设备可以获得 USB-IF 认证,或者可以在设备上运行 USB-IF 认证测试的子集。
主控制器 (Device.BusController.UsbController.UsbifCertification)USB 主控制器制造商必须获得全面 USB-IF 认证才能满足其各自的 Windows HCK 要求。
集线器 (Device.Connectivity.UsbDevices.UsbifCertification)USB 集线器制造商必须获得全面 USB-IF 认证才能满足其各自的 Windows HCK 要求。
系统制造商在选择与其系统集成的 USB 主控制器时应了解这些要求。这些要求可以显著提高用户对 USB 设备的体验。它们可以帮助防止发生崩溃或挂起的关键原因,并减少花费在排查和调试非兼容性问题上的时间。
Windows 硬件认证提交选项
此图显示了如何获得 Windows 认证的流程。
你可以使用下列方法之一提交 USB 设备以取得 Windows 认证资格,从而满足新的 USB-IF 测试要求:
-
USB-IF 认证
从 USB-IF 授权独立测试实验室获得 USB-IF 认证,然后提交设备以取得 Windows 认证资格。你可以选择下列选项之一为设备或主控制器获得 USB-IF 认证:
-
将设备提交到 USB-IF 授权独立测试实验室进行测试。有关如何找到实验室的信息,请参阅 USB-IF 授权独立测试实验室。
注意 授权独立测试实验室通常需要一至两周的时间测试单个 USB 设备是否符合 USB 规范。
要将 USB 设备提交到授权独立测试实验室进行 USB-IF 认证,制造商必须向实验室注册并具有有效的供应商 ID (VID)。
-
可以在你的设备说明书、包装和产品信息中使用 USB 徽标。
将贵公司列在 USB-IF 集成商列表中。
将设备提交到 USB-IF 赞助的合规性研讨会。每年在美国举行四次研讨会,在亚洲举行一次研讨会。
在授权独立测试实验室测试和认证 USB 设备的费用因实验室而异。有些授权独立测试实验室提供批量折扣或对一些关联企业提供折扣。在任何 USB-IF 赞助的合规性研讨会测试和认证 USB 设备不收取任何费用。你必须是 USB-IF 会员才能参加 USB-IF 赞助的合规性研讨会。
USB-IF 自我测试从 USB-IF 下载 USB 命令验证程序测试工具和 USB 互操作性测试文档并运行所需的测试。然后提交设备以取得 Windows 认证资格。
注意 USB 主控制器和集线器没资格获得 USB-IF 自我测试选项,必须获得全面 USB-IF 认证。如果你决定使用 USB-IF 自我测试选项来获得 Windows 认证,则至少须执行以下 USB-IF 测试:
-
USB 命令验证程序测试:USB 命令验证程序测试用于验证设备理解和接受通用 USB 命令的能力。
USB 互操作性测试:USB 互操作性测试旨在测试设备与其他 USB 外设共存时的功能性和能力。
以下步骤介绍如何执行所需的 USB-IF 测试来使设备获取 Windows 认证资格。
-
从 SuperSpeed USB 软件和硬件工具下载 USB 3.0 命令验证程序测试工具 (USB30CV) 和互操作性测试文档。
为 USB 硬件运行 USB-IF 测试,如下表中所指定:
USB 版本 | USB-IF 测试 |
---|---|
USB 2.0 |
将设备连接在 xHCI 主控制器后,并运行 USB 3.0 命令验证程序测试工具 (USB30CV) 中的第 9 章测试 [USB 2.0 设备]。 运行可互操作性测试,如 GoldSuite 测试过程文档的“互操作性”部分中的 EHCI 部分所述。运行这些测试两次:一次使用连接在 EHCI 主控制器后的设备,另一次使用连接在 xHCI 主控制器后的设备。 |
USB 3.0 |
将设备连接在 xHCI 主控制器后,并运行 USB 3.0 命令验证程序测试工具 (USB30CV) 中的第 9 章测试 [USB 3.0 设备]。 运行互操作性测试,如 XHCI 互操作性测试文档中所述。运行这些测试两次:一次使用连接在 EHCI 主控制器后的设备,另一次使用连接在 xHCI 主控制器后的设备。 |