当前位置:在线查询网 > 在线百科全书查询 > USB开发大全

USB开发大全_在线百科全书查询


请输入要查询的词条内容:

USB开发大全




出版信息


ISBN:9787115259554

定价:55.00元

作者:[美]Jan Axelson 著

译者:李鸿鹏 郑瑞霞 陈香凝 张铮

出版社:人民邮电出版社

出版时间:2011年01月

开本:16开

装帧:平装

字数:483千字

页数:314页

供货商:人民邮电出版社

开卷分类:计算机

内容简介


《USB开发大全(第4版)》介绍了有关通用串行总线(Universal Serial Bus,USB)的工作方式、设备硬件及软件编程等方面的知识和工程实例,内容大致可分为4个方面。第一,阐述USB协议,包括基本常识、设备枚举、传输过程、设备类、主机通信方式以及总线状态等。读者通过学习,可迅速掌握USB接口的工作原理和组织结构。第二,详细地介绍了USB硬件,从控制器芯片的选择、电源供给、集线器原理,到线缆的电气和机械特性,几乎涵盖USB硬件的全部技术细节。第三,讨论了USB的程序编写,涉及设备固件和驱动,重点阐述了HID设备类驱动程序的开发,并给出了在厂商专属设备上应用WinUSB的方法。第四,作者也关注了几种开发工具的使用。本书在组织上真正做到了协议、硬件、软件、工具的完美结合,对4方面的论述渗透全书。

《USB开发大全(第4版)》融会作者在该领域丰富的工作经验和设计实例,在规范与工程实际间搭起了桥梁。它是USB软硬件的开发指南,一本无可替代的工具书。新版本与时俱进地增加了USB 3.0协议及其超高速总线的内容。

目录


第1章 USB基础 1

1.1 USB的用途和局限 1

1.1.1 给用户带来的好处 1

1.1.2 给开发者带来的好处 3

1.1.3 USB不能做什么 5

1.1.4 USB与Ethernet 7

1.1.5 USB与IEEE-1394 7

1.2 USB接口的发展演变 7

1.2.1 USB 1.0 7

1.2.2 USB 1.1 8

1.2.3 USB 2.0 8

1.2.4 USB 3.0 9

1.2.5 USB On-The-Go 9

1.2.6 无线USB 9

1.3 总线组成部分 10

1.3.1 拓扑结构 10

1.3.2 关于总线速率的考虑 11

1.3.3 术语 12

1.4 分割工作 13

1.4.1 主机的责任 13

1.4.2 设备的职责 14

1.4.3 总线速率和数据吞吐量 15

1.5 开发设备 16

1.5.1 组件 16

1.5.2 开发工具 16

1.5.3 工程开发的步骤 16

1.6 USB 3.0常见问题 17

1.6.1 功能 17

1.6.2 兼容性 18

1.6.3 线缆 19

1.6.4 电源和功耗 20

第2章 深入USB传输 21

2.1 传输的基础 21

2.1.1 传输要素 21

2.1.2 通信的目的 22

2.1.3 管理总线上的数据 22

2.2 传输要素 23

2.2.1 端点:数据的来源和数据接收端 23

2.2.2 事务类型 23

2.2.3 管道:将端点连接到主机 24

2.2.4 传输类型 24

2.2.5 流管道和消息管道 25

2.2.6 发起传输 25

2.3 USB 2.0事务 26

2.3.1 事务步骤 27

2.3.2 信息包的顺序 29

2.3.3 时间约束和保证 29

2.3.4 分割事务 29

2.4 保证传输成功 30

2.4.1 状态与控制 30

2.4.2 报告控制传输的状态 32

2.4.3 错误检查 32

2.5 超高速事务 34

2.5.1 信息包类型 34

2.5.2 数据传输 36

2.5.3 连接管理信息包 38

第3章 通用的传输类型 39

3.1 控制传输 39

3.1.1 可用性 39

3.1.2 结构 39

3.1.3 数据大小 44

3.1.4 速度 44

3.1.5 错误的检测与处理 45

3.1.6 设备的职责 45

3.2 批量传输 45

3.2.1 可用性 46

3.2.2 结构 46

3.2.3 数据大小 48

3.2.4 速率 48

