图书介绍

USB开发手册2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

USB开发手册
  • 傅志辉编著 著
  • 出版社: 北京:中国铁道出版社
  • ISBN:9787113186746
  • 出版时间:2014
  • 标注页数:625页
  • 文件大小:110MB
  • 文件页数:650页
  • 主题词:USB总线-手册

PDF下载


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

下载说明

USB开发手册PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第一篇 USB总线基础1

第1章 USB总线开发基础1

1.1 USB总线的发展1

1.1.1 USB 1.0版本2

1.1.2 USB 1.1版本2

1.1.3 USB 2.0版本2

1.1.4 USB 3.0版本3

1.2 USB总线对比其他计算机总线4

1.2.1早期计算机总线接口的缺点4

1.2.2 USB总线接口的优势5

1.2.3 USB总线对比其他计算机总线6

1.3认识USB总线7

1.3.1 USB主机7

1.3.2 USB集线器设备8

1.3.3 USB功能设备8

1.3.4 USB电缆8

1.3.5 USB连接器9

1.4认识USB总线规范13

1.4.1 USB总线设备类规范14

1.4.2 USB系统的结构14

1.4.3 USB总线的供电15

1.4.4 USB总线电源分配16

1.4.5 USB总线电源管理17

1.5认识USB接口开发18

1.5.1 USB硬件开发18

1.5.2 USB驱动开发18

1.5.3 USB软件开发19

第2章 USB总线数据流结构20

2.1 USB总线数据流概述20

2.2USB数据流单元:字段21

2.2.1同步字段:SYNC21

2.2.2包标识字段:PID23

2.2.3地址字段:ADDR23

2.2.4端点字段:ENDP23

2.2.5帧号字段:NUM23

2.2.6数据字段:DATA23

2.2.7校验字段:CRC24

2.3 USB数据流构成:信息包24

2.3.1令牌包:USB传输类型24

2.3.2数据包:USB传输数据28

2.3.3握手包:USB传输状态28

第3章 USB总线数据流管理30

3.1 USB总线数据流分类30

3.2 USB IN数据流管理30

3.2.1 USB设备响应31

3.2.2 US B主机响应31

3.3 USB OUT数据流管理31

3.4 USB SETUP数据流管理32

3.5 USB PING数据流管理33

3.6 USB SOF数据流管理34

3.7 USB SPLIT数据流管理34

3.7.1 SSPLIT数据流管理34

3.7.2 CSPLIT数据流管理34

3.8 USB PRE数据流管理35

3.9USB设备列举状态35

3.9.1典型的USB设备状态35

3.9.2 USB设备的连接37

3.9.3 US B设备的断开37

第4章 USB总线数据流类型38

4.1 USB总线数据流传输类型概述38

4.2 USB控制数据流传输:Control39

4.2.1控制传输数据包40

4.2.2控制数据流管理40

4.3USB中断数据流传输:Interrupt42

4.3.1中断传输的数据包42

4.3.2中断数据流管理42

4.4USB块数据流传输:Bulk43

4.4.1块传输的数据包43

4.4.2块数据流管理43

4.5USB同步数据流传输:Isochronous44

4.5.1同步传输的数据包44

4.5.2同步数据流管理44

4.6USB 3.0与USB 2.0数据传输的区别45

4.6.1数据传输方式46

4.6.2编码方式46

4.7USB总线容错管理47

4.7.1超时管理机制48

4.7.2信息包错误管理机制49

4.7.3数据触发管理机制49

4.7.4 EOP错误管理机制51

4.7.5总线活动丢失管理机制51

第5章 USB标准设备管理53

5.1 USB标准设备管理:描述符53

5.1.1 USB设备描述符54

5.1.2 USB配置描述符56

5.1.3 USB接口描述符57

5.1.4 USB端点描述符58

5.1.5 USB字符串描述符60

5.1.6 USB设备限定描述符61

5.1.7 USB其他速率配置描述符62

5.2 USB标准设备管理:设备请求63

5.2.1读取状态请求GetStatus64

5.2.2清除特性请求ClearFeature65

5.2.3设置特性请求SetF eature66

5.2.4设置地址请求SetAddress66

5.2.5读取描述符请求GetDescription67

5.2.6设置描述符请求SetDescriptor67

5.2.7读取配置请求GetConfiiguration67

5.2.8设置配置请求SetConfiiguration68

