Chapter 3 Architectural overview

各个部分为:
-
Application software:应用软件使用一个或多个USB设备提供的服务。应用软件通过Class Driver提供的标准接口连接到USB设备
-
Class Driver software :这种软件运行在host PC上,对应USB设备一个具体的“类”(Mass Storage,Human interface,Audio,etc.).Class Driver software 通常是操作系统一部分或者由USB设备提供。
-
USB Driver(USBD): USBD是系统软件总线驱动程序,它为特定操作系统抽象出特定主机控制器驱动程序的详细信息。 USBD提供给系统的通用USB接口称为USB驱动程序接口或USBDI。
-
Host Control Driver(xHCD):xHCD提供Host Controller hardware和USBD之间的软件层。主机控制器驱动程序的详细信息取决于主机控制器硬件寄存器接口定义。
-
Host Controller (xHC): 主机控制器是主机控制器体系结构的特定硬件实现。 USB 3主机控制器有一个主机控制器规范,可支持低速,全速,高速,SuperSpeed和SuperSpeedPlus设备。xHC提供给系统的接口称为可扩展主机控制器接口或xHCI(eXtensible Host Controller Interface)。
-
USB Device: 这是扩展总线拓扑的硬件设备(集线器)或执行有用的最终用户功能(end-user function)。与USB设备的交互从应用程序通过软件和硬件层流向USB设备。
USB体系结构的关键功能是它提供的Device Framework。Device Framework定义了USB设备和类驱动(Class Driver)程序之间的接口,该接口独立于系统用来与USB通信的特定主机控制器接口。 该接口包含一个默认管道和零个或多个其他class定义的管道。 默认管道(也称为默认控制端点)用于枚举和管理USB设备。 它还可以用于提供对设备的应用程序特定功能的访问。 类定义的管道提供特殊的服务质量要求,以执行设备类特定的功能。
Device Framework允许USB体系结构将“总线”接口的细节与应用特定(“设备”)接口的细节分开,从而产生分离的驱动结构(xHCD /Class驱动程序)。 请注意,在这种情况下,Device Class是指USB设备中执行某些有用的最终用户特定于应用程序的功能(例如大容量存储,音频,人机界面等)的部分。
USB总线驱动(USBD)提供标准连接到的USB结构(指 Isoch,interrupt,control,and Bulk Pipes)定义的传输机制(transport mechanism)即USB Framework(USB架构)的方式并且Device Class Driver是所有应用程序特定知识所在的位置。
Device Class Driver还将包括供应商可能提供的任何“增值”。 只要通过USBDI提供的USB框架保持不变,USB类驱动程序就不必更改是因为USB总线驱动程序没有改变。(例如支持xHCI)
The xHCI is used for all communications to devices connected through the Root Hub ports of the USB 3 host controller.
USB标准化组织(USB-IF)定义了几个标准USB设备类(USB Device Classes)(如大容量存储,音频等)。USB设备生产商可以选择定义他们的产品的自身设备类,或者使用部分或全部USB-IF定义的设备类。USB-IF定义的设备类为特们各自提供了一个特征的基线集合。当今的操作系统本身支持几种USB设备类。
如果设备生产商没有定义设备类驱动(当然他们可以定义),那么可能操作系统可以提供。很多USB设备生产商就直接利用操作系统提供的设备驱动类,而不自己定义。当然如果操作系统也不支持,那么他们就得自己定义了。
xHCI体系结构允许USB 3主机控制器为所有速度设备提供USB功能,而无需像上一代产品那样,伴随控制器以及对它们各自驱动程序的相关软件支持。 xHCI体系结构的增强功能是提供此简化的操作环境的关键。
主机接口逻辑管理与xHC相关的寄存器和DMA。

xHC总是管理连接到其Root hub ports上的各种速度USB设备。取决于实现方式,USB总线的资源实例(带宽,设备可寻址性等)可以显示在每个根集线器端口上,在多个根集线器端口之间共享或分配的组合。
此规范定义了可扩展主机控制器接口的寄存器和接口。
3.1 Interface Architecture
xHCI 接口定义了三种接口空间:
-
Host Configuration Space(主机配置空间)。每个xHC implementation(实施, 生效,工具,仪器)都要包括一个通过系统软件识别、枚举host controller的方法。这个协议提供了一个Host Configuration Space的PCI示例,称为PCI Config Space。PCI配置空间用于系统对xHC进行枚举和资源(中断、电源、虚拟化等)管理。
-
MMIO Space。 MMIO是寄存器空间位于内存中,代表xHC向系统软件提供的硬件寄存器。 寄存器空间提供xHCI上的各种寄存器的参数实现(也就是xHCI寄存器可以和这个空间相互映射,通过北桥将内存(MMIO)地址转换为xHCI上的寄存器地址),包括操作和运行时控制和状态寄存器以及用于标记对单个USB设备的访问标志的门铃阵列。 此空间通常称为I / O空间,实现为内存映射I / O(MMIO)空间。
-
Host Memory。 此空间由控制数据结构(设备上下文基地址阵列,设备上下文,传输环等)和数据缓冲区定义,这些数据缓冲区由xHC驱动程序分配和管理,以启用各个设备的端点流量。 此空间在内存地址空间的内核和用户区域中分配。

xHCI支持两种USB传输类型:异步和周期性传输。其中周期性传输包括同步和中断传输。异步传输包括控制和批量传输。图3-3解释xHCI提供为每种传输提供了一个同质机制(传输环,Transfer Rings)。
PCI配置空间中的USB基准地址寄存器(USB Base Address Register,BAR)指向xHC寄存器接口的基准地址。xHC寄存器接口有4个主要部分:Capability Registers(功能寄存器),Operational Register(操作寄存器),Runtime Re

最低0.47元/天 解锁文章
3533

被折叠的 条评论
为什么被折叠?



