Download - USB 传输机制及 USB Host 的软件结构

Transcript
Page 1: USB  传输机制及 USB Host 的软件结构

USB 传输机制及USB Host 的软件结构

李卫华

Page 2: USB  传输机制及 USB Host 的软件结构

1 、 USB 系统的总体结构

Page 3: USB  传输机制及 USB Host 的软件结构

1.1 、设备驱动软件(USBDD)

支持某个特定设备或设备类的设备驱动,负责直接与对应的 usb 设备进行通信和读写控制

Page 4: USB  传输机制及 USB Host 的软件结构

1.2 、 USB 驱动 (USBD) 提供了对 USB 设备的抽象,负责上层软件

与 usb 设备间的数据传输。检测设备的特性,建立与其通信的通道,以配置和控制相应的USB 设备。另外把客户软件传过来的非 usb格式的 IRP 进行重新组织,使之具有 usb 的特定格式。主要包括:

设备枚举与配置 同步传输和异步传输 电源管理 设备和总线管理

Page 5: USB  传输机制及 USB Host 的软件结构

1.3 、主机控制器驱动 (HCD)

是 USB 系统软件的最底层,隐藏了 USB 主控器的硬件实现。负责把 USBD 建立的事务处理 (IRP) 放到物理总线上。主要包括: 提供了对 usb 主控制器硬件的抽象 提供了对 usb 主控制器与 usb 设备间数据传输的抽象 提供了对 usb 主控器资源分配的抽象

Page 6: USB  传输机制及 USB Host 的软件结构

2 、 USB 的传输机制 客户启动传输 传输类型 总线带宽分配 控制传输 块传输 数据触发同步与重试

Page 7: USB  传输机制及 USB Host 的软件结构

2.1 、客户启动传输端点 (Endpoint)管道 (Pipe)请求 (IRP)事务 (Transaction)包 (Packet)帧 (Frame)

Page 8: USB  传输机制及 USB Host 的软件结构

2.1.1客户缓冲区和设备端点之间的通道主机

客户软件缓冲区

通道

USB逻辑设备 端点

通信流

Page 9: USB  传输机制及 USB Host 的软件结构

2.1.2 客户请求转变为 USB 事务处理

IRP1

事务1-0

事务1-1

事务1-2

IRP2

事务2-0

事务2-1

事务2-2

帧 1

令 牌 , 数 据 ,握手( 1-0)令牌,数据,握手 ( 2-0)

帧 2

令牌,数据,握手 ( 2-1)令牌,数据,握手 ( 1-1)

Page 10: USB  传输机制及 USB Host 的软件结构

2.2 、传输类型 控制传输 块传输 中断传输 同步传输

Page 11: USB  传输机制及 USB Host 的软件结构

2.3 、总线带宽分配

Page 12: USB  传输机制及 USB Host 的软件结构

2.4 、控制传输

Page 13: USB  传输机制及 USB Host 的软件结构

2.4.1 、控制传输的流程

Page 14: USB  传输机制及 USB Host 的软件结构

2.4.2 、控制传输的读写过程

Page 15: USB  传输机制及 USB Host 的软件结构

2.5 、块传输

Page 16: USB  传输机制及 USB Host 的软件结构

2.5.1 、块操作流程

Page 17: USB  传输机制及 USB Host 的软件结构

2.5.2 、块操作读、写过程

Page 18: USB  传输机制及 USB Host 的软件结构

2.6 、数据触发同步与重试 DATA0

DATA1

数据触发同步位

Page 19: USB  传输机制及 USB Host 的软件结构

2.6.1 、正确传输

Page 20: USB  传输机制及 USB Host 的软件结构

2.6.2 、数据接收错

Page 21: USB  传输机制及 USB Host 的软件结构

2.6.3 、 ACK 丢失

Page 22: USB  传输机制及 USB Host 的软件结构

3 、 USB 事务处理事务处理格式四种类型的包及其格式事务处理

Page 23: USB  传输机制及 USB Host 的软件结构

3.1 、事务处理格式

Page 24: USB  传输机制及 USB Host 的软件结构

3.2 、包格式令牌包帧开始包数据包握手包

Page 25: USB  传输机制及 USB Host 的软件结构

3.2.1 、令牌包

Page 26: USB  传输机制及 USB Host 的软件结构

3.2.2 、数据包事务处理类型 数据包方向IN 事务处理 来自 USB 设备OUT 事务处理 传向 USB 设备SETUP 事务处理 传向 USB 设备

Page 27: USB  传输机制及 USB Host 的软件结构

3.2.3 、握手包

Page 28: USB  传输机制及 USB Host 的软件结构

3.3 、事务处理IN 事务处理OUT 事务处理建立事务处理 / 控制传输

Page 29: USB  传输机制及 USB Host 的软件结构

3.3.1 、 IN 事务处理 数据被无错误地接收 ( 主机发 ACK)数据接收的时候有错误 ( 主机不发 ACK)目标设备暂时不能返回数据( NAK )错误状态被清除之前,目标设备不能返回数据(STALL)

Page 30: USB  传输机制及 USB Host 的软件结构

3.3.2 、 OUT 事务处理数据被无错误地发送(设备发 ACK )数据发送出错(设备不发 ACK )目标设备暂时不能接收数据( NAK )错误状态被清除之前,目标设备不能接收数据( STALL )

Page 31: USB  传输机制及 USB Host 的软件结构

3.3.3 、建立事务处理 / 控制传输 两阶段控制传输有 IN 数据阶段的三阶段控制传输有 OUT 数据阶段的三阶段控制传输

Page 32: USB  传输机制及 USB Host 的软件结构

4 、 USB Host 的软件实现

USB Host 软件架构USB 驱动程序 (USBD)USB 主机控制器驱动程序(HCD)

Page 33: USB  传输机制及 USB Host 的软件结构

4.1 、 USB Host 软件架构

Page 34: USB  传输机制及 USB Host 的软件结构

4.2 、 USB 驱动程序( USBD )

配置管理总线管理数据传输管理提供客户服务程序

Page 35: USB  传输机制及 USB Host 的软件结构

4.3 、 USB 主机控制器驱动程序增强主控制器接口( EHCI )

开放主控制器接口( OHCI )