图书介绍

圈圈教你玩USB 第2版pdf电子书版本下载

圈圈教你玩USB  第2版
  • 刘荣编著 著
  • 出版社: 北京:北京航空航天大学出版社
  • ISBN:9787512410923
  • 出版时间:2013
  • 标注页数:403页
  • 文件大小:508MB
  • 文件页数:419页
  • 主题词:USB总线-串行接口

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快] 温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页 直链下载[便捷但速度慢]   [在线试读本书]   [在线获取解压码]

下载说明

圈圈教你玩USB 第2版PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如 BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 USB概述及协议基础 1

1.1 USB是什么 1

1.2 USB的特点 1

1.3 USB的拓扑结构 2

1.4 USB的电气特性 5

1.5 USB的线缆、插头及插座 6

1.6 USB的插入检测机制 8

1.7 USB的描述符及其之间的关系 10

1.8 USB设备的枚举过程 11

1.9 USB的包结构及传输过程 13

1.9.1 USB的包结构及包的分类 13

1.9.2 令牌包 15

1.9.3 数据包 16

1.9.4 握手包 17

1.9.5 特殊包 17

1.9.6 如何处理数据包 18

1.10 USB的四种传输类型 19

1.10.1 USB事务 19

1.10.2 批量传输 19

1.10.3 中断传输 21

1.10.4 等时传输 22

1.10.5 控制传输 23

1.10.6 端点类型与传输类型的关系 23

1.10.7 传输类型与端点支持的最大包长 24

1.11 本章小结 24

第2章 硬件系统设计 25

2.1 方案及芯片的选定 25

2.2 D12引脚功能说明 26

2.3 D12与AT89S52的连接 30

2.4 串口部分电路 32

2.5 按键部分 34

2.6 指示灯部分 34

2.7 IDE接口部分 35

2.8 单片机部分 35

2.9 元件安装 35

2.10 电路调试 38

2.11 测试程序的编写和调试 39

2.11.1 建立一个工程 40

2.11.2 为工程添加源文件 41

2.11.3 KEIL工具栏及仿真介绍 43

2.11.4 按键驱动的编写 46

2.11.5 串口驱动的编写 52

2.11.6 PDIUSBD12读写函数及读ID的实现 57

2.1 2 本章小结 61

第3章 USB鼠标的实现 62

3.1 USB鼠标工程的建立 62

3.2 USB的断开与连接 62

3.3 USB中断的处理 66

3.4 读取从主机发送到端点0的数据 67

3.5 USB标准请求 74

3.5.1 USB标准设备请求的结构 74

3.5.2 GET_DESCRIPTOR请求 76

3.5.3 SET_ADDRESS请求 77

3.5.4 SET_CONFIGURATION请求 78

3.6 设备描述符的实现 78

3.7 设备描述符的返回 82

3.8 设置地址请求的处理 92

3.9 配置描述符集合的结构 94

3.9.1 配置描述符的结构 94

3.9.2 接口描述符的结构 95

3.9.3 端点描述符的结构 96

3.9.4 HID描述符的结构 96

3.10 配置描述符集合的实现以及返回 97

3.11 字符串及语言ID请求的实现 101

3.12 设置配置请求的实现 107

3.13 报告描述符的结构及实现 110

3.14 报告的返回 116

3.15 Bus Hound工具的简介 120

3.16 本章小结 122

第4章 USB键盘的实现 123

4.1 USB键盘工程的建立 123

4.2 设备描述符的实现 123

4.3 配置描述符集合的实现 124

4.3.1 配置描述符 125

4.3.2 接口描述符 125

4.3.3 HID描述符 125

4.3.4 端点描述符 125

4.4 字符串描述符 128

4.5 报告描述符 128

4.6 输入和输出报告的实现 131

4.7 USB键盘实例的测试 134

4.8 再谈USB HID的报告描述符 136

4.9 带鼠标功能的USB键盘(方法一) 138

4.10 带鼠标功能的USB键盘(方法二) 144

4.11 多媒体USB键盘 152

4.12 本章小结 157

第5章 用户自定义的USB HID设备 158

5.1 MyUsbHid工程的建立 158

5.2 描述符的修改 158

5.3 报告的实现 160

5.4 对用户自定义的USB HID设备的访问 162

5.5 访问HID设备时所用到的相关函数 163

5.5.1 获取HID设备的接口类GUID的函数 163

5.5.2 获取指定类的所有设备信息集合的函数 163

5.5.3 从设备信息集合中获取一个设备接口信息的函数 164

5.5.4 获取指定设备接口详细信息的函数 165

5.5.5 打开设备的函数 166

5.5.6 获取HID设备属性的函数 167

5.5.7 从设备读取数据的函数 167

5.5.8 往设备写数据的函数 168

5.5.9 通过控制端点0读取报告的函数 168

5.5.10 通过控制端点0发送报告的函数 168

5.5.11 关闭句柄的函数 169

5.5.12 需要包含的库文件 169

5.6 访问USB HID设备的上位机软件的实现 169

5.6.1 上位机程序编写的思路 169

5.6.2 查找及打开HID设备的代码 170

5.6.3 读输入报告线程的代码 175

5.6.4 写输出报告的代码(发送LED的状态) 178

5.6.5 写输出报告线程的代码 180

5.6.6 线程的创建以及设备插拔事件的注册 181

5.6.7 对设备状态改变事件的处理 182

5.7 软件界面以及使用方法 183

5.8 本章小结 184

第6章 USB转串口 185

6.1 串口家族历史 185

6.2 串口接头的引脚分布及功能 185

6.3 USB转串口的实现方法 186

6.4 设备描述符 187

