您现在的位置是:主页 > USB百科 >
USB控制器及分类
发布时间:2022-12-30 03:57:28所属栏目:USB百科 已帮助人编辑作者:【USB接口百科】
USB是一直在变化的,从最开始的1.0发展到现在开始大规模使用的3.0,甚至到今天已经发布的USB4.0。所以USB的控制器也在不断的变化升级。所以由于历史的原因,导致USB的主机控制器,出现了多种不同的类型,即OHCI和UHCI,EHCI,和xHCI。不论是那种USB主机控制器,简称主控,都是符合对应的USB的规范的,都是实现了对应的USB规范中所规定的USB主控所要的那些事情的。只不过是不同的USB主控的类型,有着不同的特点。
OHCI,UHCI,EHCI,xHCI区别与联系USB主机控制器类型 | 对应的USB的协议和支持的速率 | 创立者 | 功能划分 | 常用于 |
---|---|---|---|---|
OHCI | USB 1.1=Low Speed和Full Speed | Compaq,Microsoft和National Semiconductor | 硬件功能 > 软件功能⇒硬件做的事情更多,所以实现对应的软件驱动的任务,就相对较简单 | 扩展卡,嵌入式开发板的USB主控 |
UHCI | USB 1.1=Low Speed和Full Speed | Intel | 软件功能 > 硬件功能⇒软件的任务重,可以使用较便宜的硬件的USB控制器 | PC端的主板上的USB主控 |
EHCI | USB 2.0=High Speed | Intel | 定义了USB 2.0主控中所要实现何种功能,以及如何实现 | 各种USB 2.0主控 |
xHCI | USB 3.0=Super Speed | Intel | 定义了USB 3.0主控中所要实现何种功能,以及如何实现 | 各种USB 3.0主控 |
两者之间的相同点是:
不论是OHCI还是UHCI都是对应于USB 1.1的标准的,都是完全符合USB协议标准的。区别在于:
虽然都是实现了USB1.1协议规范,但是在功能划分上,OHCI更多地把要做的事情,用硬件来实现,因此,实现OHCI的USB控制器的软件驱动的开发工作,相对要容易些,软件要做的事情,相对较少。 对应地,OHCI更多地应用在扩展卡,尤其是嵌入式领域中,常见的很多开发板中的USB的控制器,很多都是OHCI的。OCHI是支持USB1.1的标准,但它不仅仅是针对USB,还支持其他的一些接口,比如它还支持Apple的火线(Firewire,IEEE 1394)接口。与UHCI相比,OHCI的硬件复杂,硬件做的事情更多,所以实现对应的软件驱动的任务,就相对较简单。主要用于非x86的USB,如扩展卡、嵌入式开发板的USB主控。而UHCI把更多的功能,留给了软件,相对来说,软件做的事情,即负担要重些。但是实现对应的UHCI的硬件的USB控制器,价格上,就相对便宜些。 对应地,UHCI更多地应用在PC机中的主板上的USB控制器。Intel主导的对USB1.0、1.1的接口标准,与OHCI不兼容,Intel和VIA使用UHCI,而其余的硬件提供商使用OHCI。 EHCI - USB2.0 EHCI,Enhanced Host Controller Interface。EHCI定义了USB 2.0的主机控制器的规范,定义了USB 2.0的主控,需要包括哪些硬件实现,需要实现哪些功能,其也对应着对应的系统软件,所面对的是哪些接口。
EHCI对USB主控的定义,详细到了寄存器的级别了,即定义了USB主控都要实现哪些对应的功能和对应的寄存器有哪些,分别是何种功能等。然后对应的软件驱动人员,去写USB主控的驱动的时候,也就清楚有哪些可以利用的系统资源,如何去使用这些资源,读取,设置对应的寄存器,实现对应的功能了。
EHCI仅提供USB2.0的高速功能,而依靠UHCI或OHCI来提供对全速(full-speed)或低速(low-speed)设备的支持。
对应的EHCI规范,可以去Intel的官网找到:EHCI Specification
XHCI - USB3.0xHCI 即Extensible Host Controller Interface,同EHCI是针对USB 2.0类似,xHCI是针对的USB 3.0规范。也是定义了USB 3.0主控需要如何实现,需要包含哪些功能,也是提供了寄存器级别的定义。
XHCI是最新最火的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)。
对应的xHCI规范,可以去Intel的官网找到:Extensible Host Controller Interface (xHCI) Specification for USB 3.0
为何Intel设计的UHCI把更多的任务都留给软件实现?
作为UHCI的创立者Intel,创立了UHCI,把更多的USB需要做的事情,留给了软件,这样就可以实现出相对便宜的USB的主控制器了,可以用于PC端的CPU所对应的主板上,便宜的USB主控,当然相对市场来说,更容易多卖出去一点,有利于市场推广。
PC主板卖出的多了, 自然对应的Intel的CPU,也会多卖点,Intel自然可以赚更多的钱了。
而对应的Compaq,Microsoft和National Semiconductor所创立的OHCI,由于把更多的USB要做的事情,都用硬件实现了,这样对应的软件驱动所要做的事情,就少了,这样就有利于实现对应的OHCI的USB主控的驱动了,这点对于嵌入式系统来说,尤其重要,因为本身嵌入式系统就是资源有限,所以要尽量少的利用其他资源,比如CPU资源,去实现特点的功能,所以,倾向于采用对软件资源要求少的OHCI,而不是UHCI,否则用了UHCI的USB主控的话,需要实现对应的驱动,软件要做的事情太多,不利于在嵌入式系统这有限的资源环境下实现。
以上就是USB接口百科为您提供USB控制器及分类的解读,本文章链接: http://www.usb-hub.cn/usbbk/42104.html 欢迎分享转载,更多婚礼相关资讯请前往USB百科
相关文章
USB接口百科推荐
USB通信设备类CDC简介
USB与其它总线相比的优点是什么
USB设备和USB集线器HUB的数据传输
USB规范分类大全和USB协议关系树
USB2.0一定支持高速模式吗?
Windows下USB堆栈如何枚举USB设备
USB3.0和USB2.0有什么区别
USB的连接模型
USB设备类bDeviceClass、bDeviceSubClass、bDeviceProtocol
USB的VendorID、ProductID和BcdDevice有什么作用
DisplayLink简介 USB显示技术
USB3.0传输速度是多少?
USB设备的枚举过程分析
USB 配对/伴随端口(Companion Port)
同样的soc板子用的同一个USB驱动设备名称,厂商和产品ID都一样,使用什么方法