网站首页  软件下载  游戏下载  翻译软件  电子书下载  电影下载  电视剧下载  教程攻略

请输入您要查询的图书:

 

书名 USB3.0编程宝典/宝典丛书
分类
作者 郑杰
出版社 电子工业出版社
下载
简介
编辑推荐

为了便于广大电子设计者能够掌握USB接口的知识,并快速开展基于USB接口的设计开发,郑杰编著的《USB3.0编程宝典》详细介绍了新型USB总线接口的协议、工作原理、驱动程序开发、固件程序设计和上位机程序设计。另外,本书还以丰富的实例,全面详细地介绍了在各种应用场合下USB的设计实例。学完本书后,读者可以全面地掌握USB接口的设计开发。

本书涉及USB总线技术接口协议、USB事务处理、USB数据传输类型、各类USB描述符及设备请求,同时还介绍了各种平台下的USB驱动程序开发和上位机编程。通过本书,读者可以完整掌握不同平台下USB设备的开发。

内容推荐

USB总线接口技术是当前计算机接口最流行的技术,郑杰编著的《USB3.0编程宝典》系统地介绍了USB总线接口的协议、工作原理、驱动程序设计以及上位机控制函数。本书中还以大量实例,全面详细地介绍了不同场合下USB接口的应用。本书言简意赅、通俗易懂,知识点介绍全面详细,实例完整丰富。通过本书,读者能够更快、更好地掌握当前最新USB接口的原理及设计方法。

本书分为4部分,共26章,全面详细地讲述了USB接口的编程原理及应用实例。第1部分是USB总线接口技术基础,介绍了USB总线接口的协议、事务处理、数据传输方式以及设备配置等;第2部分重点介绍了USB接口驱动程序的设计,包括使用DriverStudio进行驱动程序设计、使用通用USB驱动程序以及LabVIEW平台下的驱动程序设计。第3部分是USB编程基础,详细介绍了在DriverStudio、C++、C#和LabVIEW平台下如何对USB接口进行读写控制;第4部分为USB开发实战,通过11个例子,详细介绍了在不同的应用场合下USB接口设备的设计,包括完整的电路图、固件程序、驱动程序和上位机程序设计。

《USB3.0编程宝典》内容全面、结构紧凑、实例丰富。对于USB接口开发的初学者,通过学习本书可以快速掌握USB接口开发。本书对具有一定开发经验的设计人员也有很好的参考价值。

目录

第1部分 USB总线接口技术基础 1

第1章 USB技术概述 2

 1.1 USB总线技术的产生 2

 1.2 认识USB总线接口 3

 1.2.1 USB A型插座和插头 4

 1.2.2 USB B型插座和插头 4

 1.2.3 USB mini型插座和插头 5

 1.2.4 USB micro型插座和插头 6

 1.2.5 USB 3.0型插座和插头 7

 1.2.6 USB电缆结构 11

 1.3 USB总线版本 13

 1.3.1 USB 1.0 13

 1.3.2 USB 1.1 13

 1.3.3 USB 2.0 14

 1.3.4 USB 3.0 14

 1.3.5 其他USB规范 16

 1.4 USB规范概览 17

 1.5 USB总线结构 18

 1.5.1 USB主机 18

 1.5.2 USB电缆 19

 1.5.3 USB设备 19

 1.6 USB总线特点 20

 1.7 USB的竞争技术解析 21

 1.7.1 IEEE 1394接口技术 21

 1.7.2 eSATA接口技术 22

 1.7.3 USB PLUS接口技术 23

 1.7.4 Thunder Bolt超高速接口技术 23

 1.7.5 USB接口与其他计算机接口

 的对比 24

 1.8 USB设备的开发 24

 1.9 小结 26

第2章 USB电源管理 27

 2.1 USB的供电 27

 2.1.1 USB接口的电源指标 27

 2.1.2 USB外设功率需求 28

 2.2 典型USB外设的电源设计 28

 2.2.1 USB根集线器 29

 2.2.2 USB总线供电集线器 29

 2.2.3 USB自供电集线器 30

 2.2.4 USB总线供电低功率设备 31

 2.2.5 USB总线供电高功率设备 31

 2.2.6 USB自供电设备 32

 2.2.7 USB设备功率需求的设置 32

 2.3 USB电源管理 34

 2.3.1 激活(ACTIVE) 34

 2.3.2 挂起(SUSPEND) 34

 2.3.3 空闲(FAST EXIT IDLE) 34

 2.3.4 睡眠(SLOW EXIT IDLE) 35

 2.3.5 USB 2.0与USB 3.0电源管

 理的区别 35

 2.4 小结 36

