USB 2.0 与 OTG 规范及开发指南
目录
第 1 章 术语和缩略词 ......................................................................................................................... 6
第 2 章 绪论 ......................................................................................................................................... 9
2.1 起因 ......................................................................................................................................... 9
2.2 USB 规范的目标 .................................................................................................................... 9
2.3 适用对象 ................................................................................................................................. 9
2.4 本书结构 ................................................................................................................................. 9
第 3 章 背景知识 ............................................................................................................................... 10
3.1 USB 的设计目标 .................................................................................................................. 10
3.2 使用的分类 ........................................................................................................................... 10
3.3 特色 ....................................................................................................................................... 10
第 4 章 体系结构概述 ....................................................................................................................... 12
4.1 USB 系统的描述 .................................................................................................................. 12
4.1.1 总线布局技术 ............................................................................................................ 12
4.2 物理接口 ............................................................................................................................... 13
4.2.1 电气特性 ....................................................................................................................... 13
4.2.2 机械特性 .................................................................................................................... 13
4.3 电源 ....................................................................................................................................... 13
4.3.1 电源分配 .................................................................................................................... 13
4.3.2 电源管理 .................................................................................................................... 14
4.4 总线协议 ............................................................................................................................... 14
4.5 健壮性 ................................................................................................................................... 14
4.5.1 错误检测 .................................................................................................................... 14
4.5.2 错误处理 .................................................................................................................... 14
4.6 系统设置 ............................................................................................................................... 15
4.6.1 USB 设备的安装 ....................................................................................................... 15
4.6.2 USB 设备的拆卸 ....................................................................................................... 15
4.6.3 总线标号 .................................................................................................................... 15
4.7 数据流种类 ........................................................................................................................... 15
4.7.1 控制数据传送 ............................................................................................................ 15
4.7.2 批量数据传送 ............................................................................................................ 15
4.7.3 中断数据传输 ............................................................................................................ 16
4.7.4 同步传输 .................................................................................................................... 16
4.7.5 指定 USB 带宽 .......................................................................................................... 16
4.8 USB 设备 .............................................................................................................................. 16
4.8.1 设备特性 .................................................................................................................... 16
4.8.2 设备描述 .................................................................................................................... 17
4.9 USB 主机:硬件和软件 ...................................................................................................... 18
4.10 体系结构的扩充 ................................................................................................................. 18
第五章 USB 数据流模型 ...................................................................................................................... 19
5.1 实现者的视图 ......................................................................................................................... 19
5.2 总线拓朴 ................................................................................................................................. 20
5.2.1 USB 主机 ...................................................................................................................... 20
5.2.2 USB 设备 ...................................................................................................................... 21
5.2.3 总线的物理拓朴结构 .................................................................................................. 21
5.2.4 总线逻辑拓朴结构 ...................................................................................................... 22
5.2.5 客户软件层与应用层的关系 ...................................................................................... 22
5.3 USB 通信流 ............................................................................................................................. 22
5.3.1 设备端点 ...................................................................................................................... 24
5.3.2 通道 .............................................................................................................................. 25
5.4 传送类型 ................................................................................................................................. 26
USB 2.0 与 OTG 规范及开发指南
5.5 控制传送 ................................................................................................................................. 27
5.5.1 控制传送类型的数据格式 .......................................................................................... 27
5.5.2 控制传送的方向 .......................................................................................................... 27
5.5.3 控制传送包的大小的限制 .......................................................................................... 27
5.5.4 控制传送的总线访问的限制 ...................................................................................... 28
5.5.5 控制传送的数据顺序 .................................................................................................. 29
5.6 同步传送 ................................................................................................................................. 29
5.6.1 同步传送的数据格式 .................................................................................................. 30
5.6.2 同步传送的方向 .......................................................................................................... 30
5.6.3 同步传送中包的大小的限制 ...................................................................................... 30
5.6.4 同步传送的总线方向限制 .......................................................................................... 30
5.6.5 同步传送的数据顺序 .................................................................................................. 31
5.7 中断传送 ................................................................................................................................. 31
5.7.1 中断传送的数据格式 .................................................................................................. 31
5.7.2 中断传送的方向 .......................................................................................................... 31
5.7.3 中断传送对包的长度的限制 ...................................................................................... 31
5.7.4 中断传送对总线访问的限制 ...................................................................................... 32
5.7.5 中断传送的数据顺序 .................................................................................................. 33
5.8 批传送 ..................................................................................................................................... 33
5.8.1 批传送的数据格式 ...................................................................................................... 33
5.8.2 批传送的方向 .............................................................................................................. 33
5.8.3 批传送对包长度的限制 .............................................................................................. 33
5.8.4 批传送对总线访问的限制 .......................................................................................... 33
5.8.5 批传送的数据顺序 ...................................................................................................... 34
5.9 传送的总线访问 ..................................................................................................................... 34
5.9.1 传送管理 ...................................................................................................................... 35
5.9.2 事务的跟踪 .................................................................................................................. 36
5.9.3 计算总线事务的时间 .................................................................................................. 38
5.9.4 应用层及软件对缓冲区大小的计算 .......................................................................... 39
5.9.5 总线带宽归还 .............................................................................................................. 39
5.10 关于同步传送的一些特别考虑 ........................................................................................... 39
5.10.1 典型的非 USB 同步应用 .......................................................................................... 40
5.10.2 USB 时钟模型 ............................................................................................................ 41
5.10.3 时钟同步 .................................................................................................................... 43
5.10.4 同步设备 .................................................................................................................... 43
5.10.5 数据预缓存 ................................................................................................................ 48
5.10.6 SOF 跟踪 ..................................................................................................................... 49
5.10.7 差错处理 .................................................................................................................... 49
5.10.8 为匹配速率而做的缓冲 ............................................................................................ 50
第七章 USB 的电气特性 ..................................................................................................................... 52
7.1 USB 驱动器的特性及其使用 ................................................................................................. 52
7.1.1 高速驱动器特性 ........................................................................................................... 52
7.1.2 低速驱动器特性 ........................................................................................................... 52
7.1.3 接收器特性 ................................................................................................................... 54
7.1.4 输入特性 ....................................................................................................................... 54
7.2 信号的发送标准 ...................................................................................................................... 54
7.2.1 连结与中断信号的发送 .............................................................................................. 55
7.3 数据的编码与解码 .................................................................................................................. 57
7.4 数据信号的发送速率 ............................................................................................................. 59
7.5 数据源的抖动 ......................................................................................................................... 59
7.6 接收端数据的抖动 ................................................................................................................. 59
7.7 电缆的延迟 .............................................................................................................................. 59
7.8 电缆的信号衰减 ..................................................................................................................... 59
USB 2.0 与 OTG 规范及开发指南
7.9 电压分布 ................................................................................................................................. 60
第八章 协议层 ...................................................................................................................................... 63
8.1 位定序 ..................................................................................................................................... 63
8.2 同步字段 .................................................................................................................................. 63
8.3 包字段格式 .............................................................................................................................. 63
8.3.1 包标识符字段 ............................................................................................................... 63
8.3.2 地址字段 ....................................................................................................................... 64
8.3.3 帧号字段 ....................................................................................................................... 65
8.3.4 数据字段 ....................................................................................................................... 65
8.3.5 循环冗余校验 ............................................................................................................... 65
8.4 包格式 ...................................................................................................................................... 66
8.4.1 标记包 ........................................................................................................................... 66
8.4.2 帧开始(SOF,Start-of-Frame)包 .............................................................................. 66
8.4.3 数据包 ........................................................................................................................... 66
8.4.4 握手包 ........................................................................................................................... 67
8.4.5 握手回答(Handshake Response) ............................................................................. 67
8.5 事务格式 .................................................................................................................................. 68
8.5.1 批处理事务 ................................................................................................................... 68
8.5.2 控制传送 ....................................................................................................................... 70
8.5.3 中断事务 ....................................................................................................................... 72
8.5.4 同步事务 ....................................................................................................................... 72
8.6 数据切换同步和重试 .............................................................................................................. 73
8.6.1 通过建立标记初始化 .................................................................................................. 73
8.6.2 成功的数据事务 ........................................................................................................... 73
8.6.3 损坏,或者不被接受数据 ........................................................................................... 74
8.6.4 损坏的 ACK 握手 ......................................................................................................... 74
8.6.5 低速事务 ....................................................................................................................... 75
8.7 错误检测和恢复 ...................................................................................................................... 76
8.7.1 包错误种类 ................................................................................................................... 76
8.7.2 总线周转(Turn-around)时间 ................................................................................... 76
8.7.3 错误的 EOP................................................................................................................... 77
8.7.4 超时干扰(Babble)和活动性丧失(Loss of Activity)的恢复 .............................. 77
第九章 USB 设备架构 ....................................................................................................................... 78
9.1 USB 设备状态 ...................................................................................................................... 78
9.1.1 外置的设备状态 ........................................................................................................ 78
9.1.2 Bus Enumeration 总线标号 ....................................................................................... 80
9.2 通用 USB 设备操作(Generic USB Device Operations) ....................................................... 81
9.2.1 动态插接与拔开 ........................................................................................................ 81
9.2.2 地址分配 .................................................................................................................... 81
9.2.3 配置 ............................................................................................................................ 81
9.2.4 数据传送 .................................................................................................................... 82
9.2.5 电源管理 .................................................................................................................... 82
9.2.6 请求处理 .................................................................................................................... 82
9.2.7 请求错误 .................................................................................................................... 83
9.3 USB 设备请求 ...................................................................................................................... 83
9.3.1 bmRequestType 域 ..................................................................................................... 84
9.3.2 bRequest 域 ................................................................................................................ 84
9.3.3 wValue 域 ................................................................................................................... 84
9.3.4 wIndex 域 ................................................................................................................... 84
9.3.5 wLength 域 ................................................................................................................. 84
9.4 标准设惫请求 ....................................................................................................................... 84
9.4.1 清除特性(ClearFeature()) .......................................................................................... 86
9.4.2 取得配置(GetConfiguration()) ................................................................................... 86
USB 2.0 与 OTG 规范及开发指南
9.4.3 取得描述符 ................................................................................................................ 86
9.4.4 取得接口设置(GetInterface()) ................................................................................... 86
9.4.5 取得状态(GetStatus ( )) .......................................................................................... 87
9.4.6 设置地址(SetAddress ( )) ........................................................................................ 88
9.4.7 设置配置值(SetConfiguration( )) ........................................................................... 88
9.4.8 设置描述表(SetDescriptor ( )) ................................................................................ 88
9.4.9 设置特性(SetFeature ( )) ......................................................................................... 88
9.4.10 设置接口(SetInterface ( )) ..................................................................................... 89
9.4.11 同步帧(SynchFrame ( )) ........................................................................................ 89
9.5 描述表 ................................................................................................................................... 89
9.6 标准描述表的定义 ............................................................................................................... 89
9.6.1 设备 ............................................................................................................................ 90
9.6.2 配置 ............................................................................................................................ 91
9.6.3 接口 ............................................................................................................................ 92
9.6.4 节点 ............................................................................................................................ 93
9.6.5 字串 ............................................................................................................................ 94
9.7 设备类定义 ........................................................................................................................... 95
9.7.1 描述表 ........................................................................................................................ 95
9.7.2 接口与结点的使用 .................................................................................................... 95
9.7.3 请求 ............................................................................................................................ 95
第十章 USB 主机:硬件与软件 ....................................................................................................... 96
10.1 USB 主机概况 .................................................................................................................... 96
10.1.1 概论 .......................................................................................................................... 96
10.1.2 控制机构 .................................................................................................................... 98
10.1.3 数据流 ...................................................................................................................... 98
10.1.4 收集状态及活动统计数据 ...................................................................................... 98
10.1.5 电气接口因素 .......................................................................................................... 98
10.2 主机控制器功能 ................................................................................................................. 99
10.2.1 状态处理 .................................................................................................................. 99
10.2.2 串行化与反串行化 .................................................................................................. 99
10.2.3 帧产生 ...................................................................................................................... 99
10.2.4 数据处理 ................................................................................................................ 100
10.2.5 协议引擎 ................................................................................................................ 100
10.2.6 传输差错控制 ........................................................................................................ 100
10.2.7 远程唤醒 ................................................................................................................ 100
10.2.8 根集线器 ................................................................................................................ 100
10.2.9 主机系统接口 ........................................................................................................ 101
10.3 软件功能概论 ................................................................................................................... 101
10.3.1 设备配置 ................................................................................................................ 101
10.3.2 资源管理 ................................................................................................................ 102
10.3.3 数据传输 ................................................................................................................ 103
10.3.4 普通数据定义(Common Data Definition) ............................................................. 103
10.4 主机控制器驱动器 ........................................................................................................... 103
10.5 USBD ................................................................................................................................ 104
10.5.1 USB 概况 ............................................................................................................... 104
10.5.2 USBD 命令工具功能............................................................................................. 105
10.5.3 USBD 通道设施 .................................................................................................... 107
10.5.4 通过 USBD 设施管理 USB ................................................................................... 108
10.5.5 将操作系统起动前 USB 的控制交给操作系统 ................................................... 109
10.6 操作系统环境指南 ........................................................................................................... 110
第十一章 集线器规范 ........................................................................................................................ 111
11.1 概述 ..................................................................................................................................... 111
11.2 集线器的帧/微型帧定时器 ................................................................................................ 111
USB 2.0 与 OTG 规范及开发指南
11.3 内部接口 ............................................................................................................................. 112
11.4 下行接口 ............................................................................................................................. 113
11.5 上行端口 ............................................................................................................................. 114
11.6 转发中继器 ......................................................................................................................... 116
11.7 总线状态的评估 ................................................................................................................. 117
11.8 挂起和恢复 ......................................................................................................................... 118
11.9 集线器的复位行为 ............................................................................................................. 118
11.10 集线器端口的电源控制 ................................................................................................... 118
11.10 端口的组成 ....................................................................................................................... 118
11.10 端口变化信息的处理 ....................................................................................................... 118
USB 2.0 与 OTG 规范及开发指南
第1章 术语和缩略词
ACK:确认信号
Active Device:正在使用的设备
Asynchronous Data:异步数据
Asynchronous RA:异步自适应速率
Asynchronous SRC: 异步抽样转换率
Audio Device:音频设备
AWG#(American Wire Gauge):美国电线标准
Babble:帧传输中的总线动作
Bandwidth:带宽
Big Endian:
Bit:比特
Bit Stuffing:数据填充,以使 PLL 可以提取时钟信号
b/s:每秒多少比特
B/s:每秒多少字节
Buffer:缓冲区
Bulk Transfer:批量传送
Bus Enumeration:总线标号
Byte: 字节
Capabilities:能力
Characteristics:特征
Client:客户
Configuring Software:配置软件
Control Endpoint:控制端口
Control Pipe:控制通道
Control Transfer:控制传送
CTI:计算机电信组织
Cyclic Redundancy Check(CRC):循环冗余校验
Default Address:缺省地址
Default Pipe:缺省通道
Device:设备、器件
Device Address:设备地址
Device Endpoint:设备端口
Device Resource:设备资源
Device Software:设备软件
Downstream:下行
Driver:驱动
DWORD:双字
Dynamic Insertion and Removal:动态插入与拆除
Electrically Erasable Programmable Read Only Memory EEPROM:电擦写可编程只读存
储器
End User:终端用户
Endpoint:端口
Endpoint Address:端口地址
Endpoint Direction:端口指向
Endpoint Number:端口号
EOF:帧结束
EOP:包结束
External Port:外设端口
USB 2.0 与 OTG 规范及开发指南
False EOP:错误的包结束标志
Frame:帧
Frame Pattern:帧结构
Full-duplex:全双工
Function:功能、功能部件
Handshake Packet:握手包
Host:主机
Host Controller:主机控制器
Host Controller Driver(HCD):主机控制驱动
Host Resourses:主机资源
Hub:集线器
Hub Tier:Hub 层
Interrupt Request(IRQ):中断请求
Interrupt Transfer:中断传送
I/O Request Packet(IRP): 输出/输入请求包
Isochronous Data:同步数据
Isochronous Device:同步设备
Isochronous Sink Endpoint:同步接收端
Isochronous Sourse Endpoint:同步源端
Isochronous Transfer:同步传送
Jiffer:抖动
kb/s:传送速率每秒几千比特
kB/s:传送速率每秒几千字节
Little Endian:
LOA:有始无终的总线传输
LSb:最低比特
LSB:最低字节
Mb/s:传送速率每秒几兆比特
MB/s:传送速率每秒几兆字节
Message Pipe:消息通道
MSb:最高比特
MSB:最高字节
NAK:不确认
Non Return to Zero Invert(NRZI):非归零翻转码
Object:对象
Packet:数据包
Packet Buffer:数据包缓冲区
Packet ID(PID):数据包标示位
Phase:时项、相位
Phase Locked Loop(PLL):锁相环
Physical Device:物理部件
Pipe:通道
Polling:查询
Port:口、端口
Power On Reset(POR):电源复位
Programmable Data Rate:可编程数据速率
Protocol:协议
Rate Adaption(RA):自适应速率
Request:请求、申请
Retire:取消、终止
Root Hub:根集线器、主机 Hub
USB 2.0 与 OTG 规范及开发指南
Root Port:根集线器的下游端口
Sample:取样、抽样
Sample Rate(Fs):抽样速率
Sample Rate Conversion(SRC):抽样转换率
Service:服务
Sevice Interval:服务间隙
Service Jitter:服务质量的抖动参数
Sevice Rate:指定端口每单位时间的服务数目
SOP:包开始
Stage:控制传输的某个阶段
Start-of-Frame(SOF):帧开始
Stream Pipe:流通道
Synchronization Type:同步类型
Synchronous RA:同步的 RA
Synchronous SRC:同步的 SRC
Sysem Programming Interface(SPI):系统可编程接口
Terminaton Time Division Multiplexing(TDM):时分复用
Timeout:超时
Token Packet:标志包
Transaction:处理事务
Transfer:传送
Transfer Type:传送类型
Turn-around Time:USB 传输中包与包之间的间隔时间,以防止传输冲突
Universal Serial Bus Driver(USBD):USB 驱动器
Univeral Serial Bus Resources:USB 提供的资源
Upstream:上行
Virtual Device:虚拟设备
Word:字(16 位)