本书以循序渐进由浅入深的原则精心挑选的一系列项目开发实例。实例中有详尽的说明和实际的原理图,易于阅读和理解的源程序以及装置的实物图片。本书内容涉及广泛,可为多方面的USB 项目开发者提供具体的指导和解答。
本书以循序渐进由浅入深的原则精心挑选的一系列项目开发实例。实例中有详尽的说明和实际的原理图,易于阅读和理解的源程序以及装置的实物图片。本书内容涉及广泛,可为多方面的USB 项目开发者提供具体的指导和解答。
第1章 把 I/O 设备加到现代的 PC 1
1-1 动手上机的例子 2
1-2 你需要怎样的技术背景 3
1-3 本书的重点 3
1-4 现代 PC:一段简短的历史 4
1-4-1 操作简单、价格低廉 5
1-5 USB 术语 5
1-5-1 PC 主机 7
1-5-2 USB 电缆 7
1-5-3 集线器设备 9
1-5-4 I/O 设备 10
1-6 USB 对 PC 主机的冲击 12
本章小结 14
第2章 走近数据线 15
2-1 差动信号 16
2-2 包的构成 17
2-3 包的类型 18
2-3-1 开始帧令牌包(Start-of-Frame Token Packet) 18
2-3-2 Setup,IN和 OUT 令牌包 19
2-3-3 数据传送包 20
2-3-4 握手包 20
2-4 建立一个事务处理 21
2-4-1 中断传输 22
2-4-2 块传输 23
2-4-3 同步传输 23
2-4-4 控制传输 24
2-5 PC 主机请求 27
2-6 错误处理 29
2-7 针对低速设备的一个不同点 29
2-8 在总线上观察 USB 包 30
本章小结 31
第3章 枚举过程 33
3-1 设备检测 34
3-2 枚举步骤 35
3-3 设备描述符 36
3-3-1 配置描述符 38
3-3-2 接口描述符 39
3-4 选择一个设备驱动程序 39
3-5 定义一个 HID 40
3-5-1 HID描述符 41
3-5-2 报告描述符 42
3-6 I/O 设备方面 43
3-7 最小 I/O 设备 44
3-8 复杂 I/O 设备 48
本章小结 51
第4章 PC 主机上的运行时间软件 53
4-1 Visual Basic 简介 55
4-2 示例 1:USB设备显示 57
4-2-1 示例 1—第1步:人机接口设计 58
4-2-2 示例 1—第2步:程序初始化 59
4-2-3 示例 1—第3步:选择一个主控制器 60
4-2-4 示例 1—第4步:描述符显示 64
4-3 示例 2:HID 显示 67
4-3-1 示例 2—第1步:人机接口设计 67
4-3-2 示例 2—第2步:程序初始化 68
4-3-3 示例 2—第3步:显示 HID 信息 69
4-4 与一个 HID 交换数据 69
4-4-1 报告描述符 70
4-4-2 设计例子 73
本章小结 74
第5章 开发工具 75
5-1 开发环境 76
5-2 目标的实现 77
5-2-1 一个外部链接方式的例子 78
5-2-2 一个调试监视器的例子 79
5-2-3 一个集成的调试监视程序的例子 80
5-2-4 USB 外部设备的例子 81
5-2-5 USB ASIC 例子 82
5-3 软件开发工具 83
5-4 USB 专用工具 84
5-4-1 USB 单步 84
5-4-2 USB 视图 85
5-4-3 HID 视图 86
5-4-4 HID 表格产生器 86
本章小结 87
第6章 按钮和灯 89
6-1 示例 1:简单的设计,集成的USB端口 90
6-1-1 示例 1——第1步:设计硬件 91
6-1-2 示例 1——第2步:完成描述符 91
6-1-3 示例 1——第 3 步:实现微控制器代码 93
6-1-4 示例 1——第4步:应用程序代码 112
6-2 示例 2:简单设计,外部 USB 端口 113
6-2-1 示例 2——第1步:设计硬件 113
6-2-2 示例 2——第 2 步:完成描述符 114
6-2-3 示例 2——第3步:实现微控制器代码 114
6-2-4 示例 2——第 4 步:应用程序代码 115
6-2-5 示例 2——设计小结 115
6-2-6 示例 2——真实世界产品实例 115
6-3 示例 3:加入更多的端口(与微控制器无关) 116
6-3-1 示例 3——第1步:硬件设计 116
6-3-2 示例 3——第2步:完成描述符 118
6-3-3 示例 3——第3步:实现微控制器代码 118
6-3-4 示例 3——第4步:应用程序代码 118
6-4 示例 4:增加很多很多端口(与微控制器无关) 119
6-4-1 示例 4——第1步:设计硬件 119
6-4-2 示例 4——第2步:完成描述符 120
6-4-3 示例 4——第3步:实现微控制器代码 122
6-4-4 示例 4——第4步:应用程序代码 122
本章小结 122
第7章 从 ISA 迁移 125
7-1 IN 和 OUT 的特殊性 127
7-2 制作一个 ISA 卡 128
7-3 即插即用 ISA 129
7-4 从 ISA 迁移 129
7-4-1 软件移植 130
7-5 用户 I/O 示例 132
7-5-1 设计优化 136
本章小结 138
第8章 构建USB桥 139
8-1 USB到RS-232桥的设计 140
8-2 串行通信外围设备的设计 144
8-2-1 首先,看看通信标准 145
8-2-2 直接线控制调制解调器例子 146
8-3 并行设备例子 153
8-3-1 软盘驱动器 153
8-3-2 SCSI设备 155
8-4 另外的桥 156
8-5 条形码扫描器例子 157
本章小结 159
第9章 与数字世界相连接 161
9-1 I2C接口 162
9-1-1 I2C规范 162
9-1-2 I2C小结 165
9-2 温度计应用 165
9-2-1 例1:读温度 166
9-2-2 例2:加温度限定值 168
9-2-3 例3:使用一个多点的温度计 168
9-2-4 温度计应用小结 170
9-3 红外子系统 170
9-3-1 PC工业界红外标准 170
9-3-2 例1:IrDA数据 171
9-3-3 例2:IrDA控制 174
9-3-4 例3:消费工业IR 176
9-3-5 红外子系统小结 178
本章小结 179
第10章 连接到现实世界 181
10-1 输出信号调理 182
10-2 电机控制 183
10-2-1 例1:步进电机 183
10-2-2 例2:直流电机 186
10-3 控制市电供电的设备 187
10-3-1 例3:照明控制面板 187
10-4 现实世界中的模拟信号 189
10-4-1 模拟转换例子 189
10-4-2 传感器输入 193
10-5 数据采集和仪器 195
10-5-1 USB模块例子 195
10-5-2 USB工业系列例子 199
10-5-3 设备盒例子 200
本章小结 201
第11章 我喜欢那样的声音 203
11-1 创建数字声音 205
11-1-1 采样的声音 205
11-1-2 合成声音 206
11-2 MIDI协议 207
11-2-1 MIDI硬件接口 208
11-2-2 MIDI合成器 210
11-2-3 MIDI文件格式 210
11-3 USB对声音的支持 211
11-3-1 例1:音频输出 211
11-3-2 例2:音频输入 213
11-3-3 软件的功能控制 215
11-4 电话连接 217
11-4-1 例3:电话设计 219
本章小结 220
第12章 我能看见你 221
12-1 调整视频数据大小 222
12-1-1 视频压缩的重要性 223
12-2 系列视频解决方案 224
12-2-1 例1:视频会议摄像机 225
12-2-2 例2:复合视频 226
12-2-3 例3:数字视频创建 228
12-3 USB在视频领域的应用 230
12-3-1 数字显微镜 230
12-3-2 生物测量学 230
本章小结 232
第13章 设计一个集线器 233
13-1 基本的集线器 235
13-1-1 集线器中继器 235
13-1-2 集线器控制器 236
13-1-3 电源控制 238
13-1-4 基本集线器小结 240
13-2 构建一个复合设备 240
13-3 设计例子 241
13-3-1 步骤1:加一个集线器 243
13-3-2 步骤2:加I/O设备 245
13-3-3 步骤3:扩充设计 245
本章小结 247
第14章 把所有的东西组合到一起 249
14-1 设计例子概述 250
14-1-1 步骤1:调谐器前端子系统 251
14-1-2 步骤2:视频转USB子系统 251
14-1-3 步骤3:音频转USB子系统 252
14-1-4 步骤4:集线器子系统 253
14-1-5 步骤5:I2C控制子系统 253
14-1-6 步骤6:供电分配 254
14-1-7 步骤7:设计优化 254
14-1-8 步骤8:PC主机应用 255
本章小结 256
第15章 增加进入家庭的数据带宽 257
15-1 普通老式电话服务(POTS) 258
15-1-1 一个xDSL调制解调器的参考设计 259
15-1-2 利用电话线的家庭连网 260
15-2 重新审视有线电视同轴电缆 261
15-2-1 线缆调制解调器例子 262
15-2-2 电缆联网例子 264
15-3 数字广播和PC 267
本章小结 270
附录A 271