第3章 USB事务处理 37

 3.1 USB事务处理概述 37

 3.2 令牌阶段 38

 3.2.1 同步字段 38

 3.2.2 令牌包 38

 3.3 数据阶段 46

 3.3.1 同步字段 46

 3.3.2 数据包 47

 3.4 握手阶段 48

 3.4.1 同步字段 48

 3.4.2 握手包 49

 3.5 USB事务处理 50

 3.5.1 IN事务处理 51

 3.5.2 OUT事务处理 52

 3.5.3 SETUP事务处理 53

 3.5.4 PING事务处理 54

 3.5.5 SOF事务处理 55

 3.5.6 SPLIT事务处理 55

 3.5.7 PRE事务处理 56

 3.6 USB设备的总线状态 57

 3.7 USB设备的总线列举 58

 3.7.1 连接USB设备 58

 3.7.2 断开USB设备 59

 3.8 小结 59

第4章 USB数据传输类型 60

 4.1 USB数据传输概述 60

 4.1.1 USB下传数据 61

 4.1.2 USB上传数据 61

 4.1.3 USB的数据传输类型 62

 4.2 USB块传输 62

 4.2.1 USB块传输方式 63

 4.2.2 块传输的数据包长度 63

 4.2.3 块事务处理 63

 4.3 USB中断传输 65

 4.3.1 USB中断传输方式 66

 4.3.2 中断传输的数据包长度 66

 4.3.3 中断事务处理 66

 4.4 USB同步传输 68

 4.4.1 USB同步传输方式 68

 4.4.2 同步传输的数据包长度 69

 4.4.3 同步事务处理 69

 4.5 USB控制传输 71

 4.5.1 USB控制传输方式 71

 4.5.2 控制传输数据包长度 72

 4.5.3 控制事务处理 72

 4.6 USB 3.0与USB 2.0数据传输的对比 74

 4.6.1 接口不同 75

 4.6.2 数据传输方式不同 75

 4.6.3 编码方式不同 75

 4.6.4 数据传输对比 76

 4.7 小结 77

第5章 USB设备配置 78

 5.1 USB描述符概述 78

 5.2 设备描述符(Device) 79

 5.2.1 设备描述符定义 79

 5.2.2 设备描述符示例 82

 5.3 配置描述符(Configuration) 83

 5.3.1 配置描述符定义 83

 5.3.2 配置描述符示例 84

 5.4 字符串描述符(String) 85

 5.4.1 字符串描述符定义 85

 5.4.2 字符串描述符示例 85

 5.5 接口描述符(Interface) 86

 5.5.1 接口描述符定义 86

 5.5.2 接口描述符示例 88

 5.6 端点描述符(Endpoint) 88

 5.6.1 端点描述符定义 88

 5.6.2 端点描述符示例 90

 5.7 设备限定描述符(Device Qualifier) 91

 5.7.1 设备限定描述符的定义 91

 5.7.2 设备限定描述符示例 93

 5.8 其他速率配置描述符(Other SpeedConfiguration) 93

 5.8.1 其他速率配置描述符的定义 93

 5.8.2 其他速率配置描述符示例 95

 5.9 USB设备请求概述 95

 5.9.1 标准USB设备请求概述 95

 5.9.2 USB设备请求处理过程 96

 5.10 读取状态请求(GetStatus) 96

 5.10.1 读取设备 97

 5.10.2 读取接口 98

 5.10.3 读取端点 99

 5.11 清除特性请求(ClearFeature) 100

 5.11.1 清除设备特性 101

 5.11.2 清除接口特性 102

 5.11.3 清除端点特性 102

 5.12 设置特性请求(SetFeature) 102

 5.12.1 设置设备特性 103

 5.12.2 设置接口特性 104

 5.12.3 设置端点特性 104

 5.12.4 设置测试特性 104

 5.13 设置地址请求(SetAddress) 105

 5.14 读取描述符请求(GetDescription) 105

 5.15 设置描述符请求(SetDescriptor) 107

 5.16 读取配置请求(GetConfiguration) 108

 5.17 设置配置请求(SetConfiguration) 109

 5.18 读取接口请求(GetInterface) 109

 5.19 设置接口请求(SetInterface) 111

 5.20 同步帧请求(SynchFrame) 111

 5.21 设备请求示例 111

 5.21.1 声明设备请求 112

 5.21.2 设备请求的响应 112

 5.22 小结 115

