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

35
USB 输输输输 USB Host 输输输输输 输输输

description

USB 传输机制及 USB Host 的软件结构. 李卫华. 1、 USB 系统的总体结构. 1.1、设备驱动软件( USBDD). 支持某个特定设备或设备类的设备驱动,负责直接与对应的 usb 设备进行通信和读写控制. 1.2、 USB 驱动( USBD). 提供了对 USB 设备的抽象,负责上层软件与 usb 设备间的数据传输。检测设备的特性,建立与其通信的通道,以配置和控制相应的 USB 设备。另外把客户软件传过来的非 usb 格式的 IRP 进行重新组织,使之具有 usb 的特定格式。主要包括: 设备枚举与配置 - PowerPoint PPT Presentation

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

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 )