USB开发手册

USB开发手册
作 者: 傅志辉
出版社: 中国铁道出版社
丛编项:
版权说明: 本书为出版图书,暂不支持在线阅读,请支持正版图书
标 签: 计算机/网络 硬件 外部设备 维修
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

  傅志辉,副教授,高级架构师,移动电子商务专家库成员。从事企业信息化建设已有17年,具备丰富的移动软硬件开发实践经验,曾担任多个大型软件公司技术顾问,指导实施软硬件一体化产品开发。精通USB、PCI等总线协议开发,熟悉VSNET、PHP、JAVA等多种软件开发语言或平台,精通SQL、Oracle数据库软件,参与过多个大型数据中心的设计与调优。

内容简介

★《USB开发手册》系统地介绍了当前最流行的USB总线接口的协议、工作原理,以及驱动程序设计。本书中还以大量篇幅,全面详细地介绍了在各种应用场合下USB接口的设计实例。本书言简意赅、通俗易懂、知识点介绍详细、实例丰富,使读者能够更快、更好地掌握USB接口的原理及设计方法。★《USB开发手册》分为三篇,共23章,全面详细地讲述了USB接口的原理及应用实例。第一篇介绍了USB总线开发基础,总线数据流的结构、管理、类型,以及设备管理;第二篇介绍了USB程序的开发,包括USB驱动程序开发和USB固件程序开发;第三篇通过8大实例,详细介绍了在不同的应用场合下USB接口设备的设计,包括完整的电路图和程序设计。★本书内容全面、结构紧凑、实例丰富。USB接口的初学者通过学习本书可以快速入门,此外本书对具有一定开发经验的设计人员也有很好的参考价值。★适合阅读本书的读者:USB接口的初学者、具有一定开发经验的USB设计人员、电子设计爱好者、电子工程师、系统开发人员、大学、大专等相关专业的学生及教师。

图书目录

第一篇USB总线基础

第1章USB总线开发基础

1.1USB总线的发展

1.1.1USB1.0版本

1.1.2USB1.1版本

1.1.3USB2.0版本

1.1.4USB3.0版本

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

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

1.2.2USB总线接口的优势

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

1.3认识USB总线

1.3.1USB主机

1.3.2USB集线器设备

1.3.3USB功能设备

1.3.4USB电缆

1.3.5USB连接器

1.4认识USB总线规范

1.4.1USB总线设备类规范

1.4.2USB系统的结构

1.4.3USB总线的供电

1.4.4USB总线电源分配

1.4.5USB总线电源管理

1.5认识USB接口开发

1.5.1USB硬件开发

1.5.2USB驱动开发

1.5.3USB软件开发

第2章USB总线数据流结构

2.1USB总线数据流概述

2.2USB数据流单元:字段

2.2.1同步字段:SYNC

2.2.2包标识字段:PID

2.2.3地址字段:ADDR

2.2.4端点字段:ENDP

2.2.5帧号字段:NUM

2.2.6数据字段:DATA

2.2.7校验字段:CRC

2.3USB数据流构成:信息包

2.3.1令牌包:USB传输类型

2.3.2数据包:USB传输数据

2.3.3握手包:USB传输状态

第3章USB总线数据流管理

3.1USB总线数据流分类

3.2USBIN数据流管理

3.2.1USB设备响应

3.2.2USB主机响应

3.3USBOUT数据流管理

3.4USBSETUP数据流管理

3.5USBPING数据流管理

3.6USBSOF数据流管理

3.7USBSPLIT数据流管理

3.7.1SSPLIT数据流管理

3.7.2CSPLIT数据流管理

3.8USBPRE数据流管理

3.9USB设备列举状态

3.9.1典型的USB设备状态

3.9.2USB设备的连接

3.9.3USB设备的断开

第4章USB总线数据流类型

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

4.2USB控制数据流传输:Control

4.2.1控制传输数据包

4.2.2控制数据流管理

4.3USB中断数据流传输:Interrupt

4.3.1中断传输的数据包

4.3.2中断数据流管理

4.4USB块数据流传输:Bulk

4.4.1块传输的数据包

4.4.2块数据流管理

4.5USB同步数据流传输:Isochronous

4.5.1同步传输的数据包

4.5.2同步数据流管理

4.6USB3.0与USB2.0数据传输的区别

4.6.1数据传输方式

4.6.2编码方式

4.7USB总线容错管理

4.7.1超时管理机制

4.7.2信息包错误管理机制

