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

USB2.0 SOF令牌包

2021-06-22 5563 0

SOF令牌包是最广泛的令牌包,由主机发送。在实机的抓包工具过程,由于和NAK包大量存在,都会在软件配置中不显示。但这并不代表这个SOF令牌包不重要。

SOF令牌不需要像其它令牌一样,具有握手包。因此发送给设备的SOF包并不能保证一定会收到。SOF数据流管理由USB主机发送一个SOF令牌包。SOF数据流管理表示USB帧或者USB微帧的开始。整个数据流管理过程没有数据阶段,所以也不需要USB设备进行握手响应。

帧与微帧

  • 两个SOF包之间叫做一个帧或者微帧。
  • 对于全速和低速传输,每隔1±0.0005ms产生一个SOF令牌包。
  • 对于高速USB传输,每隔125us±0.0625us产生一个微帧。而每隔7个微帧,产生一个SOF令牌包。
  • USB主机中的根集线器会将SOF包广播给所有的USB设备,所以SOF包不需要包含目标高地址和目标端口信息,因为它面向的是所有设备的。

SOF令牌包

SOF包的功能

  • SOF包由USB主机在USB总线上以广播的形式发出,以防止USB设备进入挂起状态
  • 所有的事务必须在一个帧或者微帧内完成,一个事务不能跨越一个帧或者微帧。通过控制帧或者微帧的事务的个数,可以实现USB带宽的控制
  • SOF包也用于USB主机和USB设备之间进行时钟同步、调整

SOF令牌格式

SOF令牌包包格式由8位的包标识字段PID,11位的帧号字段和5位的循环字段CRC共24位3字节组成。
SOF令牌包

  • 包标识字段PID:定义了数据传输方向为USB主机到USB设备。
  • 帧号字段:指明了USB传输的帧号,其11位。
  • CRC字段:用于帧号字段进行循环冗余校验。

SOF令牌包的PID低4位为0101,所以高4位的补码为1010,所以它的PID为0xA5.

PID 含义 说明
0101 令牌SOF 此时作为一个帧或者小帧的开始信息

SOF的发送周期

对于全速总线和高速总线,主机分别以每 1.00ms±0.0005ms 一次和每125μs±0.0625μs一次的额定速率发出帧开始SOF)包。

SOF令牌包示例

SOF令牌包

SOF令牌包波形图

我们对Frame为940的包进行显示波形:
SOF令牌包波形图

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 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 令牌包
令牌包全部由USB主机发出,其内容包括包标识PID,包目标地址ADDR,包目标地址(ENDP)和CRC5校验位域。令牌包指明了后续数据包的目标地址和端点。令牌包的PID有:PID含义说明0001令牌OUT主机发送数据到USB设备1001令牌IN主机接收从USB设备......
USB2.0全速设备使用逻辑分析仪抓取IN令牌包分析SOP/SYNC/PID/EOP
发在B站上的录制的视频 2.USB2.0包Packet的组成-SOP SYNC EOP的解析其中下面有一条评论,询问 站长,也就是说SOP/SYNC/EOP是物理层的,用分析仪都抓不到是吧?这个我在下面也回答了,是可以抓取到的,只不过对于我们进行包分析,意义不大,因为我们的关注点已经不在那里了。刚......
IN令牌包的设备端事务响应流程
USB主机发送IN令牌给设备后,用于请求设备的数据包。USB设备端收到主机发送过来的PID为IN的令牌包后,需要对IN令牌包进行数据校验。如果IN令牌包中的设备地址和端点地址信息有效,并且端点缓冲区中有待发送的数据(端点状态为Valid状态),这时USB设备端的硬件自动使用DTAT0或DATA......
OUT令牌包的设备端事务响应流程
USB主机发送OUT令牌给设备,用于向设备端发送数据。USB设备收到主机发送的PID为OUT的令牌包后,设备需要对OUT令牌包进行校验。如果这个packet中的设备地址信息和端点号信息有效, 并且端点为Valid状态USB硬件从硬件buf中把数据搬移到用户可访问的packet buffer......
关注公众号
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

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

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