目录 1
第1章 USB系统结构 1
1.1 USB的概念及性能 1
1.2 USB系统软、硬件结构 4
1.2.1 USB系统硬件结构 4
1.2.2 USB系统软件结构 7
1.2.3 层次对应关系 8
1.3 USB系统的设备枚举 8
1.3.1 USB设备的状态 9
1.3.2 USB设备的枚举过程 11
1.4 USB接口芯片的分类与选择 13
第2章 USB 1.1协议解析 15
2.1 数据协议层 15
2.1.1 位定序和同步字段 15
2.1.2 包中的字段格式 15
2.1.3 循环冗余校验 17
2.1.4 包格式 18
2.1.5 事务格式 21
2.1.6 数据切换同步和重试 26
2.1.7 错误检测和恢复 29
2.2 USB设备架构 31
2.2.1 通用USB设备操作 32
2.2.2 USB设备请求 34
2.2.3 标准设备请求 35
2.2.4 描述符 41
2.2.5 标准描述符的定义 41
2.3 USB主机的硬件与软件 46
2.3.1 USB主机概况 46
2.3.2 主机控制器功能 49
2.3.3 主机软件功能概述 52
2.3.4 主机控制器驱动程序(HCD) 54
2.3.5 USB驱动程序 55
2.3.6 操作系统环境 61
第3章 集线器规范 62
3.1 集线器的连接特性 62
3.1.1 连接行为 62
3.1.2 帧计时器 63
3.1.3 内部端口 63
3.1.4 下行端口 64
3.1.5 上行端口 66
3.1.6 转发中继器 68
3.2 总线错误检测和恢复 70
3.3 电源管理 70
3.4 集线器的设备结构和配置 71
3.5 集线器描述符 72
3.5.1 标准描述符 72
3.5.2 类指定描述符 73
3.6.2 类指定的请求 74
3.6.1 标准请求 74
3.6 集线器的请求 74
第4章 USB 2.0协议解析 80
4.1 USB 2.0系统结构 80
4.1.1 总线拓扑结构 81
4.1.2 物理连线和电源管理 81
4.1.3 系统组件 82
4.2 USB 2.0电气信号特征 82
4.2.1 数据编码和数据帧 82
4.3.1 新的数据包PID 83
4.2.2 高速设备检测 83
4.3 USB 2.0数据传输协议新特点 83
4.3.2 SPLIT事务及SSPLIT/CSPLIT令牌包 84
4.3.3 数据PID 86
4.3.4 PING事务和NYET应答 86
4.3.5 ERR数据包 87
4.4 USB 2.0带宽计算 88
4.5.1 USB 2.0的主机 90
4.5.2 USB 2.0的集线器 90
4.5 USB 2.0的主机和集线器 90
4.6 USB 2.0描述符和请求命令 92
4.6.1 设备限定描述符 92
4.6.2 其他速度配置描述符 92
4.6.3 设备请求码 93
4.6.4 端点描述符 93
第5章 经济实用的USB设备接口芯片USBN9603 96
5.1 USBN9603的性能特点 96
5.2 USBN9603的内、外结构 97
5.4 USBN9603的端点操作 100
5.4.1 端点寻址 100
5.3 USBN9603的工作状态 100
5.4.2 端点结构和内部寄存器 101
5.5 USBN9603微控制器接口 103
5.5.1 并行地址/数据复用接口 104
5.5.2 并行非地址/数据复用接口 104
5.5.3 MICRWIRE/PLUS接口 106
5.6 USBN9603的内部寄存器 107
5.6.1 通用设置寄存器 108
5.6.2 端点0相关寄存器 115
5.6.3 接收/发送端点寄存器 117
第6章 Cypress的FX2接口芯片 121
6.1 概述 121
6.2 FX2的性能特点 121
6.3 FX2的结构 123
6.4 FX2的封装形式和引脚描述 124
6.4.1 FX2的封装 124
6.4.2 三种封装形式的可用信号 128
6.4.3 引脚描述 130
6.5.1 8051微处理器 142
6.5 FX2内部功能总述 142
6.5.2 FX2中断系统 147
6.5.3 FX2存储器地址 149
6.5.4 程序/数据RAM 150
6.5.5 外部FIFO接口 150
6.5.6 通用程序接口(GPIF) 151
6.5.7 自动指针的访问 152
6.5.8 FX2寄存器 152
7.1 概述 173
7.1.1 特点 173
第7章 带内嵌功能的4端口USB复合接口芯片TUSB2140 173
7.1.2 引脚定义及其功能 174
7.1.3 设备编号方式和排序信息 177
7.2 功能描述 177
7.3 内部寄存器 180
7.4 电器特性 182
7.5 定时特性 183
7.5.1 USB收发器的定时特性 183
7.5.2 I2C总线的定时特性 185
7.5.3 远程唤醒定时特性 185
7.6.1 电源管理 186
7.6 TUSB2140的应用 186
7.6.2 程序开发 189
第8章 Philips公司的PDIUSBD12外设接口芯片 190
8.1 PDIUSBD12的特性 190
8.2 PDIUSBD12的结构 191
8.2.1 PDIUSBD12的引脚配置 191
8.2.2 PDIUSBD12的功能框图 192
8.2.3 端点描述 195
8.3 PDIUSBD12的功能实现 196
8.3.1 命令汇总 196
8.3.2 PDIUSBD12时序 205
第9章 USBN9603通信板设计 209
9.1 USBN9603通信板硬件电路设计 209
9.2 USBN9603通信板软件程序设计 211
9.2.1 89C51单片机的C语言编程及相关的USB定义声明 211
9.2.2 通信板描述符的定义 212
9.2.3 通信板程序的结构框架 215
9.2.4 通信板程序的初始化操作及中断响应 215
9.2.5 USB设备请求的处理及端点0的操作 217
9.2.6 块传输端点操作 222
9.2.7 89C51程序代码汇总 225
9.3 USBN9603通信板Windows测试程序设计 248
9.3.1 测试程序API对设备的调用 248
9.3.2 测试程序的运行 250
第10章 Windows下的USB驱动程序设计 251
10.1 WDM驱动程序基础 251
10.1.1 WDM驱动程序的结构框架 251
10.1.2 WDM驱动程序的重要数据结构 252
10.1.3 通信板驱动程序的数据通信实现 261
10.1.4 即插即用功能的实现 263
10.1.5 通信板驱动程序的开发工具 265
10.2 USB驱动程序接口 268
10.2.1 USBDI的定义 268
10.2.2 USBDI定义的各种描述符 269
10.2.3 USBDI内部功能码IOCTL及请求块URB 272
10.2.4 URB的构造和发送 275
10.2.5 USBDI的配置接口选择 277
10.2.6 USBDI的数据读/写 281
10.3 通信板驱动程序的源代码总结 283
参考文献 298