USB3.2 摘录(12)

2024-08-28 18:28
文章标签 摘录 usb3.2

本文主要是介绍USB3.2 摘录(12),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述

系列文章目录


USB3.2 摘录(一)
USB3.2 摘录(二)
USB3.2 摘录(三)
USB3.2 摘录(四)
USB3.2 摘录(五)
USB3.2 摘录(六)
USB3.2 摘录(七)
USB3.2 摘录(八)
USB3.2 摘录(九)
USB3.2 摘录(10)
USB3.2 摘录(11)
USB3.2 摘录(12)


文章目录

  • 系列文章目录
  • 10 集线器、主机下游端口和设备上游端口规范
    • 10.16 请求(Requests)
      • 10.16.1 标准请求(Standard Requests)
      • 10.16.2 特定于类的请求(Class-specific Requests)
        • 10.16.2.1 清除 Hub 功能(Clear Hub Feature)
        • 10.16.2.2 清除端口功能(Clear Port Feature)
        • 10.16.2.3 获取 Hub 描述符(Get Hub Descriptor)
        • 10.16.2.4 获取 Hub 状态(Get Hub Status)
        • 10.16.2.5 获取端口错误计数(Get Port Error Count)
        • 10.16.2.6 获取端口状态(Get Port Status)
          • 10.16.2.6.1 端口状态位(Port Status Bits)
          • 10.16.2.6.2 端口状态更改位(Port Status Change Bits)
          • 10.16.2.6.3 扩展端口状态位(Extended Port Status Bits)
        • 10.16.2.7 设置集线器描述符(Set Hub Descriptor)
    • 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.16 请求(Requests)

10.16.1 标准请求(Standard Requests)

    集线器对请求处理时间的限制比 Section 9.2.6 中规定的标准设备更严格,因为它们对于连接到 USB 的所有设备的 “可用时间” 至关重要。下面列出了最坏情况的请求计时要求(它们适用于标准请求和 Hub 类请求):

  • 无数据阶段的请求的完成时间: 50 ms
  • 有数据阶段的标准请求的完成时间:
    • 从设置数据包到第一个数据阶段的时间: 50 ms
    • 每个后续数据阶段之间的时间: 50 ms
    • 最后一个数据阶段和状态阶段之间的时间: 50 ms

    由于集线器在总线计数中起着如此关键的作用,因此建议所有请求的集线器平均响应时间小于 5 毫秒。

    表 10-6 概述了各种标准设备请求。

在这里插入图片描述

    集线器需要接受所有 “标准” 请求,而不会出错。集线器不应对格式良好的 SET_ISOC_DELAY 请求响应请求错误。集线器不需要保留或处理延迟值。未实现的可选请求应在请求的 Data stageStatus 阶段返回 STALL

10.16.2 特定于类的请求(Class-specific Requests)

    hub 类定义 hub 响应的请求,如表 10-7 中所述。表 10-8 定义了 Hub 类请求代码。下表中除 SetHubDescriptor() 之外的所有请求都是必需的。

在这里插入图片描述

在这里插入图片描述

    表 10-9 给出了 hub 类的有效功能选择器。有关功能的说明,请参阅 Section 10.16.2.1 和 Section 10.16.2.8 。

在这里插入图片描述

10.16.2.1 清除 Hub 功能(Clear Hub Feature)

    此请求将重置 hub status 中报告的值。

在这里插入图片描述

    发送清除请求将禁用该功能;请参阅表 10-9 了解作为接收者应用于 Hub 的功能选择器定义。如果功能选择器与状态更改相关联,则清除该状态更改将确认该更改。此请求格式用于清除 C_HUB_LOCAL_POWERC_HUB_OVER_CURRENT 功能。

    如果 wValue 不是表 10-9 中列出的功能选择器,或者 wIndexwLength 不是上面指定的,则为请求错误。

    如果未配置 Hub ,则 Hub 对此请求的响应是 undefined

10.16.2.2 清除端口功能(Clear Port Feature)

    此请求将重置端口状态中报告的值。

