USB开发手册
内容简介
《USB开发手册》系统地介绍了当前最流行的USB总线接口的协议、工作原理,以及驱动程序设计。《USB开发手册》中还以大量篇幅,全面详细地介绍了在各种应用场合下USB接口的设计实例。《USB开发手册》言简意赅、通俗易懂、知识点介绍详细、实例丰富,使读者能够更快、更好地掌握USB接口的原理及设计方法。
《USB开发手册》分为三篇,共23章,全面详细地讲述了USB接口的原理及应用实例。第一篇介绍了USB总线开发基础,总线数据流的结构、管理、类型,以及设备管理;第二篇介绍了USB程序的开发,包括USB驱动程序开发和USB固件程序开发;第三篇通过8大实例,详细介绍了在不同的应用场合下USB接口设备的设计,包括完整的电路图和程序设计。《USB开发手册》内容全面、结构紧凑、实例丰富。USB接口的初学者通过学习《USB开发手册》可以快速入门,此外《USB开发手册》对具有一定开发经验的设计人员也有很好的参考价值。
作者简介
傅志辉,副教授,高级架构师,移动电子商务专家库成员。从事企业信息化建设已有17年,具备丰富的移动软硬件开发实践经验,曾担任多个大型软件公司技术顾问,指导实施软硬件一体化产品开发。精通USB、PCI等总线协议开发,熟悉VS.NET、PHP、JAVA等多种软件开发语言或平台,精通SQL、Oracle数据库软件,参与过多个大型数据中心的设计与调优。
目录
第一篇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清除特性请求ClearFeatllre
5.2.3设置特性请求SetFeature
5.2.4设置地址请求Setddress
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.2Getldle请求(获取空闲速率请求)
6.3.3GetProtocol请求(获取HID协议请求)
6.3.4SetReport请求(设置报告请求)
6.3.5Setldle请求(设置空闲速率请求)
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程序开发
第三篇USB开发实例