USB 3.1主机IP认证,你需要知道的是什么

作者:USB和DisplayPort,资深产品市场经理,Eric Huang

为什么USB无所不在?除了其易于使用的机制之外,USB认证程序还能保证USB“立即工作”。即使设计者未申请正式认证,很多公司使用USB应用论坛(USB-IF)规程来测试其产品,也能确保其产品能够进入市场。关于主机和设备系统的规程是免费的,工具并不昂贵(相对),因此,设计人能够利用该机会检查其产品的质量,包括从最慢的USB 1.1直至最新的USB 3.1第2代规范。

虽然工具和资源随手可得,很多公司即使通过了从机认证,但仍不能通过USB 3.1第二代主机认证。与从机系统认证相比,USB 3.1主机系统认证更加困难,这是因为,主机必须能在所有的USB速度下工作,并与可能的数以十亿计的USB外围设备交互。在本文中,介绍了Synopsys在其USB 3.1主机认证过程中将经历的一些USB 3.1主机认证过程,预计设计者也会遇到这些过程。

关于USB 3.1第二代主机认证的六种测试步骤 
有六种步骤可获得认证:

  1. 协议测试
  2. 黄金树测试
  3. 互操作性测试
  4. 电气测试
  5. 认证检查表完成
  6. xHCI主机测试

1. 协议测试
USB命令验证器(USBCV)测试软件用于验证是否遵守了USB协议。USBCV软件包含一套用于验证主机和设备是否恰当实施了USB规范的测试。尤其是,它们需按步通过USB规范第九章的要求,并测试第九章要求的每一方面(图1)。测试人员在运行Windows操作系统和最新版微软驱动程序的标准PC上运行USBCV。主机安装在Windows PC中,并与具有匹配速度的外围设备相连。例如,USB 3.1第二代主机应与USB 3.1第二代固态设备(SSD)相连。

测试USB3.1第二代主机的USBCV

图1:测试USB3.1第二代主机的USBCV

USBCV可对USB 3.1第二代(10 Gbps)、USB 3.0(5 Gbps)和USB 2.0的速度进行测试。作为USB主机测试过程的组成部分,必须测试所有三个部分。测试人员启动软件,选择测试,并运行测试。当测试通过,主机和外设都与测试相符。如果失败,主机或设备未能通过协议测试,然后开始调试。

2. 黄金树测试
USB黄金树是USB外围设备的特定集合。为了形成树干,多个HUB连接在一起,最多能5个串联在一起。树枝包括USB外围设备。外围设备负责所有USB通信类型。所有的外围设备采用控制传输来进行枚举和端点配置。它向主机通报外围设备的类型、端点数目以及支持的传输类型。传输类型分为三类, 分别是中断、批量和等时。

  • 中断 – 键盘、鼠标和触摸屏可产生中断传输。键盘和鼠标包含在黄金树内。
  • 批量 – 打印机和闪存驱动器使用批量传输,以100%的准确性移动数据。打印图像必须具有100%准确数据。黄金树包含一个打印机驱动和多个闪存驱动器,用于测试批量传输。
  • 等时 – 等时传输包括视频和音频通信。实时视频或音频会在对用户影响最小的情况下时不时地丢掉少量数据包。为了测试等时输入事务,黄金树包含两个网络摄像机和一个麦克风(作为USB耳机的一部分)。为了测试等时输出,需要使用USB耳机。

用于USB 3.1第一代主机(5 Gbps)和USB 3.1第二代主机(10 Gbps)的USB黄金树(图2),它包含一个用于视频适配器的超高速USB 3.1第二代USB。这是对5 Gbps的主要增加项,用于更快的测试。

用于USB3.1主机的黄金树

图2:用于USB3.1主机的黄金树

来源:USB实施者论坛xHCI互操作性测试规程,用于外围设备、HUB、主机,版本1.6,2015年2月。

USB 2.0黄金树(图3)仅包含具有USB 2.0速度的外围设备,并使用了一台打印机。当测试USB 3.0或2.0外围设备时,将外围设备插到距主机系统最远的HUB中。这样可确保设备能够处理通过HUB的多个层发送的通信数据,并保持工作状态。

