USB带度分配原则
1. 带宽分配:管道建立时就确定
“USB bandwidth is allocated among pipes. The USB allocates bandwidth for some pipes when a pipe is established.”
- 含义:当一个USB管道(Pipe,即设备端点与主机之间的逻辑连接)被建立时,主机就会为其分配固定的带宽。
- 实际应用:
确切来说是选择配置或者选择接口时,会建立主机与设备之间的管道,这个管道的建立标志着带宽的分配。只是不同的传输类型不同而已。
2. 缓冲要求:带宽越大,缓冲越大
“USB devices are required to provide some buffering of data. It is assumed that USB devices requiring more bandwidth are capable of providing larger buffers.”
- 含义:USB设备需要自带数据缓冲区。需要更高带宽的设备,应当提供更大的缓冲区。
- 原因:这解决了“主机以固定速率轮询,但设备不一定随时有数据”的矛盾。
- 高带宽设备(如高速摄像头):能快速产生大量数据。更大的缓冲区可以让设备在主机两次服务之间积累数据,避免数据丢失。
- 低带宽设备(如键盘):缓冲区很小甚至没有,因为数据产生很慢。
3. 设计目标:将缓冲延迟控制在毫秒级
“The goal for the USB architecture is to ensure that buffering-induced hardware delay is bounded to within a few milliseconds.”
- 含义:USB架构的核心目标之一,是确保由缓冲导致的硬件延迟被限制在几毫秒以内。
- 重要性:这对人机交互和实时音频至关重要。
- 如果你的USB鼠标有100ms的缓冲延迟,你会感觉光标“发飘”。
- 如果你的USB耳机有100ms的缓冲延迟,音画就会不同步(延迟超过~15ms人耳就能察觉)。
- 与重传机制的关系:等时传输为什么不重试? 因为重传和缓冲会导致不可预测的延迟,可能超过几毫秒的硬性要求。为了保住延迟底线,等时传输宁愿丢掉个别数据包,也不进行重传。
4. 并发能力:多种速率同时支持
“The USB’s bandwidth capacity can be allocated among many different data streams. This allows a wide range of devices to be attached… Further, different device bit rates, with a wide dynamic range, can be concurrently supported.”
- 含义:USB的总带宽可以动态分配给多个不同的数据流,从而允许各种不同速率(从几kbps的键盘到几百Mbps的摄像头)的设备同时工作。
- 实际例子:你的电脑上可能同时连接着:
5. 规范定义规则
“The USB Specification defines the rules for how each transfer type is allowed access to the bus.”
- 含义:USB官方规范详细定义了四种传输类型(控制、中断、批量、等时)各自如何竞争和使用总线带宽。
- 总结规则:
- 等时 & 中断:有固定保留带宽,保证准时,但不保证100%可靠(等时不重传)。
- 控制:保证有少量保留带宽,保证所有设备能被枚举和管理。
- 批量:没有保留带宽,只在有空闲时传输,但保证100%可靠(重传机制)。
USB2.0规范