4.7.3数据触发管理机制

4.7.4EOP错误管理机制

4.7.5总线活动丢失管理机制

第5章USB标准设备管理

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

5.1.1USB设备描述符

5.1.2USB配置描述符

5.1.3USB接口描述符

5.1.4USB端点描述符

5.1.5USB字符串描述符

5.1.6USB设备限定描述符

5.1.7USB其他速率配置描述符

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

5.2.1读取状态请求GetStatus

5.2.2清除特性请求ClearFeature

5.2.3设置特性请求SetFeature

5.2.4设置地址请求SetAddress

5.2.5读取描述符请求GetDescription

5.2.6设置描述符请求SetDescriptor

5.2.7读取配置请求GetConfiguration

5.2.8设置配置请求SetConfiguration

5.2.9读取接口请求GetInterface

5.2.10设置接口请求SetInterface

5.2.11同步帧请求SynchFrame

5.3USB标准设备管理示例

5.3.1声明设备请求

5.3.2设备请求的响应

第6章USBHID设备管理

6.1USBHID设备类

6.1.1HID设备的特点

6.1.2HID设备的定义

6.2USBHID设备管理:描述符

6.2.1设备描述符

6.2.2配置描述符

6.2.3接口描述符

6.2.4端点描述符

6.2.5字符串描述符

6.2.6HID类描述符

6.3USBHID设备管理:HID设备类请求

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

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

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

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

6.3.5SetIdle请求(设置空闲速率请求)

6.3.6SetProtocol请求(设置HID协议请求)

第7章USB集线器设备管理

7.1USB集线器配置原理

7.1.1集线器设备类

7.1.2集线器的配置过程

7.1.3USB集线器的状态

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

7.2.1集线器设备描述符

7.2.2集线器配置描述符

7.2.3集线器接口描述符

7.2.4集线器端点描述符

7.2.5集线器类描述符

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

7.3.1读取集线器状态请求GetHubStatus

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

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

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

7.3.5使能集线器特性请求SetHubFeature

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

7.3.7读取描述符请求GetHubDescriptor

7.3.8设置描述符请求SetHubDescriptor

7.3.9清除TT块请求ClearTTBuffer

7.3.10复位TT块请求ResetTT

7.3.11读取TT内部状态请求GetTTState

7.3.12停止TT正常工作请求StopTT

第二篇USB程序开发

第8章Windows驱动程序管理

8.1Windows驱动管理模型:WDM

8.1.1WDM驱动程序特征

8.1.2WDM驱动程序结构

8.1.3WDM驱动程序模型

8.1.4WDM驱动程序构成

8.2入口例程的实现

8.3即插即用例程的实现

8.4分发例程的实现

8.5卸载例程的实现

8.6电源管理例程的实现

8.7设备的即插即用管理

8.7.1WDMPnPIRP的处理规则

8.7.2WDM即插即用的管理

8.7.3USB设备的即插即用

第9章DriverStudio驱动开发工具

9.1DriverStudio驱动开发工具简介

9.1.1DriverStudio软件工具

9.1.2DriverStudio软件的安装及配置

9.1.3配置DriverStudio编译环境

9.2DriverStudio环境下WDM驱动结构

9.2.1基类KDriver

9.2.2即插即用类KPnPDevice

9.2.3物理对象类KPnpLowerDevice

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

9.3.1简单的驱动程序的建立

9.3.2驱动程序设计

9.3.3驱动的安装

9.3.4驱动程序测试

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

10.1USB编程类函数概述

10.2USB设备编程类KUsbLowerDevice

10.2.1激活USB设备配置函数ActivateConfiguration

10.2.2终止USB设备配置函数DeActivateConfiguration

10.2.3初始化厂商请求函数BuildVendorRequest

10.2.4分配类请求函数BuildClassRequest

10.2.5清除特征标志函数ClearFeature

10.2.6设置特征标志函数SetFeature

10.2.7获取状态函数GetStatus

10.2.8获取USB帧号函数GetCurrentFrameNumber

10.2.9未配置状态函数Unconfigure

10.2.10配置状态函数Configure

10.2.11配置接口函数PreconfigureInterface

10.2.12接口描述符函数LocateInterface

10.2.13配置描述符函数Preconfigure

10.2.14删除USB资源函数ReleaseResources

10.2.15字符串描述符函数GetStringDescriptor

10.2.16设备描述符函数GetDeviceDescriptor

10.2.17初始化函数Initialize

10.2.18发送URB函数SubmitUrb