3.2.5 错误的检测和处理 48

3.2.6 设备的职责 48

3.3 中断传输 49

3.3.1 可用性 49

3.3.2 结构 49

3.3.3 数据大小 50

3.3.4 速率 50

3.3.5 错误的检测和处理 51

3.3.6 设备的职责 51

3.4 等时传输 51

3.4.1 可用性 52

3.4.2 结构 52

3.4.3 数据大小 54

3.4.4 速度 54

3.4.5 错误的检测和处理 55

3.4.6 设备的职责 55

3.5 更多关于时间关键传输的内容 55

3.5.1 总线带宽 55

3.5.2 设备性能 56

3.5.3 主机性能 56

3.5.4 主机等待时间 56

第4章 枚举:主机如何了解设备 58

4.1 枚举过程 58

4.1.1 枚举步骤 59

4.1.2 设备移除 62

4.1.3 枚举成功的秘诀 62

4.2 描述字 63

4.2.1 类型描述字 63

4.2.2 设备描述字 64

4.2.3 Device_Qualifier描述字 67

4.2.4 配置描述字 67

4.2.5 Other_Speed_Configuration描述字 68

4.2.6 接口联合描述字 68

4.2.7 接口描述字 69

4.2.8 端点描述字 71

4.2.9 超高速端点伙伴描述字 73

4.2.10 字符串描述字 73

4.2.11 二进制目标存储及设备性能描述字 74

4.2.12 其他标准描述字 75

4.2.13 微软OS描述字 75

4.2.14 更新描述字到USB 2.0 76

第5章 控制传输:用于关键数据的结构化请求 77

5.1 控制传输的组成 77

5.1.1 设置阶段 77

5.1.2 数据阶段 78

5.1.3 状态阶段 79

5.1.4 错误处理 80

5.1.5 设备固件 80

5.2 标准请求 81

5.2.1 Get Status(获得状态)请求 82

5.2.2 Clear Feature(清除特征)请求 83

5.2.3 Set Feature(设置特征)请求 83

5.2.4 Set Address(设置地址)请求 84

5.2.5 Get Descriptor(获得描述字)请求 85

5.2.6 Set Descriptor(设定描述字)请求 85

5.2.7 Get Configuration(获得配置)请求 85

5.2.8 Set Configuration(设定配置)请求 86

5.2.9 Get Interface(获得接口)请求 86

5.2.10 Set Interface(设置接口)请求 87

5.2.11 Synch Frame(帧同步)请求 87

5.2.12 Set SEL(设定选择)请求 87

5.2.13 Set Isochronous Delay(设定等时延时)请求 88

5.3 其他请求 88

5.3.1 类专属请求 88

5.3.2 厂商定义的请求 88

第6章 芯片选择 89

6.1 USB设备的组成部分 89

6.1.1 USB2.0控制器内部结构 89

6.1.2 其他的设备组件 90

6.2 简化设备开发 92

6.2.1 设备要求 92

6.2.2 芯片文档 93

6.2.3 驱动程序的选择 93

6.2.4 调试工具 93

6.3 USB微控制器 95

6.3.1 Microchip的PIC18F4550 96

6.3.2 Cypress EZ-USB 99

6.3.3 ARM 101

6.4 连接到CPU的控制器 101

6.4.1 ST-NXP Wireless公司的ISP1582型控制器 101

6.4.2 PLX Technology的NET2272型控制器 102

6.4.3 FTDI公司的USB UART和USB FIFO 103

第7章 设备类 105

7.1 元素与用途 105

7.1.1 已被公认的规范 105

7.1.2 类规范的组成 106

7.2 已定义的类 107

7.2.1 音频类 107

7.2.2 通信类 109

7.2.3 内容安全类 113

7.2.4 设备固件升级类 114

7.2.5 人机接口类 116

7.2.6 IrDA桥设备类 118

7.2.7 大容量存储设备类 119

7.2.8 个人健康设备类 122

7.2.9 打印机设备类 122

7.2.10 智能卡设备类 124

7.2.11 静态图像获取设备类 126

7.2.12 测试与测量设备类 127

7.2.13 视频设备类 128

7.3 非标准功能的实现 131

7.3.1 选择驱动程序 131

7.3.2 使用通用驱动程序 131