5.2.9读取接口请求GetInterface68

5.2.10设置接口请求SetInterface68

5.2.11同步帧请求SynchFrame69

5.3 USB标准设备管理示例69

5.3.1声明设备请求69

5.3.2设备请求的响应70

第6章 USB HID设备管理74

6.1 USB HID设备类74

6.1.1 HID设备的特点74

6.1.2 HID设备的定义74

6.2 USB HID设备管理:描述符76

6.2.1设备描述符76

6.2.2配置描述符76

6.2.3接口描述符77

6.2.4端点描述符77

6.2.5字符串描述符77

6.2.6 HID类描述符78

6.3 USB HID设备管理:HID设备类请求80

6.3.1 GetReport请求(获取报告请求)80

6.3.2 GetIdle请求(获取空闲速率请求)81

6.3.3 GetProtocol请求(获取HID协议请求)81

6.3.4 SetReport请求(设置报告请求)82

6.3.5 S etIdle请求(设置空闲速率请求)82

6.3.6 S etProtocol请求(设置HID协议请求)83

第7章 USB集线器设备管理84

7.1 USB集线器配置原理84

7.1.1集线器设备类85

7.1.2集线器的配置过程85

7.1.3 US B集线器的状态86

7.2 USB集线器设备管理:描述符86

7.2.1集线器设备描述符86

7.2.2集线器配置描述符88

7.2.3集线器接口描述符89

7.2.4集线器端点描述符90

7.2.5集线器类描述符91

7.3 USB集线器设备管理:集线器类请求91

7.3.1读取集线器状态请求GetHubStatus93

7.3.2读取下行端口状态请求GetPortStatus93

7.3.3禁止集线器的特性请求ClearHubFeature94

7.3.4禁止下行端口特性请求ClearPortFeature94

7.3.5使能集线器特性请求SetHubF eature95

7.3.6使能下行端口特性请求SetPortFeature95

7.3.7读取描述符请求GetHubDescriptor96

7.3.8设置描述符请求SetHubDescriptor96

7.3.9清除TT块请求ClearTTBuffer97

7.3.10复位TT块请求ResetTT97

7.3.11读取TT内部状态请求GetTTState98

7.3.12停止TT正常工作请求StopTT99

第二篇 USB程序开发100

第8章 Windows驱动程序管理100

8.1 Windows驱动管理模型:WDM100

8.1.1 WDM驱动程序特征101

8.1.2 WD M驱动程序结构102

8.1.3 WD M驱动程序模型102

8.1.4 WDM驱动程序构成103

8.2入口例程的实现104

8.3即插即用例程的实现105

8.4分发例程的实现108

8.5卸载例程的实现109

8.6电源管理例程的实现109

8.7设备的即插即用管理111

8.7.1 WDM PnP IRP的处理规则111

8.7.2 WDM即插即用的管理113

8.7.3 US B设备的即插即用114

第9章 DriverStudio驱动开发工具117

9.1 DriverStudio驱动开发工具简介117

9.1.1 DriverStudio软件工具117

9.1.2 DriverStudio软件的安装及配置119

9.1.3配置DriverStudio编译环境124

9.2 DriverStudio环境下WDM驱动结构125

9.2.1基类KDriver125

9.2.2即插即用类KPnPDevice127

9.2.3物理对象类KPnpLowerDevice131

9.3 DriverStudio环境下WDM驱动程序实例131

9.3.1简单的驱动程序的建立131

9.3.2驱动程序设计138

9.3.3驱动的安装141

9.3.4驱动程序测试145

第10章 基于DriverStudio的USB接口编程类147

10.1 USB编程类函数概述147

10.2 USB设备编程类KUsbLowerDevice147

10.2.1激活USB设备配置函数ActivateConfiiguration147

10.2.2终止USB设备配置函数DeActivateConfiiguration148

10.2.3初始化厂商请求函数BuildVendorRequest148

10.2.4分配类请求函数BuildClassRequest149

10.2.5清除特征标志函数ClearFeature149

10.2.6设置特征标志函数SetFeature149

10.2.7获取状态函数GetStatus150

10.2.8获取USB帧号函数GetCurrentFrameNumber150

10.2.9未配置状态函数Unconfiigure150

10.2.10配置状态函数Confiigure150

10.2.11配置接口函数PreconfiigureInterface150

