嵌入式协议栈μC/USB Device [μC/USB:The Universal Serial Bus Device Stack] pdf epub mobi txt 电子书 下载
内容简介
《嵌入式协议栈μC/USB Device》全面深入地介绍了嵌入式USB设备协议的原理和Micriμm 的μC/USB设备协议栈的使用.一部分对USB进行了概述;第二部分讲述了如何用μC/USB设备堆栈构建基于成熟的硬件和软件平台的USB设备的基本方法.书中对各种USB类设备作了详细的介绍,包括USB转串口适配器(通信设备类)、鼠标或键盘(人机接口设备类)、可移动存储设备(MassStorage类)和USB医疗设备(个人保健设备类)等.
本书适用于嵌入式系统开发人员、咨询顾问、爱好者及有兴趣了解μC/USB设备协议栈工作原理的学生.
内页插图
目录
第1章 USB概述
1.1 USB历史概述
1.2 机械规范
1.2.1 电缆和连接器
1.2.2 电气规范
1.2.3 高速模式
1.3 USB设备供电
1.3.1 总线供电设备
1.3.2 自供电设备
1.4 总线状态
1.5 USB拓扑结构
1.5.1 USB主机
1.5.2 USB设备
1.5.3 USB设备结构
1.5.4 设备状态
1.5.5 主控制器
1.6 USB包
1.7 USB包类型
1.7.1 令牌包
1.7.2 数据包———低速和全速模式
1.7.3 数据包———高速模式
1.7.4 握手包
1.7.5 拆分事务特殊令牌包
1.8 数据流模型
1.8.1 端 点
1.8.2 管 道
1.8.3 传 输
1.9 事务、传输和帧
1.10 帧和微帧
1.11 USB实际吞吐量
1.12 枚 举
1.13 USB协议栈
1.13.1 设备协议栈
1.13.2 主机协议栈
1.13.3 USBOTG协议栈
1.14 一致性测试
1.14.1 USB设备测试
1.14.2 USB黄金树
1.14.3 USB主机测试
第2章 开始工作
2.1 准 备
2.2 下载源代码
2.3 安装文件
2.4 构建应用示例
2.4.1 理解Micriμm 示例
2.4.2 复制和修改临时文件
2.4.3 包含进USBDevice协议栈源代码
2.4.4 修改应用配置文件
2.5 运行应用范例
第3章 主机操作系统
3.1 微软Windows
3.2 关于INF文件
3.3 使用GUID
第4章 架 构
4.1 模块关系
4.1.1 应用程序
4.1.2 库
4.1.3 USB类层
4.1.4 USB内核层
4.1.5 端点管理层
4.1.6 实时操作系统抽象层
4.1.7 硬件抽象层
4.1.8 CPU 层
4.2 任务模型
4.2.1 发送和接收数据
4.2.2 处理USB请求和总线事件
4.2.3 处理调试事件
第5章 配 置
5.1 静态堆栈配置
5.1.1 基本配置
5.1.2 USB设备配置
5.1.3 接口配置
5.1.4 字符串配置
5.1.5 调试配置
5.1.6 通信设备类(CDC)配置
5.1.7 CDC抽象控制模型(ACM)串口类配置
5.1.8 人机接口设备(HID)类配置
5.1.9 大容量存储设备类(MSC)配置
5.1.10 个人健康设备类(PHDC)配置
5.1.11 供应商类配置
5.2 应用相关配置
5.2.1 任务优先级
5.2.2 任务堆栈大小
5.3 设备和设备控制器驱动配置
5.4 配置范例
5.4.1 简单的全速USB设备
5.4.2 组合高速USB设备
5.4.3 复杂的组合高速设备
第6章 设备驱动程序指南
6.1 设备驱动程序结构
6.2 设备驱动程序模型
6.3 设备驱动程序API
6.4 中断处理
6.4.1 带ISR处理参数的单个USBISR向量
6.4.2 单个USBISR向量
6.4.3 带ISR处理参数的多个USBISR向量
6.4.4 多个USBISR向量
6.4.5 USBD_DrvISR_HANDLER()
6.5 设备配置
6.6 内存分配
6.7 支持的CPU 和板子
6.8 USB设备驱动程序函数模型
6.8.1 设备同步接收
6.8.2 设备异步接收
6.8.3 设备同步发送
6.8.4 设备异步发送
6.8.5 设置设备地址
第7章 USB类
7.1 类实例的概念
7.2 类实例的结构
7.3 类和内核层通过回调函数的交互
第8章 通信设备类
8.1 概 述
8.2 架 构
8.3 配 置
8.4 ACM 子类
8.4.1 概 述
8.4.2 常规配置
8.4.3 子类实例配置
8.4.4 子类通知与管理
8.4.5 子类实例通信
8.4.6 使用演示应用程序
第9章 人机接口设备类
9.1 概 述
9.2 架 构
9.3 配 置
9.3.1 常规配置
9.3.2 类实例配置
9.3.3 类实例通信
9.3.4 同步通信
9.3.5 异步通信
9.4 使用演示应用程序
9.4.1 配置PC和设备应用程序
9.4.2 运行演示程序
9.5 移植HID类到RTOS层
9.6 周期输入报告任务
第10章 大容量存储类
10.1 概 述
10.1.1 大容量存储类协议
10.1.2 端 点
10.1.3 大容量类请求
10.1.4 小型计算机系统接口(SCSI)
10.2 体系结构
10.2.1 MSC体系结构
10.2.2 SCSI命令
10.2.3 存储层和存储介质
10.2.4 多个逻辑单元
10.3 RTOS层
10.4 配 置
10.4.1 一般配置
10.4.2 类实例配置
10.5 使用演示应用
10.5.1 USB设备应用
10.5.2 USB主机应用
10.6 MSC的存储层移植
10.7 MSC的RTOS移植
第11章 个人健康设备类
11.1 概 述
11.1.1 数据特性
11.1.2 操作模型
11.2 配 置
11.2.1 一般配置
11.2.2 类实例配置
11.3 类实例通信
11.3.1 使用元数据前文进行通信
11.3.2 无元数据前文的通信
11.4 RTOS基于QoS的任务调度程序
11.5 使用演示应用
11.5.1 演示应用的配置
11.5.2 运行演示应用
11.6 PHDC的RTOS移植
第12章 供应商类
12.1 概 述
12.2 配 置
12.2.1 通用配置
12.2.2 类实例配置
12.2.3 类实例通信
12.2.4 同步通信
12.2.5 异步通信
12.3 USBDev_API
12.3.1 设备和管道管理
12.3.2 设备通信
12.4 运行演示程序
12.4.1 配置PC和设备应用程序
12.4.2 编辑INF文件
12.4.3 运行演示程序
12.4.4 GUID
第13章 调试和跟踪
13.1 使用调试跟踪
13.1.1 调试配置
13.1.2 调试跟踪输出
13.1.3 调试格式
13.2 处理调试事件
13.2.1 调试事件池
13.2.2 调试任务
13.2.3 调试宏
第14章 μC/USB设备的实时操作系统移植
附录A 核心API参考
附录B 设备控制器驱动API参考手册
附录C CDCAPI参考手册
附录D HIDAPI参考手册
附录E MSCAPI参考手册
附录F PHDCAPI参考手册
附录G 供应商类API参考手册
附录H 错误代码
附录I 存储器占用
附录J μC/OS III和μC/USB Device软件许可政策
前言/序言
本书翻译工作接近尾声的时候,我们和原书μC/USB:TheUniversalSerialBusDeviceStack 的出版人、Micriμm 创始人和总裁Jeanlabrosse先生就中文版?嵌入式协议栈μC/USB Device?一书的序言交换了意见,他希望何小庆能为全书写一篇序言(实际上原书本身也没有序言),于是就有了下面的序言.
?嵌入式协议栈μC/USB Device?一书以嵌入式USB设备协议栈为重点,介绍了USB系统原理、操作系统移植和USB控制器驱动编写等方面的知识,并配有详实的软件代码实现的文档介绍,这样全面介绍嵌入式USB的图书还很少见到.市场上的USB图书多数介绍芯片级的USB功能实现,主要写USB芯片的驱动编程和支持该芯片特定类的软件实现,局限性很大.本书也是目前北京航空航天大学出版社出版的μC/OS III系列图书最新的一本,该系列已经出版了?嵌入式实时操作系统μC/OS III?、?嵌入式实时操作系统μC/OS III应用开发———基于STM32微控制器?和?嵌入式协议栈μC/TCP IP———基于STM32微控制器?.
本书原版中的第二部分“μC/USBandtheRenesasRX63N”,因为RenesasRX63N芯片在国内不是很流行,我们与Jeanlabrosse先生商量之后,决定将这部分内容移植到STM32微控制器后再在国内出版,这部分工作已经在进展之中.为了配合这个部分,北京麦克泰软件技术有限公司计划将把为μC/OS III图书配套的μC/Eval STM32F107评估板进行升级,发布一款新的板子,它既可以支持已经出版的三本书,还能很好地支持?嵌入式协议栈μC/USB Device?.STM32微控制器是最早进入市场的32位ARM Cortex M 核微控制器,在中国市场人气很旺,我们相信这样的安排能让中国的读者更容易通过μC/USB Device协议软件和STM32微控制器的结合,更好地学习和掌握嵌入式USB知识.
USB是计算机系统历史上最成功的通信接口,是连接个人计算机外设事实上的工业标准.USB在嵌入式系统中已经广泛采用,可实现设备之间或者设备与主机之间的通信和数据存储等功能,还可用于软件升级和内容更新.Micriμm 的μC/USBDevice是专门针对嵌入式系统设计的USB设备协议栈.依靠Micriμm 团队的共同努力,高质量、可伸缩和高可靠性的代码经过了很严格的认证过,μC/USB Device符合USB2.0规范.
截至本书出版,Micriμm 的μC/USB Device协议栈已经能够支持通信设备(CDC)类、人机接口设备(HID)类、大容量存储设备类(MSC)、个人健康设备类(PHDC)和供应商类.μC/USB Device协议栈的最新版本增加了CDC EEM 类和Audio类的支持,丰富了μC/USB Device协议栈的功能.Audio类可以帮助用户构建符合Audio1.0规范的音频设备,典型应用包括扬声器、麦克风、耳机等.
EEM(以太网仿真模型)类是一种在USB总线上高效率传输以太网数据包的一种规范.它是USBCDC规范的一部分,允许设备通过USB接口连接到以太网,所有典型的网络应用如HTTP、FTP、DHCP等,都可以运行在该设备上(这两个类没有在本书中体现).μC/USB Device协议栈设备控制器的驱动程序很丰富,支持许多MCU 芯片内置的USB 控制器,包括STM32、TITivaC 系列、LPC17xx、21xx和318x等近40余种.μC/USB Device协议栈的架构非常清晰,核心模块分为设备控制驱动、设备核心、类和RTOS移植四大部分,既可以支持μC/OS II或者μC/OSIII,也可以支持其他的RTOS.
μC/USB Device协议栈是MicriμmμC/OS 系列操作系统软件的成员之一,μC/OS的内核已经有第三代产品,第一代产品1992年问世,1998年有了μC/OSII,2009年发表了μC/OS III.1999年Jeanlabrosse先生创办Micriμm 公司之后开发了大量的μC/OS的组件,比如μC/FS、μC/TCP IP和μC/GUI等,这些组件和μC/OS组合,形成一个功能和性能很强大的嵌入式操作系统.μC/USB Device可以流畅地与μC/OS II或者μC/OS III配合工作,还能得到μC/FS和μC/TCPIP的支持.
本书的作者来自Micriμm USB 开发团队:Christian Légaré 是Micriμm 的CTO,有22年通信行业的经验,是?嵌入式协议栈μC/TCP IP———基于STM32微控制器?作者,目前负责物联网应用解决方案MicriμmSpectra的开发工作;CédricMigliorini是Micriμm USB 团队负责人,他改进和维护了USB设备和主机协议栈;Jean Fran?oisDeschênes是Micriμm USB团队的工程师,负责μC/USB Host软件;JuanP.Benavides是应用工程师,在Micriμm 美国佛罗里达Weston办公室.前面三位都在Micriμm 加拿大蒙特利尔办公室,何小庆在2014年6月曾经访问过这个办公室,与Christian就物联网操作系统进行了广泛和深入的交流,收获很多.
本书的翻译团队由两部分组成,其中一部分来自北京麦克泰软件技术公司专业工程师:张爱华,她在RTOS的移植和应用方面有丰富的经验,与何小庆一起翻译了?嵌入式实时操作系统μC/OS III应用开发———基于STM32微控制器?;韩志华和赵晓彤,他们对μC/OS和IAR 开发工具有实践经验.另外一部分是在校的优秀学生,何灵渊现是哥伦比亚大学计算机科学专业的研究生,他已经参与翻译了2本计算机专业的图书;江山是斯蒂文森理工大学电子工程专业的本科生.何小庆除在公司任职外,还在高校给研究生和本科生授课,在科技期刊和行业协会兼职.
本书的第1章和附录B、C、D由张爱华翻译;第2~4章,附录H、I、J及参考文献由何小庆翻译;第5~7章和附录E、F由韩志华翻译;第8、9章和附录G由赵晓彤翻译;第10、11章和附录A 由何灵渊翻译;第12~14章和附录A(部分)由江山翻译,全书由何小庆统稿和审校.
我们要感谢北京航空航天大学出版社让这本非常专业的嵌入式软件书籍可以与读者见面.策划编辑胡晓柏主任长期致力于嵌入式系统图书出版的精神感动和鼓励了我们.感谢北京麦克泰软件技术公司各方面的支持和帮助.
最后,希望读者能从本书的阅读中受益.我们的翻译如有不足和纰漏之处,还请
读者指正.
译 者
2015年8月
于北京、上海和美国纽约
嵌入式协议栈μC/USB Device [μC/USB:The Universal Serial Bus Device Stack] 电子书 下载 mobi epub pdf txt
嵌入式协议栈μC/USB Device [μC/USB:The Universal Serial Bus Device Stack] pdf epub mobi txt 电子书 下载