USB2.0规范
+ -

USB传输模式选择及各传输特性对比

2022-03-12 6773 0

通用串行总线 (USB) 传输类型是指主机和设备端点之间使用的通信模式。传输类型决定了用于与端点通信的事务的频率和长度。传输类型还可以分配一个循环冗余校验和 (CRC),以对每个传输的数据包进行验证。传输类型由设备设置,并在枚举过程中与主机通信。

USB分为四种传输模式,分别为中断传输模式,控制传输模式、批量传输模式和同步传输模式。
传输模式

USB延迟

主机需要多快为端点提供服务?要建立确定性延迟,必须以固定的时间间隔安排事务。例如,在全速模式下,如果一个端点被安排为每 10 帧服务一次,则系统将有 10 毫秒的响应时间。为了保证延迟,无论挂起的活动如何,都以规定的时间间隔为端点提供服务。由于帧中的空闲时间有限,非活动设备将每个帧分配时间来服务,限制了可以枚举的设备数量。

错误检查

传输中的有效负载是否需要随附的 CRC 才能可靠交付?大多数 USB 实现使用硬件 CRC 生成器将 CRC 附加到消息中。为了开发经济的解决方案,USB 设计人员限制了需要 CRC 的事务处理的数据包大小。减小的数据包大小可能会限制设备的数据速率。

带宽

数据包的数量和每个数据包的长度会影响带宽。增加事务的大小会增加带宽,但长数据包不提供 CRC 检查。此外,为长时间的高带宽传输保留部分帧将限制可以枚举到主机的潜在设备的数量。增加可在帧中发送启用 CRC 的事务的次数会增加带宽,但这种方法会带来与长帧相同的枚举困境。

控制和配置

必须使一部分帧可供主机用于枚举新设备并向当前枚举的设备发送控制命令。

控制传输

控制传输只用于设备的控制传输。

中断传输

带有 CRC 的短数据包,以固定的周期间隔调度。虽然下图显示了每帧运行的传输,但可以安排中断传输以帧间隔运行,例如每 10 帧。无论是否有任何数据要传输,都会发生中断传输。
中断传输

优势:具有固定响应时间的高可靠性数据传输。
劣势:带宽可能受到限制(全速 USB 为 64 KB)
用途:鼠标、键盘和医疗设备
带宽:高达 90% 的帧可以分配给周期性传输端点。传输的最大长度取决于使用的帧大小。

同步传输

没有 CRC 的较长数据包。同步传输按固定周期安排。如果不需要与端点通信,则由主机释放帧带宽。
同步传输
优势:高带宽
劣势:没有CRC硬件。如果需要 CRC,则必须在软件中完成。长数据包可以限制被枚举的设备数量
用途:音频/视频流,串行端口仿真
带宽:高达 90% 的帧可以分配给周期性传输。不使用时,将释放使用的带宽 传输的最大长度取决于使用的帧大小

批量传输

带有 CRC 的短数据包。批量传输没有计划,它们在帧中有可用带宽时运行。如果有可用带宽,可以在单个帧中运行多个批量传输。
批量传输
优势:具有高带宽潜力的高可靠性
劣势:带宽可能会根据枚举的中断端点的数量和枚举的同步端点的活动而变化。
用途:大容量存储和打印机
带宽:将利用未使用的同步带宽传输的最大长度取决于使用的帧大小

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

