USB2.0令牌、事务及传输抓包分析
+ -

USB2.0 OUT令牌包

2021-06-22 4035 4

USB2.0 OUT令牌用于主机向设备发送数据,令牌后跟数据包,当数据发送完成后设备需返回ACK包。

OUT令牌包格式

OUT令牌包格式由8位的包标识字段PID,7位的地址字段ADDR、4位的段点字段和5位的循环字段CRC共24位3字节组成。
OUT令牌包

  • 包标识字段PID:定义了数据传输方向为USB主机到USB设备。
  • ADDR字段:指明了USB设备地址。
  • ENDP字段:指明了接收数据的端点号。
  • CRC字段:用于ADDR字段和ENDP字段进行循环冗余校验。
PID 含义 说明
0001 令牌OUT 主机发送数据到USB设备

OUT令牌包ID低4位为0001,高4位为低4位的补码,所以高4位就为1110,组合起来就是0xE1(LSB-MSB),使用MSB-LSB的格式为0x87。

OUT令牌的PID之后为设备的地址,该地址由SetAddress标准请求实现。设备地址之后为设备的端点地址,最后为CRC校验和。

OUT令牌实例解析

下图为使用抓包工具抓到的一个USB主机向U盘写数据的事务
OUT令牌实例解析
可以看到,OUT令牌之后为DATA0数据,最后为设备向主机返回的ACK握手包。

在上图中,OUT令牌的目标设备的地址为15,端点为2,CRC校验为0x0c,传输波形如下图:
OUT令牌

HID人机交互QQ群:564808376    UAC音频QQ群:218581009    UVC相机QQ群:331552032    BOT&UASP大容量存储QQ群:258159197    STC-USB单片机QQ群:315457461    USB技术交流QQ群2:580684376    USB技术交流QQ群:952873936   

0 篇笔记 写笔记