第6章 USB集线器配置 116

 6.1 USB集线器简介 116

 6.1.1 集线器设备类 117

 6.1.2 集线器的配置 118

 6.2 USB集线器描述符 118

 6.2.1 集线器设备描述符 118

 6.2.2 集线器配置描述符 120

 6.2.3 集线器接口描述符 121

 6.2.4 集线器端点描述符 123

 6.2.5 集线器类描述符 124

 6.3 USB集线器类请求 126

 6.3.1 读取集线器状态请求GetHubStatus 126

 6.3.2 读取下行端口状态请求GetPortStatus 127

 6.3.3 禁止集线器的特性请求ClearHubFeature 127

 6.3.4 禁止下行端口特性请求ClearPortFeature 128

 6.3.5 使能集线器特性请求SetHubFeature 129

 6.3.6 使能下行端口特性请求SetPortFeature 129

 6.3.7 读取集线器描述符请求GetHubDescriptor 130

 6.3.8 设置集线器描述符请求SetHubDescriptor 130

 6.3.9 清除TT块请求ClearTTBuffer 131

 6.3.10 复位TT块请求ResetTT 132

 6.3.11 读取TT内部状态请求GetTTState 132

 6.3.12 停止TT正常工作请求

 StopTT 133

 6.4 小结 133

第7章 USB HID设备配置 134

 7.1 USB HID设备简介 134

 7.2 USB HID设备描述符 136

 7.2.1 USB HID设备的定义 136

 7.2.2 USB HID基本描述符 137

 7.2.3 USB HID类描述符 142

 7.3 USB HID设备类请求 144

 7.3.1 获取报告请求GetReport 144

 7.3.2 获取空闲速率请求GetIdle 145

 7.3.3 获取HID协议请求GetProtocol 146

 7.3.4 设置报告请求SetReport 146

 7.3.5 设置空闲速率请求SetIdle 147

 7.3.6 设置HID协议请求SetProtocol 148

 7.4 小结 149

第8章 常用的USB芯片 150

 8.1 USB芯片分类概述 150

 8.1.1 通用USB芯片 150

 8.1.2 专用USB芯片 151

 8.2 通用USB 接口芯片 151

 8.2.1 高速USB接口芯片EZ-USBFX2LP 151

 8.2.2 可编程片上系统PSoC USB芯片 159

 8.2.3 通用USB接口芯片CH375A 163

 8.2.4 超速USB 3.0接口芯片CYUSB3014 170

 8.3 专用USB接口芯片 171

 8.3.1 USB HID类接口芯片CY7C63723 171

 8.3.2 NEC USB3.0芯片µPD720200 173

 8.3.3 USB转串口芯片CH341 175

 8.4 USB接口的PCB设计技巧 182

 8.4.1 差分阻抗匹配 183

 8.4.2 供电和接地 184

 8.4.3 USB接头屏蔽 185

 8.4.4 晶体振荡器 186

 8.5 小结 186

第2部分 USB驱动程序设计 187

第9章 USB驱动程序 188

 9.1 WDM驱动程序概述 188

 9.1.1 WDM驱动程序简介 188

 9.1.2 WDM驱动程序的特点 189

 9.1.3 WDM驱动程序的分层结构 190

 9.2 WDM功能驱动程序的组成 192

 9.2.1 入口例程 193

 9.2.2 即插即用例程 194

 9.2.3 分发例程 197

 9.2.4 电源管理例程 198

 9.2.5 卸载例程 200

 9.3 USB设备的即插即用实现 201

 9.3.1 即插即用设备状态 202

 9.3.2 启动USB设备 202

 9.3.3 停止USB设备 203

 9.3.4 删除USB设备 204

 9.4 即插即用IRP请求的处理规则 205

 9.5 驱动开发工具——DriverStudio 207

 9.5.1 DriverStudio软件工具集 208

 9.5.2 搭建DriverStudio驱动开发环境 208

 9.5.3 配置DriverStudio编译环境 212

 9.6 WDM驱动程序基本结构 213

 9.6.1 基类KDriver 213

 9.6.2 即插即用类KPnPDevice 215

 9.6.3 物理对象类KPnpLowerDevice 219

 9.7 使用DriverStudio创建USB驱动 219

 9.7.1 创建USB驱动程序框架 219

 9.7.2 USB驱动程序设计 224

 9.8 小结 225

