《8051单片机USB接口Visual Basic程序设计》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:许永和编著
  • 出 版 社:北京:北京航空航天大学出版社
  • 出版年份:2007
  • ISBN:7810774794
  • 页数:487 页
图书介绍:本书介绍USB 1.1与2.0规范的差异,以及相关新增的USB规范和协议。以Visual Basic程序设计来设计USB界面的外围设备,提供简易的程序范例,让读者能够快速地学习,包含了基本的输入/输出实验,如LED、指拨开关、LCD、LCG、七段显示器、步进电机以及A/D与D/A转换器等范例练习。本书利用Cypress EZ-USB FX芯片组系列,让读者轻松地切入USB外围设备设计。本书配光盘1张,内含范例程序以及相关资料。

第1章 USB的基本结构与特性 1

1.1 USB的基本概念 1

1.2 USB的开发历程 3

1.2.1 USB 1.1 3

1.2.2 USB 2.0 3

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信号状态与编码方式 27

2.1 差动信号 27

2.2 USB的编码方式 28

2.3 USB总线状态 30

2.3.1 低速与全速的总线状态 30

2.3.2 高速的总线状态 32

2.4 问题与讨论 36

第3章 USB通信协议 37

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的传输类型 66

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章 设备列举 92

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芯片介绍 137

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 Freescale 145

6.3.2 Microchip 146

6.3.3 SIEMENS 147

6.3.4 Cypress 148

6.4 USB芯片总览介绍 150

6.5 USB芯片的选择与评估 152

6.6 问题与讨论 153

第7章 设备与驱动程序 154

7.1 层式的驱动程序 154

7.2 主机的驱动程序 156

7.3 驱动程序的选择 160

7.4 USB外围设备的开发与设计 161

7.5 结论 162

7.6 问题与讨论 162

第8章 HID群组 163

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简介 188

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应用程序 209

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函数的基本介绍 229

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接口程序设计 250

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 取得设备的路径——SetupDiGetDeviceInterface-Detail()函数 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章 EZ-USB FX简介 288

13.1 USB特性概述 288

13.2 EZ-USB FX硬件框图 289

13.3 USB核心 291

13.4 EZ-USB FX单片机 292

13.5 EZ-USB FX端点 293

13.5.1 EZ-USB FX批量端点 293

13.5.2 EZ-USB FX控制端点0 294

13.5.3 EZ-USB FX中断端点 294

13.5.4 EZ-USB FX等时端点 294

13.6 硬件规范与引脚 295

第14章 USB开发工具组的使用与操作 295

14.1 工具组的介绍 296

14.2 DMA-USB FX开发系统 297

14.2.1 DMA-USB FX开发系统及外围整体环境介绍 301

14.2.2 DMA-USB FX开发系统与PC连接软件介绍 301

14.2.3 DMA-USB FX硬件功能介绍 302

14.2.4 DMA-USB FX开发系统配件及硬件需求 307

14.3 USB通用实验器系统介绍 307

14.4 USB简易I/O实验板系统 311

14.5 DMA-USB 2131控制单板 313

14.5.1 DMA-USB 2131控制单板外围整体环境介绍 313

14.5.2 DMA-USB 2131控制单板硬件功能介绍 315

14.6 EZ-USB FX驱动程序安装 317

14.7 控制平台应用环境基本操作 319

14.8 EZ-USB控制平台总览 321

14.8.1 主界面 322

14.8.2 热插拔新的USB设备 323

14.8.3 各种工具栏的使用 324

14.8.4 故障排除 327

14.8.5 控制平台的进阶操作 328

14.9 DMA-USB FX开发系统测试软件及工具 328

第15章 EZ-USB FX设备列举与重新设备列举 328

15.1 设备列举与重新设备列举概述 331

15.2 预设的USB设备 336

15.3 USB核心对于EP0设备请求的响应 339

15.4 固件下载 341

15.5 设备列举模式 342

15.6 不存在EEPROM 343

15.7 存在EEPROM,第一个字节是0xB0(0xB4,FX系列) 344

15.8 存在EEPROM,第一个字节是0xB2(0xB6,FX系列) 345

15.9 重新设备列举 348

15.10 控制平台的制造商要求测试 349

第16章 LED显示器输出实验 354

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输出实验范例一 370

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输出实验范例二 385

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章 步进电机输出实验 400

19.1 硬件设计与基本概念 400

19.1.1 1相激磁 401

19.1.2 2相激磁 402

19.1.3 1-2相激磁 402

19.1.4 PMM8713介绍 403

19.2 固件程序代码的EEPROM烧录程序 407

19.3 INF安装信息文件的编写 407

19.4 Visual Basic程序代码设计 409

19.5 问题与讨论 411

第20章 I2C接口输入/输出实验 412

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转换器实验 420

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与RS-232串行通信 437

22.1 通信概念 437

22.2 传输设备 438

22.3 RS-232-C接口 440

22.4 RS-232-C常用的接线方式 441

22.5 RS-232-C数据格式 441

22.6 UART与RS-232-C的信号准位转换 444

22.7 硬件设计 445

22.8 固件程序代码的EEPROM烧录程序 445

22.9 INF安装信息文件的编写 446

22.10 Visual Basic程序代码设计 448

22.11 RS-232串行接口的程序设计 449

22.11.1 通信工具组件的引用 449

22.11.2 通信应用程序的编写 450

22.11.3 通信测试 454

22.12 USB转换RS-232串行通信 456

22.13 问题与讨论 462

第23章 Visual Basic集成应用程序设计 462

23.1 NI Measurement Studio 463

23.2 Measurement Studio for Visual Basic的引用 466

23.3 整合应用程序的编写 466

23.4 应用程序的执行 475

23.5 问题与讨论 476

附录 477

附录A EZ-USB 2100系列 477

附录B EZ-USB W2K.INF安装信息文件的内容 484