几种USB控制器类型:OHCI,UHCI,EHCI,xHCI

http://smilejay.com/2012/10/usb_controller_xhci/

遇到过一些关于USB的东西(如下),一直没搞明白什么USB1.0/1.1/2.0/3.0之类的,当然我知道它们的各自传输速度都在提升,本文就做点简单的记录吧,尽量下载看到USB的东西和别人提及USB的术语时不要再迷茫了。
1. 曾经遇到一些Linux系统对USB3.0的支持不完善,从而导致在有USB3.0设备的PC上启动失败(kernel panic)。
2. 也曾在BIOS中设置为“开启EHCI,关闭XHCI”等来坚持使用USB2.0
3. 在QEMU代码中看到它支持的各种配置:“CONFIG_USB_OHCI=y”、“CONFIG_USB_UHCI=y”、“CONFIG_USB_EHCI=y”、“CONFIG_USB_XHCI=y”等。
4. 看到Kernel的config文件中的“CONFIG_USB_OHCI_HCD=m”、“CONFIG_USB_UHCI_HCD=m”、“CONFIG_USB_EHCI_HCD=m”、“CONFIG_USB_XHCI_HCD=m”等。

所以,这里就简单列一下各种xHCI(也包括真正的xHCI)的基本含义吧。
简单地讲,OHCI、UHCI都是USB1.1的接口标准,而EHCI是对应USB2.0的接口标准,最新的xHCI是USB3.0的接口标准。
1. OHCI(Open Host Controller Interface)是支持USB1.1的标准,但它不仅仅是针对USB,还支持其他的一些接口,比如它还支持Apple的火线(Firewire,IEEE 1394)接口。与UHCI相比,OHCI的硬件复杂,硬件做的事情更多,所以实现对应的软件驱动的任务,就相对较简单。主要用于非x86的USB,如扩展卡、嵌入式开发板的USB主控。
2. UHCI(Universal Host Controller Interface),是Intel主导的对USB1.0、1.1的接口标准,与OHCI不兼容。UHCI的软件驱动的任务重,需要做得比较复杂,但可以使用较便宜、较简单的硬件的USB控制器。Intel和VIA使用UHCI,而其余的硬件提供商使用OHCI。
3. EHCI(Enhanced Host Controller Interface),是Intel主导的USB2.0的接口标准。EHCI仅提供USB2.0的高速功能,而依靠UHCI或OHCI来提供对全速(full-speed)或低速(low-speed)设备的支持。
4. xHCI(eXtensible Host Controller Interface),是最新最火的USB3.0的接口标准,它在速度、节能、虚拟化等方面都比前面3中有了较大的提高。xHCI
支持所有种类速度的USB设备(USB 3.0 SuperSpeed, USB 2.0 Low-, Full-, and High-speed,
USB 1.1 Low- and Full-speed)。xHCI的目的是为了替换前面3中(UHCI/OHCI/EHCI)。

好吧,就这样。

参考资料:

http://en.wikipedia.org/wiki/Host_controller_interface_(USB,_Firewire)#USB

如下链接对USB相关的基础知识进行了较好的总结:

http://www.crifan.com/files/doc/docbook/usb_basic/release/webhelp/content/ch02_sw_hw.xml.html

时间: 2024-08-03 10:01:08

几种USB控制器类型:OHCI,UHCI,EHCI,xHCI的相关文章

对控制器类型“”的操作“”的当前请求

net是目前非常热门的一种程序编译语言,在.net培训中的众多知识点中,对控制器类型“”的操作“”的当前请求是非常重要的一个.下面就由达内的老师为大家介绍一下这方面的内容. 今天在MVC中发现提示以下错误: 对控制器类型“ManageController”的操作“CatalogEdit”的当前请求在下列操作方法之间不明确: 类型 MvcWebPhoto.Controllers.ManageController 的 System.Web.Mvc.ActionResult CatalogEdit()

[转帖]K8s 工程师必懂的 10 种 Ingress 控制器

