USB分析仪USB3.2日志分析

news/2024/9/23 7:32:50

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按顺序增大。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/60493.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

[第一章 web入门]SQL注入-1

启动靶机很明显注入点为id值,单引号闭合影响语句,说明为单引号闭合构造注入语句 ?id=1 and 1 =1 --+ 发现没报错,说明没有其他过滤 ,开始sql注入 ?id=1 order by 4 --+ 直到=4报错说明有3个字节段测试回显位2,3 ?id=1 and 1 = 2 union select 1,2,3 --+ 测试当…

数据结构 —堆

今天学习算法了没,你小子瞅啥呢!一:堆 1、一种二叉树的结构(完全二叉树) 2、完全二叉树:从上到下;从左到右;填满 3、最大堆:根节点的权值大于孩子节点 4、最小堆:根节点的权值依次小于孩子节点 5、常用操作 import heapq# 创建最小堆和最大堆 min_heap = [] max_heap…

CodeForces VP Record

CodeForces Round 767 (contest 1628) A Meximum Array 考虑二分。二分的时候计算区间 $ \text{mex} $,参考 P4137 Rmq Problem / mex,主席树即可。时间复杂度 $ \Theta(n \log^2 n) $,无需卡常。 B Peculiar Movie Preferences 首先,对于一个合法的回文串,容易证明首尾两…

软工第一次作业-论文查重

这个作业属于哪个课程 https://edu.cnblogs.com/campus/gdgy/CSGrade22-34/这个作业要求在哪里 https://edu.cnblogs.com/campus/gdgy/CSGrade22-34/homework/13229这个作业的目标 通过Java开发个人项目,实现项目单元测试作业github地址(含jar包) github:https://github.com/…

文本相似度计算

一、PSP表格PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)Planning 计划 30 35 Estimate估计这个任务需要多少时间 30 35Development 开发 400 450 Analysis需求分析 (包括学习新技术) 60 70 Design Spec生成设计文档 60 60 Design Review…

第二十讲:为什么我只改一行的语句,锁这么多?

该文章深刻揭示了一点:加索引=行锁+间隙锁=(next-key lock),分析了加锁的规则:对主键(唯一索引),普通非唯一索引进行等值与范围查询的加锁。这篇文章我认为收获最大的是让我们知道“明明对一行加了锁,为什么在他相邻部分,或是相相邻部分无法插入数据(这根主键类型,…

【视频讲解】线性时间序列原理及混合ARIMA-LSTM神经网络模型预测股票收盘价研究实例

原文链接:https://tecdat.cn/?p=37702 原文出处:拓端数据部落公众号 分析师:Dongzhi Zhang 近年来人工神经网络被学者们应用十分广泛,预测领域随着神经网络的引入得到了很大的发展。本文认为单一神经网络模型对序列所包含的线性信息和非线性信息的挖掘是有限的,因此本…