1.简介

USB2.0总线采用轮询模式,即总线事务开始时,都要先发送IN或者OUT令牌包,以通知端点或者查询端点是否准备好。而USB3.2采用了异步通知模式,若端点没有准备好,则主机无需轮询,端点准备好后会通知主机,而对于OUT端点,主机会直接发送DP数据包,相当于将USB2.0中的OUT和DATA报文合二为一。USB3.2的报文格式可以参考 USB3.2报文格式解析。下面借助USB分析仪,抓取USB主机和U盘之间的日志,分析USB3.2事务。

2.枚举

USB3.2设备枚举涉及到设置地址、获取设备描述符、获取配置描述符、获取字符串描述符、设置配置等,使用控制传输。

2.1.SET_ADDRESS

SET_ADDRESS传输分为两个事务。第一个事务是SETUP事务,HOST使用DP数据包传输标准控制请求(数据长度为8字节),表示SET_ADDRESS,设备使用ACK响应DP。第二个是STATUS事务,表示SET_ADDRESS传输结束。USB3.2使用TP报文控制数据流和管理点对点的连接,并没有定义SETUP事务包,分析仪这里显示为SETUP,只是为了兼容USB2.0控制传输。TP的SeqN表示下一步预期接收DP数据包的序列号,而DP的SeqN表示此数据包的序列号。Dir表示端点的方向,控制传输不使用该字段。

2.2.GET_DESCRIPTOR(DEVICE)

GET_DESCRIPTOR(DEVICE)传输分为四个事务。第一个事务是SETUP事务,HOST使用DP数据包传输标准控制请求,表示GET_DESCRIPTOR(DEVICE),设备使用ACK响应DP,而此ACK报文中NumP为0,表示端点没有空闲的缓冲区,进入了流控状态,无法传输后续事务。第二个事务,设备使用ERDY事务包通知主机,端点已经准备好了,可以传输事务。第三个事务,主机使用ACK事务包通知设备将描述符发送给主机,设备使用DP数据发送设备描述符,主机使用ACK响应设备。第四个是STATUS事务,表示GET_DESCRIPTOR(DEVICE)传输结束。

2.3.GET_DESCRIPTOR(CONFIGURATION)

GET_DESCRIPTOR(CONFIGURATION)传输和GET_DESCRIPTOR(DEVICE)传输类似。

2.4.SET_CONFIGURATION

SET_CONFIGURATION传输和GET_DESCRIPTOR(DEVICE)传输类似。

3.BULK传输

U盘采用BULK传输,下面分析一下IN和OUT端点的事务。对于非控制传输,端点的方向由Dir字段决定。

3.1.IN

主机的ACK报文发送到设备的EP1_IN端点,表示主机正在向设备请求数据。设备使用DP报文向主机发送13字节数据。主机使用ACK报文响应设备。后续的传输类似。从下面的三个传输可以看出,DP的序列号SeqN按顺序增大。

3.2.OUT

主机的DP报文发送到设备的EP2_OUT端点,表示主机正在向设备发送数据,数据长度为31字节。设备使用ACK报文响应,后续的传输类似。从下面的三个传输可以看出,DP的序列号SeqN按顺序增大。

