EHCI教程:高端ColdFire USB主机数据结构解析

需积分: 23 26 下载量 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的工作原理及其在实际系统中的应用。