《USB 2.0原理与工程开发》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:李英伟等编著
  • 出 版 社:北京:国防工业出版社
  • 出版年份:2007
  • ISBN:7118048518
  • 页数:473 页
图书介绍:本书介绍USB2.0总线规范、USB设备驱动程序的开发等。

第1章 USB概述 1

1.1 USB的产生 1

1.1.1 背景 1

1.1.2 USB的特点 2

1.1.3 USB的发展历史及前景展望 4

1.2 USB系统描述 5

1.2.1 USB主机 5

1.2.2 USB设备 6

1.2.3 USB的连接 7

1.3.1 USB主控制器芯片 10

1.3 USB接口芯片 10

1.3.2 USB集线器芯片 11

1.3.3 USB功能设备芯片 12

1.4 USB系统的开发 13

1.4.1 选择芯片 14

1.4.2 开发环境 15

1.4.3 设计调试 16

第2章 USB系统 17

2.1 USB系统的结构 17

2.1.1 USB主机 17

2.1.2 USB设备 20

2.2.1 功能层 23

2.2 USB系统的分层 23

2.2.2 USB设备层 24

2.2.3 USB总线接口层 25

2.3 USB通信流 27

2.3.1 USB传输管理 27

2.3.2 传输中的事务处理 27

第3章 USB信号和电源 30

3.1 USB信号 30

3.1.1 USB信号的发送 30

3.1.2 USB信号的接收 32

3.1.3 高速USB信号的眼图 33

3.1.4 USB设备速度的识别 35

3.1.5 USB信号状态 37

3.2 USB电源 44

3.2.1 电源分配 44

3.2.2 电源管理 45

第4章 USB事务处理 46

4.1 字段的格式 46

4.1.1 同步字段(SYNC) 46

4.1.2 包标识字段(PID) 47

4.1.3 地址字段(ADDR) 47

4.1.4 端点字段(ENDP) 48

4.1.5 帖号字段 49

4.1.6 数据字段 49

4.1.7 CRC字段 49

4.2 信息包的格式 50

4.2.1 令牌包 50

4.2.2 数据包 52

4.2.3 握手包 53

4.3 事务处理 54

4.3.1 IN事务处理 54

4.3.3 PING事务处理 55

4.3.2 OUT事务处理 55

4.3.4 SETUP事务处理 56

4.3.5 SOF事务处理 57

4.3.6 SPLIT事务处理 57

4.3.7 PRE事务处理 59

第5章 USB数据传输 61

5.1 状态机制 61

5.1.1 主控制器状态机制 62

5.1.2 设备状态机制 62

5.2 传输类型 65

5.2.1 块传输 66

5.2.2 中断传输 73

5.2.3 同步传输 77

5.2.4 控制传输 82

5.3 差错控制 88

5.3.1 信息包错误控制机制 88

5.3.2 总线超时控制机制 89

5.3.3 EOP错误控制机制 91

5.3.4 数据触发机制 92

5.3.5 串扰和活动丢失控制机制 94

第6章 USB设备 96

6.1 设备状态 96

6.1.2 上电状态 97

6.1.1 连接状态 97

6.1.3 缺省状态 98

6.1.4 地址状态 98

6.1.5 配置状态 98

6.1.6 挂起状态 98

6.2 总线列举 99

6.2.1 USB设备的连接 99

6.2.2 USB设备的断开 101

6.3 描述符 101

6.3.1 设备描述符(Device) 102

6.3.2 设备限定描述符(Device_Qualifier) 103

6.3.3 配置描述符(Configuration) 104

6.3.4 其它速率配置描述符(Other_Speed_Configuration) 105

6.3.5 接口描述符(Interface) 105

6.3.6 端点描述符(Endpoint) 107

6.3.7 字符串描述符(String) 108

6.4 设备请求 108

6.4.1 GetStatus请求 109

6.4.2 ClearFeature请求 111

6.4.3 SetFeature请求 111

6.4.5 GetDescriptor请求 112

6.4.4 SetAddress请求 112

6.4.6 SetDescriptor请求 113

6.4.7 GetConfiguration请求 113

6.4.8 SetConfiguration请求 114

6.4.9 GetInterface请求 114

6.4.10 SetInterface请求 114

6.4.11 SynchFrame请求 115

第7章 USB主机 116

7.1 USB主机的结构 116

7.2 客户软件 117

7.3 USB系统软件 117

7.3.1 配置设备 118

7.3.2 资源管理 119

7.3.3 数据传输 119

7.4 USB主控制器驱动程序 119

7.5 USB总线驱动程序 120

7.5.1 命令机制 121

7.5.2 管道机制 122

7.6 USB主控制器 123