UVC 等时传输中的URB_ISOCH_TRANSFER
通过UVC规范可知,视频图像数据的读取可使用两种端点传输方式,分别为:BULK 块/批量传输方式ISO 等时/同步传输方式在Windows内核中,USB数据的读取是通过URB来进行传输的,其结构体是一个大大的共用体,根据数据传输的方式对应其不同的结构体,其内容如下:typedef _Struct_s......
USB 中断传输方式
USB协议规定了四种传输类型:控制传输、批量传输同步传输中断传输中断传输一般用于小批量的和非连续的数据传输,通俗的来说就是用于数据量小的数据不连续的但实时性高的场合的一种传输方式,主要应用于人机交互设备(HID)中的USB鼠标和USB键盘等。USB中断传输和我们传统意义上的中断不一样。......
UVC摄像头批量传输的StreamOn和StreamOff
在UVC规范中,UVC摄像头视频数据的传输方式支持两种,分别为批量传输同步传输。UVC摄像头数据传输的格式按负载数据头的方式按帧进行打包传输。根据USB规范可知,同步传输方式是只要带中带有同步端点的接口,系统会定时从设备中读取数据,无论设备中是否有数据。而如要要停止数据的传输,只需要选中不带有同步......
UVC等时传输中的dwMaxPayloadTransferSize
UVC的视频流接口控制请求的数据大小可为26字节,34字节和48字节,其分别对应的是UVC的1.0,1,1和UVC1.5版本。在其整个视频流控制接口参数偏移地址22处的字段为一4字节的dwMaxPayloadTransferSize,根据其字段解释为“指定设备在单个有效负载传输中可以传输或接收的最大......
USB超高速 中断传输
中断传输类型用来支持带有轮询服务间隔需要高可靠性传输小数量数据的设备。这个规格的协议层章详细描述了与中断传输相关的包,总线事务和事务处理流程。超速中断传输类型一般提供以下方面:能保证最大的服务间隔能保证在下一次服务间隔中尝试重新传输在每个服务周期中为中断端点尝试中断传输,保留一定带宽保证在每个服务间......
UVC批量传输中的dwMaxVideoFrameSize和dwMaxPayloadTransferSize关系
上一节看了UVC等时/同步传输的关系,这里我们介绍一相批量传输批量传输在这里相对于同步传输要简单的多。uvc_video_start_transfer中的代码如下: else { /* Bulk endpoint, proceed to URB initialization. */ ......
USB 等时/同步传输、块传输与转换设置在UVC摄像头驱动中的探讨
最近在Windows10 x64环境下,开发了一个虚拟UVC摄像头驱动。确切的来说这不是摄像头驱动,而是一个虚拟USB总线驱动。使用该虚拟总线驱动使用应用软件通过IOCTL控制总线子设备的创建与卸载。框架设计驱动安装完成后,是一个单纯的USB虚拟总线。应用软件通过发送自定义IOCTL码IOCTL......
USB超高速批量传输
批量传输类型是用来支持想要跟相当大的海量数据通信设备,传输能使用任何可用的超速带宽。超速批量传输功能端点提供以下:对基于有限带宽的超速总线访问保证数据的发送,但是不保证带宽和发送时间超速维持下面的批量传输管道特征:对批量传输管道通信流没有强制固定的数据结构批量传输管道是一个流式管道,因此总是有通信流......
USB 同步/等时传输方式
USB协议规定了四种传输类型:控制传输、批量传输同步传输中断传输。等时传输也有“同步传输”的叫法,一般用于要求数据连续、实时且数据量大的场合,其对传输延时十分敏感,类似用于USB摄像设备,USB语音设备等等。同步事务没有握手包。当一个同步传输中有多个事务时,最后一个事务之前的事务的数据长......
USB超高速 同步传输
正如USB2.0一样,超速同步传输类型是用来支持想要能容忍错误,周期性的轮询服务的传输流。超速跟USB2.0一样不发送起始帧,但是时序信息要通过同步时间戳包(ITP)被发送给设备。这个规格的协议层章详细描述了用来完成同步传输的包,总线事务和事务处理流程。也描述了怎么样传送时序信息给设备。超速同步传输......
USB 批量/块传输方式
USB协议规定了四种传输类型:控制传输、批量传输同步传输中断传输批量传输一般用于批量的和非实时的数据传输,通俗的来说就是用于数据量大但对时间要求又不高的场合的一种传输方式,类似用于USB打印机和USB扫描仪等等。批量传输使用批量传输事务,一次批量传输事务分为三个阶段:令牌包阶段、数据包......
基于UVC规范的USB摄像头数据传输模式的总结
根据UVC(USB VIDEO CLASS)规范,UVC视频数据传输方式支持:同步传输即ISO传输批量传输即BULK传输但是不同的操作系统对UVC规范的支持不一定是全量支持的:Windows操作系统对于windows操作系统,对UVC版本的支持情况如下:UVC 版本Windows ......
手动分析使用BUSHOUND抓取同步传输的URB
BUSHOUND大家太熟了,使用它来进行数据抓包那不太太方便。但在BUSHOUND的抓取配置项中,有一个叫了URB的东西,我相信大家都没有选中过,因为一般来说,对WINDOWS USB驱动开发人员来说都不一定有用,更何况大家也只是用来抓取一下几个数据的输入输出,更没有必要进行USB的分析了。本人今天......
USB 同步传输端点的数据包PID序列及额外传输端点大小
对于同步传输:如果输入端点提供的负载数据小于端点描述符指定的最大负载数据,则主机端将不再该端点提供进一步的输入事务。这是因为所对USB设备来说,所有的数据传输都是由主机发起的。对于数据输入IN事务,虽然数据的传输方向为设备端到主机,但是该事务却是由主机发起。由于设备的输入端点提供的负载数据小于该......
USB 中断端点的高速高带宽
对于中断事务,如果中断端点在微帧其间NAK了事务,则表示设备端数据没有准备好或设备无数据可传,主机需要放弃本次传输,在下一个微帧再发起事务。如果设备的中断端点超时了该事务,则主机需要重试该事务。端点描述符中指定了该中断端点在一个微帧其间支持的最大事务个数。如果未达到每个微帧的最大事务数,主机控制器可......
关注公众号
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

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

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