EHCI教程:高端ColdFire USB主机数据结构解析
需积分: 23 94 浏览量
更新于2024-07-18
1
收藏 658KB PDF 举报
"这篇文档是关于EHCI(E Host Controller Interface)的教程,主要针对高端ColdFire家族的USB模块。文档AN3520详细介绍了如何简化USB主机的数据结构,包括队列首部(QH)、队列元素传输描述符(qTD)、周期表(调度)和异步表(调度)等核心概念,并提供了多个实际操作示例。"
本文档深入探讨了EHCI协议在高端ColdFire微控制器中的实现,主要关注如何有效地管理和操作USB主机的数据结构。以下是关键知识点的详细说明:
1. **队列首部(QH)**:
- **QH平行链接指针**:位于偏移0x00处,用于链接其他QH或标识QH的状态。
- **端点特性**:在偏移0x04处定义了端点的各种属性,如速度、方向、类型等。
- **端点性能**:在偏移0x08处,包含端点的传输速率和容量信息。
- **当前qTD指针**:在偏移0x0C处,指向正在执行或等待执行的qTD。
- **qTD覆盖区域**:从偏移0x10到0x2C,用于存储qTD的相关信息。
2. **队列元素传输描述符(qTD)**:
- **下一个qTD指针**:在偏移0x00处,用于链式连接qTDs,形成传输队列。
- **qTD令牌**:在偏移0x08处,包含状态信息、数据包计数、错误计数等。
- **qTD缓冲页指针**:在偏移0x0C处,指向传输数据的实际内存位置。
3. **周期表(调度)**:
- **帧列表链接指针**:用于规划和管理周期性传输。
- **调度遍历过程**:详细描述了如何遍历周期表并调度传输。
- **增加中断QH**:解释了如何在周期表中添加新的中断QH以处理周期性传输。
4. **异步表(调度)**:
- **异步表遍历过程**:阐述如何处理非周期性的控制和批量传输。
- **增加控制和批量QH**:说明如何在异步表中添加新QH以处理这些类型的传输。
5. **USB主机实例**:
- **控制队列首部**:详细展示了控制传输QH的构建,包括SETUP、IN和OUT包的qTDs。
- **中断队列首部**:讨论中断传输的QH配置,以及如何设置qTD来处理中断事件。
- **周期帧列表初始化**:解释如何初始化周期帧列表以进行周期性传输规划。
- **中断qTD**:涵盖中断传输的qTD结构,包括其令牌和缓冲区指针的设置。
这份教程对于理解和实现基于ColdFire平台的EHCI USB主机控制器的驱动开发极其宝贵,涵盖了从基本数据结构到具体操作的全面知识。通过详尽的实例,读者能够深入了解EHCI的工作原理及其在实际系统中的应用。
162 浏览量
点击了解资源详情
点击了解资源详情
263 浏览量
点击了解资源详情
453 浏览量
121 浏览量
147 浏览量
120 浏览量