在这里插入图片描述

    端口号应为该集线器的有效端口号,大于零。port 字段位于 wIndex 字段的位 7…0 中。

    发送清除请求将禁用该功能或启动与该功能关联的进程;有关功能选择器定义,请参阅表 10-9。如果功能选择器与状态更改相关联,则清除该状态更改将确认该更改。此请求格式用于清除以下功能:

  • PORT_POWER
  • C_PORT_CONNECTION
  • C_PORT_RESET
  • C_PORT_OVER_CURRENT
  • C_PORT_LINK_STATE
  • C_PORT_CONFIG_ERROR
  • C_BH_PORT_RESET
  • FORCE_LINKPM_ACCEPT

    清除 PORT_POWER 功能会导致端口处于 DSPORT.Powered-off-reset 状态,并且可能会根据集线器的电源切换方法的限制,导致端口的电源断开。当处于 DSPORT.Powered-offDSPORT.Powered-off-detectDSPORT.Powered-off-reset 状态时,当此端口为接收方时,唯一有效的请求是获取端口状态 (请参阅 第 10.16.2.6 节) 和设置端口功能 (PORT_POWER) (请参阅 第 10.16.2.10 节)。

    清除 FORCE_LINKPM_ACCEPT 功能会导致端口置低 Set Link Function LMPs 中的 Force_LinkPM_Accept 位。如果端口上未断言 Force_LinkPM_Accept 位,则集线器应将此请求视为功能性无操作。

    如果 wValue 不是表 10-9 中列出的功能选择器,如果 wIndex 指定的端口不存在,或者 wLength 不是上面指定的,则为一个错误请求。请求尝试清除已清除的特性(feature)不是一个错误(集线器应将其视为功能性无操作)。

    如果未配置 Hub ,则 Hub 对此请求的响应是 undefined

10.16.2.3 获取 Hub 描述符(Get Hub Descriptor)

    此请求返回 Hub 描述符。

在这里插入图片描述

    Hub 类描述符的 GetDescriptor() 请求遵循与标准 GetDescriptor() 请求相同的使用模型(请参阅第 9 章)。标准 Hub 描述符使用第 10.15.2.1 节中定义的值 bDescriptorType 表示。所有 Hub 都需要实现一个 Hub 描述符,描述符索引为零。

    如果 wLength 大于描述符的实际长度,则仅返回实际长度。如果 wLength 小于描述符的实际长度,则仅返回描述符的第一个 wLength 字节;即使 wLength 为零,也不会将其视为错误。

    如果 wValuewIndex 与上面指定的不同,则为请求错误。

10.16.2.4 获取 Hub 状态(Get Hub Status)

    此请求返回当前 Hub 状态以及自上次确认以来已更改的状态。

在这里插入图片描述

    Data 的第一个字(2 字节)包含 wHubStatus 字段(参见表 10-10)。Data 的第二个字包含 wHubChange 字段(参见表 10-11)。

    如果 wValuewIndexwLength 与上面指定的值不同,则为错误请求。

在这里插入图片描述

    这些状态位没有定义的功能选择器值,它们既不能被 USB 系统软件设置也不能清除。

在这里插入图片描述
在这里插入图片描述

    集线器可能允许使用 SetHubFeature() 请求设置这些更改位,以便支持诊断。如果集线器不支持设置这些位,则应将 SetHubFeature() 请求视为请求错误或功能性无操作。设置后,这些位可以由 ClearHubFeature() 请求清除。设置已设置的功能或清除已清除的功能的请求无效,Hub 应将其视为功能无操作。

10.16.2.5 获取端口错误计数(Get Port Error Count)

    此请求返回集线器在 wIndex 指示的端口上检测到的链接错误数。每当设备经历 Reset (请参阅 Section 7.3) 或在上电时,此值将重置为零。

在这里插入图片描述

    端口号应为该集线器的有效端口号,大于零。

    如果 wValuewLength 不是上面指定的,或者 wIndex 指定的端口不存在,则会出现请求错误。

10.16.2.6 获取端口状态(Get Port Status)

    此请求返回当前端口状态和端口状态更改位的当前值。

在这里插入图片描述

    PORT_STATUSEXT_PORT_STATUS 数据的第一个字包含 wPortStatus 字段(参见表 10-13)。PORT_STATUSEXT_PORT_STATUS 数据的第二个字包含 wPortChange 字段(参见表 10-14)。EXT_PORT_STATUS 请求应返回包含 dwExtPortStatus 字段的附加数据 dword(请参阅表 10-15)。

    wPortStatuswPortChange 字段中的位位置在适用时以一对一的方式对应。

    wValue 字段以低序字节指定 Port Status Type(请参阅表 10-12),高序字节被保留。

在这里插入图片描述

    如果端口状态类型等于 EXT_PORT_STATUS 且集线器未定义 SuperSpeedPlus USB 功能描述符,或者端口状态类型等于保留值,或者 wValuewLength 不是表 10-7 中指定的值,或者 wIndex 指定的端口不存在,则为请求错误。