10.3USB接口编程类KUsbInterface

10.3.1使能接口函数SelectAlternate

10.3.2清除特征标志函数ClearFeature

10.3.3设置特征标志函数SetFeature

10.3.4获取状态函数GetStatus

10.3.5初始化厂商请求函数BuildVendorRequest

10.3.6分配类请求函数BuildClassRequest

10.3.7管道函数Pipes

10.3.8管道数量函数NumberOfPipes

10.3.9接口协议函数Protocol

10.3.10接口子类函数Subclass

10.3.11接口类函数Class

10.3.12使能接口号函数AlternateSetting

10.3.13接口数量函数InterfaceNumber

10.3.14初始化函数Initialize

10.3.15关闭接口函数Close

10.3.16是否打开函数IsOpen

10.3.17打开实例函数Open

10.3.18发送URB函数SubmitUrb

10.3.19是否可用函数IsValid

10.4USB管道编程类KUsbPipe

10.4.1初始化函数Initialize

10.4.2打开接口函数Open

10.4.3是否打开函数IsOpen

10.4.4关闭管道函数Close

10.4.5中断传输函数BuildInterruptTransfer

10.4.6控制传输函数BuildControlTransfer

10.4.7块传输函数BuildBulkTransfer

10.4.8同步传输函数BuildIsochronousTransfer

10.4.9清除特征标志函数ClearFeature

10.4.10设置特征标志函数SetFeature

10.4.11获取状态函数GetStatus

10.4.12复位管道函数Reset

10.4.13丢弃函数Abort

10.4.14初始化厂商请求函数BuildVendorRequest

10.4.15初始化类请求函数BuildClassRequest

10.4.16最大帧字节数函数MaximumPacketSize

10.4.17最大传输字节数函数MaximumTransferSize

10.4.18管道句柄函数Handle

10.4.19中断检查间隔函数PollInterval

10.4.20管道端点地址函数EndpointAddress

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

10.4.22发送URB函数SubmitUrb

10.4.23传输类型函数Type

10.5USB驱动创建实例

10.5.1USB驱动程序建立

10.5.2USB驱动程序设计

第11章Cypress通用USB驱动程序

11.1驱动程序INF文件简介

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

11.3驱动程序INF文件的结构

11.3.1版本节[Version]

11.3.2源文件盘符节[SourceDisksNames]

11.3.3源文件节[SourceDisksFiles]

11.3.4目标磁盘节[DestinationDirs]

11.3.5供应商节[Manufacturer]

11.3.6默认安装节[DefaultInstall]

11.3.7字符串节[String]

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

11.5CyLoad.inf文件解析

11.5.1CyLoad.inf文件

11.5.2修改设备的VID/PID

11.5.3修改字符串

11.5.4修改GUID

11.5.5修改驱动名称

11.6CyUSB.inf文件解析

11.6.1CyUSB.inf文件

11.6.2修改设备的VID/PID

11.6.3修改字符串

11.6.4修改驱动名称

11.7EZ-USB驱动程序的安装

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

12.1cyioctl控制函数类

12.1.1头文件cyioctl.h

12.1.2获取设备句柄

12.1.3中止I/O端点的请求接口IOCTL_ADAPT_ABORT_PIPE

12.1.4断开USB设备接口IOCTL_ADAPT_CYCLE_PORT

12.1.5获得设备地址接口IOCTL_ADAPT_GET_ADDRESS

12.1.6获取替换接口IOCTL_ADAPT_GET_ALT_INTERFACE_SETTING

12.1.7获取字符串接口IOCTL_ADAPT_GET_DEVICE_NAME

12.1.8获取电源接口IOCTL_ADAPT_GET_DEVICE_POWER_STATE

12.1.9获取版本接口IOCTL_ADAPT_GET_DRIVER_VERSION

12.1.10获取替换名称接口IOCTL_ADAPT_GET_FRIENDLY_NAME

12.1.11获取端点数接口IOCTL_ADAPT_GET_NUMBER_ENDPOINTS

12.1.12获取传输大小接口IOCTL_ADAPT_GET_TRANSFER_SIZE

12.1.13获取USBDI接口IOCTL_ADAPT_GET_USBDI_VERSION

12.1.14复位设备接口IOCTL_ADAPT_RESET_PARENT_PORT

12.1.15复位端点接口IOCTL_ADAPT_RESET_PIPE

12.1.16设置替换接口IOCTL_ADAPT_SELECT_INTERFACE