10.2.12接口描述符函数LocateInterface150

10.2.13配置描述符函数Preconfigure151

10.2.14删除USB资源函数ReleaseResources151

10.2.15 字符串描述符函数GetStringDescriptor151

10.2.16设备描述符函数GetDeviceDescriptor151

10.2.17初始化函数Initialize152

10.2.18发送URB函数SubmitUrb152

10.3USB接口编程类KUsbInterface152

10.3.1使能接口函数SelectAlternate152

10.3.2清除特征标志函数ClearFeature152

10.3.3设置特征标志函数SetFeature153

10.3.4获取状态函数GetStatus153

10.3.5初始化厂商请求函数BuildVendorRequest153

10.3.6分配类请求函数BuildCIassRequest154

10.3.7管道函数Pipes154

10.3.8管道数量函数NumberOfPipes154

10.3.9接口协议函数Protocol154

10.3.10接口子类函数Subclass155

10.3.11接口类函数Class155

10.3.12使能接口号函数AltemateSetting155

10.3.13接口数量函数InterfaceNumber155

10.3.14初始化函数Initialize155

10.3.15关闭接口函数Close155

10.3.16是否打开函数IsOpen155

10.3.17打开实例函数Open155

10.3.18发送URB函数SubmitUrb156

10.3.19是否可用函数IsValid156

10.4USB管道编程类KUsbPipe156

10.4.1初始化函数Initialize156

10.4.2打开接口函数Open156

10.4.3是否打开函数IsOpen156

10.4.4关闭管道函数Close157

10.4.5中断传输函数BuildInterruptTransfer157

10.4.6控制传输函数Bui IdControlTransfer157

10.4.7块传输函数BuildBulkTransfer157

10.4.8同步传输函数BuildIsochronousTransfer158

10.4.9清除特征标志函数ClearF eature158

10.4.10设置特征标志函数SetFeature158

10.4.11获取状态函数GetStatus159

10.4.12复位管道函数Reset159

10.4.13丢弃函数Abort159

10.4.14初始化厂商请求函数BuildVendorRequest159

10.4.15 初始化类请求函数BuildClassRequest160

10.4.16最大帧字节数函数MaximumPacketSize160

10.4.17最大传输字节数函数MaximumTransferSize160

10.4.18管道句柄函数Handle160

10.4.19中断检查间隔函数PollInterval160

10.4.20管道端点地址函数EndpointAddress161

10.4.21设置最大传输字节数函数SetMaximumTransferSize161

10.4.22发送URB函数SubmitUrb161

10.4.23传输类型函数Type161

10.5 USB驱动创建实例161

10.5.1 USB驱动程序建立161

10.5.2 USB驱动程序设计167

第11章 Cypress通用USB驱动程序169

11.1驱动程序INF文件简介169

11.2驱动程序INF文件处理过程169

11.3驱动程序IN F文件的结构170

11.3.1版本节[Version]170

11.3.2源文件盘符节[Source Di sksN arnes]172

11.3.3 源文件节[SourceDisksFiles]172

11.3.4目标磁盘节[DestinationDirs]173

11.3.5供应商节[Manufacturer]173

11.3.6默认安装节[DefaultInstall]174

11.3.7字符串节[String]174

11.4 Cypress的通用USB驱动程序概述174

11.5 CyLoad.inf文件解析175

11.5.1 CyLoad.inf文件175

11.5.2修改设备的VID/PID177

11.5.3修改字符串177

11.5.4修改GUID178

11.5.5修改驱动名称178

11.6 CyUSB.inf文件解析178

11.6.1 CyUSB.inf文件178

11.6.2修改设备的VID/PID180

11.6.3修改字符串181

11.6.4修改驱动名称181

11.7 EZ-USB驱动程序的安装181

第12章 Cypress的USB接口控制函数185

12.1 cyioctl控制数类185

12.1.1头文件cyioctl.h185

12.1.2获取设备句柄191

12.1.3中止i/O端点的请求接口IOCTL ADAPT ABORT PIPE191

12.1.4断开USB设备接口IOCTL ADAPT CYCLE PORT191

12.1.5获得设备地址接口IOCTL ADAPT GET ADDRESS191

12.1.6获取替换接口IOCTL ADAPT GET ALT INTERFACE SETTING192

12.1.7获取字符串接口IOCTL_ADAPT_GET_DEVICE_NAME192

