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

USB2.0 数据包

2020-09-13 4102 1

USB主机发出的包在USB总线上广播,所有在USB总线上的设备需要根据自己的设备地址对由USB主机广播的令牌包进行过滤。如果该令牌包的地址与其自身地址不匹配,USB设备默认不处理即忽略该令牌包。

USB包的目标地址只有7位,所以一条US总线上最多可以挂接127个USB设备(地址0用于设备在枚举过程中),包中的目标端点地址占4位,故USB最大可以支持16个双向端即点其32个端点。

PID 含义 说明
0011 数据DATA0 数据包偶数包
1011 数据DATA1 数据为奇数据包
0111 数据DATA2 此为作为一个高速同步事务的专用数据包
1111 数据MDATA 此时作为一个SPLIT事务的专用数据包。

数据包中并没有其传输的目的地址和端点信息,所以数据包必须紧跟在令牌包之后。
数据包是用于传输数据的,由8位的包标识PID,数据字段和16位的循环冗余校验字段CRC组成。
数据包格式

  • PID字段:用于指明不同的数据包类型。支持 4 种数据包,分别为: DATA0 、 DATAI 、DATA2 和MDATA。 在介绍的数据触发机制中,使用 DATA0 和 DATA1。
    • SPLIT 令牌事务处理则使用DATA0,DATA1和MDATA。
    • 对于高速 USB 同步数据传输,一般需要使用全部。
  • 数据字段:其中包含了传输的数据。其数据的大小根据数据传输类吧和用户需要而定。
    • 根据 USB 协议的规定,对于低速 USB 数据传输, 最大长度为8字节
    • 对于全速USB 数据传输,其最大长度为 1023 字节;
    • 对于高速 USB 数据传输,数据最大长度为 1024 。
  • CRC 字段:这里使用 16 位的循环冗余校验来对数据字段进行保护。

数据包格式CRC

数据MDATA数据抓包

数据MDATA

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

1 篇笔记 写笔记

通过后续章节的抓包分析,可以更加详细的了解令牌,事务,数据DATA0,DATA1...之间的关系。

把握住几点:一软传输,可能包括多个事务,一个事务又可能是由令牌,数据和握手信号组成。


USB中文网 2021-06-26 01:13:02
USB2.0 数据包DATA0,DATA1,DATA2
数据包是用于传输数据的,由8位的包标识PID,数据字段和16位的循环冗余校验字段CRC组成。PID字段:用于指明不同的数据包类型。支持 4 种数据包,分别为: DATA0 、 DATA1 、DATA2 和MDATA。 在介绍的数据触发机制中,使用 DATA0 和 DATA1。SPLIT 令牌事......
USB2.0 数据包
USB主机发出的包在USB总线上广播,所有在USB总线上的设备需要根据自己的设备地址对由USB主机广播的令牌包进行过滤。如果该令牌包的地址与其自身地址不匹配,USB设备默认不处理即忽略该令牌包。USB包的目标地址只有7位,所以一条US总线上最多可以挂接127个USB设备(地址0用于设备在枚举过程中......
USB 同步传输端点的数据包PID序列及额外传输端点大小
对于同步传输:如果输入端点提供的负载数据小于端点描述符指定的最大负载数据,则主机端将不再该端点提供进一步的输入事务。这是因为所对USB设备来说,所有的数据传输都是由主机发起的。对于数据输入IN事务,虽然数据的传输方向为设备端到主机,但是该事务却是由主机发起。由于设备的输入端点提供的负载数据小于该......
USB数据包的最大响应时间及超时指标
每个 USB 设备都必须响应默认管道上的 Setup 包。Setup包用于设备的检测和配置,并执行一些常用功能,例如设置 USB 设备的地址,请求设备的描述符或检查端点的状态。符合 USB 规范的主机希望所有请求最多在5秒内得到处理。它还为特定请求指定了更严格的时间规定:不包含数据阶段(dat......
USB2.0 包格式分类
USB协议定了多种类型的包,有令牌包、数据包和握手包。根据PID可将USB2.0的包分为四种包类型。令牌包Token Packet格式 令牌包全部由主机发起,所以方向是由主机到设备。SOF起始包格式SOF全部由主机发起,用于在USB总线上以广播的形式发出,以防止USB设备进入挂起状态、时钟同步......
USB2.0 IN/OUT事务ACK错误或丢失的数据翻转(DATA TOGGLE)
前面一节我们讨论了当ACK成功发送并被接收时的数据包PID翻转,但在实际的数据传输过程中,也会出现ACK丢失或者错误的情况,这节我们来讨论这种情况。同样的,对于IN事务和OUT事务,我们分别进行讨论。IN事务ACK错误或丢失的数据翻转(DATA TOGGLE)IN事务ACK错误或丢失的数据翻转(......
USB2.0 控制传输数据包PID序列
USB数据包的PID序列指的不是数据包的PID序列,特指DATA0,DATA1,DATA2和MDATA的PID序列,即USB在数据传输过程中这些数据包的顺序。USB的数据传输分为四种,分别为控制传输、同步传输、批量传输和中断传输。这四种数据传输方式除过控制传输,其余数据的传输过程都是通过IN事务或者......
USB2.0 中断传输和批量传输数据包的PID序列
其实在Windows下开发USB驱动时,USB的数据传输模式只有三种模式:多种控制传输方式同步传输方式批量或中断传输方式这一点在URB的结构体上表现的很清楚. struct _URB_CONTROL_TRANSFER UrbControlTransfer; struct _UR......
USB2.0 同步传输数据包PID序列
同步传输方式分为全速模式和高速模式,低速模式不存在同步传输。全速传输模式下的数据包PID序列全速模式下的同步传输数据方式只使用DATA0包,因此接收方在接收数据时只会收到DATA0数据包。高速传输模式下的数据包PID序列高速模式下的数据包序列根据一个微帧中的事务个数不同,采用不同的数据包序列,使......
TYPE-C PD供电协议常用功能序列(接口数据包开始SOP,线缆数据包开始SOP''、硬件复位、线缆复位)
使用TYPE-C PD供电协议信号-4b5b编码对照表的序列组合,可以组成一些常用的功能序列。硬件复位hard Reset硬件复位信令是为了被物理层识别而发送的一组有序字节。硬复位信号顺序集定义为:三个RST-1 K代码,后跟一个RST-2 K代码。硬件复位的功能是对接口和线缆进行复位K......
UVC红外相机的枚举过程及BOS数据包解析
UVC红外相机和普通的相机在枚举过程中其实并特别的区别。可能惟一的区别就是一般的普通彩色相机并没有获取到BOS描述符,而红外相机必定含有BOS描述符,并且由于BOS描述符的引入,使得基于UVC规范的基础上实现了红外相机。通过上图可以看到,除过BOS之外,其它的和普通的UVC彩色相机的枚举过程是一致的......
关注公众号
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

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

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