12.1.17发送控制请求接口IOCTL_ADAPT_SEND_EP0_CONTROL_TRANSFER

12.1.18数据传输接口IOCTL_ADAPT_SEND_NON_EP0_TRANSFER

12.1.19设置电源接口IOCTL_ADAPT_SET_DEVICE_POWER_STATE

12.1.20设置传输字节接口IOCTL_ADAPT_SET_TRANSFER_SIZE

12.2CyAPI控制函数类

12.2.1头文件CyAPI.h

12.2.2块传输端点控制类CCyBulkEndPoint

12.2.3控制传输端点类CCyControlEndPoint

12.2.4中断传输端点控制类CCyInterruptEndPoint

12.2.5同步传输端点控制类CCyIsocEndPoint

12.2.6设备控制类CCyUSBDevice

12.2.7配置信息类CCyUSBConfig

12.2.8端点控制类CCyUSBEndPoint

12.2.9接口控制类CCyUSBInterface

12.3USB控制函数示例

第13章CypressEZ-USB接口芯片

13.1EZ-USB芯片简介

13.2增强型8051CPU结构

13.3特殊功能寄存器

13.4中断系统

13.5I/O端口

13.5.1普通I/O功能

13.5.2第二扩展功能

13.5.3从属FIFO接口模式

13.5.4GPIF模式

13.6指令系统

第14章CypressEZ-USB寄存器详解

14.1特殊功能寄存器

14.1.1端口PA读/写寄存器IOA

14.1.2端口PB读/写寄存器IOB

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

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

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

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

14.1.7端口PC读/写寄存器IOC

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

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

14.1.10端点状态标志寄存器EP2468STAT

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

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

14.1.13自动指针设置寄存器AUTOPTRSETUP

14.1.14端口PD读/写寄存器IOD

14.1.15端口PE读/写寄存器IOE

14.1.16端口使能寄存器OEA~OEE

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

14.1.18触发GPIF寄存器GPIFTRIG

14.1.19GPIF数据寄存器GPIFSGLDATH

14.1.20GPIF数据寄存器GPIFSGLDATLX

14.1.21GPIF数据寄存器GPIFSGLDATLNOX

14.2GPIF波形描述寄存器

14.3通用配置寄存器

14.3.1CPU控制和状态寄存器

14.3.2接口配置

14.3.3SlaveFIFO引脚配置

14.3.4FIFO复位

14.3.5断点

14.3.6串行时钟

14.3.7SlaveFIFO接口引脚的极性

14.3.8芯片版本ID

14.3.9芯片版本控制

14.3.10GPIF保持时间

14.4端点配置寄存器

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

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

14.4.3端点2、4、6、8的SlaveFIFO配置

14.4.4端点2、4、6、8的AUTOIN包长度

14.4.5端点的ISOIN包

14.4.6IN数据包强制结束

14.4.7OUT数据包强制结束

14.5中断寄存器

14.5.1端点SlaveFIFO中断

14.5.2BulkIn中断

14.5.3端点握手中断

14.5.4USB中断

14.5.5端点中断

14.5.6GPIF中断

14.5.7USB错误中断

14.5.8USB错误计数限制

14.5.9清除错误计数

14.5.10INT2自动向量

14.5.11INT4自动向量

14.5.12INT2和INT4的SETUP

14.6输入/输出寄存器

14.6.1端口A的替换配置

14.6.2端口C的替换配置

14.6.3端口E的替换配置

14.6.4XTALIN时钟源

14.6.5I2C总线控制和状态

14.6.6I2C总线数据

14.6.7I2C总线控制

14.6.8自动指针的MOVX操作

14.7USB控制寄存器

14.7.1USB控制和状态

14.7.2进入挂起状态

14.7.3唤醒控制及状态

14.7.4数据触发控制

14.7.5USB帧计数

14.7.6USB微帧计数

14.7.7USB功能地址

14.8端点操作寄存器

14.8.1端点0计数

14.8.2端点1计数

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

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

14.8.5端点2、4、6、8计数的低位

14.8.6端点0控制和状态

14.8.7端点1控制和状态

14.8.8端点2控制和状态

14.8.9端点4控制和状态

14.8.10端点6控制和状态

14.8.11端点8控制和状态

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

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

14.8.14端点2的SlaveFIFO字节计数高位

14.8.15端点6的SlaveFIFO字节计数高位

14.8.16端点4和端点8的SlaveFIFO字节计数高位

