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

USB事务跨帧SOF的问题

2022-03-09 1052 0

USB中文网技术交流群有同学发了一个USB抓包截图,并提出了一个问题:
控制传输的一个事务内的包不在一帧内传输会有问题吗, 比如我发一个setup包,下面会有一个IN package和一个OUT package,结果INOUT package不和SETUP package在一个帧内发送或者接收到,这会有问题吗?
答案是肯定有问题的。

截图用红色框图标识了错误的问题

USB事务跨帧

可以看到,这个SETUP事务SETUP令牌包、IN事务OUT事务组成。
对于一个控制传输,里面的不同事务在不同帧进行,是可以的!但是,一个事务里的不同阶段跨帧传是无效的,一个包也不能跨帧传。

usb有三个基本传输单位, transfer(传输), transaction(事务)和token(令牌)
transfer(传输), transaction(事务)和token(令牌)

transaction是最小传输单位,不能跨帧,不能插入其它包。
事务必须完整,是由令牌包和后面的数据包握手包组成的最基本的可靠传输单位,一个事务中的各个包不组跨帧

感谢群内用户xtoolbox,Always Online,格子KTT

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 篇笔记 写笔记

USB传输过程中的延迟
USB传输过程中的延迟可分为包间延迟、USB线缆上的延迟和USB集线器延迟。在数据传输时,USB主机和USB设备能够计算整个数据传输时间,这个数据传输的时间由发送方发数据信息包结束时开始计算,直到接收到接收方的应答信号为止。USB包间延迟USB数据传输的包间延迟只存在于一个USB数据流管理中的各......
UVC 等时传输中的URB_ISOCH_TRANSFER
通过UVC规范可知,视频图像数据的读取可使用两种端点传输方式,分别为:BULK 块/批量传输方式ISO 等时/同步传输方式在Windows内核中,USB数据的读取是通过URB来进行传输的,其结构体是一个大大的共用体,根据数据传输的方式对应其不同的结构体,其内容如下:typedef _Struct_s......
USB设备和USB集线器HUB的数据传输
USB高速集线器与USB根集线器之间只通过USB使用USB高速通讯讯方式,而对于低速或全速的数据通讯的转换是由其挂接的最近的USB-HUB负责完成转换。如下图:对于USB高速设备和USB高速HUB,使用高速通讯。对于连接到高速HUB上的低速或全速USB-HUB,使用低速或全速通讯方式。对于连接到高速......
USB4的连接接口、传输速度的兼容性
官方称为USB4.0,USB4即将上市。一些规格仍有待确认,这里是一个快速概述一切,我们知道最新的USB标准。USB4会向后兼容USB3.0,USB2.0,USB1.0吗?USB4电缆将使用TYPE-C连接器,这是目前大多数智能手机和笔记本电脑上的扁平圆形端口。我们看到许多工业小型单板计算机都......
USB2.0 数据包DATA0,DATA1,DATA2
数据包是用于传输数据的,由8位的包标识PID,数据字段和16位的循环冗余校验字段CRC组成。PID字段:用于指明不同的数据包类型。支持 4 种数据包,分别为: DATA0 、 DATA1 、DATA2 和MDATA。 在介绍的数据触发机制中,使用 DATA0 和 DATA1。SPLIT 令牌事......
USB 中断传输方式
USB协议规定了四种传输类型:控制传输、批量传输、同步传输、中断传输。中断传输一般用于小批量的和非连续的数据传输,通俗的来说就是用于数据量小的数据不连续的但实时性高的场合的一种传输方式,主要应用于人机交互设备(HID)中的USB鼠标和USB键盘等。USB中断传输和我们传统意义上的中断不一样。......
USB存储设备在Windows环境下使用Uaspstor.sys或Usbstor.sys那个驱动?
USB Attached SCSI (UAS) 协议是一种新的大容量存储协议,旨在通过已建立的 USB 大容量存储协议(仅批量传输)和 BOT (提高性能) 。 它通过减少协议开销、支持 SATA 本机命令队列 (NCQ) 并并行处理多个命令。 为此,UAS 使用新的 USB 3.0 功能进行称为流......
UVC摄像头批量传输的StreamOn和StreamOff
在UVC规范中,UVC摄像头视频数据的传输方式支持两种,分别为批量传输和同步传输。UVC摄像头数据传输的格式按负载数据头的方式按帧进行打包传输。根据USB规范可知,同步传输方式是只要带中带有同步端点的接口,系统会定时从设备中读取数据,无论设备中是否有数据。而如要要停止数据的传输,只需要选中不带有同步......
UVC等时传输中的dwMaxPayloadTransferSize
UVC的视频流接口控制请求的数据大小可为26字节,34字节和48字节,其分别对应的是UVC的1.0,1,1和UVC1.5版本。在其整个视频流控制接口参数偏移地址22处的字段为一4字节的dwMaxPayloadTransferSize,根据其字段解释为“指定设备在单个有效负载传输中可以传输或接收的最大......
USB是什么,USB的优点、设备分类及传输方式有那些?
USB是由世界著名计算机和通信公司等共同推出的新一代接口标准,全称为Universal Serial Bus(通用串行总线),是一种快速、灵活的总线接口。它是为了解决日益增加的PC外设与有限的主板插槽和端口之间的矛盾而制定的一种串行通信标准。USB一般分为USB低速,USB全速,USB高速和USB......
USB2.0 SOF令牌
SOF令牌包是最广泛的令牌包,由主机发送。在实机的抓包工具过程,由于和NAK包大量存在,都会在软件配置中不显示。但这并不代表这个SOF令牌包不重要。SOF令牌不需要像其它令牌一样,具有握手包。因此发送给设备的SOF包并不能保证一定会收到。SOF数据流管理由USB主机发送一个SOF令牌包。SOF数据......
USB超高速 中断传输
中断传输类型用来支持带有轮询服务间隔需要高可靠性传输小数量数据的设备。这个规格的协议层章详细描述了与中断传输相关的包,总线事务事务处理流程。超速中断传输类型一般提供以下方面:能保证最大的服务间隔能保证在下一次服务间隔中尝试重新传输在每个服务周期中为中断端点尝试中断传输,保留一定带宽保证在每个服务间......
BOT传输协议和UASP传输协议有什么区别?
BOT传输协议BOT (Bulk-Only Transport),诞生于1999年,专为USB 1.1所设计,至今最快的USB 3.1都可向下兼容这个基本的BOT传输协议。在传输资料作业开始时,外接USB 3.0设备与电脑主板(USB 3.0扩展卡)之间,在同一时间单位内,每次只传输单一指令,所以速......
USB 控制传输方式
USB协议规定了四种传输类型:控制传输、批量传输、同步传输、中断传输。控制传输是一种特殊的传输方式。当USB设备初次连接主机时,用控制传输传送控制命令等对设备进行配置。同时设备接入主机时,需要通过控制传输去获取USB设备的描述符以及对设备进行识别,在设备的枚举过程中都是使用控制传输进行数据交换......
UVC等时传输中的dwMaxVideoFrameSize和dwMaxPayloadTransferSize关系
在其整个视频流控制接口参数偏移地址18处的字段为一4字节的dwMaxVideoFrameSize,代表的是如果选择当前数据帧格式,其一帧图像的最大数据量大小,以字节为单位。关于dwMaxVideoFrameSize的计算可以参考 YUV2摄像头相关数据大小计算。这里我们主要说一下dwMaxVideo......
关注公众号
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

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

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