《USB开发大全 第4版》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:(美)阿克塞尔森著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2011
  • ISBN:7115259554
  • 页数:314 页
图书介绍:

第1章USB基础 1

1.1 USB的用途和局限 1

1.1.1给用户带来的好处 1

1.1.2给开发者带来的好处 3

1.1.3 USB不能做什么 5

1.1.4 USB与Ethemet 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

33.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.3Device_Qualifer描述字 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 SetInterface(设置接口)请求 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 FIDI公司的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.6IrDA桥设备类 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 IID 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 USB2.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 USB2.0链路电源管理 259

16.3.2挂起状态 259

16.3.3休眠状态 260

16.3.4超速通信电源管理 261

16.3.5Windows操作系统下的电源管理 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.2Windows徽标 273

第18章 总线上的包 276

18.1 USB2.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 USB2.0收发器 285

19.1.1线缆段 285

19.1.2低速和全速收发器 286

19.1.3高速收发器 288

19.1.4信号电压 291

19.2USB2.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 USB3.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.3A型设备及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