14.8.17端点2、4、6和端点8SlaveFIFO字节计数低位

14.8.18Setup数据指针地址

14.8.19Setup指针自动模式

14.8.208字节Setup数据

14.9GPIF/FIFOs寄存器

14.9.1GPIF波形选择

14.9.2GPIF完成和空闲

14.9.3CTL的输出状态

14.9.4GPIF地址

14.9.5GPIF流动状态

14.9.6GPIF处理字节计数

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

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

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

14.9.10GPIF数据

14.9.11GPIFRDY引脚的配置

14.9.12GPIFRDY引脚状态

14.9.13终止GPIF循环

14.1端点缓冲寄存器

14.10.1端点0

14.10.2端点1IN

14.10.3端点1OUT

14.10.4端点2

14.10.5端点4

14.10.6端点6

14.10.7端点8

第15章CypressEZ-USB固件设计

15.1EZ-USB开发工具包

15.1.1安装开发工具包

15.1.2开发包工具简介

15.2EZ-USB基本固件框架

15.2.1基本固件框架的建立

15.2.2基本电路图

15.2.3固件设计和运行

15.3EZ-USB固件程序设计

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

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

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

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

第三篇USB开发实例

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

16.1USB控制端点0请求

16.1.1USB控制传输流程

16.1.2USB设备请求及固件响应

16.1.3自定义请求

16.2LED数码管显示器

16.2.1共阳极7段LED

16.2.2共阴极7段LED

16.3电路原理图

16.3.1电源部分电路

16.3.2USB部分电路

16.4USB固件程序设计

16.4.1主程序文件

16.4.2功能实现代码

16.4.3自定义请求的定义

16.4.4USB描述符

16.4.5固件程序安装及调试

16.5USB主机程序设计

16.5.1控制函数

16.5.2建立项目

16.5.3程序设计

16.5.4编译程序并运行

第17章USB自定义设备实例

17.1EZ-USB的启动模式

17.1.1EZ-USB的启动模式

17.1.2默认USB设备状态

17.2EZ-USB的EEPROM引导启动

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

17.2.2首字节为0xC0的EEPROM启动

17.2.3首字节为0xC2的EEPROM启动

17.2.4配置字节

17.2.5设备请求控制位RENUM

17.2.6固件下载和重列举

17.3USB自定义设备实例

17.3.1硬件选型的写入

17.3.2EEPROM读/写电路设计

17.4EEPROM读/写程序

17.4.1宏定义

17.4.2延时函数

17.4.3基本操作函数

17.4.4I2C读/写函数

17.4.5主程序

17.4.6编译工程

17.5USB自定义设备电路设计

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

17.6.1主程序文件

17.6.2请求响应函数

17.6.3初始化子程序

17.6.4功能子程序

17.6.5自定义请求的定义

17.7USB描述符

17.7.1设备描述符

17.7.2高速配置描述符

17.7.3全速配置描述符

17.7.4字符串描述符

17.8驱动程序设计

17.8.1编辑PMDriverLoad.inf文件

17.8.2编辑QKDPMDriver.inf文件

17.9驱动程序的安装

17.9.1安装驱动

17.9.2测试设备

17.1固件仿真调试

17.11主机程序设计

17.11.1建立工程

17.11.2用户界面设计

17.11.3程序代码设计

17.11.4编译执行

第18章USB的RAM读/写实例

18.1EZ-USBFX2LP的存储器

18.1.1内部数据RAM

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

18.1.3EZ-USBFX2LP的内存映射

18.1.4Von-Neumannizing片外程序和数据存储器

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

18.2USB的RAM读/写电路设计

18.2.1电路原理图

18.2.2USB接口说明

18.2.3I2C总线接口芯片PCF8574

18.3建立USB固件程序项目

18.4主程序文件

18.4.1宏定义和函数变量声明

18.4.2读/写RAM区域函数

18.4.3错误码分析函数

18.4.4字符串输出函数

18.4.5主函数

18.5头文件简介

18.5.1常量定义

18.5.2宏定义

18.5.3数据类型

18.5.4全局声明

18.5.5函数声明

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

19.1SlaveFIFO模式简介

19.1.1SlaveFIFO模式的引脚

19.1.2典型的数据传输时序

19.2SlaveFIFO模式的固件设计

19.2.1SlaveFIFO固件基础

19.2.2AUTOIN/AUTOOUT方式

19.2.3CPU访问OUT数据包

19.2.4CPU访问IN数据包

19.2.5AUTOIN/AUTOOUT方式初始化

