USB 高速高带宽端点wMaxPacketSize
2021-10-25
4676
17
USB的端点可以设置为高速高带宽端点。
我们知道,USB的数据传输类型有4种,分别为控制传输,中断传输,批量传输和同步传输。而端点类型与之要对应。除过控制传输外,其余三种传输使用于应用的数据传输。
USB使用端点描述符的wMaxPacketSize来配置端点为高速高带宽端点,主要表现在bit11-12,表示一个微帧内的事务数:
BIT12,BIT11 | 含义 |
---|---|
00 | 一个微帧内最大可以有1次事务数 |
01 | 一个微帧内最大可以有2次事务数 |
10 | 一个微帧内最大可以有3次事务数 |
11 | / |
wMaxPacketSize的bit11-12,配合bit0-10的最大一个微帧内的字节数,组成了一个微帧内的最大传输数据量。
而高速高带宽只适用于中断传输和同步传输,对于批量传输批量端点本身就会占用一帧剩余的所有带宽。而中断端点和同步端点这类周期性的端点(Periodic Endpoint),在一帧中一般只会发起一次传输,通过高带宽相关的描述符,可以突破这个限制,增加一帧中的数据传输数量。
Bits | 15..13 | 12..11 | 10..0 |
---|---|---|---|
Field | 保留,必须为0 | 一个微帧的的事务次数 | 最大传输数据字节数 |
所以,在一个微帧内,请求的最大字节数为(实际传输的事务次数+1)*bit10-0实际传输的字节数。
主机控制器必须在每个微帧中发出适当数量的高速事务。 主机或总线上的错误可能导致主机控制器发出比端点请求更少的事务。 如果有足够的数据可用,第一个事务必须具有 wMaxPacketSize 的低 11 位指定的数据有效负载,而最后一个事务的任何剩余数据小于或等于指定的最大大小。 主机控制器可以一个接一个地为同一个端点发出事务(根据提供的实际数据的需要),或者可以在高带宽端点的事务之间为其他端点发出事务。
HID人机交互QQ群:564808376
UAC音频QQ群:218581009
UVC相机QQ群:331552032
BOT&UASP大容量存储QQ群:258159197
STC-USB单片机QQ群:315457461
USB技术交流QQ群2:580684376
USB技术交流QQ群:952873936