USB分析仪USB3.2日志分析的更多相关文章

  1. 【转】gc日志分析工具

    性能测试排查定位问题,分析调优过程中,会遇到要分析gc日志,人肉分析gc日志有时比较困难,相关图形化或命令行工具可以有效地帮助辅助分析. Gc日志参数 通过在tomcat启动脚本中添加相关参数生成gc ...

  2. 海量日志分析方案--logstash+kibnana+kafka

    下图为唯品会在qcon上面公开的日志处理平台架构图.听后觉得有些意思,好像也可以很容易的copy一个,就动手尝试了一下. 目前只对flume===>kafka===>elacsticSea ...

  3. ELK+Kafka集群日志分析系统

    ELK+Kafka集群分析系统部署 因为是自己本地写好的word文档复制进来的.格式有些出入还望体谅.如有错误请回复.谢谢! 一. 系统介绍 2 二. 版本说明 3 三. 服务部署 3 1) JDK部 ...

  4. Hadoop学习笔记—20.网站日志分析项目案例(一)项目介绍

    网站日志分析项目案例(一)项目介绍:当前页面 网站日志分析项目案例(二)数据清洗:http://www.cnblogs.com/edisonchou/p/4458219.html 网站日志分析项目案例 ...

  5. Hadoop学习笔记—20.网站日志分析项目案例(二)数据清洗

    网站日志分析项目案例(一)项目介绍:http://www.cnblogs.com/edisonchou/p/4449082.html 网站日志分析项目案例(二)数据清洗:当前页面 网站日志分析项目案例 ...

  6. Hadoop学习笔记—20.网站日志分析项目案例(三)统计分析

    网站日志分析项目案例(一)项目介绍:http://www.cnblogs.com/edisonchou/p/4449082.html 网站日志分析项目案例(二)数据清洗:http://www.cnbl ...

  7. MyCAT日志分析

    MyCAT日志对于了解MyCAT的运行信息不可获取,譬如MyCAT是否采用读写分离,对于一个查询语句,MyCAT是怎样执行的,每个分片会分发到哪个节点上等等. 默认是info级别,通过log4j.xm ...

  8. ELK+redis搭建nginx日志分析平台

    ELK+redis搭建nginx日志分析平台发表于 2015-08-19   |   分类于 Linux/Unix   |  ELK简介ELKStack即Elasticsearch + Logstas ...

  9. Mysql慢查询和慢查询日志分析

     Mysql慢查询和慢查询日志分析   众所周知,大访问量的情况下,可添加节点或改变架构可有效的缓解数据库压力,不过一切的原点,都是从单台mysql开始的.下面总结一些使用过或者研究过的经验,从配置以 ...

  10. 通过grep来进行日志分析,grep -C和配合awk实际对catalina.out使用案例

    本文介绍通过grep来进行日志分析,主要介绍grep -C和配合awk实际对catalina.out使用案例 grep可以对日志文件进行筛选,统计,查询,快速定位bug. 首先,你的日志需要比较规范, ...

随机推荐

  1. 找实习,三本计算机 > 985文科 ?

    2018年3月,大三下学期. 写了一段时间博客以后,竟有人说要内推我. 我说我大三,还没毕业,准备暑假去找实习. 网上认识的朋友建议我去春招实习试试,还有些厂在走流程中,还有机会. 我婉拒了,感觉我自 ...

  2. springboot中事务失效的一些场景以及如何应对

    @Transactional是基于AOP的,因此事务发生需要两个条件: 1.添加@Transactional注解 2.使用代理对象 失效场景:同一个类中直接调用的类方法,而被调方法带有@Transac ...

  3. AI/机器学习(计算机视觉/NLP)方向面试复习1

    1. 判断满二叉树 所有节点的度要么为0,要么为2,且所有的叶子节点都在最后一层. #include <iostream> using namespace std; class TreeN ...

  4. matplotlib中渐变颜色条转CSS样式(hex格式)——同mapbox中cog的颜色条拉伸显示

    matplotlib中渐变颜色条转CSS样式(hex格式)--同mapbox中cog的颜色条拉伸显示 应用场景: 1.适用于mapbox中显示cog影像时,colormap_name拉伸颜色条转换 2 ...

  5. 对比python学julia(第二章)--(第三节)玫瑰曲线—数学之美

    3.1.问题描述 在数学世界中有一些美丽的曲线图形,有螺旋线.摆线.双纽线.蔓叶线且.心脏线.渐开线.玫瑰曲线.蝴蝶曲线-- 这些形状各异.简有繁别的数学曲线图形为看似枯燥的数学公式披上精彩纷呈的美丽 ...

  6. 【Windows】(USB热点连接)使用手机给主机提供热点连网

    1.问题起源 昨天跟和几个哥们一起装机,发现安装好的系统, 直连网卡提示安装成功,但是网络设置显示未连接 找不到其他原因的办法下,我们看能不能使用手机对电脑进行连网 2.解决过程 我想到的是,先从手机 ...

  7. 【Java】三元运算符 类型提升 问题

    代码片段: @Test public void test() { Object o = true ? new Integer(1) : new Double(2); System.out.printl ...

  8. Java中如何以文本方式输出"\"

    1. 转义符使用 "\"在 java中是一个转义符,只要有它的出现往往有他独特的意义,如下图: 那么,在输出文本时,需要输出"\"怎么办呢,其实很简单,只要多加 ...

  9. 一次生产环境mysql迁移操作(二)mysql空间释放(碎片整理)

    一次生产环境mysql迁移操作(一)数据归档 一次生产环境mysql迁移操作(二)mysql空间释放(碎片整理) 上文中增加了定时归档,现在一些大表磁盘空间一直不释放,导致数据库文件越来越大.现在介绍 ...

  10. springcloud集成grpc(二)

    码云地址:https://gitee.com/lpxs/lp-springcloud.git 有问题可以多沟通:136358344@qq.com. 上一章内容介绍了springboot2集成net.d ...