19.3USB自动数据传输实例

19.3.1电路设计

19.3.2外部控制逻辑程序设计

19.3.3USB固件程序设计

19.3.4固件仿真调试

19.3.5主机控制函数简介

19.3.6上位机程序设计

19.3.7程序运行

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

20.1EZ-USB的GPIF模式

20.1.1GPIF模式简介

20.1.2GPIF的硬件组成

20.1.3GPIF硬件配置

20.2GPIF波形图编辑

20.2.1GPIF寄存器

20.2.2可编程GPIF波形

20.2.3波形图设计工具

20.2.4波形图设计实例

20.3GPIF固件编程

20.3.1单字节读数据传输

20.3.2单字节写数据传输

20.3.3FIFO读数据传输

20.3.4FIFO写数据传输

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

20.4.1数据采集电路图

20.4.2外部FIFO接口

20.5数据采集波形图编辑

20.5.1接口设计

20.5.2数据读/写设计

20.5.3波形描述符文件

20.6固件程序设计

20.6.1USB描述符

20.6.2主程序

20.6.3功能实现文件

20.6.4初始化代码

20.6.5数据传输函数

20.6.6调度函数

20.6.7自定义请求

20.7USB主机程序设计

20.7.1创建主机程序

20.7.2界面设计

20.7.3主机程序初始化

20.7.4按钮功能实现

20.7.5线程处理

第21章USBHID设备设计实例

21.1简易USBHID键盘原理图

21.2USB固件程序开发

21.2.1建立USB固件程序

21.2.2键盘描述符

21.2.3主程序文件

21.2.4功能实现代码

21.3设备测试

第22章USB转串口实例

22.1CH341芯片简介

22.1.1CH341芯片的特点

22.1.2异步串口方式

22.1.3打印口

22.1.4并口

22.1.5同步串口

22.1.6功能配置

22.2USB转串口实例

22.2.1电路图

22.2.2硬件介绍

22.2.3连接使用

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

23.1CH375A接口芯片

23.1.1CH375A概述

23.1.2CH375A内部结构

23.2CH375A基本指令

23.2.1设置设备地址命令SET_USB_ADDR

23.2.2设置端点接收器命令SET_ENDP6

23.2.3设置端点发送器命令SET_ENDP7

23.2.4设置重试次数命令SET_RETRY

23.2.5事务执行命令ISSUE_TOKEN

23.2.6清除端点错误命令CLR_STALL

23.2.7设置地址命令SET_ADDRESS

23.2.8获取描述符命令GET_DESCR

23.2.9设置USB配置命令SET_CONFIG

23.2.10读取数据块命令RD_USB_DATA0

23.2.11延时100µS命令DELAY_100US

23.2.12查询连接状态命令TEST_CONNECT

23.2.13同步令牌事务命令ISSUE_TKN_X

23.2.14自动配置设备命令AUTO_SETUP

23.3USB存储设备类指令

23.3.1硬件复位命令RESET_ALL

23.3.2测试工作状态命令CHECK_EXIST

23.3.3设置工作模式命令SET_USB_MODE

23.3.4获取中断状态命令GET_STATUS

23.3.5设置串口波特率命令SET_BAUDRATE

23.3.6读取数据块命令RD_USB_DATA

23.3.7写入数据块命令WR_USB_DATA7

23.3.8终止命令ABORT_NAK

23.3.9初始化存储设备命令DISK_INIT

23.3.10获取物理容量命令DISK_SIZE

23.3.11读取数据块命令DISK_READ

23.3.12读操作命令DISK_RD_GO

23.3.13写入数据块命令DISK_WRITE

23.3.14写操作命令DISK_WR_GO

23.3.15获取版本命令GET_IC_VER

23.3.16低功耗状态命令ENTER_SLEEP

23.3.17设置逻辑单元号命令SET_DISK_LUN

23.3.18查询特性命令DISK_INQUIRY

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

23.3.20检查错误命令DISK_R_SENSE

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

23.4接口方式

23.4.1并行接口

23.4.2串行接口

23.5USB打印机控制实例

23.5.1USB打印机控制方式

23.5.2电路图

23.5.3项目建立

23.6头文件

23.6.1指令声明

23.6.2操作状态及中断状态

23.6.3请求类型

23.7程序设计

23.7.1头文件

23.7.2参数及结构定义

23.7.3基本操作函数

23.7.4数据同步及读/写

23.7.5主机操作

23.7.6主函数