图书介绍
USB 2.0硬件设计pdf电子书版本下载
- 萧世文编著 著
- 出版社: 北京:清华大学出版社
- ISBN:7302059373
- 出版时间:2002
- 标注页数:331页
- 文件大小:29MB
- 文件页数:344页
- 主题词:接口
PDF下载
下载说明
USB 2.0硬件设计PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如 BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章 USB 简介 1
1.1 USB 的发展史 2
1.1.1 规范的版本 3
1.1.2 USB 2.0 4
1.1.3 IEEE-1394 4
1.2 USB 的优点 4
1.2.1 容易使用 4
1.2.2 传输速度快 5
1.2.3 低价位 6
1.2.4 低能耗 6
1.2.5 稳定性 6
1.2.6 操作系统的支持 7
1.2.7 外围设备的支持 7
1.2.8 有弹性 7
1.3.1 缺乏对旧硬件的支持 8
1.2.9 USB 实施者论坛 8
1.3 USB 的缺点 8
1.3.2 点对点的通信 9
1.3.3 速度的限制 9
1.3.4 距离的限制 9
1.3.5 硬件的错误或故障 9
1.3.6 协议的复杂性 9
1.3.7 版权费 9
1.4 与其他接口的比较 10
1.5 PC 的软硬件要求 11
1.5.1 主机控制器 11
1.5.2 操作系统 11
1.5.3 组件 12
1.5.4 信道 14
1.5.5 连接端口 15
1.6 主机的功能 16
1.7 外围设备的功能 17
1.8 传输速度 19
1.9 开发的流程 20
1.9.1 所需组件 20
1.9.2 开发工具 20
1.10 开发计划的步骤 21
1.10.1 初步决定 21
1.10.2 检测设备 21
1.10.3 交换数据 21
第2章 USB 传输 22
2.1 传输的基础 22
2.1.1 配置 22
2.1.2 应用程序 22
2.1.3 数据的管理 23
2.1.4 总线速度 24
2.2 传输的要件 24
2.2.1 设备的端点 25
2.2.2 管道 26
2.2.3 传输类型 26
2.2.4 消息管道与流管道 27
2.2.5 传输的初始化 28
2.3 事务 28
2.3.1 事务的相位 30
2.3.2 信息包的串行化 32
2.3.3 时间的限制 32
2.3.4 分割事务 32
2.4 联络信号 35
2.4.1 ACK 35
2.4.4 NYET 36
2.4.3 STALL 36
2.4.2 NAK 36
2.4.5 ERR 37
2.4.6 没有响应 37
2.4.7 控制传输的状态 37
2.5 错误的检验 38
2.5.1 错误校验位 38
2.5.2 数据交替位 38
2.6 控制传输 39
2.6.1 结构 40
2.6.2 信息包大小 42
2.6.3 传输速度 43
2.6.4 检测错误 44
2.7 批量传输 45
2.7.1 结构 45
2.7.3 传输速度 46
2.7.2 信息包大小 46
2.7.4 检测错误 48
2.8 中断传输 48
2.8.1 结构 48
2.8.2 信息包大小 48
2.8.3 传输速度 48
2.8.4 检测错误 50
2.9 实时传输 51
2.9.1 结构 51
2.9.2 信息包大小 52
2.9.3 传输速度 52
2.9.4 检测错误 54
2.10 时间关键的传输 54
2.10.1 总线的带宽 54
2.10.2 设备的能力 54
2.10.4 Windows 的延迟 55
2.10.3 主机软件的能力 55
第3章 检测设备 56
3.1 检测设备的过程 56
3.1.1 检测的步骤 57
3.1.2 检测集线器 60
3.1.3 移除设备 60
3.2 描述符 61
3.2.1 类型 61
3.2.2 设备描述符 62
3.2.3 Device_Qualifier 描述符 64
3.2.4 配置描述符 66
3.2.5 Other_Speed_Configuration 描述符 67
3.2.6 接口描述符 68
3.2.7 端点描述符 70
3.2.8 字符串描述符 72
3.3 USB 2.0兼容设备的描述符 75
第4章 控制传输 77
4.1 设置阶段 77
4.1.1 令牌信息包 78
4.1.2 数据信息包 79
4.1.3 联络信息包 81
4.2 数据阶段 82
4.2.1 令牌信息包 83
4.2.2 数据信息包 83
4.2.3 联络信息包 83
4.3 状态阶段 83
4.3.1 令牌信息包 84
4.3.2 数据信息包 84
4.3.3 联络信息包 84
4.5 要求 85
4.4 检测错误 85
4.5.1 Clear_Feature 86
4.5.2 Get_Configuration 87
4.5.3 Get_Descriptor 87
4.5.4 Get_Interface 88
4.5.5 Get_Status 89
4.5.6 Set_Address 90
4.5.7 Set_Configuration 90
4.5.8 Set_Descriptor 91
4.5.9 Set_Feature 91
4.5.10 Set_Interface 92
4.5.11 Synch_Frame 93
4.5.12 类别特定的要求 93
4.5.12 厂商特定的要求 94
5.1.1 USB 连接端口 95
5.1 USB 控制器的组件 95
第5章 USB 控制器芯片 95
5.1.2 数据缓冲区 96
5.1.3 CPU 96
5.1.4 程序内存 96
5.1.5 数据存储器 97
5.1.6 寄存器 97
5.1.7 其他接口 97
5.1.8 其他特性 98
5.2 芯片的结构 98
5.2.1 专为 USB 设计的芯片 98
5.2.2 与现有的芯片兼容 100
5.2.3 需要外部微处理器接口的芯片 101
5.2.4 芯片的文件 103
5.2.7 调试工具 104
5.2.6 驱动程序 104
5.2.5 固件示例程序 104
5.2.8 开发计划的考虑 106
5.3 Cypress enCoRe 107
5.3.1 CPU 结构 107
5.3.2 USB 控制器 107
5.4 Cypress EZ-USB 108
5.4.1 CPU 结构 108
5.4.2 USB 控制器 110
5.5 Microchip PIC 16C7x5 111
5.5.1 结构 111
5.5.2 USB 控制器 112
5.6 Netchip NET2888 113
5.6.1 结构 113
5.7 National Semiconductor USBN9603 114
5.6.2 USB 控制器 114
5.7.1 结构 115
5.7.2 USB 控制器 116
5.8 Philips Semiconductor PDIUSBD11/12 116
5.8.1 结构 116
5.8.2 USB 控制器 117
第6章 Cypress enCoRe 控制器芯片 118
6.1 选择适合的芯片 118
6.2 汇编语言编译器 118
6.2.1 汇编程序的基础 120
6.2.2 汇编语言码 121
6.2.3 汇编语言编译器的用法 122
6.3 C 编译器 124
6.3.1 C 语言的优点 124
6.4.2 芯片内部 125
6.4.1 特性与限制 125
6.4 芯片的结构 125
6.3.2 C 编译器的用法 125
6.4.3 内存 126
6.4.4 程序堆栈指针 129
6.4.5 数据堆栈指针 129
6.5 USB 通信 129
6.5.1 设备地址 131
6.5.2 模式 131
6.5.3 端点状态与控制 133
6.5.4 USB 状态与控制 133
6.6 其他 I/O 135
6.6.1 一般用途的 I/O 135
6.6.2 内部电路 135
6.6.3 中断 137
6.6.4 SPI 连接端口 138
6.6.5 PS/2接口 139
6.7 定时器的功能 140
6.7.1 执行定时工作 140
6.7.2 测量时距 141
6.8 中断的处理 142
6.8.1 中断服务例程 142
6.8.2 GPIO 中断 143
6.8.3 USB 端点中断 144
6.8.4 计时器中断 144
6.8.5 中断状态 145
6.9 CPU 的状态、控制与脉冲 146
6.9.1 暂停 CPU 146
6.9.2 重置 146
6.9.4 电源的管理 148
6.10 硬件的工作 148
6.9.3 选择与控制脉冲 148
6.11 固件的工作 149
6.11.1 端点 O 中断 149
6.11.2 传送数据给主机 151
6.11.3 从主机接收数据 153
6.11.4 处理中断传输 155
6.11.5 其他的响应 155
6.12 硬件开发工具 156
6.12.1 平台板 156
6.12.2 监视/调试器 157
第7章 驱动程序 159
7.1 设备驱动程序 159
7.3 设备驱动程序的执行模式 160
7.2.2 客户化设备 160
7.2.1 标准设备类型 160
7.2 设备驱动程序的来源 160
7.4 Win32驱动程序模型 161
7.4.1 程序语言 162
7.5 分层的驱动程序 162
7.5.1 USB 驱动程序层 162
7.5.2 函数驱动程序 162
7.5.3 总线驱动程序 164
7.6 通信的流程 164
7.6.1 用户的角色 165
7.6.2 应用程序的角色 165
7.6.3 设备驱动程序的角色 166
7.6.4 集线器驱动程序的角色 168
7.6.5 总线类别驱动程序的角色 168
7.6.6 主机控制器驱动程序的角色 168
7.7.1 Windows 提供的驱动程序 169
7.7 驱动程序的类型 169
7.7.2 厂商提供的驱动程序 169
7.6.7 设备的角色 169
7.6.9 通信的终结 169
7.6.8 响应 169
7.8 编写客户化的驱动程序 170
7.8.1 工具软件 170
7.8.2 WinRT for USB 171
7.8.3 WinDriver USB 172
7.8.4 提供函数库的工具软件 173
7.9 Windows 如何选择驱动程序 174
7.9.1 .inf 文件 174
7.9.2 注册表 175
7.9.3 检测特定的设备 176
7.9.4 检测通用的设备 177
7.10 .inf 文件简介 177
7.10.1 语法 179
7.10.2 Version 区段 180
7.10.3 ClassInstall 区段 180
7.10.4 Manufacturer 区段 181
7.10.5 DestinationDirs 区段 181
7.10.6 Strings 区段 183
7.10.7 HID 的通用.inf 文件 183
7.10.8 建立.inf 文件的工具 183
7.10.9 使用.inf 文件的技巧 184
第8章 设备类别 186
8.1 类别 186
8.1.1 类别规范 186
8.1.2 类别的定义 187
8.2 标准类型的设备 188
8.2.2 大容量存储设备 189
8.2.1 键盘、鼠标与游戏杆 189
8.2.3 打印机 193
8.2.4 数码相机与扫描仪 194
8.2.5 音频 196
8.2.6 调制解调器 197
8.3 非标准类型的设备 198
8.3.1 以中等速度传输数据的设备 198
8.3.2 更新 RS-232设备 198
8.3.3 POS 设备 200
8.3.4 取代非标准并行端口设备 200
8.3.5 PC 到 PC 的连接 201
8.3.6 无线连接 201
第9章 设备测试 203
9.1 USB 测试工具 203
9.1.1 测试 204
9.1.2 HIDView 208
9.2 测试仪器 209
9.2.1 协议分析器 209
9.2.2 USB Expert 的硬件 210
9.2.3 USB Expert 的软件 210
9.2.4 CATC Traffic Generator 212
9.2.5 Root 1 Test Adapter 213
9.3 测试与标志 213
9.3.1 USB 实施者论坛合格计划 214
9.3.2 校验表 214
9.3.3 合格测试 214
9.3.4 USB 标志 215
9.3.5 Windows 硬件品质实验室测试 215
9.3.6 驱动程序签名 216
10.1.2 可以使用总线电源的设备 217
10.1.1 电压 217
10.1 电源的管理 217
第10章 电源管理与信号编码 217
10.1.3 电源要求 218
10.1.4 通知主机 219
10.2 集线器电源 219
10.2.1 电的来源 220
10.2.2 过流保护 222
10.2.3 电源开关 223
10.3 节省电能 223
10.3.1 全域与选择挂起 223
10.3.2 挂起设备的限制 223
10.3.3 恢复通信 224
10.4 低速与全速的总线状态 224
10.4.1 Differential 1与 Differential 0状态 225
10.4.2 Single-ended 0状态 226
10.4.3 Single-ended 1状态 226
10.4.4 Data J 与 K 状态 226
10.4.5 闲置状态 226
10.4.6 恢复状态 226
10.4.7 信息包开始 226
10.4.8 信息包结束 226
10.4.9 未连接状态 227
10.4.10 连接状态 227
10.4.11 重置状态 227
10.5 高速的总线状态 227
10.5.1 高速 Differential 1与 Differential 0状态 228
10.5.7 高速信息包结束 229
10.5.6 高速信息包开始 229
10.5.5 高速闲置 229
10.5.3 Chirp J 与 Chirp K 229
10.5.2 高速 Data J 与 K 状态 229
10.5.4 高速 Squelch 229
10.5.8 高速未连接状态 230
10.6 数据编码 230
10.6.1 维持同步 230
10.6.2 位填充 231
10.6.3 SYNC 字段 231
10.6.4 信息包结尾 232
10.6.5 时序正确性 232
10.7 信息包格式 233
10.7.1 SYNC 字段 233
10.7.2 PID 字段 233
10.7.4 端点字段 234
10.7.5 帧号码字段 234
10.7.3 地址字段 234
10.7.6 数据字段 235
10.7.7 CRC 字段 235
10.7.8 信息包间的延迟 235
10.8 测试模式 235
第11章 电路接口 238
11.1 接收器与信号 238
11.2 低速与全速接收器 239
11.3 高速接收器 241
11.3.1 电路 241
11.3.2 转换速度 242
11.3.3 检测高速设备的移除 243
11.3.4 高速的挂起与恢复 243
11.4 信号电压 243
11.4.1 低速与全速 243
11.4.2 高速 244
11.5 电缆 246
11.5.1 连接器 248
11.5.2 可拆分的与捕获性的电缆 249
11.5.3 电缆长度 250
11.6 信号的品质 250
11.6.1 噪声 250
11.6.2 平衡线 250
11.6.3 双绞线 251
11.6.4 边缘速率 251
第12章 集线器 252
12.1 集线器的基础 252
12.1.1 避免设备进入挂起状态 253
12.1.2 可串联的集线器数目 253
12.2.2 高速的中继器 254
12.2.1 低速与全速的中继器 254
12.2 集线器中继器 254
12.3 事务转换器 255
12.4 集线器控制器 256
12.5 速度 257
12.6 集线器类别 257
12.6.1 标准描述符 258
12.6.2 集线器描述符 260
12.6.3 标准要求 261
12.6.4 集线器类别要求 262
12.6.5 连接端口指示器 265
第13章 HID 设备 266
13.1 HID 简介 266
13.1.1 硬件要求 267
13.2 HID 的描述符 268
13.1.2 固件要求 268
13.2.1 描述符的内容 271
13.2.2 HID 类别描述符 272
13.2.3 报表描述符 273
13.3 HID 特定要求 278
13.3.1 Get_Report 278
13.3.2 Set_Report 279
13.3.3 Get_Idle 279
13.3.4 Set_Idle 280
13.3.5 Get_Protocol 280
13.3.6 Set_Protocol 281
13.4 传输数据 281
13.4.1 传送数据给主机 281
13.4.2 从主机接收数据 282
13.5.1 HID Descriptor Tool 285
13.5 报表的结构 285
13.5.2 短项目 286
13.5.3 长项目 287
13.6 Main 项目类型 288
13.6.1 Input、Output 与 Feature 项目 288
13.6.2 Collection 与 End Collection 项目 290
13.7 Global 项目类型 291
13.7.1 识别报表 292
13.7.2 数据的使用 292
13.7.3 转换原始数据 294
13.7.4 数据的大小与格式 295
13.7.5 Global 项目的储存与恢复 296
13.8 Local 项目类型 296
13.9 填充 298
13.10 实体描述符 298
14.1 主机的通信 300
第14章 HID 程序设计 300
14.1.1 说明文件 301
14.1.2 HID 函数 301
14.1.3 DirectX 302
14.2 调用 API 函数 303
14.2.1 使用 Visual C++ 303
14.2.2 使用 Visual Basic 304
14.3 取得 HID 类别的 GUID 305
14.3.1 使用 Visual C++ 306
14.3.2 使用 Visual Basic 306
14.4 取得 HID 信息的结构数组 307
14.4.1 使用 Visual c++ 307
14.4.2 使用 Visual Basic 307
14.5 识别 HID 接口 308
14.5.1 使用 Visual C++ 308
14.4.3 详解 308
14.5.2 使用 Visual Basic 309
14.5.3 详解 309
14.6 取得设备的路径 310
14.6.1 使用 Visual C++ 310
14.6.2 使用 Visual Basic 311
14.7 取得设备的代号 312
14.7.1 使用 Visual C++ 313
14.7.2 使用 Visual Basic 313
14.8 取得厂商与产品 ID 314
14.8.1 使用 Visual C++ 314
14.8.2 使用 Visual Basic 314
14.8.3 详解 315
14.9 取得包含设备能力的缓冲区指针 315
14.9.1 使用 Visual C++ 315
14.10.1 使用 Visual C++ 316
14.10 取得设备的能力 316
14.9.2 使用 Visual Basic 316
14.9.3 详解 316
14.10.2 使用 Visual Basic 317
14.10.3 详解 318
14.11 取得数值的能力 318
14.12 传送输出报表给设备 318
14.12.1 使用 Visual C++ 318
14.12.2 使用 Visual Basic 319
14.12.3 详解 320
14.13 从设备读取输入报表 320
14.13.1 使用 Visual C++ 320
14.13.2 使用 Visual Basic 320
14.13.3 详解 321
14.14.1 使用 Visual C++ 322
14.14 使用重叠 ReadFile 读取报表 322
14.14.2 使用 Visual Basic 323
14.15 使用多线程的 ReadFile 读取报表 325
14.15.1 使用 Visual C++ 325
14.15.2 使用 Visual Basic 326
14.16 传送特征报表给设备 326
14.16.1 使用 Visual C++ 327
14.16.2 使用 Visual Basic 327
14.17 从设备读取特征报表 327
14.17.1 使用 Visual C++ 327
14.17.2 使用 Visual Basic 328
14.18 关闭通信 328
14.18.1 使用 Visual C++ 328
14.18.2 使用 Visual Basic 329
附录 A USB 参考资料 330