USB2.0 数据包DATA0,DATA1,DATA2
数据包是用于传输数据的,由8位的包标识PID,数据字段和16位的循环冗余校验字段CRC组成。PID字段:用于指明不同的数据包类型。支持 4 种数据包,分别为: DATA0 、 DATA1 、DATA2 和MDATA。 在介绍的数据触发机制中,使用 DATA0 和 DATA1。SPLIT 令牌事......
USB2.0 SOF令牌
SOF令牌包是最广泛的令牌包,由主机发送。在实机的抓包工具过程,由于和NAK包大量存在,都会在软件配置中不显示。但这并不代表这个SOF令牌包不重要。SOF令牌不需要像其它令牌一样,具有握手包。因此发送给设备的SOF包并不能保证一定会收到。SOF数据流管理由USB主机发送一个SOF令牌包。SOF数据......
USB2.0 IN令牌
令牌IN用于主机接收从USB设备发出的数据,和OUT令牌的数据传输方向相反。IN令牌包格式由8位的包标识字段PID,7位的地址字段ADDR、4位的段点字段和5位的循环字段CRC共24位3字节组成。包标识字段PID:定义了数据传输方向为USB设备到USB主机。ADDR字段:指明了USB设备地址。......
USB2.0 OUT令牌
USB2.0 OUT令牌用于主机向设备发送数据,令牌后跟数据包,当数据发送完成后设备需返回ACK包。OUT令牌包格式OUT令牌包格式由8位的包标识字段PID,7位的地址字段ADDR、4位的段点字段和5位的循环字段CRC共24位3字节组成。包标识字段PID:定义了数据传输方向为USB主机到USB......
USB2.0 SETUP令牌
SETUP令牌包用于主机向USB设备发送配置信息SETUP令牌包结构SETUP令牌包格式由8位的包标识字段PID,7位的地址字段ADDR、4位的端点字段和5位的循环字段CRC共24位3字节组成。包标识字段PID:定义了数据传输方向为USB主机到USB设备。ADDR字段:指明了USB设备地址。E......
USB2.0 PING令牌
PING事务PING事务只有令牌包和握手包。PING事务是USB2.0高速模式特有的,全速模式和低速模式没有。PING事务作用:主机探测设备是否有空间接收数据。PING令牌PIDPING令牌的PID低4位为0100,高4位的补码为1011,故PING令牌的PID为0xB4.PING流程主机发送......
USB2.0包Packet的组成
USB包由SOP,SYNC,Packet内容和EOP组成.SOP起始包起始包SOP(Start Of Packet),通过将D +和D-线从空闲状态驱动到相反的逻辑电平(K状态),由始发端口发信号通知分组的开始(SOP)。 此开关级别表示SYNC字段的第一位。 当重新传输到小于±5 ns时,集线器......
USB数据长度为0的DATA/IN事务
前言使用BUSHOUND是抓不到这种包的。而且一些令牌包如SOF等这些是统计不到的。BUSHOUND是一个基本windows过滤驱动的,所以抓到的是数据已经传输的并且已经在主机方面的,所以USB总线上的一些状态是统计不到的。其实关于控制传输的0字节长度,可详见:USB2.0 控制传输数据包PID序......
USB2.0 令牌
令牌包全部由USB主机发出,其内容包括包标识PID,包目标地址ADDR,包目标地址(ENDP)和CRC5校验位域。令牌包指明了后续数据包的目标地址和端点。令牌包的PID有:PID含义说明0001令牌OUT主机发送数据到USB设备1001令牌IN主机接收从USB设备......
USB2.0 Setup事务
Setup事务是由SETUP令牌,数据包和握手包组成的。一个成功的Setup事务保证了Setup令牌和数据包传输的可靠传输。Setup事务是由主机到设备的,并且如果Setup事务含有数据包,必须使用DATA0包。有数据包的SETUP事务可见下图。此SETUP事务使用SETUP令牌包(0xB4)......
USB2.0 OUT事务
OUT事务和其它事务一样,也包含三个包,分别为OUT令牌包,数据包(输出)和握手包(成功时为ACK)。OUT事务用于由USB主机发送数据,所以在数据包之前发送为的OUT令牌包,如果USB设备确认数据正确无误的接收时,给主机返回ACK握手包。如果USB设备由于其自身资源不足(如内存)等自身原因无法......
USB2.0 SPLIT令牌
SPLIT令牌用于从高速模式到低速和全速模式的转换。对于如下图所示设备连接图:当低速或者全速设备连接到高速HUB主机或者高速HUB上时,使用SPLIT令牌实现高速命令到低速或者全速命令的转换。SPLIT令牌分为SSplit(Start Split)令牌和CSplit(Complte Split)令......
USB2.0全速设备使用逻辑分析仪抓取IN令牌包分析SOP/SYNC/PID/EOP
发在B站上的录制的视频 2.USB2.0包Packet的组成-SOP SYNC EOP的解析其中下面有一条评论,询问 站长,也就是说SOP/SYNC/EOP是物理层的,用分析仪都抓不到是吧?这个我在下面也回答了,是可以抓取到的,只不过对于我们进行包分析,意义不大,因为我们的关注点已经不在那里了。刚......
USB事务跨帧SOF的问题
USB中文网技术交流群有同学发了一个USB抓包截图,并提出了一个问题:控制传输的一个事务内的包不在一帧内传输会有问题吗, 比如我发一个setup包,下面会有一个IN package和一个OUT package,结果IN和OUT package不和SETUP package在一个帧内发送或者接收到,这......
IN令牌包的设备端事务响应流程
USB主机发送IN令牌给设备后,用于请求设备的数据包。USB设备端收到主机发送过来的PID为IN的令牌包后,需要对IN令牌包进行数据校验。如果IN令牌包中的设备地址和端点地址信息有效,并且端点缓冲区中有待发送的数据(端点状态为Valid状态),这时USB设备端的硬件自动使用DTAT0或DATA......
关注公众号
  • HID人机交互
  • Linux&USB
  • UAC音频
  • TYPE-C
  • USB规范
  • USB大容量存储
  • USB百科
  • USB周边
  • UVC摄像头
  • Windows系统USB
  • 音视频博客
  • 取消
    感谢您的支持,我会继续努力的!
    扫码支持
    扫码打赏,你说多少就多少

    打开支付宝扫一扫,即可进行扫码打赏哦

    您的支持,是我们前进的动力!