xhci规范中整体软件模型如下图所示:

这里描述的主要是上图中xhci部分,包括软件和硬件。

1. 接口架构

这里主要分为三部分:
1)Host Configuration Space.
每个xHC实现都应包括一种通过系统软件识别和枚举主机控制器的方法。本规范提供了一个主机配置空间的PCI示例,它被称为PCI配置空间。PCI配置空间定义提供了一个关于系统xHC枚举和资源(中断、电源、虚拟化等)的配置空间使用的工作示例。
2)MMIO Space.
寄存器空间表示xHC向驻留在内存地址空间中的系统软件提供的硬件寄存器。寄存器空间提供了在xHCI正常和扩展功能寄存器中定义的实现特定参数、操作和运行时控制和状态寄存器,以及用于标记对单个USB设备的访问的门钟阵列。该空间,通常被称为I/O空间,被实现为内存映射的I/O(MMIO)空间。
3)Host Memory
此空间由控制数据结构(设备上下文基地址阵列、设备上下文、传输环等)定义。以及由xHC驱动程序分配和管理的数据缓冲区,以启用单个设备的端点流量。此空间将在内存地址空间的内核和用户区域中分配。

xHCI支持两种USB传输类型:异步传输和周期性传输。同步传输和中断传输是定期传输类型。异步传输类型包括控制传输和批量传输。

“PCI配置空间”中的USB基本地址寄存器(BAR)指向xHC寄存器接口的基本地址。xHC寄存器接口包括4个主要组件: Capability Registers, Operational Registers, Runtime Registers, and the Doorbell Array。操作和能力注册器连接在MMIO空间中。运行时注册器实际上只是操作注册器的一个扩展。它们的分区允许xHC留在单独的页面边界上,允许运行时注册器更好地支持虚拟化。功能注册器中显示了xHCI功能指针机制(类似于PCI定义),以指向xHC实现的新功能或可选功能。
1)Capability register指定只读限制、限制和主机控制器实现的能力。这些值用作主机控制器驱动程序的参数
2)The Runtime and Operational Registers指定主机控制器配置和运行时可修改状态,并被系统软件用于控制和监视主机控制器的运行状态。这些寄存器被划分为在运行时大量访问的寄存器和仅在初始化时或在运行时少量访问的函数,以更好地支持xHCI的虚拟化。
3)xHCI扩展功能指定了xHC实现的可选特性,并提供了在本规范发布后向实现添加新功能的能力。
4)门铃阵列(Doorbell Array)是多达256个门钟寄存器,支持多达255个USB设备或集线器。每个门钟寄存器为系统软件提供一种机制,如果xHC有插槽或端点相关的工作,则通知xHC。门铃寄存器中的DB目标字段用一个值标识“响”门铃的原因。门铃寄存器0被分配给主机控制器,用于命令环管理。

  • 注:这里所谓的插槽指的是device slot,以后会说到,可以理解为一个设备就是一个插槽。