12.1.8获取电源接口IOCTL_ADAPT_GET_DEVICE_POWER_STATE192

12.1.9获取版本接口IOCTL_ADAPT_GET_DRIVER_VERSION193

12.1.10获取替换名称接口IOCTL_ADAPT_GET_FRIENDLY_NAME193

12.1.11获取端点数接口IOCTL_ADAPT_GET_NUMBER_ENDPOINTS193

12.1.12获取传输大小接口IOCTL_ADAPT_GET_TRANSFER_SIZE194

12.1.13获取USBDI接口IOCTL_ADAPT_GET_USBDI_VERSION194

12.1.14复位设备接口IOCTL_ADAPT_RESET_PARENT_PORT194

12.1.15复位端点接口IOCTL_ADAPT_RESET_PIPE195

12.1.16设置替换接口IOCTL_ADAPT_SELECT_INTERFACE195

12.1.17发送控制请求接口IOCTL_ADAPT_SEND_EPO_CONTROL_TRANSFER195

12.1.18数据传输接口IOCTL_ADAPT_SEND_NON_EPO_TRANSFER196

12.1.19设置电源接口IOCTL_ADAPT_SET_DEVICE_POWER_STATE197

12.1.20设置传输字节接口IOCTL_ADAPT_SET_TRANSFER_SIZE197

12.2 CyAPI控制函数类198

12.2.1头文件CyAPI.h198

12.2.2块传输端点控制类CCyBulkEndPoint208

12.2.3控制传输端点类CCyControlEndPoint208

12.2.4中断传输端点控制类CCyInterruptEndPoint210

12.2.5同步传输端点控制类CCylsocEndPoint211

12.2.6设备控制类CCyUSBDevice213

12.2.7配置信息类CCyUSBConfiig223

12.2.8端点控制类CCyUSBEndPoint225

12.2.9接口控制类CCyUSBInterface229

12.3 USB控制函数示例232

第13章 Cypress EZ-USB接口芯片234

13.1 EZ-USB芯片简介234

13.2增强型8051 CPU结构235

13.3特殊功能寄存器236

13.4中断系统237

13.5 I/O端口238

13.5.1普通I/O功能240

13.5.2第二扩展功能243

13.5.3从属FIFO接口模式246

13.5.4 GPIF模式247

13.6指令系统248

第14章 Cypress EZ-USB寄存器详解254

14.1特殊功能寄存器254

14.1.1端口PA读/写寄存器IOA254

14.1.2端口PB读/写寄存器IOB255

14.1.3自动指针1地址高字节寄存器AUTOPTRH 1255

14.1.4自动指针1地址低字节寄存器AUTOPTRLI255

14.1.5自动指针2地址高字节寄存器AUTOPTRH2255

14.1.6自动指针2地址低字节寄存器AUTOPTRL2256

14.1.7端口PC读/写寄存器IOC256

14.1.8中断请求INT2清除寄存器INT2CLR256

14.1.9中断请求INT4清除寄存器INT4CLR257

14.1.10端点状态标志寄存器EP2468STAT257

14.1.11数据传输状态标志寄存器EP24FIFOFLGS258

14.1.12数据传输状态标志寄存器EP68FIFOFLGS258

14.1.13自动指针设置寄存器AUTOPTRSETUP259

14.1.14端口PD读/写寄存器IOD259

14.1.15 端口PE读/写寄存器IOE259

14.1.16端口使能寄存器OEA~OEE260

14.1.17端点0和1的状态寄存器EPO 1 STAT261

14.1.18触发GPIF寄存器GPIFTRIG261

14.1.19 GPIF数据寄存器GPIFSGLDATH261

14.1.20 GPIF数据寄存器GPIFSGLDATLX262

14.1.21 GPIF数据寄存器GPIFSGLDATLNOX262

14.2GPIF波形描述寄存器262

14.3通用配置寄存器263

14.3.1 CPU控制和状态寄存器263

14.3.2接口配置263

14.3.3 Slave FIFO引脚配置264

14.3.4 FIFO复位266

14.3.5断点266

14.3.6串行时钟267

14.3.7 Slave FIFO接口引脚的极性267

14.3.8芯片版本ID268

14.3.9芯片版本控制269

14.3.10 GPIF保持时间269

14.4端点配置寄存器269