6.5 字符串描述符 188

6.6 配置描述符集合 189

6.6.1 配置描述符 189

6.6.2 CDC接口描述符 189

6.6.3 类特殊接口描述符——功能描述符 190

6.6.4 接口0(CDC接口)的端点描述符 192

6.6.5 数据类接口的接口描述符 192

6.6.6 接口1(数据类接口)的端点描述符 193

6.6.7 修改好描述符后的测试 194

6.7 类请求的实现 196

6.7.1 GET_LINE_CODING请求 196

6.7.2 SERIAL_STATE通知 197

6.7.3 SET_CONTROL_LINE_STATE请求 198

6.7.4 SET_LINE_CODING请求 198

6.7.5 实现类请求后的测试 200

6.8 对串口数据的处理 201

6.9 安装驱动用的inf文件 207

6.10 本章小结 210

第7章 USB MIDI键盘 211

7.1 MIDI简介 211

7.2 MIDI的工作原理 212

7.3 USB MIDI设备的数据流模型 212

7.4 设备描述符 213

7.5 配置描述符集合 213

7.5.1 配置描述符 213

7.5.2 音频控制接口描述符 213

7.5.3 类特殊音频控制接口描述符 214

7.5.4 MIDI流接口描述符 214

7.5.5 类特殊MIDI流接口描述符 215

7.5.6 端点描述符和类特殊端点描述符 219

7.5.7 字符串描述符 221

7.6 修改好描述符后的测试 221

7.7 USB MIDI键盘的数据返回 222

7.8 USB MIDI键盘的使用 225

7.9 单片机自动弹奏的实现 227

7.10 本章小结 227

第8章 U盘 228

8.1 USB大容量存储设备 228

8.2 设备描述符 228

8.3 字符串描述符 229

8.4 配置描述符集合 229

8.4.1 配置描述符 229

8.4.2 接口描述符 229

8.4.3 端点描述符 230

8.5 测试 230

8.6 类特殊请求 231

8.6.1 Get Max LUN请求 231

8.6.2 Bulk-Only Mass Storage Reset请求 232

8.7 仅批量传输协议的数据流模型 232

8.7.1 命令块封包CBW的结构 233

8.7.2 命令状态封包CSW的结构 234

8.7.3 对批量数据的处理 234

8.8 SCSI命令集和UFI命令集 234

8.8.1 查询命令INQUIRY 235

8.8.2 读格式化容量命令READ FORMAT CAPACITIES 237

8.8.3 读容量命令READ CAPACITY 238

8.8.4 READ(10)命令 239

8.8.5 WRITE(10)命令 240

8.8.6 REQUESTSENSE命令 241

8.8.7 TEST UNIT READY命令 242

8.9 FAT文件系统 242

8.9.1 关于DBR 243

8.9.2 关于FAT表 245

8.9.3 关于目录项 246

8.10 模拟一个FAT16文件系统 247

8.11 实验结果 248

8.12 IDE转USB的实现 250

8.13 本章小结 251

第9章 自定义USB设备及驱动开发 252

9.1 用户自定义USB设备 252

9.1.1 设备描述符 252

9.1.2 配置描述符集合 252

9.1.3 字符串描述符 252

9.1.4 数据的处理 253

9.2 驱动程序开发简介 253

9.3 WDM驱动开发编程环境的建立 253

9.4 创建一个USB WDM驱动程序 255

9.5 对工程的编译 264

9.6 关于inf文件 265

9.7 驱动程序的修改 266

9.7.1 Read(KIrp I)函数 267

9.7.2 Write(KIrp I)函数 270

9.7.3 EP1_READ_Handler(KIrp I)函数 271

9.7.4 EP1_WRITE_Handler(KIrp I)函数 273

9.7.5 EP2_READ_Handler(KIrp I)函数 273

9.7.6 EP2_WRITE_Handler(KIrp 1)函数 274

9.8 驱动的安装及安装后的信息 274

9.9 应用程序对驱动的访问 277

9.10 测试软件的使用 279

9.11 本章小结 281

第10章 USB过滤驱动开发 282

10.1 过滤驱动简介 282

10.2 使用DS创建一个下层过滤驱动 282

10.3 过滤驱动代码的修改 287

10.4 过滤驱动的安装 292

10.5 过滤驱动的卸载 294

10.6 驱动程序测试 296

10.7 本章小结 299

第11章 USB触摸屏设备 300

11.1 UsbTouchScreen工程的建立 300

11.2 描述符的修改 300

11.3 报告的实现 304

11.4 测试 309

11.5 WIN7下的多点触摸 309

11.6 多点触摸和单点触摸模式的切换 312

11.7 多点触摸的报告描述符实现 312

11.8 多点触摸报告的实现 320

11.9 多点触摸在WIN7下的测试 332

11.10 本章小结 334

第12章 移植到AVR单片机上 335

12.1 AT90USB162芯片介绍 335

12.2 硬件抽象层的移植 336

12.3 main.c和 usbcore.c的修改 346

12.4 USB鼠标的移植 350

12.5 本章小节 350

第13章 移植到ARM微控制器上 351

13.1 AT91 SAM7S64芯片介绍 351

13.2 硬件抽象层的移植 351

13.3 main.c和usbcore.c的修改 362

13.4 其他几个例子的移植 364

13.5 本章小节 364

第14章 更多USB设备的实现 365

14.1 真U盘的实现 365

14.2 USB读卡器的实现 371

14.3 USB音频频谱显示 381

14.4 USB声卡的实现 392

14.5 本章小节 395

附录 第3章实例的完整调试信息 396

参考文献 402

后记 403

精品推荐