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

USB2.0协议 传输包、事务和传输

2021-11-24 78 0
欢迎加入官方QQ群:952873936或联系站长进行技术交流。

USB总线上传递的数据流是USB主机和USB设备通讯的基础。
USB数据流包括3个阶段:
USB数据流包括

  • 令牌阶段 :定义了本次传输的类型,表示一次传输的开始。令牌阶段由同步字段,令牌包和EOP组成。
  • 数据阶段 :包括了本次传输的数据。数据的大小根据端点大小和传输类型决定,一般最大的数据量为1024字节。数据阶段由同步字段,令牌包和EOP组成。
  • 握手阶段: 握手阶段用于发送本次数据传输是否成功的报告,由接收方发送。握手阶段由同步字段,握手包和EOP组成。

从以上可以看到,各个阶段都有帧头同步字段和帧尾EOP,是数据传输的起始和结束,而中间传输的的有效USB数据。

同步字段:

  • 对于低速和全速来说,同步字段长为8位,数据为0x80。
  • 对于高速来说,同步字段为32位,数据为0x80000000.

USB2.0通读协议最小的单位是包,类示我们TCPIP协议中的IP层,这个包只有数据的传输的最小单元格式。不过这和TCIP层中的IP层也有点不同,那就是IP包其包含了包头信息和数据内容,而USB2.0的通讯由于令牌的存在,将这些包头和数据内容拆分不同的令牌事务,由主机发起事务的令牌这类先导信息,然后再发送其控制数据,设备收到这些信息之后还需要进行响应收到,然后主机收到设备的控制信息ACK后,才再根据上一个令牌事务发起对应的数据事务。这个数据事务也是由主机发起告诉设备你该进行IN还是OUT数据,然后再是数据的发送与接收,最后当然主机收到这些数据后还需要进行ACK.但是这种情况下主机是知道自己数据收到了,但是设备发送的数据自己不知道是否成功(因为可能会丢失主机发过来的ACK),那怎么办了,并且为了降低速宽,所以USB没有像TCP协议栈那样传输去强行要那个ACK,而是通过再发起一个传输0字节的数据事务,根据其DATA0或DATA1的PID来判断上一次传输是否正确无误的完成。

这里我们可以看一下一个控制传输的传输、事务和包的关系图:
控制传输

这里我们进行一个总结:

  • USB按包的层次从低到高层分为:包、事务和传输
  • 包是最小的最基本的数据传输单位。
  • 一个事务一般包括三个包(令牌包、数据包(可选)和握手包。事务保证了单次“数据”传输的完整性。
  • USB的协议是一问一答的,一个事务只能保证发送或接收的单次传输的完整性,而一个传输则是封装了完整的USB标准请求协议,保证问答功能的完整性。
  • USB的传输类型分为:控制传输中断传输同步传输批量传输

0 篇笔记 写笔记

USB 控制传输方式
USB协议规定了四种传输类型:控制传输、批量传输、同步传输、中断传输。控制传输是一种特殊的传输方式。当USB设备初次连接主机时,用控制传输传送控制命令等对设备进行配置。同时设备接入主机时,需要通过控制传输去获取USB设备的描述符以及对设备进行识别,在设备的枚举过程中都是使用控制传输进行数据交换。控制......
USB超高速 控制传输
控制传输的目的与特点与USB2.0协议完全相同。这个规格的协议层章节详细描述了用于完成控制传输的包,总线事务处理和事务处理流程。设备架构那章定义了完整系列的设备使用的标准命令编码。每个设备需要启动默认控制管道作为一个消息管道。这个管道用来进行设备初始化和管理,用来访问设备描述符和向设备请求对其进行操......
UVC 控制传输与请求处理
请求是主机软件与实体中控制器交流的一种机制。请求都是由主机向设备端发起的功能请求,所有的USB设备都需要支持标准的设备请求和与Class相关的特殊类请求。标准请求: 在标准协议中有相关描述,不做详细展开特殊类请求: 事实上特殊类请求也可以根据接口来分成两大类:视频控制请求.视频流请求。1)视......
使用BUSHOUND手动分析USB控制传输的URB
USB的控制传输是最基本的传输类型,控制传输适用于设备的枚举和设备的状态控制。我里我们使用BUSHOUND来抓取USB控制传输的URB。同样的,我们使用的操作系统是Windows10 x64,和同步传输的URB抓包一样,我们先抓取数据,然后再分析数据结构。这里我插入电脑的U盘的枚举以获取设备描述符为......
USB2.0协议 传输包、事务和传输
USB总线上传递的数据流是USB主机和USB设备通讯的基础。USB数据流包括3个阶段:令牌阶段 :定义了本次传输的类型,表示一次传输的开始。令牌阶段由同步字段,令牌包和EOP组成。数据阶段 :包括了本次传输的数据。数据的大小根据端点大小和传输类型决定,一般最大的数据量为1024字节。数据阶段由同......
作者信息
USB中文网
Windows驱动开发,网站开发
好好学习,天天向上。
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

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

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