第1章 Visual Basic 6.0简介 1
1.1 初识Visual Basic 2
1.2 集成开发环境介绍 3
1.3 变量类型和常数 6
1.4 基本语法 7
1.5 工具箱 12
1.6 编写第一个Visual Basic应用程序 16
1.6.1 第一个Visual Basic应用程序 16
1.6.2 保存程序文件 21
1.6.3 高级程序设计 22
第2章 并行端口的基本概念 27
2.1 并行端口的基本介绍 28
2.2 硬件特性 30
2.3 并行端口程序设计 32
2.4 Centronics并行端口 35
2.5 软件寄存器——标准并行端口(SPP) 36
2.6 双向端口 39
2.7 使用并行端口执行8位输入 40
2.8 Nibble模式 43
2.9 BIOS的并行端口模式 46
2.10 系统资源 47
2.10.1 并行端口地址 47
2.10.2 中断 49
2.10.3 DMA通道 49
2.10.4 增加并行端口 50
第3章 并行端口的基本测试 53
3.1 硬件设计 53
3.2 Visual Basic程序设计 57
3.3 步进马达输出 64
3.3.1 1相激磁 64
3.3.2 2相激磁 65
3.3.3 1-2相激磁 66
3.3.4 步进马达的驱动电路 67
第4章 并行端口的输入/输出 73
4.1 并行端口的输出应用 74
4.2 使用Visual Basic程序执行输出控制 76
4.3 并行端口的输入应用 78
4.3.1 单一字节输入硬件的设计 78
4.3.2 读取5个字节的硬件设计 80
4.4 输出应用 84
4.4.1 逻辑电平输出 85
4.4.2 机械式继电器和电子式固态继电器 87
4.4.3 ULN2003A驱动器 88
4.5 输入应用 90
第5章 并行端口模拟/数字转换实验 93
5.1 什么是A/D转换器 94
5.2 A/D转换器类型 96
5.3 A/D转换器芯片组 99
5.3.1 ADC0804的特性和规格 99
5.3.2 ADC0809的特性和规格 100
5.4 8位A/D转换电路设计 101
5.4.1 电路设计原理 101
5.4.2 Visual Basic程序设计 103
5.5 多信道A/D转换电路设计 105
5.5.1 ADC0804多信道电路设计 107
5.5.2 ADC0809多信道电路设计 110
5.6 电路设计注意事项 114
5.6.1 解决和降低噪声 114
5.6.2 信号调整 115
5.6.3 传感器接口 115
5.6.4 仪表放大器 116
第6章 并行端口数字/模拟转换实验 119
6.1 D/A转换器简介 119
6.1.1 D/A转换器的线性度 120
6.1.2 D/A转换器的分辨率 121
6.1.3 D/A转换器的精确度 121
6.1.4 D/A转换器的建立时间 121
6.2 D/A转换器类型 122
6.2.1 电流切换D/A转换器 122
6.2.2 加权电阻型D/A转换器 123
6.2.3 R-2R梯型D/A转换器 124
6.3 D/A转换器的应用和实现 126
6.3.1 D/A转换器——DAC0800 126
6.3.2 D/A转换器——AD558 129
第7章 ECP和EPP的特性 135
7.1 IEEE 1284标准 136
7.2 EPP——增强型并行端口 136
7.3 EPP寄存器接口 140
7.4 ECP——扩展功能并行端口 141
7.5 ECP硬件特性 142
7.6 ECP握手步骤 144
7.7 ECP软件及寄存器接口 146
第8章 EPP模式的应用设计 151
8.1 EPP并行端口的基本应用 151
8.1.1 硬件电路设计 153
8.1.2 Visual Basic程序设计 153
8.2 使用8255芯片组扩展EPP并行端口模式 156
8.3 并行端口连接8255芯片组的电路设计 162
8.3.1 硬件电路设计 162
8.3.2 Visual Basic程序设计 164
第9章 串行外围端口的基本概念 167
9.1 串行传输的格式和协议 167
9.2 通信的基本概念 169
9.3 RS-232C规格介绍 170
9.3.1 电气特性 171
9.3.2 连接器的机械特性 171
9.3.3 RS-232接口信号 174
9.4 RS-232常用的接线方式 175
9.4.1 虚拟(NULL)Modem的应用 177
9.4.2 回路(LOOPBACK)测试 178
9.5 RS-232数据格式 179
9.6 UART的概念 181
9.7 UART和RS-232的信号电平转换 183
9.8 PC主机的资源 184
第10章 RS-232 Visual Basic程序设计 191
10.1 基本概念 191
10.2 单信道A/D转换 196
10.2.1 单芯片微处理器端 197
10.2.2 PC主机端的Visual Basic程序 198
10.3 4信道RS-232串行传输 203
10.4 从并行端口转换到RS-232串行端口 207
第11章 RS-485串行接口的应用 211
11.1 RS-422和RS-485的基本概念 212
11.2 RS-232、RS-422和RS-485串行接口的比较 213
11.3 RS-422和RS-485串行接口标准 216
11.3.1 RS-422电气规定 216
11.3.2 RS-485电气规定 217
11.3.3 RS-422和RS-485的系统配置 219
11.3.4 RS-422/485的接地问题 221
11.3.5 RS-422和RS-485的瞬间保护 224
11.4 增加RS-485串行端口 225
11.5 RS-485串行传输的设计和应用 228
第12章 IrDA红外线传输接口 235
12.1 IrDA红外线通信简介 236
12.2 IrDA规范的差异 237
12.3 IrDA技术标准 238
12.4 IrDA的调变特性 239
12.5 IrDA技术规范 243
12.6 IrDA Control 247
12.7 Windows操作系统下的IrDA技术探讨 248
12.8 Windows操作系统的测试 249
第13章 IrDA红外线的接收和发射 251
13.1 硬件设计 251
13.1.1 IrDA收发器——HSDL3201 252
13.1.2 IrDA编码和解码器——HSDL7001 254
13.2 电路设计 259
13.3 Visual Basic程序设计 259
第14章 USB的基本架构和特性 263
14.1 什么是USB 264
14.2 如何安装USB设备 265
14.3 USB的总线结构 268
14.4 USB数据流的模式和引脚的概念 270
14.5 USB的传输类型 271
14.6 USB的连接器和缆线 274
14.6.1 机械结构 274
14.6.2 USB接口的电气特性 276
14.6.3 USB总线状态 277
14.6.4 USB的电源管理 281
14.7 USB的编码方式 282
14.8 USB接口的通信协议 283
14.8.1 字段格式 284
14.8.2 封包格式 286
14.8.3 数据事务格式 289
14.9 分割数据事务 293
14.10 USB描述符 295
14.11 USB的标准请求 298
14.12 设备群组 300
第15章 USB芯片组和外围设备的设计 303
15.1 USB芯片简介 303
15.2 USB接口芯片 305
15.3 包含USB单元的微处理器 309
15.4 USB 2.0微处理器和接口芯片组 311
15.5 USB芯片组的选择 314
15.6 USB外围设备和驱动程序 317
15.7 USB外围设备的开发重点 318
第16章 人性化接口设备群组的基本概念 321
16.1 HID群组简介 321
16.2 HID群组的特性和限制 322
16.3 HID群组的基本要求 323
16.4 HID群组的软件要求 324
16.5 识别HID群组 325
16.5.1 描述符的内容 326
16.5.2 启动接口 328
16.5.3 版本修订的兼容性 328
16.5.4 HID群组描述符 329
16.6 报告描述符 330
16.6.1 描述符工具 334
16.6.2 兼容测试程序 335
16.7 HID群组请求 336
第17章 USB应用程序的设计概念 339
17.1 主机通信的基本概念 339
17.2 主机如何发现设备 340
17.3 所需的API相关文件 341
17.4 HID设备驱动程序和DLL的特性 342
17.5 HID API函数 344
17.6 API函数和Visual Basic的基本概念 345
17.6.1 声明 347
17.6.2 ByRef和ByVal传递方式 349
17.6.3 传递空值 350
17.6.4 函数和子程序 350
17.6.5 DLL名称的使用 351
17.6.6 字符串格式 352
17.6.7 结构 352
17.6.8 如何调用API函数 353
第18章 API函数的基本介绍 355
18.1 Windows与HID设备通信的API函数 355
18.2 寻找所有的HID设备 356
18.2.1 返回HID群组的GUID——HidD_GetHidGuid函数 356
18.2.2 返回所有HID信息——SetupDiGetClassDevs函数 357
18.2.3 识别每一个HID接口——SetupDiEnumDeviceInterfaces函数 358
18.2.4 返回设备的路径——SetupDiGetDeviceInterfaceDetail函数 359
18.2.5 返回设备的句柄——CreateFile函数 361
18.2.6 返回厂商和产品ID——HidD_GetAttributes函数 362
18.3 检查HID设备功能 363
18.3.1 返回包含设备特征的缓冲区指针——HidD_GetPreparsedData函数 363
18.3.2 返回设备的特征——HidP_GetCaps函数 364
18.3.3 返回设备的数值特征——HidP_GetValueCaps函数 365
18.4 读取和写入数据 366
18.4.1 向设备传送输出报告——WriteFile函数 367
18.4.2 从设备读取输入报告——ReadFile函数 368
18.4.3 传送特征报告给设备——HidD_SetFeature函数 370
18.4.4 从设备读取特征报告——Get_Feature函数 370
18.5 关闭通信——CloseHandle函数 371
第19章 USB接口应用程序设计 373
19.1 HID API函数的引用 373
19.2 打开HID设备的通信步骤 381
19.3 Visual Basic窗体程序设计 382
19.3.1 返回HID群组的GUID——HidD_GetHidGuid函数 385
19.3.2 返回所有HID信息——SetupDiGetClassDevs函数 386
19.3.3 识别每一个HID接口——SetupDiEnumDeviceInterfaces函数 387
19.3.4 返回设备的路径——SetupDiGetDeviceInterfaceDetail函数 388
19.3.5 返回设备的句柄——CreateFile函数 390
19.3.6 返回厂商和产品ID——HidD_GetAttributes函数 391
19.3.7 返回包含设备特征的缓冲区指针——HidD_GetPreparsedData函数 392
19.3.8 返回设备的特征——HidP_GetCaps函数 393
19.3.9 返回设备的数值特征——HidP_GetValueCaps函数 395
19.3.10 向设备传送输出报告——WriteFile函数 395
19.3.11 从设备读取输入报告——ReadFile函数 397
19.4 完整的测试程序 398
第20章 动态链接库(DLL)文件的设计和制作 399
20.1 DLL文件的设计方法和步骤 399
20.2 多个USB设备控制的DLL设计 410
20.3 单个字节传输的DLL设计 413
第21章 USB I/O控制设计——应用CY7C63101芯片组 415
21.1 USB外围设备设计 415
21.2 CY7C63x系列芯片组介绍 417
21.3 USB外围设备的程序设计 420
21.3.1 固化程序代码设计 420
21.3.2 应用程序设计——使用Visual Basic 421
第22章 USB I/O控制设计——应用EZ-USB(FX)芯片组 427
22.1 USB外围设备的硬件设计 427
22.2 设备列举和重新设备列举 429
22.3 固化程序代码的下载功能 431
22.3.1 固化程序代码下载的设备要求 431
22.3.2 重新设备列举的模式 432
22.4 固化程序代码的下载程序 434
22.4.1 控制平台的烧录方式 436
22.4.2 EEPROM数据的回复和烧录 437
22.4.3 重新设备列举 440
22.5 应用程序设计——使用Visual Basic 440
22.6 多个HID设备与单个字节的控制程序设计 444
第23章 USB I/O控制设计——应用PDIUSBD11芯片组 447
23.1 PDIUSBD11简介 447
23.2 USB外围设备设计 450
23.3 应用程序设计——使用Visual Basic 452