14.4.1端点1IN和端点1OUT配置270

14.4.2端点2、 4、 6、 8配置270

14.4.3端点2、 4、 6、 8的Slave FIFO配置271

14.4.4端点2、 4、 6、 8的 AUTO IN包长度272

14.4.5端点的ISO IN包273

14.4.6 IN数据包强制结束273

14.4.7 OUT数据包强制结束273

14.5中断寄存器275

14.5.1端点Slave FIFO中断275

14.5.2 Bulk In中断276

14.5.3端点握手中断276

14.5.4 USB中断277

14.5.5端点中断278

14.5.6 GPIF中断279

14.5.7 USB错误中断279

14.5.8 USB错误计数限制280

14.5.9清除错误计数281

14.5.10 IN T2自动向量281

14.5.11 INT4自动向量281

14.5.12INT2和INT4的SETUP281

14.6输入/输出寄存器282

14.6.1端口A的替换配置282

14.6.2端口C的替换配置282

14.6.3端口E的替换配置283

14.6.4 XTALIN时钟源源283

14.6.5 I2C总线控制和状态284

14.6.6 I2C总线数据284

14.6.7 I2C总线控制284

14.6.8自动指针的 MOVX操作285

14.7 USB控制寄存器285

14.7.1 USB控制和状态285

14.7.2进入挂起状态286

14.7.3唤醒控制及状态286

14.7.4数据触发控制287

14.7.5 USB帧计数287

14.7.6 USB微帧计数288

14.7.7 USB功能地址288

14.8端点操作寄存器288

14.8.1端点0计数288

14.8.2端点1计数289

14.8.3端点2和端点6的Byte计数高位289

14.8.4端点4和端点8的Byte计数高位289

14.8.5端点2.4.6.8计数的低位290

14.8.6端点0控制和状态290

14.8.7端点1控制和状态291

14.8.8端点2控制和状态292

14.8.9端点4控制和状态292

14.8.10端点6控制和状态293

14.8.11端点8控制和状态293

14.8.12端点2和端点4的FIFO标志294

14.8.13端点6和端点8的FIFO标志294

14.8.14端点2的Slave FIFO字节计数高位294

14.8.15 端点6的Slave FIFO字节计数高位295

14.8.16端点4和端点8的Slave FIFO字节计数高位295

14.8.17端点2、 4、 6和端点8 Slave FIFO字节计数低位295

14.8.18 Setup数据指针地址296

14.8.19 Setup指针自动模式296

14.8.20 8字节Setup数据297

14.9 GPIF/FIFOs寄存器297

14.9.1 GPIF波形选择298

14.9.2 GPIF完成和空闲298

14.9.3 CTL的输出状态299

14.9.4 GPIF地址300

14.9.5 GPIF流动状态300

14.9.6 GPIF处理字节计数301

14.9.7端点2、 4、 6和端点8的GPIF标志选择303

14.9.8端点2、 4、 6和端点8的GPIF停止事务303

14.9.9端点2、 4、 6和端点8的GPIF触发303

14.9.10 GPIF数据304

14.9.11 GPIF RDY引脚的配置305

14.9.12 GPIF RDY引脚状态306

14.9.13终止GPIF循环306

14.10端点缓冲寄存器306

14.10.1端点0306

14.10.2端点1IN307

14.10.3端点1 OUT307

14.10.4端点2307

14.10.5端点4308

14.10.6端点6309

14.10.7端点8309

第15章 Cypress EZ-USB固件设计310

15.1 EZ-USB开发工具包310

15.1.1安装开发工具包310

15.1.2开发包工具简介314

15.2 EZ-USB基本固件框架316

15.2.1基本固件框架的建立316

15.2.2基本电路图317

15.2.3固件设计和运行318

15.3 EZ-USB固件程序设计323

15.3.1 USB端口读/写的程序设计323

15.3.2 USB端口读/写的固件仿真调试327

15.3.3 USB端点的数据发送和采集328

15.3.4数据发送和采集仿真调试332

第三篇 USB开发实例334

第16章 USB接口LED数码管显示器实例334

16.1 USB控制端点0请求334

16.1.1 USB控制传输流程334

16.1.2 USB设备请求及固件响应335

16.1.3自定义请求346

16.2 LED数码管显示器346

16.2.1共阳极7段LED347

16.2.2共阴极7段LED348

