系列文章目录
USB3.2 摘录(一)
USB3.2 摘录(二)
USB3.2 摘录(三)
USB3.2 摘录(四)
USB3.2 摘录(五)
USB3.2 摘录(六)
USB3.2 摘录(七)
USB3.2 摘录(八)
USB3.2 摘录(九)
文章目录
- 系列文章目录
- 10 集线器、主机下游端口和设备上游端口规范
- 10.5 面向 Hub 上游的端口(Hub Upstream Facing Ports)
- 10.5.1 面向上游的端口状态描述(Upstream Facing Port State Descriptions)
- 10.5.1.1 USPORT.Powered-off
- 10.5.1.2 USPORT.Powered-on
- 10.5.1.3 USPORT.Training
- 10.5.1.4 USPORT.Connected/Enabled
- 10.5.1.5 USPORT.Error
- 10.5.2 Hub Connect 状态机(Hub Connect State Machine)
- 10.5.2.1 Hub Connect 状态描述
- 10.5.2.2 HCONNECT.Powered-off
- 10.5.2.3 HCONNECT.Attempt ESS Connect
- 10.5.2.4 HCONNECT.Connected on ESS
- 10.6 面向上游的端口电源管理
- 10.6.1 面向上游的端口 PM 计时器
- 10.6.2 面向 Hub 上游的端口状态描述
- 10.6.2.1 Enabled U0 States
- 10.6.2.2 尝试 U0 – U1 转换(Attempt U0 – U1 Transition)
- 10.6.2.3 尝试 U0 – U2 转换(Attempt U0 – U2 Transition)
- 10.6.2.4 U1 中的链接(Link in U1)
- 10.6.2.5 U2 中的链接(Link in U2)
- 10.6.2.6 U3 中的链接(Link in U3)
- 10.7 超高速集线器头包转发和数据中继器
- 10.7.1 **SuperSpeed Hub** 弹性缓冲区(SuperSpeed Hub Elasticity Buffer)
- 10.7.2 SKP 有序集(SKP Ordered Sets)
- 10.7.3 数据包间距(Interpacket Spacing)
- 10.7.4. SuperSpeed 报头数据包缓冲区体系结构
- 10.7.5 SuperSpeed 包连接(SuperSpeed Packet Connectivity)
- 10.8 SuperSpeedPlus 存储和转发行为
- 10.8.1 Hub 弹性缓冲区(Hub Elasticity Buffer)
- 10.8.2 SKP 有序集(SKP Ordered Sets)
- 10.8.3 数据包间距(Interpacket Spacing)
- 10.8.4 上游流缓冲(Upstream Flowing Buffering)
- 10.8.5 下游流缓冲(Downstream Flowing Buffering)
- 10.8.6. 数据包的 SuperSpeedPlus Hub 仲裁
- 10.8.6.1 仲裁权重(Arbitration Weight)
- 10.9 端口状态机(Port State Machines)
- 10.10 暂停和恢复(Suspend and Resume)
- 10.11 集线器上行端口重置行为
- 10.12 集线器端口电源控制(Hub Port Power Control)
- 10.13 集线器控制器(Hub Controller)
- 10.14 集线器配置(Hub Configuration)
- 10.15 描述符(Descriptors)
- 10.16 请求(Requests)
- 10.17 主机根(下行)端口
- 10.18 外围设备上行接口
- 10.19 Hub 章节参数说明(Hub Chapter Parameters)
- 11 互操作性和功率传输
- A Gen1 符号编码(Gen 1 Symbol Encoding)
- B 符号扰乱(Symbol Scrambling)
- C 电源管理(Power Management)
- D 示例数据包(Example Packets)
- E 中继器(Example Packets)
10 集线器、主机下游端口和设备上游端口规范
10.5 面向 Hub 上游的端口(Hub Upstream Facing Ports)
以下部分提供了状态机的功能描述,该状态机对面向集线器的上游端口表现出正确的行为。除非特别指出例外情况,否则这些部分也适用于设备上面向上游的端口。上游端口应仅尝试连接到增强型 SuperSpeed 总线和 USB 2.0 总线,如以下部分中的上游端口状态机所述。
10.5.1 面向上游的端口状态描述(Upstream Facing Port State Descriptions)
有关集线器 USB 状态,请参阅图 9-1。
10.5.1.1 USPORT.Powered-off
USPORT.Powered-off 状态是面向上游的端口的默认状态。
如果出现以下任何情况,端口应转换为此状态:
- 在任何状态下,当 VBUS 无效时。
- 在任何状态下,当未检测到远端接收器终端时。
- 在 USPORT.Connected/Enabled 下,当端口配置过程失败时。
在此状态下,端口的链接应处于 eSS.Disabled 状态,相应的集线器 USB 状态应为 Attached。
注意:如果端口由于未检测到远端接收器终端且存在 VBUS 而进入此状态,则它不会删除近端终端,并且可能会立即转换为 USPORT.Powered 打开状态。
10.5.1.2 USPORT.Powered-on
在以下任何情况下,端口应转换为此状态:
- 在 USPORT.Powered-off 下,当 VBUS 有效时。
- 在 USPORT.Error 下,当链路收到热重置或删除远端终端时。
- 在 USPORT.Connected/Enabled 下,当链路收到热重置时。
- 在 USPORT.Training 下,当端口的链路从任何轮询子状态超时,或者端口收到热 (LFPS) 重置时。
在此状态下,端口的链接应处于 Rx.Detect 状态。相应的集线器 USB 状态应为 Powered (Far-end Receiver Termination 子状态)。在此状态下,如果集线器的 USB 2.0 部分进入挂起状态,则从 VBUS 汲取的集线器总电流不应超过挂起电流限制。
10.5.1.3 USPORT.Training
当检测到增强型 SuperSpeed 远端接收器终端时,端口将从 USPORT.Powered-on 转换到此状态。
在此状态下,端口的链接应处于 Polling 状态。相应的集线器 USB 状态应为 Powered (Link Training 子状态)。
10.5.1.4 USPORT.Connected/Enabled
当端口的链路从 Polling.Idle 进入 U0 时,端口将从 USPORT.Training 状态转换为此状态。在热重置期间,端口保持此状态。热重置完成后,相应的集线器 USB 状态应转换为 Default。
在此状态下,端口的链接应为 U0、U1、U2、U3 或 Recovery 状态。相应的集线器 USB 状态应为 Default、Address 或 Configured。
当链路进入 U0 时,端口应启动第 8.4.6 节中定义的端口配置过程。
该端口可以发送链路管理数据包或链路命令,但不得传输任何其他数据包,除非在 USPORT.Connected 状态下响应默认控制端点请求。
10.5.1.5 USPORT.Error
当 att 清空以操作链路时发生严重错误情况时,端口将转换为此状态。在以下任何情况下,端口都会转换为此状态:
- 在 USPORT.Connected/Enabled 状态下,当链路进入 Recovery 并超时而不恢复时。
在此状态下,端口的链接应处于 eSS.Inactive 状态。相应的集线器 USB 状态应为 Error。
仅当链路上收到热重置或删除远端接收器终端时,端口才会退出 Error 状态。
10.5.2 Hub Connect 状态机(Hub Connect State Machine)
以下部分提供了状态机的功能说明,该状态机在增强型 SuperSpeed 总线或 USB 2.0 总线上连接时表现出正确的集线器行为。对于集线器,增强型 SuperSpeed 总线和 USB 2.0 总线的连接逻辑是完全独立的。集线器应遵循 USB 2.0 规范进行 USB 2.0 连接。图 10-13 是增强型 SuperSpeed 集线器的 Hub Connect 状态机的图示。每种状态都在 Section 10.5.2.1 中描述。
10.5.2.1 Hub Connect 状态描述
10.5.2.2 HCONNECT.Powered-off
HCONNECT.Powered-off 状态是集线器设备的默认状态。如果出现以下情况,集线器设备应转换为此状态:
- 在任何状态下,当删除 VBUS 时。
在此状态下,集线器上游端口的链接应处于 eSS.Disabled 状态。
10.5.2.3 HCONNECT.Attempt ESS Connect
如果出现以下任何情况,集线器应转换为此状态:
- 在 HCONNECT.Powered-off 下,当 VBUS 生效时(如果需要,本地电源有效)。
- 在 ESS 上的 HCONNECT.Connected 状态下,当 Rx.Detect 或 Link Training 超时。
在此状态下,集线器的上游端口增强型 SuperSpeed 链路位于 Rx.Detect 或 Polling 中。
10.5.2.4 HCONNECT.Connected on ESS
如果出现以下情况,端口应转换为此状态:
- 当 ESS 连接时,并处在 HCONNECT.Attempt 下,当链路从轮询转换为 U0 时。
在此状态下,集线器的上游端口增强型 SuperSpeed 链路位于 U0、U1、U2、U3、Inactive、Rx.Detect、Recovery 或 Polling 中。
10.6 面向上游的端口电源管理
Upstream Facing Port Power Management 。
以下部分提供了状态机的功能说明,该状态机为面向集线器的上游端口提供正确的链路电源管理行为。
如果任何下游端口上出现状态更改,并且上游端口位于 U1 或 U2 中,则 Hub 应在上游端口链接上启动一个到 U0 的转换。
如果任何下游端口上存在状态更改,并且集线器上游端口的链接位于 U3 中,则集线器行为由当前远程唤醒掩码设置指定。有关更多详细信息,请参阅 Section 10.16.2.10。
10.6.1 面向上游的端口 PM 计时器
Upstream Facing Port PM Timer 。
集线器上行端口维护一个逻辑 PM 计时器,用于跟踪何时超过 U2 非活动超时。未定义标准 U1 非活动超时。收到 U2 非活动超时 LMP 时,将设置 U2 非活动超时。当集线器上游端口链路进入 U1 时,PM 计时器将重置。PM 定时器应精确到 +500/ -0 μs。计时器的其他要求在上游端口 PM 状态机描述中定义。
10.6.2 面向 Hub 上游的端口状态描述
Hub Upstream Facing Port State Descriptions 。
10.6.2.1 Enabled U0 States
有四种已启用的 U0 状态,它们仅在 U1 和 U2 Enable (启用 U2) 设置中有所不同。以下规则全局适用于所有已启用的 U0 状态:
- 如果上游端口上有待处理的数据包要传输,则上游端口不应启动到 U1 或 U2 的转换。
- 如果 Force_LinkPM_Accept 位设置为 1,则上游端口应接受来自链路伙伴的 U1 或 U2 转换(请参阅第 8.4.2 节)。
对于 U1 和 U2 Enable 值的各种组合,端口的行为如下:
U1_ENABLE = 0, U2_ENABLE = 0
- 这是 Hub 收到任何 SetFeature (U1/U2_ENABLE) 请求之前的默认状态。
- PM 定时器可以被禁用,而 PM 定时器的值应该被忽略。
- 端口的链路应接受其链路合作伙伴的 U1 输入请求,除非集线器有一个或多个数据包/链路命令要在端口上传输,或者一个或多个集线器下游端口在 U0 或恢复中具有链路。
- 端口的链路应接受其链路合作伙伴的 U2 输入请求,除非集线器有一个或多个数据包/链路命令要在端口上传输,或者一个或多个集线器下游端口在 U0、U1 或恢复中具有链路。
- 端口的链接不得尝试启动到 U1 或 U2 的转换。
U1_ENABLE = 1, U2_ENABLE = 0
- 端口的链接不应启动 U2 转换。
- 端口的链路应接受链路合作伙伴的所有 U2 输入请求,除非集线器有一个或多个数据包/链路命令要在端口上传输,或者一个或多个集线器下游端口在 U0、U1 或 recovery 中具有链路。
- 端口的链路应接受其链路合作伙伴的 U1 输入请求,除非集线器有一个或多个数据包/链路命令要在端口上传输,或者一个或多个集线器下游端口在 U0 或恢复中具有链路。
- PM 定时器可以被禁用,而 PM 定时器的值应该被忽略。
- 如果所有 Hub 下行端口都处于 U1 或较低的链路状态,则端口的链路应启动到 U1 的过渡。
U1_ENABLE = 0, U2_ENABLE = 1
- 端口的链接不得启动 U1 转换。
- 端口的链路应接受链路伙伴的所有 U1 输入请求,除非集线器有一个或多个数据包/链路命令要在端口上传输,或者一个或多个集线器下游端口在 U0 或恢复中具有链路。
- 端口的链路应接受其链路伙伴的 U2 输入请求,前提是集线器在端口上有一个或多个数据包/链路命令要传输,或者一个或多个集线器下游端口在 U0、U1 或恢复中具有链路。
- PM 定时器可以被禁用,而 PM 定时器的值应该被忽略。
- 如果所有 Hub 下游端口都处于 U2 或较低的链路状态,则端口的链路应启动到 U2 的转换。
U1_ENABLE = 1, U2_ENABLE = 1
- 端口的链路应接受其链路伙伴的 U1 或 U2 输入请求,除非集线器有一个或多个数据包/链路命令要在端口上传输。
如果一个或多个集线器下游端口在 U0 或 recovery 中具有链接,则不应接受 U1 输入请求。
如果一个或多个集线器下游端口在 U0、U1 或 recovery 中具有链接,则不应接受 U2 输入请求。 - 如果所有 Hub 下游端口都处于 U1 或较低的链路状态,则端口的链路应启动向 U1 的过渡,除非满足 U2 进入的条件。
- 如果所有 Hub 下游端口都处于 U2 或较低的链路状态,则端口的链路应启动到 U2 的过渡。请注意,如果端口已在 U1 中,则端口应在转换为 U2 之前转换为 U0。
- PM 定时器可以被禁用,而 PM 定时器的值应该被忽略。
在以下任何情况下,端口将转换为 Enabled U0 状态之一(取决于 U1 和 U2 Enable 值):
- 在 U1 状态下,当链接伙伴成功启动到 U0 的转换时。
- 在 U2 状态下,当链接伙伴成功启动到 U0 的转换时。
- 在 U1 状态下,当下游端口的状态发生变化时。
- 在 U2 状态下,当下游端口的状态发生变化时。
- 在 U1 状态下,当集线器下游端口的链路启动到 U0 的转换时。
- 在 U2 状态下,当集线器下游端口的链路启动到 U0 的转换时。
- 如果上游端口的链路伙伴拒绝尝试从 U0 转换为 U1 转时。
- 如果上游端口的链路伙伴拒绝尝试从 U0 转换为 U2 转时。
- 在 U3 状态下,当集线器的上游端口收到唤醒信号时。
- 在 U3 状态下,当下行端口有状态变化或本地电源状态变化,并且相应的事件类型开启了远程唤醒时。
10.6.2.2 尝试 U0 – U1 转换(Attempt U0 – U1 Transition)
在此状态下,端口尝试将其链接从 U0 状态转换为 U1 状态。
在以下任何情况下,端口应尝试转换为 U1 状态:
- U1 条目由链路伙伴请求,端口上没有待处理流量,并且所有集线器下游端口的链路都处于 U1 或更低状态。
- 所有集线器下游端口都处于 U1 或较低链路状态,并且上游端口上没有待传输的流量,并且 U1_ENABLE 设置为 1。
- 链接伙伴请求 U1 条目,并设置 Force_LinkPM_Accept 位。
如果转换尝试失败(收到 LXU 或链路进入恢复状态),则端口将返回到相应的已启用 U0 状态。
10.6.2.3 尝试 U0 – U2 转换(Attempt U0 – U2 Transition)
在此状态下,端口会尝试将链接从 U0 状态转换为 U2 状态。
在以下任何情况下,端口应尝试转换为 U2 状态:
- U2 条目由链路伙伴请求,端口上没有待处理流量,并且所有集线器下游端口的链路都处于 U2 或更低状态。
- 所有集线器下游端口都处于 U2 或较低链路状态,并且上游端口上没有待传输的流量,U2_ENABLE设置为 1。
- 链接伙伴请求 U2 条目,并设置 Force_LinkPM_Accept 位。
如果转换尝试失败(收到 LXU 或链路进入恢复状态),则端口将返回到相应的已启用 U0 状态。
10.6.2.4 U1 中的链接(Link in U1)
当进入此状态并处于活动状态时,PM 计时器将重置。
端口转换为 U1:
- 发送 LAU 以接受由链接合作伙伴发起的转换后。
- 在开始尝试将链接转换为 U1 后从链接伙伴收到 LAU 后(After receiving an LAU from the link partner after initiating an attempt to transition
the link to U1)
如果 U2 非活动超时值不是 0xFF 或 0x00,并且 PM 计时器达到 U2 非活动超时,则端口的链接应启动从 U1 到 U2 的转换。
10.6.2.5 U2 中的链接(Link in U2)
链接位于 U2 中。
端口转换为 U2:
- 发送 LAU 以接受由链接合作伙伴发起的转换后。
- 在开始尝试将链接转换为 U2 后,从链接伙伴收到 LAU 后
10.6.2.6 U3 中的链接(Link in U3)
链接位于 U3 中。
端口转换为 U3:
- 发送 LAU 以接受由链接合作伙伴发起的转换后。
10.7 超高速集线器头包转发和数据中继器
SuperSpeed Hub Header Packet Forwarding and Data Repeater 。
SuperSpeed Hub 对标头数据包使用存储和转发模型,对数据使用转发器模型,它们组合在一起提供以下常规功能。
在下游方向:
- 验证报头数据包
- 设置与选定下游端口的连接
- 将报头数据包转发到下游端口
- 将数据有效载荷转发到下游端口(如果存在)
- 在数据包边界上设置和关闭连接
在上游方向:
- 验证报头数据包
- 设置与上游端口的连接
- 将报头数据包转发到上游端口
- 将数据包有效载荷转发到上游端口(如果存在)
- 在数据包边界上设置和关闭连接
10.7.1 SuperSpeed Hub 弹性缓冲区(SuperSpeed Hub Elasticity Buffer)
SuperSpeed Hub 中没有针对弹性缓冲区行为的直接规范。但是,请注意, SuperSpeed Hub 必须满足第 10.7.3 节中的要求,即从上游端口转发到下游端口的报头数据包的传播延迟的最大变化。
10.7.2 SKP 有序集(SKP Ordered Sets)
SuperSpeed Hub 按照第 6 章中所有发射机的规则,对所有发射进行 SKP 有序集传输。
10.7.3 数据包间距(Interpacket Spacing)
当 SuperSpeed Hub 发起或转发数据包时,应按照第 7.2.1 节中的要求发送数据包标头和数据包有效负载。
当 SuperSpeed Hub 将标头数据包转发到下游,并且下游端口链路为 U0 时,当在集线器上游端口上收到标头数据包时,传播延迟变化不应大于 tPropagationDelayJitterLimit。
10.7.4. SuperSpeed 报头数据包缓冲区体系结构
SuperSpeed Header Packet Buffer Architecture 。
该规范不要求 SuperSpeed Hub 中的标头数据包缓冲区具有特定的体系结构。图 10-15 和图 10-16 显示了满足此规范功能要求的示例体系结构,以说明 SuperSpeed Hub 的功能行为。图 10-15 显示了一个 SuperSpeed Hub ,其中上游端口有一个 4 报头数据包 Rx 缓冲区,每个下游端口都有一个 4 报头数据包 Tx 缓冲区。图 10-16 显示了每个下游端口的 4 报头数据包 Rx 缓冲区和上行端口的 4 报头数据包 Tx 缓冲区。图 10-15 和图 10-16 所示的缓冲区是独立的物理缓冲区。
下面列出了 SuperSpeed Hub 缓冲区体系结构的功能要求,并假设在每种情况下,只有集线器上指示的端口在接收或传输标头数据包:
- 在所有报头数据包缓冲区为空的情况下开始的 SuperSpeed Hub 应能够在其上游端口用完报头数据包进行流控制信用之前接收至少 8 个定向到不在 U0 中的同一下游端口的报头数据包(header packet)。
- 在其上游端口上接收路由到下游端口的报头数据包的 SuperSpeed Hub 应立即将报头数据包路由到相应的下游端口报头数据包缓冲区(如果该缓冲区中的空间可用),而不管任何其他下游端口报头数据包缓冲区的状态或上游端口 Rx 报头数据包缓冲区的状态如何。例如,下游端口 1 的 hub Tx 报头数据包缓冲区已满,并且该 Hub 上游端口 Rx 报头数据包缓冲区中还有三个报头数据包要路由到 hub 的下游端口 1 。如果集线器现在收到路由到下游端口 2 的报头数据包,则必须立即将报头数据包路由到下游端口 2 Tx 报头数据包缓冲区。
- 当上游端口不在 U0 中时,所有标头数据包缓冲区为空的 SuperSpeed Hub 应能够在同一下游端口上接收至少 8 个标头数据包,这些数据包定向用于上游传输。
- 下游端口传输的报头数据包应按照它们在上游端口上接收的顺序传输。
- 上游端口从同一下游端口传输的报头数据包应按照它们在该下游端口上接收的顺序进行传输。
Section 10.9 提供了 hub 实现中上游和下游端口 Tx 和 Rx 标头数据包缓冲区的详细功能状态机。
SuperSpeed Hub 应至少有 1080 字节的缓冲,用于处理在上游端口上接收的数据包(data packets)。
SuperSpeed Hub 应至少有 1080 字节的共享缓冲,用于所有下游端口上接收的数据包。
10.7.5 SuperSpeed 包连接(SuperSpeed Packet Connectivity)
SuperSpeed Hub 包中继器/转发器必须在两个方向上对数据包进行重新计时。Re-clocking 意味着 repeater 从接收到的 stream 中提取数据,并使用自己的本地 clock 重新传输 stream 。
10.8 SuperSpeedPlus 存储和转发行为
SuperSpeedPlus Store and Forward Behavior 。
SuperSpeedPlus Hub 提供以下常规功能。
在下游方向:
- 接收并验证数据包
- 将包转发到适当的下游端口
- 选择要在(每个)下游端口上传输的下一个包
在上游方向:
- 接收并验证数据包
- 将数据包转发到上游端口
- 选择要在上游端口上传输的下一个数据包
10.8.1 Hub 弹性缓冲区(Hub Elasticity Buffer)
集线器中的弹性缓冲区行为没有直接的规范。但是,请注意,集线器必须满足第 10.7.3 节中关于传播延迟最大变化的要求。
10.8.2 SKP 有序集(SKP Ordered Sets)
SuperSpeedPlus Hub 按照第 6 章中所有发射机的规则,对所有传输传输进行 SKP 有序集传输。
10.8.3 数据包间距(Interpacket Spacing)
当集线器发起或转发数据包时,应按照第 7.2.1 节的要求发送 DPH 及其相应的 DPP。
SuperSpeedPlus Hub 的存储和转发行为有几个方面,包括缓冲、要转发到上游的数据包之间的仲裁以及转发过程中的数据包修改。
10.8.4 上游流缓冲(Upstream Flowing Buffering)
SuperSpeedPlus Hub 应为每个 DFP(downstream facing port) 接收器提供 16 x 1 KB 控制/批量 DPP 缓冲区和 16 x 1 KB 中断/同步 DPP 缓冲区的缓冲。SuperSpeedPlus 集线器应为每个 DFP 接收器提供 16 个控制/批量标头缓冲区和 16 个 TP/中断/同步标头缓冲区的缓冲。这些缓冲区应用于保存从等待在上游端口上传输的下游端口接收的数据包。
每个下游端口都需要缓冲区空间,因为在上游端口上传输数据包时,可能会有数据包同时到达每个下游端口。此外,集线器仲裁规则(请参阅 Section 10.8.6)可以延迟在下游端口上接收的数据包可以在上游端口上传输的时间。
10.8.5 下游流缓冲(Downstream Flowing Buffering)
SuperSpeedPlus Hub 应根据上行端口的速度和通道数量以及下行端口的数量提供足够的缓冲。
1KB 控制/批量 DPP 缓冲区和 1KB 中断/同步 DPP 缓冲区 (NBuf) 的数量应按以下方式计算:
-
确定要使上游端口饱和的下游端口数
S p e e d R a t i o = U p s t r e a m P o r t S p e e d / G e n 1 x 1 S p e e d SpeedRatio = UpstreamPortSpeed/Gen 1x1 Speed SpeedRatio=UpstreamPortSpeed/Gen1x1Speed
N u m b e r O f P o r t s F o r S a t u r a t i o n I s N = C e i l ( S p e e d R a t i o ) Number Of Ports For Saturation Is N = Ceil (SpeedRatio) NumberOfPortsForSaturationIsN=Ceil(SpeedRatio) -
计算下游端口使用数据包的速率,假设下游连接的设备始终接受 DP:
P a c k e t C o n s u m p t i o n R a t e ( P C R ) = M a x B u r s t / S p e e d R a t i o Packet Consumption Rate (PCR) = MaxBurst/SpeedRatio PacketConsumptionRate(PCR)=MaxBurst/SpeedRatio -
计算所需的缓冲区数量:
NBuf = 0; i = 1;
While ((MaxBurst - |i*PCR|) > 0)
NBuf += (MaxBurst - |i*PCR|); i++;
NBuf += N;
SuperSpeedPlus Hub 还应为同等数量的 Control/Bulk 标头缓冲区和 TP/中断/同步标头缓冲区提供缓冲。
由于可能的上游端口和下游端口速度不同,下游流量的缓冲主要是为了提供速率匹配功能。因此,它是为每个集线器提供的,而不是为每个下游端口提供的。但是,此缓冲的组织和功能应允许从上游端口接收数据包,然后以与接收顺序不同的顺序同时在多个下游端口上传输。也就是说,此缓冲不能组织为单个简单的 FIFO。
10.8.6. 数据包的 SuperSpeedPlus Hub 仲裁
SuperSpeedPlus Hub Arbitration of Packets 。
10.8.6.1 仲裁权重(Arbitration Weight)
第 i 个面向下游的端口 (DFPi,ith downstream facing port) 具有与之关联的仲裁权重 (AW,arbitration weight)。该权重应设置为;
D F P i . A W = D F P i . l i n k _ s p e e d / A r b i t r a t i o n W e i g h t B a s e DFPi.AW = DFPi.link\_speed / ArbitrationWeightBase DFPi.AW=DFPi.link_speed/ArbitrationWeightBase
10.9 端口状态机(Port State Machines)
10.10 暂停和恢复(Suspend and Resume)
10.11 集线器上行端口重置行为
Hub Upstream Port Reset Behavior 。
10.12 集线器端口电源控制(Hub Port Power Control)
10.13 集线器控制器(Hub Controller)
10.14 集线器配置(Hub Configuration)
10.15 描述符(Descriptors)
10.16 请求(Requests)
10.17 主机根(下行)端口
Host Root (Downstream) Ports 。
10.18 外围设备上行接口
Peripheral Device Upstream Ports 。
10.19 Hub 章节参数说明(Hub Chapter Parameters)
11 互操作性和功率传输
Interoperability and Power Delivery 。
A Gen1 符号编码(Gen 1 Symbol Encoding)
B 符号扰乱(Symbol Scrambling)
C 电源管理(Power Management)
D 示例数据包(Example Packets)
E 中继器(Example Packets)
☆