xhci主机规范初探(1) --架构预览相关推荐

  1. xhci主机规范初探(2) --数据结构预览

    xHC预计将在虚拟内存环境中运行,其中一个连续的物理内存块的大小将受到系统的页面大小的限制.xHC用于管理设备和端点的数据结构旨在适应这种限制,通过将数据结构保持在4K字节(所支持的最小页面大小)下, ...

  2. App预览制作,看我就够了

    序: 概览 :         App 预览使用录屏的内容来展示您的 app 的特性,功能,以及用户界面.您可以为您的 app 支持的每种语言展示最多三个 App 预览,每段预览视频的时长可达 30 ...

  3. 可预览的文件服务器,文件服务器 预览

    文件服务器 预览 内容精选 换一换 FTP/SFTP连接适用于从线下文件服务器或ECS服务器上迁移文件到OBS或数据库.当前仅支持Linux操作系统的FTP 服务器.连接FTP或SFTP服务器时,他们 ...

  4. 微软提供支持Windows 10预览版和EdgeHTML 14的预配置虚拟主机

    如果你使用微软预配置的虚拟主机来测试最新的Windows 10版本,那么微软希望告诉你又有一些新版本发布了.根据微软Edge开发者推特账号更新的最新推文,包含最新EdgeHTML版本的Windows ...

  5. dbForge Schema Compare for MySQL入门教程:预览架构同步脚本和同步架构

    2019独角兽企业重金招聘Python工程师标准>>> [dbForge Schema Compare for MySQL下载] 在分析比较结果时,您可以选择任何对象并预览它的同步脚 ...

  6. IOS之 上传App预览和截屏规范

    App 预览规范 官方规范:https://help.apple.com/app-store-connect/?lang=zh-cn#/dev4e413fcb8 App 截屏规范 官方规范:https ...

  7. 智能媒体管理产品文档转换/预览功能介绍(1)---Cloud Native架构

    一.导语 办公文档是每个人日常频繁使用的工具,ppt.word.xls.wps.pdf等为我们工作和生活带来了很多的便利,本文介绍在云计算和智能手机时代,基于 智能媒体管理 的新型Cloud Nati ...

  8. 「史上最全的 TCG 规范解读」TCG 工作组规范预览

    可信计算组织(Ttrusted Computing Group,TCG)是一个非盈利的工业标准组织,它的宗旨是加强不同计算机平台上计算环境的安全性.TCG于2003年春成立,并采纳了由可信计算平台联盟 ...

  9. ios app 上传之预览、屏幕快照尺寸规范

    App 预览规范 (iOS.tvOS) 您可以提供 tH.264 和 ProRes 422(仅限 HQ)格式的 App 预览,并且需要具有如下规格: 视频规格 表头 H.264 格式 ProRes 4 ...

最新文章

  1. 盘点我跳过的科研天坑,进坑就是半年白干
  2. 快速撑握C#知识点系列之(struct)结构
  3. .netcore部署到IIS上出现HTTP Error 502.5 - Process Failure问题解决
  4. 如何制作一个通用的多系统安装U盘七(Windows相关配置)
  5. Android爬坑之旅:软键盘挡住输入框问题的终极解决方案
  6. html5 audio api 录音,如何使用HTML5 Web Audio API录制我的声音
  7. 搜狗用这个骚技术,把百度逼上了绝路...
  8. poj1423---求一个大数的位数方法,我猜网站上统计输入字符少于多少位的那个算法...
  9. Django(1.7 part1)
  10. 关于php的ifelse说法,PHP,否则elseif
  11. 群晖nas使用rsync备份
  12. JDK官方文档(包含所有版本)
  13. AD教程系列 | 0-认识Altium Designer:汉化和新建项目
  14. 贪心科技机器学习训练营(四)
  15. dvm 与jvm 区别
  16. alios下载_AliOS Studio
  17. 区块链技术在金融行业的应用与风险管理
  18. 【49.Auth2.0认证与授权过程-微博开放平台认证授权过程-百度开放平台认证授权过程-社交登录实现(微博授权)-分布式Session问题与解决方案-SpringSession整合-Redis】
  19. 数组的定义,一维数组,二维数组与变长数组
  20. Codeforces 545 C Woodcutters(贪心/DP)

热门文章

  1. Java毕设项目物流车辆规费管理系统的设计与实现(java+VUE+Mybatis+Maven+Mysql)
  2. SVN代码正确提交方法!
  3. 计算机日常故障DIY维修有哪些,有关计算机常见故障排除与日常维护
  4. STM32 经过TM1637驱动四位数码管
  5. Blender:Lowpoly人物模型
  6. matlab 调制 解调,基于Matlab调制与解调的实现
  7. NXP - LPC1769与LPC1768的区别
  8. LPC1788 emWin应用笔记
  9. Android终端启用adb功能
  10. 循环语句的经典例题(while)