第1章 深入理解USB信号 001
1.1 USB的电气特性和信号 002
1.1.1 电气特性 003
1.1.2 驱动特性 007
1.1.3 USB信号特性 009
1.1.4 数据包编码 018
1.2 连接和断开的检测 020
1.2.1 连接状态的检测 021
1.2.2 断开状态的检测 024
1.3 速度检测 028
1.3.1 低速和全速设备识别 028
1.3.2 高速设备识别 029
第2章 深入理解USB协议 035
2.1 通信协议 036
2.1.1 概要 038
2.1.2 包 039
2.1.3 事务 044
2.1.4 传输 055
2.1.5 数据翻转 062
2.1.6 标准USB设备请求 069
2.2 USB描述符 071
2.2.1 设备描述符 073
2.2.2 配置描述符 074
2.2.3 接口描述符 075
2.2.4 端点描述符 076
2.2.5 字符串描述符 077
2.2.6 接口关联描述符 078
2.2.7 设备限定描述符 079
2.2.8 其他速度模式下的配置描述符 079
2.3 枚举 080
2.3.1 设备状态 080
2.3.2 枚举流程 083
2.4 挂起和恢复 090
2.4.1 挂起 090
2.4.2 恢复 092
2.4.3 高速模式下的挂起信号和复位信号区别 098
2.5 端点停止 100
2.5.1 功能停止 100
2.5.2 协议停止 103
2.6 OTG简介 104
2.6.1 角色 105
2.6.2 协议 105
2.6.3 OTG设备状态迁移 111
2.6.4 OTG工作流程 118
第3章 USB硬件控制器 121
3.1 增强主机控制器接口 122
3.1.1 寄存器接口 123
3.1.2 EHCI连接/断开检测 125
3.1.3 EHCI速度检测 128
3.1.4 USB主机传输调度机制 130
3.1.5 USB设备传输调度机制 137
3.1.6 EHCI枚举的软件实现 139
3.1.7 EHCI挂起和恢复 140
3.1.8 EHCI异常处理 142
3.2 Kinetis主机控制器接口 143
3.2.1 外围硬件设计 144
3.2.2 控制器接口 145
3.2.3 KHCI连接/断开检测 151
3.2.4 KHCI速度检测 154
3.2.5 KHCI传输实现 155
3.2.6 KHCI枚举的软件实现 158
3.2.7 KHCI挂起和恢复 158
3.2.8 KHCI端点停止处理 161
第4章 USB音频演示程序 163
4.1 USB音频 164
4.1.1 USB音频功能实现拓扑 164
4.1.2 音频控制接口和描述符 165
4.1.3 音频流接口和描述符 172
4.1.4 USB音频描述符实例 177
4.1.5 音频设备请求 182
4.1.6 USB音频类2.0简介 184
4.2 USB音频流同步 187
4.2.1 反馈端点同步方案 188
4.2.2 调节时钟同步方案 192
4.3 USB音频演示程序代码分析 192
4.3.1 连接/断开检测代码分析 192
4.3.2 速度检测代码分析 198
4.3.3 枚举、挂起和恢复代码分析 202
4.3.4 音频流同步代码分析 208
4.3.5 USB音频示例演示 212
第5章 USB认证 215
5.1 USB认证的简介 216
5.2 USB认证的流程 218
5.2.1 获得供应商识别码 218
5.2.2 准备USB兼容性测试清单 219
5.2.3 送USB授权实验室进行测试 220
5.2.4 获得合格报告及证书 221
5.3 典型的测试用例 221
5.3.1 不受支持的设备信息 222
5.3.2 最大集线器层次数 222
5.3.3 电源预算指示 222
5.3.4 PET测试 223
5.3.5 USB测试模式 223
5.3.6 USB特殊单步测试用例 226
第6章 USB Type-C及供电协议 231
6.1 Type-C 232
6.1.1 接口定义 233
6.1.2 角色定义 235
6.1.3 热拔插检测 239
6.1.4 正反插检测 240
6.1.5 供电功能 243
6.1.6 附属模式 243
6.2 供电协议 244
6.2.1 供电协议规范定义 245
6.2.2 供电规则 252
6.2.3 供电协商 252
6.2.4 供电切换 255
6.2.5 通信功能协商 257
6.2.6 复用模式 258
6.3 解决方案 262
6.3.1 硬件支持 262
6.3.2 演示程序 265
参考文献 270