7.3.3 从RS-232转换到USB 131

7.3.4 从并行端口转换到USB 132

7.3.5 PC与PC间的通信 133

第8章 主机的通信方式 134

8.1 设备驱动程序 134

8.1.1 分层的驱动程序模型 134

8.1.2 用户及内核模式 134

8.2 分层结构内部 136

8.2.1 应用程序 136

8.2.2 用户模式下的用户驱动程序 137

8.2.3 内核模式下的用户驱动程序 137

8.2.4 总线和主机控制器驱动程序 138

8.3 编写驱动程序 140

8.3.1 内核模式的驱动程序 140

8.3.2 用户模式的驱动程序 140

8.3.3 测试工具 141

8.4 GUID的使用 141

8.4.1 设备设置GUID 141

8.4.2 设备接口GUID 142

第9章 为设备匹配驱动程序 143

9.1 使用设备管理器 143

9.1.1 查看设备 143

9.1.2 属性页 144

9.2 注册表中的设备信息 145

9.2.1 Hardware键值 145

9.2.2 Class键值 146

9.2.3 Driver键值 147

9.2.4 Service键值 147

9.3 深入INF文件 148

9.3.1 结构及语法 150

9.3.2 设备专属取值 151

9.4 使用设备标识字符串 151

9.4.1 找到匹配 153

9.4.2 何时提供INF文件 153

9.5 工具及诊断协助 154

9.5.1 使用INF文件的技巧 154

9.5.2 用户可见到什么 155

第10章 设备检测 156

10.1 关于Windows API函数调用的简要指导 156

10.1.1 托管代码与非托管代码 156

10.1.2 管理数据 159

10.2 找到您的设备 161

10.2.1 获取设备接口GUID 163

10.2.2 请求指向设备信息集的指针 163

10.2.3 标识设备接口 164

10.2.4 请求带有设备类路径名的结构体 166

10.2.5 提取设备路径名 168

10.2.6 结束通信 168

10.3 获取句柄 169

10.3.1 请求通信句柄 169

10.3.2 关闭句柄 171

10.4 检测设备连接和移除 171

10.4.1 关于设备通知 171

10.4.2 请求设备通知 171

10.4.3 记录设备变化信息 174

10.4.4 读取设备变化消息 175

10.4.5 收回消息中的设备路径名 176

10.4.6 停止设备通知 178

第11章 人机接口设备:使用控制和中断传输 180

11.1 什么是HID 180

11.1.1 硬件要求 181

11.1.2 固件要求 182

11.2 描述字 182

11.2.1 HID接口 185

11.2.2 HID类描述字 185

11.2.3 报告描述字 186

11.3 HID专属请求 187

11.3.1 Get Report请求 187

11.3.2 Get Idle请求 188

11.3.3 Get Protocol请求 188

11.3.4 Set Report请求 188

11.3.5 Set Idle请求 189

11.3.6 Set Protocol请求 189

11.4 数据传输 189

11.4.1 编写固件 189

11.4.2 工具 190

第12章 人机接口设备:报告 191

12.1 HID报告的数据结构 191

12.1.1 使用HID描述符编辑工具 191

12.1.2 控制项及数据项目的值 192

12.1.3 项目格式 192

12.2 主项目 193

12.2.1 输入项目,输出项目及特征项目 193

12.2.2 Collection项目 196

12.3 全局项目类型 196

12.3.1 识别报告 196

12.3.2 描述数据用途 197

12.3.3 单位转换 198

12.3.4 转换原始数据 199

12.3.5 描述数据大小及数据格式 201

12.3.6 储存和恢复全局项目 201

12.4 局部项目类型 201

12.4.1 物理描述符 203

12.4.2 填充 203

第13章 人机接口设备:主机应用程序 204

13.1 HID API函数 204

13.1.1 请求HID信息 204

13.1.2 报告发送与接收 205

13.1.3 报告数据提供及使用 206

13.1.4 HID通信管理 207

13.2 设备识别 207

13.2.1 读取Vendor ID及Product ID 207

13.2.2 获取设备功能指针 209

13.2.3 获取设备功能 210

13.2.4 获取按钮及数值的功能 211

13.3 报告发送与接收 212

13.3.1 向设备发送输出报告 212

