微控制器USB的信号和协议实现
目录
第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-C232
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 [1]