EHCI简介
EHCI(增强型主机控制器接口)
EHCI(Enhanced Host Controller Interface)增强型主机控制器接口规范描述了一个通用串行总线(USB)2.版的主机控制器的寄存器级接口。该规范包括系统软件和主机控制器硬件之间的硬件/软件接口的描述。本规范的目的是为硬件组件设计,系统集成商和设备驱动程序(软件)开发。
增强主机控制器接口规范的实施,需要从英特尔授权。增强型主机控制器USB接口规范的采用已经签署,以增强主机控制器接口规范USB采用协议的被许可使用和实施本规范。这采纳者协议提供了一个互惠的方式,免版税许可从英特尔和其他采用者和他们的产品,增强型主机控制器与USB接口规范标准提供一定的知识产权的采用。
EHCI规范1.修订牌照允许实施两个分立和集成兼容EHCI主控制器的。被授权的规范修订版1.的水平(.95和.96)之前的所有版本兼容的,离散的EHCI主控制器只允许实施。
该规范的最新版本是1.版本。这次修订是从.96社论更新。1.版本可以从下面的链接下载。完整的修订版1.下载包括两个文件:规范和修订.96和1.之间的变化的总结。目前所有的发展应该是瞄准了这一规范的修订。
EHCI1.1增编
定义基于EHCI规范,最显着的USB主机控制器实现的几种可选的能源效率扩展的EHCI1.1增编的目的是:
·连接电源管理- 软件发现并使用USB 2.连接电源管理(LPM),下一代主机控制器和设备提供支持的能力。
·每端口更改事件- 问题解决了系统软件目前需要读取和解析所有启用后,每个端口变化事件的根端口(中断),以简化软件的处理山泥倾泻转换端口状态寄存器(PORTSC)
·较短的周期帧列表- 系统软件能够传递和使用更短的周期帧列表(32帧),以更好地促进硬件预取
·硬件预取- 允许主机控制器硬件安全预取从异步和定期的时间表超越了在以前的EHCI实现定义,以提高系统内存的访问行为信息。
EHCI详细介绍
要理解EHCI及其同类是什么,首先要知道每块支持插入 USB 设备的主板或 PCI 卡都需要有 USB 主控制器芯片组。这个特别的芯片组与插入系统的 USB 设备进行相互操作,并负责处理允许 USB 设备与系统其它部分通信所必需的所有低层次细节。
Linux USB 驱动程序有三种不同的 USB 主控制器选项是因为在主板和 PCI 卡上有三种不同类型的 USB 芯片。EHCI驱动程序设计成为实现新的高速 USB 2. 协议的芯片提供支持。OHCI驱动程序用来为非 PC 系统上的(以及带有 SiS 和 ALi 芯片组的 PC 主板上的)USB 芯片提供支持。UHCI驱动程序用来为大多数其它 PC 主板(包括 Intel 和 Via)上的 USB 实现提供支持。只需选择与希望启用的 USB 支持的类型对应的?HCI驱动程序即可。如有疑惑,为保险起见,可以启用EHCI、UHCI (两者中任选一种,它们之间没有明显的区别)和OHCI。(赵明注:根据文档,EHCI已经包含了UHCI和OHCI,但目前就我个人的测试,单独加EHCI是不行的,通常我的做法是根据主板类型加载UHCI或OHCI后,再加载EHCI这样才可以支持USB2.设备)。 (ehci 只支持高速(hs)模式,uhci/ohci 都只支持全速或低速(fs/ls)设备,所以echi必选,uhci ohci一个就可以了,这样高速、全速、低速设备才会都能枚举到)
启用了USB support和适当的?HCIUSB 主控制器驱动程序后,使 USB 启动并运行只需再进行几个步骤。应该启用Preliminary USB device filesystem,然后确保启用所有特定于将与 Linux 一起使用的实际 USB 外围设备的驱动程序。例如,为了启用对 USB 游戏控制器的支持,我启用了USB Human Interface Device (full HID) support。我还启用了主Input core support 节下的Input core support和Joystick support。
了解EHCI之前,需首先了解HCI (Host Controller Interface) . 即主机控制接口。
HCI 是寄存器层级的界面接口,它允许一个主控制器(Host Controller 如 主板南桥southbridge of Motherboard)来实现与外设如(USB、火线以及蓝牙)之间的通讯。
当外设与PC相连接后,系统先进行初始化,HCI 开始线程(threads)读写,建立与外设的连接。接下来,HCI会重置然后读外设的缓存大小,建立与外设的通讯。
EHCI (Enhanced Host Controller Interface)是HCI增强的(Enhanced)版本。