13.3.2 由设备读取输入报告 214

13.3.3 向设备写入特征报告 220

13.3.4 从设备读取特征报告 221

13.3.5 关闭通信 222

第14章 利用WinUSB的厂商定义函数 224

14.1 功能与局限 224

14.1.1 设备要求 224

14.1.2 主机要求 224

14.1.3 设备固件 224

14.1.4 分配WinUSB驱动程序 226

14.2 访问设备 227

14.2.1 获取WinUSB句柄 228

14.2.2 请求接口描述符 229

14.2.3 端点识别 230

14.2.4 配置管道策略 233

14.2.5 利用批量传输及中断传输写入数据 237

14.2.6 利用批量传输及中断传输读取数据 238

14.2.7 使用厂商定义的控制传输 239

14.2.8 关闭通信 242

第15章 集线器 243

15.1 USB 2.0 243

15.1.1 集线器转发器 244

15.1.2 事务转换器 245

15.1.3 集线器控制器 249

15.1.4 传输速率 249

15.1.5 维持已激活链接 250

15.2 USB 3.0 250

15.2.1 总线速率 251

15.2.2 USB 3.0的构成 251

15.2.3 通信管理 251

15.3 集线器类 252

15.3.1 集线器描述符 252

15.3.2 集线器类请求 252

15.3.3 端口指示器 252

第16章 电源管理 253

16.1 电源选项 253

16.1.1 电压 253

16.1.2 使用总线电源 254

16.1.3 电源需求 255

16.1.4 通知主机 255

16.1.5 电池充电 256

16.2 集线器电源 257

16.2.1 电源 257

16.2.2 电流超载保护 258

16.2.3 功率切换 259

16.3 节电模式 259

16.3.1 USB 2.0链路电源管理 259

16.3.2 挂起状态 259

16.3.3 休眠状态 260

16.3.4 超速通信电源管理 261

16.3.5 Windows操作系统下的电源管理 264

第17章 测试与调试 266

17.1 工具 266

17.1.1 硬件协议分析器 267

17.1.2 软件协议分析器 268

17.1.3 流量发生器 269

17.2 测试 269

17.2.1 合规性 270

17.2.2 Windows徽标 273

第18章 总线上的包 276

18.1 USB 2.0通信 276

18.1.1 低速、全速总线状态 276

18.1.2 高速总线状态 277

18.1.3 数据编码 279

18.1.4 保持同步 279

18.1.5 精确计时 280

18.1.6 包的格式 281

18.1.7 包间延迟 282

18.1.8 测试模型 282

18.2 超速通信 283

18.2.1 数据加扰 283

18.2.2 编码 283

18.2.3 链路层 283

18.2.4 复位 284

第19章 电气与机械接口 285

19.1 USB 2.0收发器 285

19.1.1 线缆段 285

19.1.2 低速和全速收发器 286

19.1.3 高速收发器 288

19.1.4 信号电压 291

19.2 USB 2.0线缆 292

19.2.1 导线 292

19.2.2 连接器 293

19.2.3 可拆卸及不可分离线缆 294

19.2.4 线缆长度 294

19.2.5 总线长度 295

19.2.6 芯片间连接 295

19.3 USB 3.0 296

19.3.1 发送器和接收器 296

19.3.2 线缆 296

19.4 确保信号质量 299

19.4.1 噪声来源 299

19.4.2 对称传输线 300

19.4.3 双绞线 300

19.4.4 屏蔽 301

19.4.5 边沿变化率 301

19.4.6 被隔离的接口 301

19.5 无线方式实现USB 301

19.5.1 无线USB认证 302

19.5.2 Cypress无线USB 302

19.5.3 其他选择 303

第20章 嵌入式系统主机 305

20.1 USB OTG 305

20.1.1 能力与局限 305

20.1.2 OTG连接器 306

20.1.3 A型设备及B型设备 306

20.1.4 OTG设备要求 306

20.1.5 OTG描述符 310

20.1.6 HNP特征代码 310

20.2 其他主机选项 311

20.2.1 嵌入式主机要求 311

20.2.2 设备端口 312

20.3 控制器芯片 312

20.3.1 微控制器 312

20.3.2 接口芯片 313

相关分词: USB 开发 大全