图书介绍

USB 3.0编程宝典【2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载】

USB 3.0编程宝典
  • 郑杰编著 著
  • 出版社: 北京:电子工业出版社
  • ISBN:9787121212963
  • 出版时间:2013
  • 标注页数:753页
  • 文件大小:166MB
  • 文件页数:774页
  • 主题词:USB总线-串行接口-程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

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.013

1.3.2 USB 1.113

1.3.3 USB 2.014

1.3.4 USB 3.014

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 读取集线器状态请求 GetHubStatus126

6.3.2 读取下行端口状态请求GetPortStatus127

6.3.3 禁止集线器的特性请求ClearHubFeature127

6.3.4 禁止下行端口特性请求ClearPortFeature128

6.3.5 使能集线器特性请求 SetHubFeature129

6.3.6 使能下行端口特性请求SetPortFeature129

6.3.7 读取集线器描述符请求 GetHubDescriptor130

6.3.8 设置集线器描述符请求 SetHubDescriptor130

6.3.9 清除TT块请求 ClearTTBuffer131

6.3.10 复位TT块请求ResetTT132

6.3.11 读取TT内部状态请求 GetTTState132

6.3.12 停止TT 正常工作请求StopTT133

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 获取报告请求GetReport144

7.3.2 获取空闲速率请求GetIdle145

7.3.3 获取HID协议请求GetProtocol146

7.3.4 设置报告请求SetReport146

7.3.5 设置空闲速率请求SetIdle147

7.3.6 设置HID协议请求SetProtocol148

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 FX2LP151

8.2.2 可编程片上系统PSoCUSB 芯片159

8.2.3 通用USB接口芯片CH375A163

8.2.4 超速USB 3.0接口芯片 CYUSB3014170

8.3 专用USB接口芯片171

8.3.1 USB HID类接口芯片CY7C63723171

8.3.2 NECUSB3.0芯片μPD720200173

8.3.3 USB转串口芯片CH341175

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 驱动开发工具——DriverStudio207

9.5.1 DriverStudio软件工具集208

9.5.2 搭建DriverStudio驱动开发环境208

9.5.3 配置DriverStudio编译环境212

9.6 WDM驱动程序基本结构213

9.6.1 基类KDriver213

9.6.2 即插即用类KPnPDevice215

9.6.3 物理对象类KPnpLowerDevice219

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驱动——WinUSB250

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 设备编程类KUsbLowerDevice272

12.2.1 激活设备配置函数 ActivateConfiguration273

12.2.2 终止设备配置函数 DeActivateConfiguration274

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

12.2.4 分配USB类请求函数 BuildClassRequest275

12.2.5 清除USB特征标志函数 ClearFeature275

12.2.6 设置USB特征标志函数 SetFeature276

12.2.7 获取状态信息函数GetStatus276

12.2.8 获取USB帧号函数 GetCurrentFrameNumber276

12.2.9 设置未配置状态函数 Unconfigure277

12.2.10 设置配置状态函数Configure277

12.2.11 配置USB接口函数PreconfigureInterface277

12.2.12 获取USB接口描述符函数 LocateInterface277

12.2.13 获取USB配置描述符函数Preconfigure278

12.2.14 删除资源函数 ReleaseResources278

12.2.15 获取字符串描述符函数GetStringDescriptor278

12.2.16 获取设备描述符函数GetDeviceDescriptor279

12.2.17 初始化实例函数Initialize279

12.2.18 URB发送函数SubmitUrb279

12.3 接口编程类KUsbInterface280

12.3.1 使能USB接口函数SelectAlternate281

12.3.2 清除USB特征标志函数 ClearFeature281

12.3.3 设置USB特征标志函数SetFeature281

12.3.4 获取状态信息函数GetStatus282

12.3.5 厂商自定义请求函数BuildVendorRequest282

12.3.6 分配USB类请求函数BuildClassRequest283

12.3.7 设置管道函数Pipes283

12.3.8 获取管道数量函数 NumberOfPipes284

12.3.9 获取接口协议函数Protocol284

12.3.10 获取接口子类函数Subclass284

12.3.11 获取接口类函数Class284

12.3.12 获取接口号函数Alternate Setting284

12.3.13 获取接口数量函数InterfaceNumber285