第8章 USB设备类 125

8.1 设备类的定义 125

8.2.1 集线器的结构 126

8.2 集线器设备类 126

8.2.2 集线器设备类描述符 129

8.2.3 集线器的标准USB描述符 130

8.2.4 集线器设备类请求 131

8.3 HID设备类 132

8.3.1 HID概述 132

8.3.2 HID设备类描述符 134

8.3.3 HID设备类请求 141

第9章 USB设备驱动程序开发基础 144

9.1 WDM概述 144

9.2.2 驱动程序的分层 145

9.2.1 驱动程序的种类 145

9.2 WDM驱动程序的分层 145

9.2.3 USB驱动程序栈 147

9.2.4 设备对象和设备栈 149

9.2.5 USB设备栈 150

9.3 WDM内核模式对象 152

9.3.1 I/O请求包(IRP) 152

9.3.2 驱动程序对象 156

9.3.3 设备对象 157

9.4 WDM驱动程序的组成 159

9.3.4 设备扩展 159

9.4.1 驱动程序入口例程(DriverEntry) 160

9.4.2 即插即用例程 160

9.4.3 分发例程 164

9.4.4 电源管理例程 165

9.4.5 卸载例程 168

第10章 USB设备即插即用的实现 169

10.1 即插即用体系结构 169

10.2 即插即用设备状态 171

10.3 启动设备 172

10.3.1 功能驱动程序启动设备 172

10.3.3 总线驱动程序启动设备 173

10.3.2 过滤驱动程序启动设备 173

10.3.4 USB设备的添加和启动 174

10.4 停止设备 179

10.4.1 停止设备的处理过程 179

10.4.2 处理IRP_MN_STOP_DEVICE IRP 180

10.5 删除设备 181

10.5.1 删除设备的处理过程 181

10.5.2 处理IRP_MN_REMOVE_DEVICE IRP 183

10.6 PnP IRP及其处理规则 185

10.6.1 PnP IRP 185

10.6.2 PnP IRP的处理规则 186

10.6.3 沿设备栈向下传递PnP IRP 187

10.6.4 推迟PnP IRP的处理直至其下层驱动程序处理完毕 188

第11章 USB设备驱动程序编程接口 192

11.1 USBDI概述 192

11.1.1 USBDI的定义 192

11.1.2 USBDI的通信管理 193

11.2 URB 194

11.2.1 URB的结构 194

11.2 _URB_HEADER的结构 195

11.3 USBDI接口函数 198

11.4 USB设备的配置 200

11.4.1 读取USB描述符 201

11.4.2 为USB设备选择一个配置 204

11.5 USB设备的数据传输 206

11.5.1 USB块传输和中断传输 207

11.5.2 USB同步传输 207

11.5.3 USB控制传输 208

第12章 USB设备驱动程序开发环境 210

12.1 系统环境设置 210

12.2 BUILD工具 212

12.2.1 环境变量 213

12.2.2 sources文件 213

12.2.3 dirs文件 215

12.2.4 makefile文件 216

12.2.5 构造日志文件 216

12.2.6 BUILD工具的调用 216

12.2.7 NMAKE工具 217

12.3 Visual C++开发环境设置 218

12.3.1 Makefile项目 218

12.3.2 DrvBuild.bat批处理文件 221

12.3.3 注意事项 222

12.3.4 USB设备驱动程序开发框架 223

12.4 USB设备驱动程序的安装 223

12.4.1 安装过程 224

12.4.2 INF文件 228

第13章 三种常用USB接口芯片 240

13.1 CY7C630/1xxA 240

13.1.1 芯片结构 240

13.1.2 存储器 241

13.1.3 复位 243

13.1.4 通用I/O端口(GPIO) 244

13.1.5 中断 245

13.1.6 USB引擎 247

13.1.7 CY7C63001A的编程 250

13.1.8 CY7C63001A的开发者工具包 253

13.1.9 CY7C63001A的EPROM编程器 256

13.2 EZ-USB 257

13.2.1 芯片结构 257

13.2.2 增强型8051CPU 260

13.2.3 存储空间 262

13.2.4 I/O系统 264

13.2.5 列举和重列举 266

13.2.6 USB中断 270

13.3 EZ-USB FX2 273

13.3.1 芯片结构 273

13.3.2 增强型8051CPU 276

13.3.3 存储空间 279

13.3.4 I/O系统 281

13.3.5 列举和重列举 284

第14章 USB接口温度控制器 288

14.1 系统概述 288

14.2 系统硬件设计 289

14.3 芯片固件程序 290

14.3.1 63001.inc 290

14.2.2 功能单元电路 290

14.2.1 USB接口电路 290

