《实时USB类级解码.pdf》由会员分享,可在线阅读,更多相关《实时USB类级解码.pdf(32页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 103314341 A (43)申请公布日 2013.09.18 CN 103314341 A *CN103314341A* (21)申请号 201180051861.7 (22)申请日 2011.07.27 12/870,759 2010.08.27 US G06F 3/00(2006.01) G06F 12/16(2006.01) G06F 13/14(2006.01) (71)申请人 总相位公司 地址 美国加利福尼亚州 (72)发明人 L维恩伯格 K桑萨纳姆 (74)专利代理机构 中国专利代理(香港)有限公 司 72001 代理人 卢江 (54) 发明名称 实时。
2、 USB 类级解码 (57) 摘要 本发明公开实时 USB 类级解码。在一些实施 例中, 接收与 USB 类级操作相关联的第一分组以 及由 USB 分析器所生成的第二分组。至少部分基 于与第一分组相关联的第一时间以及与第二分组 相关联的第二时间来确定类级操作已经超时。在 一些实施例中, 至少部分基于在缓冲器中所存储 的枚举记录可被覆写的指示, 来将枚举记录从被 配置成存储与目标 USB 装置相关联的 USB 数据的 缓冲器复制到不在该缓冲器中的存储位置。在一 些实施例中, 至少部分通过取决于是否启用类级 解码而以不同方式对不太可能感兴趣的分组进行 编组, 来显示 USB 数据以供分析。 (30。
3、)优先权数据 (85)PCT申请进入国家阶段日 2013.04.26 (86)PCT申请的申请数据 PCT/US2011/001336 2011.07.27 (87)PCT申请的公布数据 WO2012/026958 EN 2012.03.01 (51)Int.Cl. 权利要求书 3 页 说明书 9 页 附图 19 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书3页 说明书9页 附图19页 (10)申请公布号 CN 103314341 A CN 103314341 A *CN103314341A* 1/3 页 2 1. 一种分析 USB 数据的方法, 包括 : 接收与。
4、 USB 类级操作相关联的第一分组, 所述 USB 类级操作与正被监测的目标 USB 装 置相关联 ; 接收由 USB 硬件分析器所生成的第二分组, 所述 USB 硬件分析器被配置成观测与所述 目标 USB 装置相关联的 USB 业务 ; 以及 至少部分基于与所述第一分组相关联的第一时间以及与所述第二分组相关联的第二 时间来确定所述类级操作已经超时。 2.如权利要求1所述的方法, 其中, 与所述USB类级操作相关联的所述第一分组包括与 所述 USB 类级操作相关联的第一接收的分组。 3. 如权利要求 1 所述的方法, 其中, 至少部分基于与所述第一分组相关联的第一时间 以及与所述第二分组相关联。
5、的第二时间来确定所述类级操作已经超时包括将与所述第一 分组相关联的第一时间戳与所述第二分组相关联的第二时间戳进行比较。 4. 如权利要求 1 所述的方法, 其中, 至少部分基于与所述第一分组相关联的第一时间 以及与所述第二分组相关联的第二时间来确定所述类级操作已经超时包括将与所述第一 分组相关联的第一时间戳与至少部分基于所述第二分组所生成的所接收超时事件进行比 较。 5.如权利要求1所述的方法, 其中, 所述USB硬件分析器被配置成生成并作为输出周期 地提供所述第二分组为其实例的分组类型的分组。 6. 如权利要求 1 所述的方法, 其中, 所述第二分组包括 “无活动” 分组, 所述 USB 硬。
6、件分 析器被配置成在所述 USB 硬件分析器确定在所规定时间之内在所监测总线上没有活动被 看到时生成并提供作为输出的所述 “无活动” 分组。 7. 如权利要求 1 所述的方法, 还包括生成和显示超时记录。 8. 一种分析系统, 包括 : 通信接口, 被配置成接收与目标 USB 装置相关联的分析流 ; 以及 处理器, 被耦合到所述通信接口, 并被配置成 : 经由所述通信接口来接收与 USB 类级操作相关联的第一分组, 所述 USB 类级操作与正 被监测的目标 USB 装置相关联 ; 经由所述通信接口来接收由 USB 硬件分析器所生成的第二分组 ; 以及 至少部分基于与所述第一分组相关联的第一时间。
7、以及与所述第二分组相关联的第二 时间来确定所述类级操作已经超时。 9. 如权利要求 8 所述的系统, 其中, 所述处理器被配置成至少部分通过将与所述第一 分组相关联的第一时间戳与相关联至少部分基于所述第二分组所生成的所接收超时事件 进行比较, 来至少部分基于与所述第一分组相关联的第一时间以及与所述第二分组相关联 的第二时间确定所述类级操作已经超时。 10. 如权利要求 8 所述的系统, 其中, 所述 USB 硬件分析器被配置成生成并作为输出周 期地提供所述第二分组为其实例的分组类型的分组。 11. 如权利要求 8 所述的系统, 其中, 所述第二分组包括 “无活动” 分组, 所述 USB 硬件 。
8、分析器被配置成在所述 USB 硬件分析器确定在所规定时间之内在所监测总线上没有活动 被看到时生成并提供作为输出的所述 “无活动” 分组。 权 利 要 求 书 CN 103314341 A 2 2/3 页 3 12. 如权利要求 8 所述的系统, 其中, 所述处理器还被配置成生成和显示超时记录。 13. 一种用于分析 USB 数据的计算机程序产品, 所述计算机程序产品被具体实施在计 算机可读存储介质中, 并且包括计算机指令以用于 : 接收与 USB 类级操作相关联的第一分组, 所述 USB 类级操作与正被监测的目标 USB 装 置相关联 ; 接收由 USB 硬件分析器所生成的第二分组 ; 以及 。
9、至少部分基于与所述第一分组相关联的第一时间以及与所述第二分组相关联的第二 时间来确定所述类级操作已经超时。 14. 一种分析 USB 数据的方法, 包括 : 至少部分基于缓冲器中所存储的枚举记录能够被覆写的指示, 来将所述枚举记录从被 配置成存储与目标USB装置相关联的USB数据的缓冲器中的第一存储位置复制到不在所述 缓冲器中的第二存储位置 ; 以及 使用所述第二位置中所存储的所述枚举记录来执行对与所述目标装置相关联的一组 USB 数据的 USB 类级解码。 15.如权利要求14所述的方法, 其中, 所述枚举记录包括与所述目标USB装置的枚举相 关联的一个或多个分组中包含的数据。 16. 如权。
10、利要求 14 所述的方法, 还包括对所复制枚举记录加索引, 以帮助从所述第二 存储位置检索所述所复制枚举记录。 17. 如权利要求 14 所述的方法, 其中, 所述缓冲器包括循环缓冲器。 18. 如权利要求 14 所述的方法, 还包括用指示所述枚举记录是枚举记录的数据值来标 记所述第一位置中所存储的所述枚举记录。 19. 一种分析系统, 包括 : 存储器, 被配置成存储缓冲器, 所述缓冲器被配置成存储与目标 USB 装置相关联的 USB 数据 ; 以及 处理器, 被耦合到所述存储器, 并且被配置成 : 至少部分基于所述缓冲器中所存储的枚举记录能够被覆写的指示, 来将所述枚举记录 从所述缓冲器中。
11、的第一存储位置复制到不在所述缓冲器中的第二存储位置 ; 以及 使用所述第二位置中所存储的所述枚举记录来执行对与所述目标装置相关联的一组 USB 数据的 USB 类级解码。 20. 一种显示 USB 数据的方法, 包括 : 当在第一显示模式中时, 对第一类型的分组编组, 以供在显示位置中所显示的编组条 目中显示, 这允许与 USB 类级操作相关联的一组一个或多个类级记录被连续地显示, 而没 有所述第一类型的一个或多个分组的介入的表示介入, 即使在所监测总线上, 所述第一类 型的一个或多个分组被按时间顺序散布有包含所述类级操作的分组 ; 以及 当在第二显示模式中时, 对所述第一类型的所述分组编组,。
12、 以供在一个或多个显示位 置中所显示的一个或多个编组条目中显示, 如果需要则与在所述第一显示模式中的不同方 式显示, 这允许一组一个或多个事务级记录被显示, 而没有所述第一类型的一个或多个分 组的介入的表示介入在包含事务的两个或更多记录之间, 即使在所监测总线上, 所述第一 类型的一个或多个分组被按时间顺序散布有包含所述事务的分组。 权 利 要 求 书 CN 103314341 A 3 3/3 页 4 21. 如权利要求 20 所述的方法, 还包括接收用户输入以从所述第一显示模式改变成所 述第二显示模式。 22. 如权利要求 21 所述的方法, 还包括对所述第一类型的分组编组, 以使得对于紧跟。
13、 前一个事务之后并且在完成当前事务之前到达的第一类型的一个或多个事务分组的每个, 在紧靠与所述事务相关联的第一事务记录之前所显示的单个编组条目中表示。 23. 如权利要求 20 所述的方法, 其中, 所述第一类型的分组包括帧开始 (SOF) 分组。 24.如权利要求20所述的方法, 还包括当在所述第一显示模式中时, 累积在所述USB类 级操作的挂起完成中实时所接收的所述第一类型的分组, 以及一旦所述 USB 类级操作完成 则显示所述编组条目。 25. 如权利要求 24 所述的方法, 还包括在与所述编组条目相邻和之后的位置中显示所 述一组一个或多个类级记录。 26. 一种分析系统, 包括 : 显。
14、示装置 ; 以及 处理器, 被耦合到所述显示装置, 并且被配置成 当在第一显示模式中时, 对第一类型的分组编组, 以供在所述显示装置上的显示位置 中的所显示的编组条目中显示, 这允许与 USB 类级操作相关联的一组一个或多个类级记录 在所述显示装置上被连续地显示, 而没有所述第一类型的一个或多个分组的介入的表示介 入, 即使在所监测总线上, 所述第一类型的一个或多个分组被按时间顺序散布有包含所述 类级操作的分组 ; 以及 当在第二显示模式中时, 对所述第一类型的所述分组编组, 以供在所述显示装置上的 一个或多个显示位置中所显示的一个或多个编组条目中显示, 如果需要则与在所述第一显 示模式中的不。
15、同方式显示, 这允许一组一个或多个事务级记录在所述显示装置上被显示, 而没有所述第一类型的一个或多个分组的介入的表示介入在包含事务的两个或更多记录 之间, 即使在所监测总线上, 所述第一类型的一个或多个分组被按时间顺序散布有包含所 述事务的分组。 权 利 要 求 书 CN 103314341 A 4 1/9 页 5 实时 USB 类级解码 背景技术 0001 通用串行总线(USB)分析器由USB装置、 软件(例如, 驱动程序)、 固件等的制造商 及其它开发人员用于监测和分析通用串行总线 (USB) 上的通信。例如, 可监测目标 USB 装 置和该装置经由目标主机上的 USB 端口与其连接的目标。
16、主机之间的通信, 以确保该装置按 照可适用 USB 标准和协议与目标主机正确地通信, 而且反过来也是。 0002 硬件 USB 分析器通常包括 : 具有第一组连接器的独立或其它硬件装置, 该组连接 器使分析器能够被连接以至于能够观测目标 USB 装置与目标主机之间的业务 ; 用于将在被 监测的 USB 连接上观测到的信号解码为 USB 分组的硬件和 / 或固件 ; 以及使分析器能够连 接到分析 PC 并且向分析 PC 进行转发的硬件、 逻辑和 / 或外部连接器。 0003 USB 基本规范定义管理 USB 总线上的通信的协议。装置类代码被定义成使 USB 装 置能够将自己识别为一个或多个装置类。
17、的成员, 例如, 通过将相关联的USB类代码和/或装 置描述符信息包含在该装置在初始连接时传送给主机的 “枚举” 信息中。装置类可具有一 个或多个子类级, 以及这些一个或多个子类级的每个可具有与其相关联的一个或多个不同 协议。对于每个 USB 装置类, 类规范定义类特定协议。以这种方式, 例如, 与独立于 USB 装 置开发的 USB 驱动程序应当是随装置可使用的, 只要均符合可适用 USB 规范中所定义的相 同类和 / 或装置特定协议。 附图说明 0004 在以下详细描述和附图中公开了本发明的各个实施例。 0005 图 1 是示出硬件 USB 分析器的实施例的框图。 0006 图 2 是示出。
18、 USB 分析器的实施例的框图。 0007 图 3 是提供可与 USB 数据相关联的各个语义级的概念表示的框图。 0008 图 4 是示出分析 PC 的实施例的框图。 0009 图 5 是示出生成分析流的过程的实施例的流程图。 0010 图 6 是示出对所监测 USB 数据进行解码和显示的过程的实施例的流程图。 0011 图 7 是示出根据类级上下文来生成超时的过程的实施例的流程图。 0012 图 8 是示出被解码到类级的所监测 USB 数据的的实施例的框图。 0013 图 9 是示出循环缓冲器的实施例的框图。 0014 图 10A 是示出用于保存枚举和相关信息的过程的实施例的流程图。 001。
19、5 图 10B 是示出用于保存枚举和相关信息的过程的实施例的流程图。 0016 图 10C 是示出用于保存枚举和相关信息的过程的实施例的流程图。 0017 图 11 是示出用于实时类级解码的过程的实施例的流程图。 0018 图 12 是示出用于显示 USB 类级信息的过程的实施例的流程图。 0019 图 13 是示出用于 USB 事务级信息的过程的实施例的流程图。 0020 图 14 是示出在类级与事务级视图之间进行切换的过程的实施例的状态图。 0021 图 15 是示出在类级与事务级视图之间进行切换的过程的一个实施例的状态图。 说 明 书 CN 103314341 A 5 2/9 页 6 0。
20、022 图 16 是示出类级视图的实施例的框图。 0023 图 17 是示出事务级视图的实施例的框图。 具体实施方式 0024 本发明能够采用许多方式来实现, 包括实现为过程、 设备、 系统、 物的组合、 在计算 机可读存储介质上具体实施的计算机程序产品和 / 或如配置成执行与处理器耦合的存储 器上存储的和 / 或由存储器提供的指令的处理器的处理器。在本说明书中, 这些实现或者 本发明可采取的任何其它形式可称作技术。一般来说, 所公开过程的步骤的顺序在本发明 的范围之内可以改变。除非另外说明, 描述为被配置成执行任务的如处理器或存储器的组 件可实现为在给定时间暂时被配置成执行该任务的通用组件或。
21、者被制造成执行该任务的 专用组件。本文所使用的术语 处理器 指的是被配置成处理如计算机程序指令的数据的 一个或多个装置、 电路和 / 或处理核心。 0025 下面连同附图一起来提供本发明的一个或多个实施例的详细描述, 附图示出本发 明的原理。结合这样的实施例来描述本发明, 但是本发明并不局限于任何实施例。本发明 的范围仅由权利要求书来限定, 并且本发明包含许多备选、 修改和等效物。 在以下描述中陈 述大量具体细节, 以提供对本发明的透彻了解。 提供这些细节是出于示例的目的, 并且本发 明可在没有这些具体细节的部分或全部的情况下按照权利要求书来实施。为了清楚起见, 没有详细描述与本发明相关的技术。
22、领域中已知的技术资料, 以免不必要地模糊本发明。 0026 公开了实时 USB 类级解码。在各个实施例中, 硬件 USB 分析器被配置成接收和监 测例如目标 USB 装置与相关联目标主机之间的 USB 通信。分析器向分析个人计算机 (PC) 或其它分析计算机提供分析流, 例如, 分析流包含在目标装置与目标主机之间所发送的所 观测 USB 分组。分析 PC 运行分析软件, 分析软件被配置成使 PC 能够将所监测 USB 业务解 码到类级, 并且经由显示装置向用户显示装置类级信息, 如在目标装置与目标主机之间所 发送的类级指令和命令。 在一些实施例中, 如果分析器在所规定时间之内尚未观测到分组, 。
23、则分析器向分析 PC 输出周期的 “无活动” 分组或其它报告。在 PC 上运行的分析软件使用 与 “无活动” 分组相关联的时间戳或其它时间以及目标装置与目标主机之间的上一次观测 到分组的时间连同对类级状态 ( 例如, 挂起并且尚未完成的类级交互, 如从 “大容量存储” 装置 “读取” ) 的认知一起以有效且及时的方式来检测和报告超时。 0027 在一些实施例中, 分析器在所监测分组被接收时将其存储在循环缓冲器中。一旦 缓冲器已满, 则当新分组被接收并被解码时, 覆写较旧的分组。在接收 “捕获” 命令或其它 指示时, 将缓冲器的内容在 “捕获” 流中提供给分析 PC。在一些实施例中, 在分析器处。
24、接收 到分组时, 分析器确定它们是否与装置的初始枚举和 / 或如装置描述符数据的后枚举信息 相关联。这样的信息需要是已知的, 并且在一些实施例中用于实现类级解码 ; 然而, 可在接 收到枚举信息之后 ( 相对 ) 长时间启动 “捕获” 。在一些实施例中, 例如在被覆写之前, 枚举 记录被复制和加索引, 以确保它们 ( 或者从其中得出的相关联信息 ) 对于以后用于实现后 续 “捕获的” 流的类级解码将是可用的。 0028 在一些实施例中, 分析软件被配置成按照如下方式来显示信息 : 使得用户可能不 感兴趣的分组以防止用户看到的方式将不会显示, 例如, 在适当紧凑和 / 或同时可见的显 示区中查看。
25、感兴趣的相关分组序列的方式来显示用户可能不感兴趣的分组。 可能不感兴趣 说 明 书 CN 103314341 A 6 3/9 页 7 的分组的示例是周期地发送以标记新帧开始的连续 “帧开始” (SOF) 分组和在目标主机与目 标装置之间的连续 “IN” 和 “NAK” 分组对的交换, 即当主机在装置无论什么原因而没有数据 向主机发送的时期期间周期地轮询装置的数据时所交换的分组。在各个实施例中, 对不是 特别感兴趣的这样的分组进行编组和显示的方式可取决于选择了类级视图还是选择了事 务级视图而改变。 0029 图 1 是示出硬件 USB 分析器的实施例的框图。在所示示例中, USB 分析器 102。
26、 被配 置成监测目标 USB 装置 104 与目标主机 106 之间的 USB 连接。第一 USB 缆线 / 连接器 108 将目标 USB 装置 104 连接到分析器 102 ; 以及第二 USB 缆线 / 连接器 110 将分析器 102 连 接到目标主机106。 目标USB装置的示例包括但不限于打印机、 大容量存储装置以及如鼠标 或键盘的人机接口设备 (HID)。采用图 1 所示方式来连接, 分析器 102 接收由目标 USB 装置 传送给目标主机或者由目标主机传送给目标装置的 USB 总线信号, 使分析器能够监测双向 通信。分析器通常被配置成被动地监听, 以使得目标主机和目标装置认为它。
27、们之间具有直 接 USB 连接。分析器 102 经由分析流输出连接 112 向分析 PC( 或其它计算机 )114 来提供 分析流。在一些实施例中, 连接 112 本身是分析器 102 与分析 PC 114 之间的 USB 连接。在 各个实施例中, 分析 PC 114 和目标主机 106 可包括相同的物理系统, 例如, 装置 104 经由分 析器 102 以及连接 108 和 110 与其连接的 PC。 0030 图 2 是示出 USB 分析器的实施例的框图。在所示示例中, 图 1 的硬件 USB 分析器 102 被示出为包括 USB 分组解码器 202, USB 分组解码器 202 被配置成。
28、接收和解码图 1 中所 示的目标装置与目标主机之间发送的信号。在图 2 所示的示例中, 箭头指示对由目标装置 104 经由连接 108 所发送的预计送往目标主机 106 的分组的观测, 目标主机 106 经由连接 110 连接到分析器 102 ; 然而, 从主机发送给装置的分组也会被接收和解码。USB 分组解码 器 202 向分析流生成器 204 提供所观测分组, 分析流生成器 204 将所观测分组包括在作为 连接 112 上的输出提供给分析 PC 的分析流中。在一些实施例中, 分析器 102 将分析器时间 戳附加在经由连接 112 所发送的每个所观测分组上。在所示示例中, 时间戳生成器和逻辑。
29、 206 生成并且提供时间戳。在一些实施例中, 在所监测总线 ( 例如这个示例中的 108、 110) 上的不活动的时期期间, 分析流生成器被配置成例如周期地输出 “无活动” 或其它周期分 组以指示在相关联的时期期间在所监测总线上没有观测到分组。 例如, 在一些实施例中, 分 析器时间戳包括 16 位, 以及在所监测总线上没有所监测分组被看到的情况下每次时间戳 翻转时发送 “无活动” 分组。 0031 图3是提供可与USB数据相关联的各个语义级的概念表示的框图。 在所示示例中, 多层概念表示 300 包括电信号层 302。在物理导线和连接器级, USB 装置和目标主机在导线 上发送和接收信号。。
30、例如, USB 1.0 或 2.0 缆线具有 4 条导线, 两条用于电力 (Vcc、 GND) 以 及两条用于数据 (D+、 D-)。对总线上的信号进行解码以识别对应分组 (304)。在所规定序 列中交换的一系列分组包括事务 (306)。例如, 主机用以从装置轮询和接收数据的 “IN” 事 务可包括由主机发送给装置的 “IN” 分组、 由装置发送回主机的 “DATA” 分组以及从主机至 装置以确认数据的接收的 “ACK” 分组。( 如果装置没有数据, 则装置用 “NAK” 分组来响应 IN 分组, 并且那将是特定交换的结束。) 另一个示例是 “OUT” 事务 ( 从主机至装置的 OUT 分 组。
31、、 接着将数据从主机提供给装置的 DATA 分组, 最后接着从装置至主机的确认数据的接收 的 ACK 分组 )。USB 类使另一个语义级能够被理解和使用。在类级, 以及取决于类、 子类等, 说 明 书 CN 103314341 A 7 4/9 页 8 一组一个或多个相关事务可包括类级传递、 命令、 指令等。例如, USB 装置在 “大容量存储” 类中的情况下,“读取” 传递可包括用于发起操作的 “命令传输” 、 传递数据的 “数据传输” 以 及标记传递的完成和同步状态的 “状态传输” 。这些 “传输” 的每个又可包括一个或多个事 务。例如, 数据传输可包括一系列 IN 事务, 其中的每个用于向。
32、主机递送待读取的所请求数 据的一部分。如前所述, 一系列一个或多个事务的类级含意通常在类或类相关的规范中定 义。 0032 图 3 中, 表示了 1 至 n(308) 的多个类。在一些实施例中, 例如在连接到可兼容主 机的特定配置的装置的上下文中, 可应用一个或多个类、 子类和/或类和/或子类特定协议 和 / 或配置。在一些实施例中, 类、 子类、 协议和 / 或装置描述符信息可由装置来提供和 / 或在初始连接和 / 或启动 ( 例如引导 ) 时交换, 并且可包括以上提到的枚举信息和 / 或如 装置描述符信息的后枚举信息。在各个实施例中, 这样的枚举和 / 或后枚举信息例如由分 析PC上的分析。
33、软件使用以将所观测USB业务解码到类级, 并例如经由显示器以人可读的形 式在类级来呈现信息。 0033 图 4 是示出分析 PC 的实施例的框图。在所示示例中, 图 1 的分析 PC 114 被示出 为包括配置成经由连接 112 来与硬件 USB 分析器通信的通信接口 402, 例如 USB、 网络或其 它接口。通信接口 402 向事务级解码引擎 404 提供包含经由连接 112 所接收的分析流的 所观测分组 ( 和其它数据, 如以上提到的周期的 “无活动” 分组 )。事务级解码引擎 404 将 分组关联到包括事务的编组中, 并且向类级解码引擎 406 提供事务级信息。在一些实施例 中, 事务。
34、级解码引擎 404 向类级解码引擎 406 向上传递分析流中包含的任何 “无活动” 分组 ( 或者在一些实施例中包含同样的数据, 如分析器时间戳 )。类级解码引擎 406 分析所接收 事务信息以得出类级信息, 如识别类级传递、 命令和指令。在各个实施例中, 类级解码引擎 406 使用在装置枚举或后枚举期间所观测的类和 / 或装置描述符和 / 或其它数据来确定如 何在类级对信息进行解码。 0034 在一些实施例中, 类级解码引擎 406 被配置成接收由分析器在所监测总线上的静 寂时期期间所生成的 “无活动” 分组或其它周期的分组和 / 或包含同样的数据, 例如分析器 时间戳, 并使用所接收的无活。
35、动数据连同对类级状态 ( 例如, 在任何类级操作正挂起时的 类级状态 ) 的认知来生成和显示类级超时事件, 如下面结合图 7 更全面的描述。 0035 在图4所示的示例中, 用户接口代码408从类级解码引擎接收信息, 并经由显示装 置 410 来显示类级信息。在一些实施例中, 用户接口代码 408 响应例如来自用户输入以选 择将要显示的视图。例如, 在一些实施例中, 如果启用 “分类” 或 “类级解码” , 则显示解码到 该类级的信息 ; 但是, 如果没有启用分类, 则显示事务级信息。在各个实施例中, 事务级解 码引擎 404、 类级解码引擎 406 和用户接口代码 408 中的一个或多个包括。
36、通过使用包括 PC 114 的处理器执行相关联的软件指令来提供的实体。 0036 图5是示出生成分析流的过程的实施例的流程图。 在一些实施例中, 图5的过程在 硬件 USB 分析器上实现。在所示示例中, 例如由图 2 的解码器 202 将在所监测总线上感测 的电信号解码成分组 (502)。一旦分组被解码 (504), 就附加分析器时间戳并将所观测分组 包括在作为输出所提供的分析流中 (506)。如果在规定的 ( 例如可配置 ) 周期之内没有检 测到分组 (508), 则生成携带分析器时间戳的 “无活动” 分组并将其包含在分析流中 (510)。 在一些实施例中, 不管所监测总线上是否已经存在活动。
37、, 分析器周期地输出 “无活动” 或者 说 明 书 CN 103314341 A 8 5/9 页 9 其它分组, 以及在一些这样的实施例中, 步骤 508 被省略, 和 / 或包括确定是否已经到达提 供作为输出的 “无活动” 或其它周期的分组的时间的步骤。在一些实施例中, 不管所监测总 线上的活动如何, 每次相关联计数器翻转时, 使用 16 位分析器时间戳并输出周期的分组。 如前所述继续操作直到完成 (512), 例如分析器被断开和 / 或从分析 PC 接收到停止命令。 0037 图 6 是示出对所监测 USB 数据进行解码和显示的过程的实施例的流程图。在一些 实施例中, 图6的过程由如图1和。
38、图4的分析PC 114的分析计算机来实现。 在所示示例中, 在接收到分组 (602) 时, 将其解码到事务级 (604)。又将事务级信息解码到类级 (606), 并 显示类级操作、 命令和指令 (608)。 0038 图 7 是示出根据类级上下文来生成超时的过程的实施例的流程图。在一些实施例 中, 图 7 的过程由如图 4 的类级解码引擎 406 的类级解码引擎来实现。在所示示例中, 接收 “无活动” 事件 (702)。在各个实施例中, 无活动事件可包括由 USB 分析器所生成和发送的 无活动分组和 / 或从其中所得出的事件或其它记录或指示。例如, 在一些实施例中, USB 分 析器被配置成在。
39、每次 16 位或其它计数器翻转时输出虚 (dummy) 分组或其它分组。分析 PC 被配置成生成超时, 即使在所监测总线上接收到n个这样的虚分组或其它无活动分组而没 有观测到包含数据的介入的分组 (intervening packet) 的情况下。在一些实施例中, 在沿 至类级解码引擎的路径的介入级处, 可收集一个或多个这样的事件, 并生成下一级超时事 件。例如, 事务级解码引擎在生成事务级超时和 / 或向类级解码引擎向上传递事务级所生 成的超时事件之前可累积m个分组级超时事件。 一旦在类级解码引擎接收超时事件(702), 如果类级操作正挂起 (704), 例如已经观测到包括类级传递的一个或多。
40、个事务但是预期将 接收与类级传递有关的一个或多个剩余事务, 例如借助于在可适用类规范中陈述的要求和 协议, 将 “无活动” 事件相关联的时间和与类级操作相关联的时间进行比较, 例如, 和与类级 操作相关联的第一所接收分组的时间戳进行比较 (706)。如果经过的时间超过所规定阈值 (708), 则生成类级超时事件并且向用户显示相关联告警(710)。 在一些实施例中, 通过累积 连续事务级或其它所接收超时事件来确定经过的时间, 以及如果连续接收到超过所规定数 量的这样的所接收超时事件而没有由类级解码引擎作为输出所提供的类级操作完成事件, 则生成类级超时事件。如果没有类级超时被确定为已经发生, 或者。
41、如果没有类级操作正挂 起, 或者一旦生成超时事件并且显示告警, 则该过程结束。 0039 图 8 是示出被解码到类级的所监测 USB 数据的显示的实施例的框图。在所示示例 中, 显示器 800 包括记录栏 802 和数据栏 804, 在记录栏 802 中显示描述类级记录的性质和 含意的信息 ; 在数据栏 804 中显示与记录相关联的对应数据。在所示示例中, 显示与从 USB 大容量存储装置中读取数据的操作相关联的数据。在第一行 ( 排 ),“读取” 操作通过 “读 取” 记录来表示, 其中负号指示该记录已经被扩展以显示在后续行中的分量记录。 在数据栏 中, 显示指示被读取数据的逻辑块地址 (L。
42、BA) 和长度的数据连同被观测的操作已经成功完 成 (“已通过” ) 的指示。读操作被示出为包括命令传输、 数据传输和状态传输。数据传输 记录已经被扩展为示出包含数据传输的多个 IN 事务。第一 IN 事务已经被扩展为示出包括 该事务的 IN、 DATA 和 ACK 分组。在一些实施例中, 如果在所规定时间之内尚未观测到图 8 所示的传输序列已经完成, 则会显示错误或其它指示。例如, 在一些实施例中, 基于对类级 上下文的认知 ( 在这里是挂起从 “大容量存储” 装置类的成员的装置的读取 ), 如果在上一 次确认事务和一个或多个后续事务和 / 或预期被接收以指示类级操作的完成的分组之间 说 明。
43、 书 CN 103314341 A 9 6/9 页 10 已经经过了所规定时间量 (例如基于 “无活动” 等分组和 / 或从分析器所接收的并向上传播 到类级解码引擎的信息来确定的) , 则类级解码引擎或相关元件被配置成生成超时。在这样 的情况下, 显示 “超时” 或其它错误而不是图 8 所示的 “已通过” 状态。 0040 使用上述方式, 能够实时检测类级传递或其它类级操作的完成中的超时或其它错 误。在非实时分析中, 有可能在分析流中向前搜索 (look ahead) 来查看是否和 / 或何时接 收到与类级传递相关联的后续分组。 然而, 为了执行实时分析, 以及具体来说为了及时检测 超时并且实。
44、时向用户显示相关联告警, 要求如本文所述的那些技术在不利用能够无限地检 查将来的情况下使分析软件能够实时确定类级操作已经超时。否则, 用户体验会是显示不 会变化, 这可由除了类级传递的完成的失败之外的原因而引起, 例如硬件分析器的故障、 分 析器与分析 PC 之间的连接的问题和 / 或分析软件和 / 或 PC 的故障。 0041 在各个实施例中, 硬件 USB 分析器和 / 或分析 PC 被配置成使用循环缓冲器来存储 包括所监测USB流的分组和/或记录。 一旦建立连接并在所监测总线上观测到数据, 就对分 组进行解码并将相关联记录存储在循环缓冲器中, 以供在接收到想要实时 “捕获” 和分析的 指。
45、示的情况下进一步使用和分析。 循环缓冲器用于削减用来存储记录的存储器或其它存储 装置。一旦接收到开始实时捕获的命令, 就从缓冲器抽出记录, 以及例如在适用的情况下, 通过将信息解码到事务和 / 或类级来分析记录。 0042 图 9 是示出循环缓冲器的实施例的框图。在所示示例中, 循环缓冲器 900 包括多 个存储位置 902, 存储器或其它存储装置的所分配块被组织成该多个存储位置 902。在概念 上, 在一些实施例中, 第一记录会被存储在最左位置, 下一记录存储向右的下一位置, 依此 类推, 直到达到最后 ( 在本例中为最右 ) 存储位置。如箭头 904 所示, 下一个接收的数据会 被存储在最。
46、左位置, 以覆写存储在该位置中的数据来作为开始。写入 ( 存储 ) 会向右进行, 以覆写先前存储的数据, 直到再次达到最后位置, 这时写入会返回到第一位置, 依此类推。 这种方式允许被分配的有限的存储量存储所观测 USB 数据, 但是, 一旦缓冲器已经被填充, 新数据就只能够通过覆写早前所观测并存储的数据来存储。 在没有使用本文所述的技术的 情况下, 这种方式可以导致覆写将来支持实时类级解码可能需要数据, 如通常当装置被首 次连接时和 / 或在启动时交换的枚举信息和装置描述符信息, 并且因此是一旦循环缓冲器 变满则首先被覆写的数据中的数据。 0043 在一些实施例中, 在可能将来需要来实现在 。
47、USB 数据流被接收时对其进行实时类 级解码的数据, 如枚举和装置描述符信息, 在其被覆写之前被存储在 ( 与循环缓冲器不同 的 ) 另一个位置。 0044 图 10A 是示出用于保存枚举和相关信息的过程的实施例的流程图。在所示示例 中, 监测在所监测总线上所观测的 USB 数据, 以检测包括枚举信息的记录 (1002)。将所 检测枚举记录 (1004) 复制到与循环缓冲器不同的存储位置, 并且对其加索引以帮助检索 (1006)。 非枚举记录和枚举记录以同样的方式被写入循环缓冲器(1008)。 继续该过程直到 完成 (1010), 例如, 分析器被从目标装置和 / 或目标主机断开连接。 004。
48、5 图 10B 是示出用于保存枚举和相关信息的过程的实施例的流程图。在所示示例 中, 当接收分组 (1030) 时, 确定它是否为枚举 ( 或其它装置类、 身份和 / 或配置 ) 相关的 (1032)。 如果是的话, 则将相关联记录标记为枚举记录(1034)。 在一些实施例中, 仅当启用 类级解码时才标记枚举记录。将未标记记录 ( 如果所接收分组不是枚举相关的 ) 或者标记 说 明 书 CN 103314341 A 10 7/9 页 11 记录 ( 在枚举记录的情况下 ) 存储在循环缓冲器中 (1036)。 0046 图 10C 是示出用于保存枚举和相关信息的过程的实施例的流程图。在所示示例 。
49、中, 在接收关于循环缓冲器已满 ( 或者接近为满 ) 的指示 (1050) 时, 例如, 通过检查如关 于图 10B 所提到的标记来检查缓冲器枚举记录的存在 (1052)。如果找到任何枚举记录 (1054), 则将它们复制到另一个位置并且加索引(1056)。 如果没有找到枚举记录(1054)或 者如果这样一旦已经复制和索引了所有这样的记录(1056)时, 则继续/恢复写入循环缓冲 器 (1058), 如果适用, 包括覆写先前存储的枚举 ( 若有的话 ) 和 / 或非枚举记录。 0047 图 11 是示出用于实时类级解码的过程的实施例的流程图。在所示示例中, 在接收 开始实时类级解码的指示(1102)时, 检索与目标装置相关联的枚举记录(1104)。 在一些实 施例中, 如果循环缓冲器仍然存在记录, 则从循环缓冲器检索记录, 或者如果不存在记录, 则从其被复制到的位置来检索记录。 在一些实施例中, 如果需要避免它们被覆写, 则检查将 枚举记录已经复制到其中的位置 ; 如果存在枚举记录, 则对它们进行检索并使用, 如果不存 在, 则按顺序从缓冲器播放记录, 并且在遇到枚举记录时对它们进行处理。。