第10章 通用USB驱动程序解析 226

 10.1 驱动程序文件简介 226

 10.1.1 USB设备驱动程序的安装 227

 10.1.2 USB设备的识别 227

 10.2 驱动程序INF文件的结构 228

 10.2.1 版本节 229

 10.2.2 源文件盘符节 232

 10.2.3 源文件节 233

 10.2.4 目标磁盘节 233

 10.2.5 供应商节 234

 10.2.6 默认安装节 235

 10.2.7 字符串节 235

 10.3 Cypress通用USB驱动——基于VC6.0平台 235

 10.3.1 CyLoad.inf文件分析 236

 10.3.2 CyUSB.inf文件分析 240

 10.3.3 驱动程序的安装 243

 10.4 Cypress通用USB驱动——基于.NET平台245

 10.4.1 CyUSB.inf文件 246

 10.4.2 CyUSB.inf文件分析 249

 10.5 微软通用USB驱动——WinUSB 250

 10.5.1 WinUSB简介 250

 10.5.2 WinUSB驱动程序安装包 252

 10.5.3 WinUSB INF文件 253

 10.6 小结 257

第11章 LabVIEW平台的USB驱动程序开发 258

 11.1 NI LabVIEW平台简介 258

 11.1.1 LabVIEW平台简介 258

 11.1.2 NI-VISA开发平台 259

 11.2 LabVIEW平台下的USB驱动开发 260

 11.2.1 NI-VISA的USB驱动简介 260

 11.2.2 创建USB驱动 261

 11.2.3 INF安装文件 264

 11.3 小结 269

第3部分 USB编程基础 271

第12章 基于DriverStudio的USB设备编程基础 272

 12.1 USB编程类函数概述 272

 12.2 设备编程类KUsbLowerDevice 272

 12.2.1 激活设备配置函数ActivateConfiguration 273

 12.2.2 终止设备配置函数 DeActivateConfiguration 274

 12.2.3 初始化厂商自定义请求函数 BuildVendorRequest 274

 12.2.4 分配USB类请求函数 BuildClassRequest 275

 12.2.5 清除USB特征标志函数 ClearFeature 275

 12.2.6 设置USB特征标志函数 SetFeature 276

 12.2.7 获取状态信息函数GetStatus 276

 12.2.8 获取USB帧号函数 GetCurrentFrameNumber 276

 12.2.9 设置未配置状态函数 Unconfigure 277

 12.2.10 设置配置状态函数Configure 277

 12.2.11 配置USB接口函数 PreconfigureInterface 277

 12.2.12 获取USB接口描述符函数 LocateInterface 277

 12.2.13 获取USB配置描述符函数 Preconfigure 278

 12.2.14 删除资源函数 ReleaseResources 278

 12.2.15 获取字符串描述符函数 GetStringDescriptor 278

 12.2.16 获取设备描述符函数 GetDeviceDescriptor 279

 12.2.17 初始化实例函数Initialize 279

 12.2.18 URB发送函数SubmitUrb 279

 12.3 接口编程类KUsbInterface 280

 12.3.1 使能USB接口函数 SelectAlternate 281

 12.3.2 清除USB特征标志函数 ClearFeature 281

 12.3.3 设置USB特征标志函数 SetFeature 281

 12.3.4 获取状态信息函数GetStatus 282

 12.3.5 厂商自定义请求函数 BuildVendorRequest 282

 12.3.6 分配USB类请求函数 BuildClassRequest 283

 12.3.7 设置管道函数Pipes 283

 12.3.8 获取管道数量函数 NumberOfPipes 284

 12.3.9 获取接口协议函数Protocol 284

 12.3.10 获取接口子类函数Subclass 284

 12.3.11 获取接口类函数Class 284

 12.3.12 获取接口号函数AlternateSetting 284

 12.3.13 获取接口数量函数 InterfaceNumber 285

 12.3.14 初始化实例函数Initialize 285

 12.3.15 关闭接口函数Close 285

 12.3.16 判断是否打开函数IsOpen 286

 12.3.17 打开实例函数Open 286

 12.3.18 URB发送函数SubmitUrb 286

 12.3.19 判断实例是否有效函数 IsValid 287

 12.4 管道编程类KUsbPipe 287

 12.4.1 初始化实例函数Initialize 288

 12.4.2 打开接口函数Open 288

 12.4.3 判断是否打开函数IsOpen 288

 12.4.4 关闭管道函数Close 288

 12.4.5 中断数据传输函数 BuildInterruptTransfer 289

 12.4.6 控制数据传输函数 BuildControlTransfer 289

 12.4.7 块数据传输函数 BuildBulkTransfer 290

 12.4.8 同步数据传输函数 BuildIsochronousTransfer 290

 12.4.9 清除USB特征标志函数 ClearFeature 291

 12.4.10 设置USB特征标志函数 SetFeature 291

 12.4.11 获取状态信息函数GetStatus 291

 12.4.12 管道复位函数Reset 292

 12.4.13 丢弃传输函数Abort 292

 12.4.14 初始化厂商自定义请求函数 BuildVendorRequest 292

 12.4.15 初始化类请求函数 BuildClassRequest 293

 12.4.16 获取最大帧字节数函数 MaximumPacketSize 293

 12.4.17 获取最大传输字节数函数 MaximumTransferSize 294

 12.4.18 获取管道句柄函数Handle 294

 12.4.19 获取中断检查间隔函数 PollInterval 294

 12.4.20 获取管道端点地址函数 EndpointAddress 294

 12.4.21 设置最大传输字节数函数 SetMaximumTransferSize 294

 12.4.22 URB发送函数SubmitUrb 295

 12.4.23 获取传输类型函数Type 295

 12.5 小结 295

