【USB协议相关】xHCI1.1协议学习笔记(1)——数据结构

本文详细介绍了xHCI1.1协议中的关键数据结构,包括Device Context Base Address Array、Device Context、Slot Context、Endpoint Context、 Rings、Transfer Request Block(TRB)、出入队指针、Transfer Descriptor(TD)、Doorbell Array以及端点的相关概念和功能,为理解USB协议提供了深入的学习笔记。
摘要由CSDN通过智能技术生成

eXtensible Host Controller Interface 1.1 for Universal Serial Bus协议学习笔记

(November 2017 Revision 1.1)

1.Device Context Base Address Array设备上下文基地址数组

最多支持255个USB设备或集线器,其中阵列中的每个元素都是指向设备上下文数据结构的指针。

设备上下文基地址阵列(DCBAA)为xHC提供了基于Slot ID的查找表,用于访问与每个插槽关联的设备上下文数据结构。该数据结构由指向设备上下文数据结构的指针数组组成。当检测到设备连接时:系统软件会初始化设备上下文数据结构,从xHC请求Slot ID,然后在Slot ID指示的位置将指向新创建的设备上下文的指针插入DCBAA。

2.Device Context设备上下文

设备上下文数据结构由xHC管理,用于向系统软件报告设备配置和状态信息。设备上下文数据结构由32个数据结构的数组组成。第一个上下文数据结构(索引=“0”)是Slot Context数据结构。其余上下文数据结构是“端点上下文”数据结构

在枚举USB设备的过程中,系统软件会在主机内存中为该设备分配设备上下文数据结构,并将其初始化为“0”。然后,使用地址设备命令将数据结构的所有权传递给xHC。xHC保留对设备上下文的所有权,直到使用“禁用插槽命令”禁用了设备插槽为止。设备上下文数据结构由xHC拥有时,应被系统软件视为只读。

3.Slot Context插槽上下文

这个比较抽象,Slot主要是有关 包含与整个设备有关的信息,或影响USB设备的所有端点的信息Slot Context提供的信息包括控制,状态,寻址和电源管理

  • 作为设备上下文成员,xHC使用插槽上下文数据结构将设备参数的当前值报告给系统软件。
  • xHC报告的插槽状态标识设备的当前状态,并与USB规范中描述的USB设备状态紧密对应。
  • 设备上下文的Slot Context数据结构也称为“Output Slot Context”。 作为输入上下文成员,系统软件使用Slot
  • Context数据结构将命令参数传递给主机控制器。 输入上下文的Slot Context数据结构也称为“Input Slot Context”。
  • 如果针对设备插槽的命令成功执行,则xHC将在生成Command Completion Event 之前更新输出插槽上下文,以反映其正在主动使用的参数值来管理设备。
  • 插槽上下文的xHCI保留区域可用作xHC实现定义的暂存器。
  • 插槽上下文中的所有保留字段仅供xHC使用,除非插槽处于“禁用”状态,否则不得由系统软件修改。

4.Endpoint Context端点上下文

端点上下文数据结构定义特定USB端点的配置和状态。该数据结构被定义为设备上下文和输入上下文数据结构的成员。

  • 端点上下文的大多数字段包含与端点相关的类型控制状态带宽信息,这些信息与设备报告的与端点相关的关联描述符中的信息相对应。

  • 端点上下文还定义了TR出队指针字段,该字段通常提供指向与通道关联的 Transfer Ring的指针。

  • USB3批量(Bulk)端点有一种特殊情况,其中Stream可能与端点关联。

  • Stream允许设备在 Transfer Ring 之间多路复用端点的数据流

  • 大多数设备仅声明少量端点,这意味着设备上下文或输入上下文中的许多端点上下文数据结构可能未使用。

  • 作为设备上下文成员,xHC使用端点上下文数据结构将端点相关参数的当前值报告给系统软件。

  • 在本文档中,设备上下文的端点上下文数据结构也称为“输出端点上下文”。

  • 如果引用输入上下文的命令成功执行,则xHC将更新输出端点上下文,以反映在生成Command Completion Event 之前它正在主动用于管理端点的参数值。

  • 端点上下文的xHCI保留区域可用作xHC实现定义的暂存器。

  • 流上下文数组用于定义支持流的USB3端点的 Transfer Ring。流上下文数组由流上下文数据结构组成。主要的

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值