14.3.2 DS1620.inc 291

14.3.3 USB.asm 292

14.3.4 DS1620.asm 305

14.4 设备驱动程序 306

14.4.1 通用结构定义 306

14.4.2 DriverEntry例程 308

14.4.3 AddDevice例程 308

14.4.4 IRP_MJ_PNP处理例程 310

14.4.5 分发例程 321

14.4.6 电源管理例程 325

14.5 Win32应用程序 327

14.4.7 卸载例程 327

14.5.1 Modulel模块 328

14.5.2 Forml窗体 331

第15章 RS232-USB转换器 335

15.1 系统概述 335

15.2 系统硬件设计 336

15.2.1 USB接口电路 337

15.2.2 功能单元电路 337

15.3 芯片固件程序 337

15.3.1 Ram.inc 338

15.3.2 Hiduart.asm 339

15.3.3 Usbcode.asm 343

15.4 Win32应用程序 350

15.4.1 连接按钮 351

15.4.2 接收线程 353

15.4.3 发送按钮 354

15.4.4 组合框 355

15.4.5 断开按钮 356

第16章 USB接口波形发生器 357

16.1 系统概述 357

16.2 系统硬件设计 358

16.2.3 波形输出单元 360

16.2.2 DDFS控制单元 360

16.2.1 USB接口单元 360

16.3 芯片固件程序 361

16.3.1 testregs.h和testregs.inc 361

16.3.2 testheader.h 362

16.3.3 dscrptr.a51 362

16.3.4 delayms.a51 363

16.3.5 jmptable.a51 363

16.3.6 main.c 364

16.3.7 function.c 369

16.4 设备驱动程序 371

16.4.1 loaderwave.sys 372

16.4.2 usbwave.sys 377

16.5 Win32应用程序 382

16.5.1 波形选择组按钮 383

16.5.2 输出控制组按钮 385

16.5.3 USB组按钮 387

第17章 USB接口数字示波器 388

17.1 系统概述 388

17.2 系统硬件设计 389

17.2.2 控制信号产生单元 391

17.2.3 USB接口单元 391

17.2.1 数据采集单元 391

17.3 芯片固件程序 392

17.3.1 dscrptr.a51 392

17.3.2 main..c 392

17.3.3 function.c 393

17.4 设备驱动程序 396

17.4.1 loadergraph.sys 396

17.4.2 usbgraph.sys 396

17.5 Win32应用程序 398

17.5.1 采集控制组按钮 399

17.5.2 开关量输出组按钮 401

17.5.3 USB组按钮 402

第18章 USB2.0接口频谱分析仪 404

18.1 系统概述 404

18.2 系统硬件设计 405

18.2.1 信号预处理单元 407

18.2.2 AD采集&FFT运算单元 407

18.2.3 USB接口单元 407

18.3 芯片固件程序 408

18.3.1 testregs.h和testregs.inc 408

18.3.2 testheader.h 409

18.3.3 testdly.h 409

18.3.4 dscrptr.a51 410

18.3.5 delayms.a51 411

18.3.6 jmptable.a51 412

18.3.7 main.c 413

18.3.8 function.c 417

18.4 设备驱动程序 419

18.4.1 loaderfft.sys 419

18.4.2 usbfft.sys 420

18.5 Win32应用程序 421

18.5.1 分析控制组按钮 422

18.5.2 USB组按钮 425

19.1 系统概述 428

第19章 USB2.0接口逻辑分析仪 428

19.2 系统硬件设计 429

19.2.1 电压比较单元 431

19.2.2 控制信号产生单元 431

19.2.3 USB接口单元 431

19.3 芯片固件程序 432

19.3.1 function.c 432

19.3.2 gpif.c 434

19.4 设备驱动程序 436

19.4.1 loaderlogic.sys 436

19.4.2 usblogic.sys 437

19.5 Win32应用程序 438

19.5.1 分析控制组按钮 439

19.5.2 USB组按钮 440

第20章 USB2.0接口数据采集卡 442

20.1 系统概述 442

20.2 系统硬件设计 443

20.2.1 数据采集单元 445

20.2.2 控制信号产生单元 445

20.2.3 USB接口单元 445

20.3.1 function.c 446

20.3 芯片固件程序 446

20.3.2 gpif.c 449

20.4 设备驱动程序 450

20.4.1 loadersample.sys 450

20.4.2 usbsample.sys 451

20.5 Win32应用程序 452

20.5.1 采集控制组按钮 453

20.5.2 USB组按钮 455

附录A CY7C63001A寄存器 457

附录B EZ-USB寄存器 458

附录C EZ-USB FX2寄存器 463

附录D 关于光盘 472