第13章 基于Visual C++的USB设备编程基础 296

 13.1 基于Visual C++的USB设备编程环境 296

 13.1.1 cyioctl类控制函数 296

 13.1.2 CyAPI控制函数类 297

 13.2 cyioctl控制函数类 298

 13.2.1 中止端点请求接口IOCTL_ ADAPT_ABORT_PIPE 298

 13.2.2 断开设备接口IOCTL_ ADAPT_CYCLE_PORT 299

 13.2.3 获取设备地址接口IOCTL_ ADAPT_GET_ADDRESS 299

 13.2.4 获取替换接口IOCTL_ ADAPT_ GET_ALT_INTERFACE_SETTING 299

 13.2.5 获取描述字符串接口 IOCTL_ADAPT_GET_ DEVICE_NAME 300

 13.2.6 获取电源状态接口IOCTL_ ADAPT_GET_DEVICE_POWER_STATE 300

 13.2.7 获取版本号接口IOCTL_ ADAPT_GET_DRIVER_VERSION 300

 13.2.8 获取替换名称接口IOCTL_ ADAPT_GET_FRIENDLY_NAME 301

 13.2.9 获取端点数量接口IOCTL_ ADAPT_GET_NUMBER_ENDPOINTS 301

 13.2.10 获取单次传输大小接口IOCTL_ ADAPT_GET_TRANSFER_SIZE 302

 13.2.11 获取USBDI版本号接口IOCTL_ADAPT_GET_USBDI_VERSION 302

 13.2.12 复位USB设备接口IOCTL_ADAPT_RESET_PARENT_PORT 302

 13.2.13 复位USB端点接口IOCTL_ ADAPT_RESET_PIPE 303

 13.2.14 设置替换接口IOCTL_ADAPT_SELECT_INTERFACE 303

 13.2.15 发送控制请求接口IOCTL_ADAPT_SEND_EP0_CONTROL_TRANSFER 303

 13.2.16 数据通信接口IOCTL_ ADAPT_SEND_NON_EP0_TRANSFER 304

 13.2.17 设置电源状态接口IOCTL_ ADAPT_SET_DEVICE_POWER_STATE 305

 13.2.18 设置传输字节数接口IOCTL_ADAPT_SET_TRANSFER_SIZE 305

 13.3 CyAPI控制函数类 306

 13.3.1 USB设备控制类 CCyUSBDevice 306

 13.3.2 USB配置信息类 CCyUSBConfig 319

 13.3.3 USB端点控制类 CCyUSBEndPoint 322

 13.3.4 USB接口控制类 CCyUSBInterface 329

 13.3.5 USB块传输端点控制类 CCyBulkEndPoint 332

 13.3.6 USB控制传输端点类 CCyControlEndPoint 333

 13.3.7 USB中断传输端点控制类 CCyInterruptEndPoint 336

 13.3.8 USB同步传输端点控制类 CCyIsocEndPoint 337

 13.4 USB数据传输实例 339

 13.5 小结 341