10.16.2.6.1 端口状态位(Port Status Bits)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

PORT_CONNECTION

    当端口处于 DSPORT.Enabled 状态时,此位设置为 1。在 DSPORT.ResettingDSPORT.Error 状态中,它保持先前状态的值。

    SetPortFeaturePORT_CONNECTION) 和 ClearPortFeaturePORT_CONNECTION) 请求不得被 USB 系统软件使用,并且应被集线器标记为无操作请求。

PORT_ENABLE

    当下游端口处于 DSPORT.Enabled 状态时,此位设置为 1,否则设置为 0。

    请注意,增强型 SuperSpeed 集线器不支持 USB 2.0 ClearPortFeaturePORT_ENABLE) 请求,USB 系统软件也不能使用它来禁用端口。

PORT_OVER_CURRENT

    当端口上存在过流情况时,此位设置为 1,否则设置为 0。

    如果此端口上的电压受另一个端口上的过流条件影响,则此位设置为 1 并保持设置为 1,直到影响端口上的过流条件被消除。当影响端口上的过流条件被移除时,该位设置为零。

    如第 10.12 节所述,自供电集线器需要过流保护(在总线供电集线器上是可选的)。

    SetPortFeaturePORT_OVER_CURRENT) 和 ClearPortFeaturePORT_OVER_CURRENT) 请求不应由 USB 系统软件使用,并且可能被集线器视为无操作请求。

PORT_RESET

    当端口处于 DSPORT.Resetting 状态时,此位设置为 1。此位在所有其他下游端口状态中都设置为零。

    如果满足第 10.3.1.6 节中的条件,则 SetPortFeaturePORT_RESETBH_PORT_RESET) 请求将启动 DSPORT.Resetting 状态。

    ClearPortFeaturePORT_RESET) 请求不应由 USB 系统软件使用,并且可能被集线器视为无操作请求。

PORT_LINK_STATE

    此字段反映链接的当前状态。

    SetPortFeaturePORT_LINK_STATE) 请求可随时由 USB 系统软件发出,但仅具有第 10.16.2.10 节中指定的效果。

    ClearPortFeaturePORT_LINK_STATE) 请求不应由 USB 系统软件使用,并且可能被集线器视为无操作请求。

PORT_POWER

    此位反映端口的当前逻辑电源状态。无论是否存在实际的端口电源交换设备,此位在所有端口上实现。

    当此位为零时,端口处于 DSPORT.Powered-off 状态、DSPORT.Powered-off-detect 状态或 DSPORT.Powered-off-reset 状态。同样,任何导致此端口进入这三种状态中的任何一种的因素都将导致此位设置为零。

    SetPortFeaturePORT_POWER) 会将此位设置为 1,除非 C_HUB_LOCAL_POWERLocal Power Source(在 wHubStatus 中)都设置为 1,在这种情况下,请求被视为功能性无操作。

PORT_SPEED

    仅当 PORT_ENABLE 位设置为 1 且 Port Status Type 设置为 PORT_STATUS 时,此字段中的此值才有效。此字段中的值为零表示已附加增强型 SuperSpeed 设备。此字段中的所有其他值都是保留的。

    系统软件可以通过使用 Get Port Status 请求来确定设备运行的实际速度,请求时将其 Port Status Type 设置为 EXT_PORT_STATUS(请参阅 Section 10.16.2.6.3)。

    此字段只能由 USB 系统软件读取。

10.16.2.6.2 端口状态更改位(Port Status Change Bits)

    端口状态更改位用于指示端口状态位的更改,这些更改不是请求的直接结果。可以通过 ClearPortFeature() 请求或集线器重置来清除端口状态更改位。集线器可能允许使用 SetPortFeature() 请求设置状态更改位以进行诊断。如果集线器不支持设置状态更改位,则它可能会将请求视为请求错误或功能性无操作。表 10-14 介绍了 wPortChange 字段中的各个位。

在这里插入图片描述
在这里插入图片描述

C_PORT_CONNECTION

    当 PORT_CONNECTION 位更改时,此位设置为 1。

    此位应通过 ClearPortFeatureC_PORT_CONNECTION) 请求或在逻辑端口电源关闭时设置为零。

C_PORT_OVER_CURRENT

    当 PORT_OVER_CURRENT 位从 0 变为 1 或从 1 变为 0 时,此位设置为 1。如果由于另一个端口上的过流情况而将端口置于 DSPORT.Powered-off-reset 状态,则也会设置此位。

    此位应由 ClearPortFeatureC_PORT_OVER_CURRENT) 请求设置为零。

