深入解析Linux EHCI主机控制器
4星 · 超过85%的资源 需积分: 35 13 浏览量
更新于2024-07-25
收藏 460KB PDF 举报
"Linux那些事儿之我是EHCI主机控制器.pdf - Linux学习文档,深入解析Linux中的EHCI主机控制器"
本文档是关于Linux操作系统中EHCI(Enhanced Host Controller Interface,增强型USB主机控制器接口)的深度解析,作者通过引子引入话题,旨在探讨Linux内核对USB 2.0高速设备的支持机制。文档主要分为几个部分,包括接口体系、驱动程序的匹配和探测过程,以及数据结构等关键知识点。
1. **接口体系**
EHCI是USB 2.0规范的一部分,设计用于高速(High-Speed)USB设备的控制。在USB 2.0标准中,定义了三种传输速率:低速(Low-Speed, LS)、全速(Full-Speed, FS)和高速(High-Speed, HS)。EHCI仅处理高速设备,对于全速和低速设备,则需要配合其他类型的主机控制器,如UHCI(Universal Host Controller Interface)或OHCI(Open Host Controller Interface)。
2. **套路 - pcimatch和probe**
在Linux内核中,设备驱动的加载通常涉及到`pcimatch`和`probe`两个步骤。`pcimatch`函数负责检查PCI设备ID,确保设备符合驱动程序的支持范围。`probe`函数则在匹配成功后执行,初始化设备并建立必要的数据结构。
3. **数据结构 of EHCI driver and device**
EHCI驱动程序与设备交互依赖于一系列内核数据结构,这些结构存储了设备的状态、队列头部(Queue Head, QH)和事务翻译单元(Transaction Translator, TT)等信息。QH用于管理USB事务,TT则处理HS设备与FS/LS设备之间的通信转换。
4. **2008年的这一场雪**
这可能是指文档创作的时间背景,同时,作者以诗歌形式表达了对同行的敬意,也表明了写作的动机和目的。
5. **EHCI与Companion HC**
当高速、全速或低速设备插入到根集线器(Root Hub)的端口时,EHCI和其同伴控制器(如UHCI)会协同工作。全速和低速设备由同伴控制器管理,而高速设备由EHCI直接处理。如果设备连接到USB 2.0 hub(非根集线器),EHCI会通过分裂事务和事务翻译来支持全速和低速设备。
6. **Routing机制**
插入设备时,路由是关键步骤。所有根集线器端口的设备连接首先需要经过路由判断,决定由哪个控制器来处理。EHCI会检测设备的速度,并根据需要与UHCI或其他控制器协作。
这篇文档详细介绍了Linux内核中EHCI如何处理USB 2.0高速设备,包括与全速和低速设备的协同工作方式,以及驱动程序的核心功能和数据结构。对于想要深入理解Linux USB子系统和驱动开发的人来说,这是宝贵的参考资料。
2018-06-29 上传
2017-10-23 上传
2011-12-15 上传
2009-05-31 上传
2010-09-02 上传
2011-04-13 上传
2019-06-27 上传
fhl2013
- 粉丝: 0
- 资源: 10
最新资源
- MATLAB实现小波阈值去噪:Visushrink硬软算法对比
- 易语言实现画板图像缩放功能教程
- 大模型推荐系统: 优化算法与模型压缩技术
- Stancy: 静态文件驱动的简单RESTful API与前端框架集成
- 掌握Java全文搜索:深入Apache Lucene开源系统
- 19计应19田超的Python7-1试题整理
- 易语言实现多线程网络时间同步源码解析
- 人工智能大模型学习与实践指南
- 掌握Markdown:从基础到高级技巧解析
- JS-PizzaStore: JS应用程序模拟披萨递送服务
- CAMV开源XML编辑器:编辑、验证、设计及架构工具集
- 医学免疫学情景化自动生成考题系统
- 易语言实现多语言界面编程教程
- MATLAB实现16种回归算法在数据挖掘中的应用
- ***内容构建指南:深入HTML与LaTeX
- Python实现维基百科“历史上的今天”数据抓取教程