第1章 USB的基本结构与特性
1.1 USB的基本概念1
1.2 USB的开发历程3
1.2.1 USB 1.13
1.2.2 USB 2.03
1.2.3 USB 1.1与2.0规范的比较5
1.2.4 USB与IEEE 1394的比较7
1.3 USB的总线结构8
1.4 USB基本架构与总线架构11
1.5 USB数据流的模式与管线的概念15
1.5.1 端点16
1.5.2 管线17
1.6 USB硬件规范18
1.6.1 USB的硬件特性18
1.6.2 USB接口的电气特性20
1.6.3 USB 2.0规范的变动 22
1.6.4 USB的电源管理23
1.7 USB速度的基本概念24
1.8 结论25
1.9 问题与讨论26
第2章 USB信号状态与编码方式
2.1 差动信号27
2.2 USB的编码方式28
2.3 USB总线状态30
2.3.1 低速与全速的总线状态30
2.3.2 高速的总线状态32
2.4 问题与讨论36
第3章 USB通信协议
3.1 USB通信的基本概念37
3.2 USB通信协议——传输39
3.2.1 传输类型 40
3.2.2 信号管线与数据流管线42
3.3 USB通信协议——数据交易43
3.4 USB封包中的数据域类型45
3.5 封包格式48
3.6 分割数据交易55
3.7 错误检查58
3.7.1 循环冗余检验位59
3.7.2 数据紧密连接位60
3.8 带宽的提高62
3.9 问题与讨论65
第4章 USB的传输类型
4.1 USB的传输类型简介66
4.2 控制传输69
4.3 批量传输74
4.3.1 批量传输的数据交易格式74
4.3.2 数据容量与传输速度76
4.4 中断传输77
4.4.1 中断传输的数据交易格式78
4.4.2 数据容量与传输速度79
4.5 等时传输80
4.5.1 等时传输的数据交易格式80
4.5.2 数据容量与传输速度82
4.6 USB标准要求83
4.6.1 标准设备要求87
4.6.2 标准接口要求 88
4.6.3 标准端点要求89
4.7 问题与讨论91
第5章 设备列举
5.1 登录编辑器92
5.2 USB描述符97
5.2.1 设备描述符104
5.2.2 配置描述符106
5.2.3 接口描述符108
5.2.4 端点描述符110
5.2.5 字符串描述符111
5.2.6 群组与报告描述符112
5.2.7 兼容USB 2.0规范的描述符113
5.3 USB设备群组120
5.4 设备列举的步骤121
5.5 设备列举步骤的实现——使用CATC分析工具124
5.6 结论135
5.7 问题与讨论136
第6章 USB芯片介绍
6.1 USB芯片简介137
6.2 USB接口芯片140
6.2.1 NXP接口芯片140
6.2.2 National Semiconductor接口芯片142
6.3 内含USB单元的微处理器145
6.3.1 Freescale145
6.3.2 Microchip146
6.3.3 SIEMENS147
6.3.4 Cypress148
6.4 USB芯片总览介绍150
6.5 USB芯片的选择与评估152
6.6 问题与讨论153
第7章 设备与驱动程序
7.1 层式的驱动程序154
7.2 主机的驱动程序156
7.3 驱动程序的选择160
7.4 USB外围设备的开发与设计161
7.5 结论162
7.6 问题与讨论162
第8章 HID群组
8.1 HID简介163
8.2 HID群组的特性与限制164
8.3 HID基本要求165
8.3.1 端点166
8.3.2 控制管线(端点)166
8.3.3 中断传输167
8.4 固件要求167
8.5 识别HID设备168
8.5.1 描述符的内容169
8.5.2 启动接口172
8.5.3 版本修订的相容性173
8.5.4 HID群组描述符173
8.6 报告描述符175
8.7 HID群组要求179
8.8 问题与讨论186
第9章 Visual Basic 6.0简介
9.1 踏出Visual Basic的第一步 188
9.2 集成开发环境的介绍189
9.3 变量类型192
9.4 基本语法194
9.5 工具箱 198
9.6 编写第一个Visual Basic应用程序204
9.6.1 第一个Visual Basic应用程序204
9.6.2 存储所建的程序文件207
9.6.3 进阶程序的设计209
第10章 用Visual Basic编写USB应用程序
10.1 主机通信的基本概念214
10.2 主机如何发现设备215
10.3 相关文件217
10.4 HID函数218
10.5 API函数与Visual Basic的基本概念220
10.6 声明221
10.6.1 ByRef与ByVal传递的格式223
10.6.2 传递空值224
10.6.3 函数与子程序225
10.6.4 提供DLL名称226
10.6.5 字符串格式226
10.6.6 结构227
10.6.7 如何调用函数227
第11章 API函数的基本介绍
11.1 Windows与HID设备通信的API函数229
11.2 寻找所有的HID设备230
11.2.1 取得HID群组的GUID——HidD_GetHidGuid()函数230
11.2.2 取得所有HID信息的结构数组——SetupDiGetClassDevs()函数231
11.2.3 识别每一个HID接口——SetupDiEnumDeviceInterfaces()函数232
11.2.4 取得设备的路径——SetupDiGetDeviceInterfaceDetail()函数234
11.2.5 取得设备的标示代号——CreateFile()函数236
11.2.6 取得厂商与产品ID——HidD_GetAttributes()函数237
11.3 检查HID设备功能239
11.3.1 取得包含设备能力的缓冲区指针——HidD_GetPreparsedData()函数239
11.3.2 取得设备的能力——HidP_GetCaps()函数240
11.3.3 取得数值的能力——HidP_GetValueCaps()函数241
11.4 读取与写入数据243
11.4.1 传送输出报告给设备——WriteFile()函数244
11.4.2 从设备读取输入报告——ReadFile()函数246
11.4.3 传送特性报告给设备——HidD_SetFeature()函数249
11.4.4 从设备读取特性报告给——Get_Feature()函数249
11.5 关闭通信——CloseHandle()函数250
第12章 Visual Basic USB接口程序设计
12.1 HID API函数的引用252
12.2 打开HID设备的通信步骤262
12.3 Visual Basic窗体程序的设计263
12.3.1 取得HID群组的GUID——HidD_GetHidGuid()函数267
12.3.2 取得所有HID信息的结构数组——SetupDiGetClassDevs()函数269
12.3.3 识别每一个HID接口——SetupDiEnumDeviceInterfaces()函数270
12.3.4 取得设备的路径——SetupDiGetDeviceInterfaceDetail()函数272
12.3.5 取得设备的标示代号——CreateFile()函数274
12.3.6 取得厂商与产品ID——HidD_GetAttributes()函数275
12.3.7 取得包含设备能力的缓冲区指针——HidD_GetPreparsedData()函数277
12.3.8 取得设备的能力——HidP_GetCaps()函数278
12.3.9 取得数值的能力——HidP_GetValueCaps()函数280
12.3.10 传送输出报告给设备——WriteFile()函数281
12.3.11 从设备读取输入报告——ReadFile()函数283
12.4 完整的应用程序285
第13章 EZUSB FX简介
13.1 USB特性概述288
13.2 EZUSB FX硬件框图289
13.3 USB核心291
13.4 EZUSB FX单片机292
13.5 EZUSB FX端点293
13.5.1 EZUSB FX批量端点293
13.5.2 EZUSB FX控制端点0294
13.5.3 EZUSB FX中断端点294
13.5.4 EZUSB FX等时端点294
13.6 硬件规范与引脚295
第14章 USB开发工具组的使用与操作
14.1 工具组的介绍296
14.2 DMAUSB FX开发系统297
14.2.1 DMAUSB FX开发系统及外围整体环境介绍301
14.2.2 DMAUSB FX开发系统与PC连接软件介绍301
14.2.3 DMAUSB FX硬件功能介绍302
14.2.4 DMAUSB FX开发系统配件及硬件需求307
14.3 USB通用实验器系统介绍307
14.4 USB简易I/O实验板系统311
14.5 DMAUSB 2131控制单板313
14.5.1 DMAUSB 2131控制单板外围整体环境介绍313
14.5.2 DMAUSB 2131控制单板硬件功能介绍315
14.6 EZUSB FX驱动程序安装317
14.7 控制平台应用环境基本操作319
14.8 EZUSB控制平台总览321
14.8.1 主界面322
14.8.2 热插拔新的USB设备323
14.8.3 各种工具栏的使用324
14.8.4 故障排除327
14.8.5 控制平台的进阶操作328
14.9 DMAUSB FX开发系统测试软件及工具328
第15章 EZUSB FX设备列举与重新设备列举
15.1 设备列举与重新设备列举概述331
15.2 预设的USB设备336
15.3 USB核心对于EP0设备请求的响应339
15.4 固件下载341
15.5 设备列举模式342
15.6 不存在EEPROM343
15.7 存在EEPROM,第一个字节是0xB0(0xB4, FX系列)344
15.8 存在EEPROM,第一个字节是0xB2(0xB6, FX系列)345
15.9 重新设备列举348
15.10 控制平台的制造商要求测试349
第16章 LED显示器输出实验
16.1 硬件设计与基本概念354
16.2 固件程序代码的下载程序355
16.3 固件程序代码的EEPROM烧录程序359
16.3.1 B6(或B2)格式文件359
16.3.2 EEPROM数据的回复361
16.3.3 第一个字节为B4(或B0)363
16.4 Visual Basic程序设计365
16.5 INF文件的编写设计367
16.7 结论369
16.8 问题与讨论369
第17章 USB输出实验范例一
17.1 七段显示器370
17.1.1 硬件设计与基本概念370
17.1.2 固件程序代码的EEPROM烧录程序372
17.1.3 INF安装信息文件的编写373
17.1.4 Visual Basic应用程序设计375
17.2 8×8点矩阵378
17.2.1 硬件设计与基本概念378
17.2.2 固件程序代码的EEPROM烧录程序380
17.2.3 INF安装信息文件的编写382
17.2.4 Visual Basic应用程序设计383
17.3 问题与讨论384
第18章 USB输出实验范例二
18.1 液晶显示器(LCD)输出实验范例385
18.1.1 硬件设计与基本概念385
18.1.2 固件程序代码的EEPROM烧录程序389
18.1.3 INF安装信息文件的编写389
18.1.4 Visual Basic应用程序设计390
18.2 绘图型LCD显示器输出实验范例393
18.2.1 硬件设计与基本概念393
18.2.2 固件程序代码的EEPROM烧录程序395
18.2.3 INF安装信息文件的编写395
18.2.4 Visual Basic应用程序设计398
18.3 问题与讨论399
第19章 步进电机输出实验
19.1 硬件设计与基本概念400
19.1.1 1相激磁401
19.1.2 2相激磁402
19.1.3 12相激磁402
19.1.4 PMM8713介绍403
19.2 固件程序代码的EEPROM烧录程序407
19.3 INF安装信息文件的编写407
19.4 Visual Basic程序代码设计409
19.5 问题与讨论411
第20章 I2C接口输入/输出实验
20.1 硬件设计与基本概念412
20.2 固件程序代码的EEPROM烧录程序416
20.3 INF安装信息文件的编写416
20.4 Visual Basic程序代码设计417
20.5 问题与讨论420
第21章 USB A/D与D/A转换器实验
21.1 A/D转换器421
21.1.1 硬件设计与基本概念421
21.1.2 固件程序代码的EEPROM烧录程序427
21.1.3 INF安装信息文件的编写427
21.1.4 Visual Basic程序代码设计428
21.2 D/A转换器429
21.2.1 硬件设计与基本概念429
21.2.2 固件程序代码的EEPROM烧录 程序433
21.2.3 INF安装信息文件的编写433
21.2.4 Visual Basic程序代码设计436
21.3 问题与讨论436
第22章 USB与RS232串行通信
22.1 通信概念437
22.2 传输设备438
22.3 RS232C接口440
22.4 RS232C常用的接线方式441
22.5 RS232C数据格式441
22.6 UART与RS232C的信号准位转换444
22.7 硬件设计445
22.8 固件程序代码的EEPROM烧录程序445
22.9 INF安装信息文件的编写446
22.10 Visual Basic程序代码设计448
22.11 RS232串行接口的程序设计449
22.11.1 通信工具组件的引用449
22.11.2 通信应用程序的编写450
22.11.3 通信测试454
22.12 USB转换RS232串行通信456
22.13 问题与讨论462
第23章 Visual Basic集成应用程序设计
23.1 NI Measurement Studio463
23.2 Measurement Studio for Visual Basic的引用466
23.3 整合应用程序的编写466
23.4 应用程序的执行475
23.5 问题与讨论476
附录
附录A EZUSB 2100系列477
附录B EZUSB W2K.INF安装信息文件的内容484