C_PORT_RESET

    当端口从 DSPORT.Resetting 状态转换为 DSPORT.Enabled 状态以进行任何类型的重置时,此位设置为 1。

    此位应通过 ClearPortFeatureC_PORT_RESET) 请求设置为零,或者在逻辑端口电源关闭时设置。

C_PORT_BH_RESET

    当端口从 DSPORT.Resetting 状态转换为 DSPORT.Enabled 状态时,此位设置为 1,仅用于热重置。

    该位应由 ClearPortFeatureC_PORT_BH_RESET) 请求清除,或者在逻辑端口电源关闭时清除。

C_PORT_LINK_STATE

    当端口的链路由于 SetPortFeaturePort_Link_State) 请求而完成从 U3 状态到 U0 状态的转换时,或者完成到 Loopback 状态或 ComplianceeSS.Inactive 的转换(如果存在 Rx 终止)时,此位设置为 1。由于在面向下游的端口上接收到远程唤醒信号,因此从 U3U0 的转换,因此此位未设置为 1。

    该位将通过 ClearPortFeatureC_PORT_LINK_STATE) 请求或在逻辑端口电源关闭时清除。

C_PORT_CONFIG_ERROR

    如果无法成功配置连接到端口的链路,例如,如果两个仅支持下行的端口相互连接,或者无法完成链路配置,则此位设置为 1。此外,发生这种情况时,端口应转换为 DSPORT.Error 状态。

    此位将通过 ClearPortFeatureC_PORT_CONFIG_ERROR) 请求或在逻辑端口电源关闭时清除。

10.16.2.6.3 扩展端口状态位(Extended Port Status Bits)

    仅当 Get Port Status 请求的 Port Status Type (端口状态类型) 设置为 EXT_PORT_STATUS 时,才会返回扩展端口状态位。

    请注意,对于增强型 SuperSpeed 设备,“端口速度” 是链路速度乘以通道数。

在这里插入图片描述
TX_SUBLINK_SPEED_ID and RX_SUBLINK_SPEED_ID

    仅当 PORT_ENABLE 位设置为 1 时,此字段中的值才有效。通道速度(即单个通道的比特率)是通过评估 SuperSpeedPlus USB 功能描述符中子链路速度属性的参数来确定的,其子链路速度属性 ID 值与子链路速度 ID 值匹配,例如,如果子链路速度属性 LSELSM 字段分别等于 3 和 10,则链路以 10 Gb/s 的速度运行。Sublink Speed Attribute 未引用的所有值都将被保留。

    此字段只能由 USB 系统软件读取。

TX_LANE_COUNT and RX_LANE_COUNT

    此字段中的此值仅在 PORT_ENABLE 位设置为 1 时有效。端口的速度是通过将 Sublink Speed(由 SUBLINK_SPEED_ID 定义)乘以 Lane Count 来确定的。

    此字段只能由 USB 系统软件读取。

10.16.2.7 设置集线器描述符(Set Hub Descriptor)

    此请求将覆盖 Hub 描述符。

在这里插入图片描述

    Hub 类描述符的 SetDescriptor 请求遵循与标准 SetDescriptor 请求相同的使用模型(请参阅第 9 章)。标准 Hub 描述符使用第 10.15.2.1 节中定义的值 bDescriptorType 表示。所有 Hub 都需要实现一个描述符索引为零的 Hub 描述符。

    此请求是可选的。此请求将数据写入特定于类的描述符。主机提供在控制事务的数据传输阶段要传输到集线器的数据。此请求一次写入整个 Hub 描述符。

    Hubs 应缓冲从此请求接收的所有字节,以确保已从主机成功传输整个描述符。成功完成总线传输后,集线器将更新指定描述符的内容。

    如果 wIndex 不为零或 wLength 与主机发送的数据量不匹配,则为请求错误。不支持此请求的 Hub 在请求的 Data 阶段使用 STALL 进行响应。

    如果未配置 Hub ,则 Hub 对此请求的响应是 undefined

   

   

   

   

   

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)

   
 


这篇关于USB3.2 摘录(12)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1115540

相关文章

读书摘录《控糖革命》