16.3电路原理图349

16.3.1电源部分电路350

16.3.2 USB部分电路351

16.4 USB固件程序设计351

16.4.1主程序文件352

16.4.2功能实现代码360

16.4.3自定义请求的定义362

16.4.4 USB描述符369

16.4.5固件程序安装及调试375

16.5 USB主机程序设计378

16.5.1控制函数379

16.5.2建立项目380

16.5.3程序设计384

16.5.4编译程序并运行388

第17章 USB自定义设备实例389

17.1 EZ-USB的启动模式389

17.1.1 EZ-USB的启动模式389

17.1.2默认USB设备状态390

17.2 EZ-USB的EEPROM引导启动391

17.2.1没有EEPROM,或者EEPROM的首字节不合法391

17.2.2首字节为0xC0的EEPROM启动392

17.2.3首字节为0xC2的EEPROM启动392

17.2.4配置字节393

17.2.5设备请求控制位RENUM394

17.2.6固件下载和重列举395

17.3 USB自定义设备实例396

17.3.1硬件选型的写入396

17.3.2 EEPROM读/写电路设计396

17.4 EEPROM读/写程序397

17.4.1宏定义398

17.4.2延时函数398

17.4.3基本操作函数399

17.4.4 12C读/写函数400

17.4.5主程序402

17.4.6编译工程403

17.5 USB自定义设备电路设计403

17.6 USB自定义设备固件程序设计404

17.6.1主程序文件405

17.6.2请求响应函数407

17.6.3初始化子程序410

17.6.4功能子程序411

17.6.5自定义请求的定义411

17.7 USB描述符412

17.7.1设备描述符412

17.7.2高速配置描述符412

17.7.3全速配置描述符414

17.7.4字符串描述符416

17.8驱动程序设计417

17.8.1编辑PMDriverLoad.inf文件417

17.8.2编辑QKDPMDriver.inf文件419

17.9驱动程序的安装422

17.9.1安装驱动422

17.9.2测试设备425

17.10固件仿真调试426

17.11主机程序设计426

17.11.1建立工程426

17.11.2用户界面设计429

17.11.3程序代码设计430

17.11.4编译执行432

第18章 USB的RAM读1写实例434

18.1 EZ-USB FX2LP的存储器434

18.1.1内部数据RAM434

18.1.2外部程序和数据存储空间437

18.1.3 EZ-USB FX2LP的内存映射438

18.1.4 Von-Neumanni zing片外程序和数据存储器439

18.1.5 0xE000~0xFFFF之间的片内数据存储器440

18.2 USB的RAM读/写电路设计441

18.2.1电路原理图441

18.2.2 USB接口说明442

18.2.3 I2C总线接口芯片PCF8574442

18.3建立USB固件程序项目443

18.4主程序文件444

18.4.1宏定义和函数变量声明444

18.4.2读/写RAM区域函数446

18.4.3错误码分析函数447

18.4.4字符串输出函数448

18.4.5主函数448

18.5头文件简介450

18.5.1常量定义451

18.5.2宏定义453

18.5.3数据类型454

18.5.4全局声明457

18.5.5函数声明458

第19章 USB自动数据传输实例459

19.1 Slave FIFO模式简介459

19.1.1 Slave FIFO模式的引脚460

19.1.2典型的数据传输时序464

19.2Slave FIFO模式的固件设计470

19.2.1 Slave FIFO固件基础471

19.2.2 AUTO IN/AUTO OUT方式471

19.2.3 CPU访问OUT数据包473

19.2.4 CPU访问IN数据包475

19.2.5 AUTO IN/AUTO OUT方式初始化477

19.3 USB自动数据传输实例479

19.3.1电路设计479

19.3.2外部控制逻辑程序设计481

19.3.3 USB固件程序设计483

19.3.4固件仿真调试494

19.3.5主机控制函数简介495

19.3.6上位机程序设计496

19.3.7程序运行506

第20章 USB高速数据采集实例508

20.1 EZ-USB的GPIF模式508

20.1.1 GPIF模式简介508

20.1.2 GPIF的硬件组成509

20.1.3 GPIF硬件配置512

20.2 GPIF波形图编辑512

20.2.1 GPIF寄存器512

20.2.2可编程GPIF波形512

20.2.3波形图设计工具513

20.2.4波形图设计实例514

20.3 GPIF固件编程514