K8s 工程师必懂的 10 种 Ingress 控制器 https://www.kubernetes.org.cn/5948.html 控制器有好多啊. 2019-10-18 23:07 中文社区 分类:Kubernetes教程/入门教程 阅读(736) 评论(0) 今年 2 月,社区曾推送了一篇文章:<在 K8s 中,如何选择合适的 Ingress 控制器>.但当时只介绍了两种解决方案.为了帮助读者对 Ingress Controler 建立更完整的认识,今天,社区对现下流行的十种方案做了具

HTML 4.01 规定了三种文档类型

HTML 4.01 规定了三种文档类型:Strict.Transitional 以及 Frameset. 严格的——该 DTD 包含所有 HTML 元素和属性,但不包括展示性的和弃用的元素(比如 font).不允许框架集(Framesets). <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 过渡的——该 DTD 包含所有

asp.net mvc 3.0 知识点整理 ----- (2).Controller中几种Action返回类型对比

通过学习,我们可以发现,在Controller中提供了很多不同的Action返回类型.那么具体他们是有什么作用呢?它们的用法和区别是什么呢?通过资料书上的介绍和网上资料的查询,这里就来给大家列举和大致的概括下. (1). ActionResult(base):最基本的Action类型,返回其他类型都可以写ActionResult. (2). ContentResult:返回ContentResult用户定义的内容类型. public ActionResult Content() { return

逗我玩吗?ViewBag.XXX 找不到编译动态表达式所需的一种或多种类型

现在接手的项目是用 .NET 4 + MVC4 做的. 我尝试着用 Unity 变更一下其中的一个功能的实现. 但是 Unity.MVC4 依赖于 Unity 3 以上的版本, Unity 3 又依赖于 .NET 4.5, Unity.MVC3 又只能用于 MVC3 的项目 . 按我的性格就是要把整个工程改为 .NET 4.5 的算球了, 但是有有同事说 .NET 4.5 是新东西,不知道稳定不稳定. 至于稳定不稳定, 我无从考证. 不用 .NET 4.5 , 那只好自己实现对 Controll

javascript中12种DOM节点类型概述

× 目录 [1]元素 [2]特性 [3]文本[4]CDATA[5]实体引用[6]实体名称[7]处理指令[8]注释[9]文档[10]文档类型[11]文档片段[12]DTD 前面的话 DOM是javascript操作网页的接口,全称为文档对象模型(Document Object Model).它的作用是将网页转为一个javascript对象,从而可以使用javascript对网页进行各种操作(比如增删内容).浏览器会根据DOM模型,将HTML文档解析成一系列的节点,再由这些节点组成一个树状结构.DO

找不到编译动态表达式所需的一种或多种类型

找不到编译动态表达式所需的一种或多种类型 2011-12-15 14:15:02| 分类: c#程序设计 | 标签: |举报 |字号大 中 小 订阅 问题描述:Office 打印时,引用了Microsoft.Office.Interop.Excel Excel.Application xlsApp = new Excel.Application(); xlsApp.Visible = true; Excel.Workbooks xlsWbs = xlsApp.Workbooks; Excel.W

找不到编译动态表达式的一种或多种类型。是否缺少对microsoft.CSharp.dll和System.core.dll的引用”

xlbook1.Worksheets[1]这块下面显示红色的波浪号,并有提示“找不到编译动态表达式的一种或多种类型.是否缺少对microsoft.CSharp.dll和System.core.dll的引用”. 解决办法是将引入的COM对象(miscrosoft excel 12.0 object library),属性里的嵌入互操作类型改为Fasle

深入理解DOM节点类型第一篇——12种DOM节点类型概述

前面的话 DOM是javascript操作网页的接口,全称为文档对象模型(Document Object Model).它的作用是将网页转为一个javascript对象,从而可以使用javascript对网页进行各种操作(比如增删内容).浏览器会根据DOM模型,将HTML文档解析成一系列的节点,再由这些节点组成一个树状结构.DOM的最小组成单位叫做节点(node),文档的树形结构(DOM树)由12种类型的节点组成.本文将主要说明DOM节点类型 总括 一般地,节点至少拥有nodeType.node