用于USB2.0主机的USB黄金树

图3:用于USB2.0主机的USB黄金树

来自:USB实施者论坛xHCI兼容测试规程,用于主机和HUB,版本1.7,2016年6月。

要想黄金树进行成功测试,需将主机连接到黄金树,所有驱动正确加载,所有外围设备按照预期的那样工作。例如,在测试过程中,主机必须能够在打印机上进行打印,接收来自键盘和鼠标的输入,启动网路摄像机视频流,在耳机上播放音乐,并对所有闪存驱动进行读写操作。

截止到2016年秋季,只有少量可用于互操作性测试的USB 3.1第二代外围设备。当USB 3.1第二代HUB可用时,将会创建USB 3.1第二代黄金树测试仪。目前,除了USB3.0黄金树测试之外,设计者还需进行USB 3.1第二代互操作性测试。

3. 互操作性测试
对于USB 3.1主机的互操作性,需要大量的硬件测试。其中,最具挑战性的是对具有不同速度的外围设备进行测试,包括USB 2.0(高速、全速和低速)、USB 3.1第一代(5 Gbps)和USB 3.1第二代(10 Gbps)。USB 3.1第二代主机必须可以直接连接到每一种2.0外围设备,进行操作。

对于由USB-IF和第三方测试设施运行的平台互操作性实验室(PIL),它采用了一套定义良好的外围设备,用于互操作性测试。对于在Plugfest处进行的互操作性测试,使用了一系列新的外围设备,主机必须对90%的外围设备有效。

对于控制器的互操作性测试,也将对PHY进行互操作性测试。在电气方面,这还会使PHY设计、控制器和整个解决方案更加健壮。

4. 认证检查表完成
USB-IF要求所有申请人完成检查表。这是针对系统制造商的。检查表能够帮助设计者进行检查,查看其设计是否满足要求,而这类要求无论是通过USB测试还是电气测试均无法检出。它是自己给自己出的一份报告,但设计者遵循并完成它时,它会指导产品制造者生产出更好的产品。

5. 电气测试
对于所有产品,均要求系统级进行电气测试,以确保物理层(PHY)能通过电缆发送和接收数据。它对主机来说很关键,这是因为,与其相连的外围设备物理层的质量变化很大。事实上,一个好的PHY能够克服一些不良连线或不良外围设备PHY带来的问题。在10 Gbps的情形下,该测试更加重要,原因在于电缆长度现在可达2米。

电气测试的一个良好示例是“接收抖动容忍”测试。在SOC中,PCI Express或WiFi传输的同时,USB可能会传输数据。其中的模拟部分产生的噪声会在作用在USB接收器上,从而导致接收数据出现错误。该噪声就是作为抖动来测量的。在测试过程中,系统必须产生噪音,并证明比特误码率小于10-10

较低的比特误码率意味着,能够准确接收和读取数据,重新读取会最小化,吞吐量会最大化。通过这项测试可确保PHY正常工作,能够准确接收数据,并具有良好的整体数据吞吐量。

6. xHCI主机测试
主机控制器要求进行额外的一组测试。为此,公司必须求助于Intel,并签署专门协议以获得测试套件。该测试需3周(日历周)时间来对控制器进行大量测试。

总结
USB主机认证是最广泛的USB认证过程,也是最难获得的认证。大多数PC制造商能够获得这类认证,这是因为PC芯片集供应商提前完成了认证。只要PC制造商遵循PC芯片集供应商的指导要求,它们的系统就很可能通过兼容性测试。对于SOC开发者,这要难一些。他们需确保他们的整个芯片工作,而且IP已通过主机认证测试。他们可能具备、也可能不具备PC制造商的资源和专门知识。Synopsys是唯一一家其主机和设备的IP解决方案都通过USB 3.1第二代认证的IP供应商,包括DesignWare USB 3.1第二代控制器和PHY。使用兼容且有保证的USB IP,能够降低集成风险,有助于项目按时完成,支持“首次流片”成功,缩短推向市场的时间。