6.数据结构-端点命令
6.2.3.1 寻址设备命令用法
Address Device Command Usage 。
Endpoint 0 Context (端点 0 上下文,DCI = 1,Device Context Index) 是 Address Device Command (寻址设备命令)引用的 Input Context 或 Device Context 的唯一端点上下文。所有其他端点上下文 (DCI = 2 ~ 31) 均被寻址设备命令忽略。
如果满足以下条件,则 Address Device Command (寻址设备命令)认为输入端点 0 上下文“有效”:
- EP Type 字段 = Control,
- Max Packet Size、Max Burst Size 和 Interval 的值在端点类型和设备速度的范围内,
- TR Dequeue Pointer 字段指向有效的传输环,
- DCS(Dequeue Cycle State) 字段 = “1”,
- MaxPStreams(Max Primary Streams) 字段 = “0”,
- 所有其他字段都在有效值范围内。
注意:控制端点上下文 0 的最大数据包大小字段应由系统软件设置为端点的默认最大数据包大小,该值取决于设备的速度。例如,低速/全速设备为 8 个字节等。使用默认最大数据包大小从设备读取设备描述符后,如果控制端点的实际最大数据包大小与默认值不同,软件可能会发出评估上下文命令以通知 xHC。
第一次执行寻址设备命令后,任何输出端点上下文对于寻址设备命令都是 “有效的”,因为输出端点上下文的所有字段都被该命令覆盖。
6.2.3.2 配置端点命令用法
Configure Endpoint Command Usage 。
配置端点命令不引用输入或输出端点 0 上下文 (DCI = 1)。配置端点命令可以引用任何其他端点上下文 (DCI = 2-31)。
如果 Add Context 标志为 “1” ,则配置端点命令认为输入端点上下文 “有效” ,并且:
- Max Packet Size、Max Burst Size 和 Interval 的值在端点类型和设备速度的范围内,
- 如果 MaxPStreams > 0,则 TR Dequeue Pointer 字段指向有效流上下文数组,或者如果 MaxPStreams = 0,则 TR Dequeue Pointer 字段指向传输环,
- EP Type = Disabled(已禁用),
- 所有其他字段均在其有效值范围内。
6.2.2.3 评估上下文命令用法
Evaluate Context Command Usage 。
评估上下文命令的 “有效” 输入端点上下文要求,如果默认控制端点的 Add Context 标志 (A1) 设置为 “1”,则应评估 Max Packet Size 字段。评估上下文命令不应评估端点上下文 2 至 31。有关评估上下文命令的更多信息,请参阅第 4.6.7 节。
在执行命令之前,评估上下文命令的 “有效” 输出端点上下文要求端点状态 (EP State) 字段处于运行:空闲子状态或停止状态。如果在执行命令时相应的上下文不处于这些状态之一,则可能会发生未定义的行为。
评估上下文命令完成后,xHC 将使用更新的字段值进行相应端点执行的下一次传输。系统软件负责协调评估上下文命令与传输环操作的执行。
6.2.3.4 最大突发大小(Max Burst Size)

标识 xHC 在每个传输环调度机会中执行的最大 USB 事务数。
对于所有低速/全速端点,此字段应清除为 “0” 。
对于高速控制和批量端点,此字段应清除为 “0” 。对于高速等时和中断端点,此字段应设置为每微帧的额外事务机会数,即 USB2 端点描述符 wMaxPacketSize 字段的位 12:11 中定义的值。 请参阅 USB2 规范第 9.6.6 节。
对于增强型超高速端点,此字段应设置为超高速端点同伴描述符的 bMaxBurst 字段中定义的值。 请参阅 USB3 规范第 9.6.7 节。有关使用最大突发尺寸的更多信息,请参阅第 4.14.4.1 节。
6.2.3.5 最大数据包大小(Max Packet Size)
最大数据包大小字段标识每个 USB 数据包应移动的最大字节数。如果 Max Burst Size 大于 0,则定义为高带宽端点,并且 USB 事务最多可包含 Max Burst Size +1 个数据包。
此字段应设置为 USB 端点描述符 wMaxPacketSize 字段的位 10:0 中定义的值。请注意,最大数据包大小字段的编码方式与 USB wMaxPacketSize 字段最大数据包大小不同(例如,以 2 为底的倍数),而是线性字节计数值。
6.2.3.6 间隔(Interval)
Interval 字段定义轮询端点进行数据传输的间隔,以 125 µs 为单位表示。由端点上下文 Interval 字段定义的周期间隔计算为 125 μ s ∗ 2 I n t e r v a l 125μs * 2^{Interval} 125μs∗2Interval,其中 Interval = 0 至 15 。
对于高速批量和高速控制 OUT 端点:
有关 Interval 字段的定义,请参阅表 6-8。有关有效 Interval 值的范围,请参阅表 6-12。
对于 SuperSpeedPlus 和 SuperSpeed 批量和控制端点,xHC 不得使用 Interval 字段。对于所有其他端点类型和速度,系统软件应将 USB 端点描述符中的 bInterval 字段转换为此字段的适当值。

6.2.3.7 重置设备命令用法
Reset Device Command Usage 。
重置设备命令完成后,输出默认控制端点上下文 (DCI = ‘1’) 的 Max Packet Size、EP Type、CErr、TR Dequeue Pointer 和 Average TRB Length 字段应包含与执行重置设备命令之前相同的值。并且 EP State 字段应设置为运行状态。所有其他字段应清除为 ‘0’ 。
6.2.3.8 最大 ESIT 有效载荷
Max ESIT Payload 。
Max Endpoint Service Time Interval Payload 。
最大端点服务时间间隔有效负载
最大端点服务时间间隔有效负载
最大 ESIT 有效负载表示此端点在 ESIT(Endpoint Service Time Interval) 期间将传输的总字节数。随着 USB Gen 2 速度数据速率 (SSP) 的引入,最大 ESIT 有效负载值超过了 64K。HCCPARAMS2 寄存器中的大型 ESIT 有效负载能力 (LEC) 标志指示 xHC 实现是否能够支持大于 48K 字节的最大 ESIT 有效负载值。
如果 LEC = “0”,则 xHC 支持的最大 ESIT 有效负载的最大值为 48K 字节。请注意,只有连接到 SSP 或更快的 USB3 根集线器端口的设备才可能支持大于 48KB 的最大 ESIT 有效负载值。
如果 LEC = “1”,则 xHC 支持的最大 ESIT 有效负载的最大值为 16MB-1 字节。
有关 “ESIT” 的定义以及与设置最大 ESIT 有效负载值相关的更多信息,请参阅第 4.14.2 节。
对于周期性端点,xHC 使用最大 ESIT 有效负载在其管道调度中为端点保留总线传输时间。
本文链接为:http://www.usbzh.com/article/detail-1710.html ,欢迎转载,转载请附上本文链接。
XHCI 1.2b 规范