又到了每周推荐时间,这周末给大家推荐一本书《控糖革命》。身体是革命的本钱,只有保持健康的身体,才能保证持久的生产力,希望我的读者都可以身体健康,青春永驻。 推荐前,首先申明在《控糖革命》一书中,作者提出了一些颇具争议的观点,这些观点并没有经过系统的科学论证,但这并不妨碍我们从中获取一些有益的控糖建议。作者通过分享作者的个人经验和研究,为我们提供了一种全新的饮食理念,帮助我们更好地控制血糖峰值

20151214 要点摘录2

算法: 四火的数据库算法10题 http://www.raychase.net/2810 leetCode解题报告 http://bookshadow.com/leetcode/ 学习算法之路(转) http://blog.csdn.net/sunboy_2050/article/details/5656823 10分钟没有思路的就找例子 http://blog.csdn

20151214 要点摘录1

eclipse用法 --- 涉及到的eclipse的使用 在接口名上按F4 可以看继承关系    按ctrl+T可以找实现类 ctrl+shift+r查找文件 MyBatis的设计主要是把对数据库的增删改查的sql语句和JavaWeb工程的POJO做绑定 1 配置sql语句的映射文件 2 在conf.xml中配置数据库连接并关联sql语句的映射文件 3 在dao中编写代码,加载con

PCI Express 体系结构导读摘录(二)

系列文章目录 PCI Express 体系结构导读摘录(一) PCI Express 体系结构导读摘录(二) 文章目录 系列文章目录第Ⅱ篇  PCI Express 体系结构概述第 4 章  PCIe 总线概述4. 1  PCIe 总线的基础知识4. 1. 1  端到端的数据传递4. 1. 2  PCIe 总线使用的信号4. 1. 3  PCIe 总线的层次结构4. 1. 4

随手摘录

那一夜,我听了一宿梵唱,不为参悟,只为寻你的一丝气息。 那一月,我转过所有经轮,不为超度,只为触摸你的指纹。 那一年,我磕长头拥抱尘埃,不为朝佛,只为贴着了你的温暖。 那一世,我翻遍十万大山,不为修来世,只为路中能与你相遇。 那一瞬,我飞升成仙,不为长生,只为佑你平安喜乐。                                                    ---《那

《人工智能 一种现代方法》第三版 第7章 逻辑 Agent 笔记摘录

第7章 逻辑 Agent   基于只是的Agent 基于知识的Agent的核心部件事知识库(KB) Wumpus世界:P200 很好理解,不做笔记逻辑 知识库由语句构成:根据表示预言的语法来表达这些语句,语法是为所有合法语句给出规范。语言的语义:定义每个语句再每个可能世界的真值。用术语模型取代“可能世界”:“m是a的一个模型”表

《人工智能 一种现代方法》第三版 第4章 超越经典搜索 笔记摘录

第4章 超越经典搜索 综述: 本章讨论不受环境性质的约束。 一、二状态空间的局部搜索算法,考虑对一个活着多个状态进行评价和修改,而不是系统的探索从初始状态开始的路径。 局部搜索算法包括模拟退火法和进化生物学带来的遗传算法 三、四不在强调环境的确定性和可观察性,主要思想是如果Agent不能准确预测传感器的接受,那么它需要考虑当传感器接收到应急状态发生时该做什么,由于只具备部分可观察性,Ag

《人工智能 一种现代方法》第三版 第3章 通过搜索进行问题求解 笔记摘录

第三章 通过搜索进行问题求解 本章讨论的问题具有如下性质:环境是可观察的、确定的、已知的,问题解是一个动作序列 问题求解Agent 使用原子表示的基于目标的Agent,被称之为问题求解Agent使用要素法或结构化表示的基于目标的Agent,称之为规划Agent基于当前的情形和Agent的性能度量进行目标的形式化是问题求解的第一个步骤为达到目标,寻找行动序列的过程称之为搜索。搜索算法输入是问

USB3.2 摘录(五)

系列文章目录 USB3.2 摘录(一) USB3.2 摘录(二) USB3.2 摘录(三) USB3.2 摘录(四) USB3.2 摘录(五) 文章目录 系列文章目录8 协议层(Protocol Layer)8.12 TP 流程(TP Sequences)8.12.1 块事务处理(Bulk Transactions)8.12.1.1 状态机注释信息(State Machine

关于C与C++区别的摘录

1.博主:恒虚之境 作者:恒虚之境 链接:https://www.zhihu.com/question/28834538/answer/477487776 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。   大家都知道,上古时代,猿猴用机器代码写程序,而且好像还是01二进制编码的表现方式。这些01代码精确表达了计算机CPU所要做的每一个动作(每一条指令)从内存