第14章 基于Visual C#的USB设备编程基础 342

 14.1 基于Visual C#的USB设备编程环境 342

 14.2 USBDeviceList类 343

 14.2.1 USBDeviceList函数 343

 14.2.2 Count成员变量 344

 14.2.3 Dispose函数 344

 14.2.4 USBDeviceList [int index] 成员变量 345

 14.2.5 USBDeviceList [string  FriendlyName]成员变量 345

 14.2.6 USBDeviceList [int VendorID,  int ProductID]成员变量 346

 14.2.7 USBDeviceList [int VendorID,  int ProductID, int UsagePage,  int Usage]成员变量 346

 14.3 CyUSBDevice类 347

 14.3.1 BcdUSB成员变量 347

 14.3.2 DevClass成员变量 348

 14.3.3 DevProtocol成员变量 348

 14.3.4 DevSubClass成员变量 348

 14.3.5 DriverName成员变量 349

 14.3.6 FriendlyName成员变量 349

 14.3.7 Manufacturer成员变量 350

 14.3.8 Name成员变量 350

 14.3.9 Path成员变量 350

 14.3.10 ProductID成员变量 351

 14.3.11 VendorID成员变量 351

 14.3.12 SerialNumber成员变量 351

 14.3.13 USBAddress成员变量 352

 14.4 CyControlEndPoint类 352

 14.4.1 Direction成员变量 353

 14.4.2 Index成员变量 353

 14.4.3 ReqCode成员变量 353

 14.4.4 ReqType成员变量 354

 14.4.5 Target成员变量 354

 14.4.6 Value成员变量 354

 14.4.7 XferData函数 354

 14.4.8 Read函数 355

 14.4.9 Write函数 356

 14.5 CyIsocEndPoint类 357

 14.5.1 GetPktBlockSize函数 357

 14.5.2 BeginDataXfer函数 357

 14.5.3 FinishDataXfer函数 358

 14.5.4 GetPktCount函数 360

 14.5.5 XferData函数 361

 14.6 CyHidDevice类 362

 14.6.1 GetFeature函数 363

 14.6.2 GetInput函数 363

 14.6.3 ReadInput函数 364

 14.6.4 SetFeature函数 364

 14.6.5 SetOutput函数 365

 14.6.6 WriteOutput函数 365

 14.6.7 ToString函数 366

 14.7 CyUSBStorDevice类 369

 14.7.1 SendScsiCmd函数 370

 14.7.2 ToString函数 371

 14.7.3 TimeOut成员变量 371

 14.8 CyBulkEndPoint类 372

 14.9 小结 373

第15章 基于LabVIEW的USB设备编程基础 374

 15.1 NI-VISA USB设备交互控制 374

 15.2 VISA控制函数 378

 15.2.1 VISA打开 378

 15.2.2 VISA关闭 378

 15.2.3 VISA USB控制输出 379

 15.2.4 VISA USB控制输入 379

 15.2.5 VISA写入 380

 15.2.6 VISA读取 381

 15.3 小结 381

第4部分 USB开发实践 383

第16章 EZ-USB FX2LP固件设计 384

 16.1 Cypress固件开发工具 384

 16.1.1 安装开发包 384

 16.1.2 开发包工具简介 386

 16.2 基本固件框架 388

 16.2.1 基本固件框架的建立 388

 16.2.2 固件调试 389

 16.3 固件程序设计 394

 16.3.1 USB端口读写的程序设计 394

 16.3.2 USB端口读写的固件仿真调试 398

 16.3.3 USB端点的数据发送和采集 398

 16.3.4 数据发送和采集仿真调试 402

 16.4 小结 404

