欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 美食 > USB分析仪USB3.2日志分析

USB分析仪USB3.2日志分析

2024/11/30 8:42:38 来源:https://blog.csdn.net/u011037593/article/details/141474751  浏览:    关键词:USB分析仪USB3.2日志分析

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表示端点的方向,控制传输不使用该字段。
SET_ADDRESS

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)传输结束。
GET_DESCRIPTOR(DEVICE)

2.3.GET_DESCRIPTOR(CONFIGURATION)

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

2.4.SET_CONFIGURATION

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

3.BULK传输

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

3.1.IN

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

3.2.OUT

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

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com