USB 3.0编程宝典

出版日期:2013-9
ISBN:9787121212963
作者:郑杰 编著
页数:753页

书籍目录

第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 Speed 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章 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-USB FX2LP
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

作者简介

USB总线接口技术是当前计算机接口最流行的技术,本书系统地介绍了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接口设备的设计,包括完整的电路图、固件程序、驱动程序和上位机程序设计。
本书内容全面、结构紧凑、实例丰富。对于USB接口开发的初学者,通过学习本书可以快速掌握USB接口开发。本书对具有一定开发经验的设计人员也有很好的参考价值。


 USB 3.0编程宝典下载



发布书评

 
 


 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024