第17章 USB控制数码管显示实例 405

 17.1 EZ-USB FX2LP的I/O端口 405

 17.1.1 普通I/O功能 408

 17.1.2第二复用功能 410

 17.2 控制端点0请求 413

 17.2.1 USB控制传输 413

 17.2.2 USB设备请求及固件响应 414

 17.2.3 获得状态请求(Get Status) 415

 17.2.4 设置特性请求(Set Feature) 416

 17.2.5 清除特性请求(Clear Feature) 417

 17.2.6 获得描述符请求(Get Descriptor) 418

 17.2.7 设置描述符请求(Set Descriptor) 420

 17.2.8 设置配置请求(Set Configuration) 421

 17.2.9 获得配置请求(Get Configuration) 422

 17.2.10 设置接口请求(Set Interface) 422

 17.2.11 获得接口请求(Get Interface) 423

 17.2.12 同步帧请求(Sync Frame) 423

 17.2.13 固件加载请求(Firmware Load)  423

 17.2.14 自定义请求 424

 17.3 USB控制数码管实例 425

 17.3.1 数码管显示原理 425

 17.3.2 电路原理图 428

 17.4 USB固件程序设计 429

 17.4.1 主程序文件 430

 17.4.2 功能实现代码 437

 17.4.3 自定义请求的定义 438

 17.4.4 USB描述 445

 17.4.5 下载固件程序 451

 17.5 USB主机程序设计 454

 17.5.1 建立项目 454

 17.5.2 程序设计 457

 17.5.3 编译程序并运行 464

 17.6 小结 464

第18章 使用EEPROM列举USB设备 465

 18.1 USB启动配置模式 465

 18.1.1 EZ-USB FX2LP的启动模 式简介 465

 18.1.2 默认USB设备状态 466

 18.2 EEPROM引导USB启动 467

 18.2.1 无EEPROM引导启动 467

 18.2.2 EEPROM引导启动 468

 18.2.3 启动配置寄存器 469

 18.2.4 固件下载和重列举 471

 18.2.5 不同芯片的接线 472

 18.3 电路原理图 472

 18.4 固件程序设计 474

 18.4.1 主程序文件 475

 18.4.2 请求响应函数 477

 18.4.3 初始化子程序 480

 18.4.4 功能子程序 481

 18.4.5 自定义请求的定义 481

 18.5 USB描述符 481

 18.5.1 设备描述符 482

 18.5.2 高速配置描述符 482

 18.5.3 全速配置描述符 484

 18.5.4 字符串描述符 485

 18.6 下载固件程序 486

 18.7 驱动程序设计 490

 18.8 主机程序设计 492

 18.8.1 建立工程 492

 18.8.2 用户界面设计 495

 18.8.3 程序代码设计 496

 18.8.4 编译执行 499

 18.9 小结 499

第19章 基于Slave FIFO模式的USB数据采集 500

 19.1 Slave FIFO模式简介 500

 19.1.1 Slave FIFO模式接口配置 501

 19.1.2 典型的数据传输 506

 19.2 Slave FIFO模式程序设计 515

 19.2.1 Slave FIFO程序设计的基 本概念 516

 19.2.2 Slave FIFO模式寄存器介绍 517

 19.2.3 Slave FIFO工作模式一: AUTO IN模式 529

 19.2.4 Slave FIFO工作模式二: AUTO OUT模式 531

 19.2.5 Slave FIFO工作模式三: CPU访问OUT数据包 532

 18.2.6 Slave FIFO工作模式四: CPU访问IN数据包 534

 19.3 Slave FIFO模式数据采集实例 535

 19.3.1 电路设计 536

 19.3.2 USB固件程序设计 537

 19.3.3 上位机程序设计 545

 19.3.4 程序运行 552

 19.4 小结 552

第20章 PSoC USB设计实例 553

 20.1 电路原理图设计 553

 20.2 固件设计 554

 20.2.1 创建项目 554

 20.2.2 配置USB 558

 20.2.3 配置引脚 563

 20.2.4 配置时钟 563

 20.2.5 固件程序设计 565

 20.2.6 下载程序 567

 20.3 驱动程序设计 569

 20.3.1 制作驱动程序 569

 20.3.2 安装驱动程序 571

 20.4 上位机程序设计 574

 20.4.1 调试固件 575

 20.4.2 创建项目 577

 20.4.3 软件设计 578

 20.4.4 运行程序 581

 20.5 小结 582

第21章 USB控制DA输出实例 583

 21.1 D/A转换器概述 583

 21.1.1 D/A转换原理 583

 21.1.2 D/A转换器的类型 584

 21.1.3 D/A转换器的性能参数 586

 21.2 电路原理图设计 587

 21.3 固件设计 588

 21.3.1 创建项目 588

 21.3.2 配置USB 589

 21.3.3 配置时钟 592

 21.3.4 配置DA 594

 21.3.5 配置引脚 598

 21.3.6 固件程序设计 598

 21.4 驱动程序设计 602

 21.5 上位机程序设计 604

 21.5.1 创建项目 605

 21.5.2 软件设计 606

 21.5.3 运行程序 610

 21.6 小结 611

