图书介绍
USB 3.0编程宝典pdf电子书版本下载
- 郑杰编著 著
- 出版社: 北京:电子工业出版社
- ISBN:9787121212963
- 出版时间:2013
- 标注页数:753页
- 文件大小:166MB
- 文件页数:774页
- 主题词:USB总线-串行接口-程序设计
PDF下载
下载说明
USB 3.0编程宝典PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如 BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第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 ThunderBolt超高速接口技术 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 空闲(FASTEXITIDLE) 34
2.3.4 睡眠(SLOWEXITIDLE) 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 其他速率配置描述符(OtherSpeed Configuration) 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章 USBHID设备配置 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-USB FX2LP 151
8.2.2 可编程片上系统PSoCUSB 芯片 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 NECUSB3.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 获取接口号函数Alternate Setting 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_EPO_CONTROL_TRANSFER 303
13.2.16 数据通信接口IOCTL_ADAPT_SEND_NON_EPO_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章 基于VisualC#的USB设备编程基础 342
14.1 基于VisualC#的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 获得状态请求(GetStatus) 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 同步帧请求(SyncFrame) 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存储器K9K4G08-UOM 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