当前位置:首页 > 工业技术
USB 3.0编程宝典
USB 3.0编程宝典

USB 3.0编程宝典PDF电子书下载

工业技术

  • 电子书积分:21 积分如何计算积分?
  • 作 者:郑杰编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2013
  • ISBN:9787121212963
  • 页数:753 页
图书介绍:本书详细地讲述了USB接口的编程原理及应用实例。第一篇介绍了USB总线接口的协议、事务处理、数据传输方式以及设备配置等;第二篇介绍了USB接口驱动程序的设计,包括使用DriverStudio进行驱动程序设计、使用通用USB驱动程序以及LabVIEW平台下的驱动程序设计。第三篇介绍了在DriverStudio、C++、C#和LabVIEW平台下如何对USB接口进行读写控制;第四篇通过11个例子,介绍了在不同的应用场合下USB接口设备的设计,包括了完整的电路图、固件程序、驱动程序和上位机程序设计。
上一篇:电子CAD下一篇:氟树脂及其应用
《USB 3.0编程宝典》目录

第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

相关图书
作者其它书籍
返回顶部