12.3.14 初始化实例函数Initialize285

12.3.15 关闭接口函数Close285

12.3.16 判断是否打开函数IsOpen286

12.3.17 打开实例函数Open286

12.3.18 URB发送函数SubmitUrb286

12.3.19 判断实例是否有效函数IsValid287

12.4 管道编程类KUsbPipe287

12.4.1 初始化实例函数Initialize288

12.4.2 打开接口函数Open288

12.4.3 判断是否打开函数IsOpen288

12.4.4 关闭管道函数Close288

12.4.5 中断数据传输函数 BuildInterruptTransfer289

12.4.6 控制数据传输函数 BuildControlTransfer289

12.4.7 块数据传输函数 BuildBulkTransfer290

12.4.8 同步数据传输函数 BuildIsochronousTransfer290

12.4.9 清除USB特征标志函数 ClearFeature291

12.4.10 设置USB特征标志函数 SetFeature291

12.4.11 获取状态信息函数GetStatus291

12.4.12 管道复位函数Reset292

12.4.13 丢弃传输函数Abort292

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

12.4.15 初始化类请求函数 BuildClassRequest293

12.4.16 获取最大帧字节数函数MaximumPacketSize293

12.4.17 获取最大传输字节数函数MaximumTransferSize294

12.4.18 获取管道句柄函数Handle294

12.4.19 获取中断检查间隔函数PollInterval294

12.4.20 获取管道端点地址函数EndpointAddress294

12.4.21 设置最大传输字节数函数SetMaximumTransferSize294

12.4.22 URB发送函数SubmitUrb295

12.4.23 获取传输类型函数Type295

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_PIPE298

13.2.2 断开设备接口IOCTL ADAPT_CYCLE_PORT299

13.2.3 获取设备地址接口IOCTL_ADAPT_GET_ADDRESS299

13.2.4 获取替换接口IOCTL_ADAPT_GET_ALT_INTERFACE_SETTING299

13.2.5 获取描述字符串接口IOCTL_ADAPT_GET_DEVICE_NAME300

13.2.6 获取电源状态接口IOCTL_ADAPT_GET_DEVICE_POWER_STATE300

13.2.7 获取版本号接口IOCTL_ADAPT_GET_DRIVER_VERSION300

13.2.8 获取替换名称接口IOCTL_ADAPT_GET_FRIENDLY_NAME301

13.2.9 获取端点数量接口IOCTL_ADAPT_GET_NUMBER_ENDPOINTS301

13.2.10 获取单次传输大小接口IOCTL_ADAPT_GET_TRANSFER_SIZE302

13.2.11 获取USBDI版本号接口IOCTL_ADAPT_GET_USBDI_VERSION302

13.2.12 复位USB设备接口IOCTL_ADAPT_RESET_PARENT_PORT302

13.2.13 复位USB端点接口IOCTL_ADAPT_RESET_PIPE303

13.2.14 设置替换接口IOCTL_ADAPT_SELECT_INTERFACE303

13.2.15 发送控制请求接口IOCTL_ADAPT_SEND_EPO_CONTROL_TRANSFER303

13.2.16 数据通信接口IOCTL_ADAPT_SEND_NON_EPO_TRANSFER304

13.2.17 设置电源状态接口IOCTL_ADAPT_SET_DEVICE_POWER_STATE305

13.2.18 设置传输字节数接口IOCTL_ADAPT_SET_TRANSFER_SIZE305

13.3 CyAPI控制函数类306

13.3.1 USB设备控制类 CCyUSBDevice306

13.3.2 USB配置信息类CCyUSBConfig319

13.3.3 USB端点控制类 CCyUSBEndPoint322

13.3.4 USB接口控制类 CCyUSBInterface329

13.3.5 USB块传输端点控制类 CCyBulkEndPoint332

13.3.6 USB控制传输端点类 CCyControlEndPoint333

13.3.7 USB中断传输端点控制类 CCyInterruptEndPoint336

13.3.8 USB同步传输端点控制类 CCyIsocEndPoint337

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 配置USB558

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 配置USB589

21.3.3 配置时钟592

21.3.4 配置DA594

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转换器MAX1300617

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 配置USB628

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芯片CY7C65642655

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-UOM668

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

热门推荐