20.3.1单字节读数据传输516

20.3.2单字节写数据传输519

20.3.3 FIFO读数据传输522

20.3.4 FIFO写数据传输526

20.4基于GPIF模式的高速数据采集电路530

20.4.1数据采集电路图530

20.4.2外部FIFO接口531

20.5数据采集波形图编辑533

20.5.1接口设计533

20.5.2数据读/写设计535

20.5.3波形描述符文件536

20.6固件程序设计539

20.6.1 USB描述符539

20.6.2主程序545

20.6.3功能实现文件547

20.6.4初始化代码548

20.6.5数据传输函数550

20.6.6调度函数550

20.6.7自定义请求552

20.7 USB主机程序设计554

20.7.1创建主机程序554

20.7.2界面设计557

20.7.3主机程序初始化558

20.7.4按钮功能实现559

20.7.5线程处理561

第21章 USB HID设备设计实例565

21.1简易USB HID键盘原理图565

21.2 USB固件程序开发566

21.2.1建立USB固件程序566

21.2.2键盘描述符567

21.2.3主程序文件573

21.2.4功能实现代码575

21.3设备测试578

第22章 USB转串口实例579

22.1CH341芯片简介579

22.1.1 CH341芯片的特点579

22.1.2异步串口方式580

22.1.3打印口582

22.1.4并口584

22.1.5同步串口586

22.1.6功能配置586

22.2 USB转串口实例587

22.2.1电路图587

22.2.2硬件介绍588

22.2.3连接使用589

第23章 控制UsB接口打印机实例590

23.1 CH375A接口芯片590

23.1.1 CH375A概述591

23.1.2CH375A内部结构592

23.2 CH375A基本指令593

23.2.1设置设备地址命令SET_USB_ADDR594

23.2.2设置端点接收器命令SET_ENDP6594

23.2.3设置端点发送器命令SET_ENDP7594

23.2.4设置重试次数命令SET_RETRY595

23.2.5事务执行命令ISSUE_TOKEN595

23.2.6清除端点错误命令CLR_STALL595

23.2.7设置地址命令SET_ADDRESS596

23.2.8获取描述符命令GET_DESCR596

23.2.9设置USB配置命令SET_CONFIG596

23.2.10读取数据块命令RD_USB_DATA0596

23.2.11延时100μS命令DELAY_100US596

23.2.12查询连接状态命令TEST_CONNECT596

23.2.13同步令牌事务命令ISSUE_TKN_X597

23.2.14自动配置设备命令AUTO_SETUP597

23.3 USB存储设备类指令597

23.3.1硬件复位命令RESET_ALL598

23.3.2测试工作状态命令CHECK_EXIST598

23.3.3设置工作模式命令SET_USB_MODE598

23.3.4获取中断状态命令GET_STATUS599

23.3.5设置串口波特率命令SET_BAUDRATE599

23.3.6读取数据块命令RD_USB_DATA600

23.3.7写入数据块命令WR_USB_DATA7600

23.3.8终止命令ABORT NAK600

23.3.9初始化存储设备命令DISK_INIT600

23.3.10获取物理容量命令DISK_SIZE601

23.3.11读取数据块命令DISK_READ601

23.3.12读操作命令DISK_RD_GO601

23.3.13写入数据块命令DISK_WRITE601

23.3.14写操作命令DISK_WR_GO602

23.3.15获取版本命令GET_IC_VER602

23.3.16低功耗状态命令ENTER_SLEEP602

23.3.17设置逻辑单元号命令SET_DISK_LUN602

23.3.18查询特性命令DISK_INQUIRY602

23.3.19检查存储设备是否就绪命令DISK_READY603

23.3.20检查错误命令DISK_R_SENSE603

23.3.21获取最大逻辑单元号命令DISK_MAX_LUN603

23.4接口方式603

23.4.1并行接口603

23.4.2串行接口604

23.5USB打印机控制实例605

23.5.1 USB打印机控制方式605

23.5.2电路图605

23.5.3项目建立608

23.6头文件609

23.6.1指令声明609

23.6.2操作状态及中断状态613

23.6.3请求类型614

23.7程序设计615

23.7.1头文件615

23.7.2参数及结构定义615

23.7.3基本操作函数617

23.7.4数据同步及读/写619

23.7.5主机操作620

23.7.6主函数625

热门推荐