第1节 引言
ColdFire系列的一些高端产品(如MCF532x、MCF5253、MCF5445x)包含兼容ECHI的USB主机控制器或USB双模式(移动USB,OTG USB)控制器。双模式(dual-role)模块可以可以将设备设置为USB主机、USB设备或移动USB设备模式。在主机模式下,所有的USB模块都与EHCI相兼容。EHCI规范定义了控制USB数据运转的寄存器集和数据结构。
EHCI规范是为PC而设计的,因此允许主机在一个端口很好的支持多种不同类型的设备。对嵌入式系统来说,需要一种比较简单的USB实现方法。本文的目的就是论述一种EHCI数据结构的简化版本,该简化版本中USB主机驱动支持一些需求的USB设备而不是整个EHCI协议栈。本文阐明了不同的数据怎样在一起使用并提供了基本实例。
本文的目的是指导开发一个简单的驱动,该驱动允许和多种不同类型设备中的一种设备相通信。例如:如果你要支持鼠标,那么你可以创建一个只能驱动鼠标的鼠标驱动。如果插入不同的USB设备,就会返回一个错误。假设数据传输的大小不大于4K。本文要求读者对基本的USB规范比较熟悉。
本文所讨论的数据结构不支持USB或EHCI的所有特性。为了简化EHCI数据结构,同步传输不讨论。本文还假设在同一时刻一个端口只有一个设备。SPLIT事务只有在与通过USB2.0集线器的相连的全速或低速设备通信时才会被使用,因此不在讨论之列。不支持同步和SPLIT事务使得完全取消一些EHCI数据结构,剩余数据结构的许多字段也没有被使用。
EHCI规范是为PC而设计的,因此允许主机在一个端口很好的支持多种不同类型的设备。对嵌入式系统来说,需要一种比较简单的USB实现方法。本文的目的就是论述一种EHCI数据结构的简化版本,该简化版本中USB主机驱动支持一些需求的USB设备而不是整个EHCI协议栈。本文阐明了不同的数据怎样在一起使用并提供了基本实例。
本文的目的是指导开发一个简单的驱动,该驱动允许和多种不同类型设备中的一种设备相通信。例如:如果你要支持鼠标,那么你可以创建一个只能驱动鼠标的鼠标驱动。如果插入不同的USB设备,就会返回一个错误。假设数据传输的大小不大于4K。本文要求读者对基本的USB规范比较熟悉。
本文所讨论的数据结构不支持USB或EHCI的所有特性。为了简化EHCI数据结构,同步传输不讨论。本文还假设在同一时刻一个端口只有一个设备。SPLIT事务只有在与通过USB2.0集线器的相连的全速或低速设备通信时才会被使用,因此不在讨论之列。不支持同步和SPLIT事务使得完全取消一些EHCI数据结构,剩余数据结构的许多字段也没有被使用。