第22章 USB控制A/D转换实例 612

 22.1 A/D转换器概述 612

 22.1.1 A/D转换原理 612

 22.1.2 A/D转换器的技术参数 616

 22.1.3 A/D转换器的选择原则 617

 22.2 8通道AD转换器MAX1300 617

 22.2.1 引脚接口 618

 22.2.2 工作方式 620

 22.2.3 控制指令 623

 22.3 电路原理图设计 626

 22.4 固件设计 627

 22.4.1 创建项目 627

 22.4.2 配置USB 628

 22.4.3 配置时钟 631

 22.4.4 配置SPI组件 633

 22.4.5 配置引脚 635

 22.4.6 固件程序设计 636

 22.5 驱动程序设计 643

 22.6 上位机程序设计 646

 22.6.1 创建项目 646

 22.6.2 软件设计 647

 22.6.3 运行程序 654

 22.7 小结 654

第23章 USB集线器开发实例 655

 23.1 USB Hub芯片CY7C65642 655

 23.1.1 CY7C65642接口 656

 23.1.2 CY7C65642供电模式 658

 23.1.3 EEPROM配置项 659

 23.1.4 时钟配置 661

 23.1.5 复位电路 662

 23.1.6 过流监测 662

 23.1.7 端口指示 663

 23.2 四端口USB集线器设计 663

 23.2.1 电路图 664

 23.2.2 安装 666

 23.3 小结 667

第24章 U盘设计实例 668

 24.1 U盘存储芯片 668

 24.1.1 Nor-Flash存储芯片和Nand- Flash存储芯片 668

 24.1.2 Nand-Flash存储器K9K4G08U0M  668

 24.1.3 Nand-Flash存储器的组织 结构 670

 24.1.4 Nand-Flash存储器的指令集 671

 24.1.5 Nand-Flash存储器的操作 672

 24.2 基于Nand-Flash的文件系统 672

 24.2.1 磁盘分区格式简介 672

 24.2.2 基于Nand-Flash的文件系统 673

 24.2.3 Nand-Flash存储器上的FAT 结构 678

 24.3 Nand-Flash控制器 678

 24.3.1 CY7C68024简介 679

 24.3.2 兼容Nand-Flash存储器 680

 24.4 U盘设计实例 681

 24.4.1 电路原理图 681

 24.4.2 重新配置U盘 683

 24.5 小结 684

第25章 USB接口控制示波器实例 685

 25.1 示波器简介 685

 25.1.1 示波器分类 686

 25.1.2 示波器的主要技术指标 686

 25.1.3 主要示波器生产商 687

 25.1.4 示波器的使用注意事项 689

 25.2 示波器编程接口 689

 25.2.1 USBTMC简介 690

 25.2.2 DPO2024示波器 691

 25.2.3 安装符合USBTMC的驱动 程序 692

 25.3 USB读写示波器实例 693

 25.3.1 创建项目 693

 25.3.2 程序设计 695

 25.3.3 程序演示 700

 25.4 使用NI-VISA控制示波器实例 701

 25.4.1 创建项目 701

 25.4.2 程序设计 707

 25.4.3 运行程序 708

 25.5 小结 708

第26章 Android平台USB接口开发 709

 26.1 Android平台简介 709

 26.1.1 Android开放手机联盟 709

 26.1.2 Android的特性 710

 26.1.3 Android对比其他主流操作 系统 711

 26.1.4 Android系统构架 711

 26.1.5 Android开发工具 713

 26.1.6 Android程序结构分析 714

 26.2 Android的USB接口 718

 26.2.1 Android USB接口模式 718

 26.2.2 USB附件模式 719

 26.2.3 USB主机模式 722

 26.2.4 调试注意事项 725

 26.3 USB硬件设计 725

 26.3.1 电路原理图 725

 26.3.2 固件程序设计 727

 26.3.3 固件程序代码 733

 26.4 Android程序设计 737

 26.4.1 创建项目 737

 26.4.2 界面布局 741

 26.4.3 程序实现 743

 26.4.4 运行结果 752

 26.5 小结 753

随便看

 

霍普软件下载网电子书栏目提供海量电子书在线免费阅读及下载。

 

Copyright © 2002-2024 101bt.net All Rights Reserved
更新时间:2025/4/25 12:05:41