猜你喜欢
微控制器USB的技术及应用入门/物联网与人工智能应用开发丛书

微控制器USB的技术及应用入门/物联网与人工智能应用开发丛书

书籍作者:工业和信息化部人才交流中心 ISBN:9787121345869
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:2101
创建日期:2021-02-14 发布日期:2021-02-14
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介

随着物联时代的到来,预计微控制器将迎来新一轮高成长周期,推动其相关技术进一步高速发展,尤其是连接和安全技术。USB技术因为其通用和简单易用性,已经在微控制器领域得到了广泛的普及和应用。在即将到来的万物互联时代,USB作为通用的串行连接技术,尤其在中高端消费或者工业领域,将继续成为不可或缺的微控制器组件。本书将从USB基础及协议入手,由浅入深逐步介绍USB的硬件技术和常用的设备类应用开发,并结合微控制器的典型软件开发包SDK,剖析核心USB协议栈,给出应用开发实例。最后的高级篇将重点介绍USB兼容性测试流程以及注意事项。

作者简介

工业和信息化部人才交流中心(以下简称中心)创建于1985年1月,1992年10月成为独立事业法人单位,工业和信息化部所属的党政机关一类事业单位(正局级),是经中央机构编制委员会办公室批准,国家事业单位登记管理局注册登记,是工业和信息化部在人才培养、人才交流、智力引进、国际交流、会议展览等方面的支撑机构;也是人力资源和社会保障部、工业和信息化部“全国信息专业技术人才知识更新工程”及“信息化工程师”项目实施承办单位。

编辑推荐
适读人群 :USB技术领域的工程师,电子技术领域的本科生和研究生。

本书是一线工程师在项目研发、客户支持等方面的经验总结,介绍了如何解决用户在微控制器应用开发上常见的痛点和难点,适合从事USB技术及应用开发的工程师使用。

前言

个人电脑中,USB接口已经取代了串口和并口。目前,USB接口作为一种简易、高速、可靠的计算机通信总线技术已经相当普及,相应的外设周边极其丰富。USB接口的游戏手柄、U盘、移动硬盘、手机等设备依靠USB的特性普及到了我们日常工作和生活之中。 随着人工智能和物联网(IoT)的兴起,工程师使用各种USB扩展棒(Dongle)在现有设备上扩展出ZigBee、BLE等无线连接的功能,支持实现无线连接的快速原型搭建,或者为原来没有无线连接能力的设备提供简易高效的无线连接功能。由于USB接口具有数据吞吐量高及连接简单等优点,各种神经网络计算棒也是通过USB接口与PC机或高性能处理器连接来验证功能或应用于现有产品中的。通过USB接口,处理器与神经网络计算棒可以很容易地实现采集原始数据和模板数据的互传。 嵌入式微控制器(MCU)应用到了我们生活中的方方面面,为了连接的统一和便捷以及更高的数据交互性能,在片上集成USB控制器也是大势所趋。新的应用需求(如物联网和深度学习)也要求工程师掌握USB接口。 对于USART,SPI和I2C等经典的串行接口来说,USB在硬件设计及软件开发方面都增加了难度,对工程师和开发者使用USB提出了更高的要求。本书是一线工程师项目开发经验的总结,从USB项目应用角度出发,系统地介绍嵌入式USB接口的硬件、软件和认证方面的技术。本书内容涵盖USB的基础概念、软件协议栈的分析、应用类的分析举例及总结认证经验。希望能够供入门的初学者阅读,又能帮助应用工程师解决日常USB开发中遇到的痛点问题和难点问题。

目录

第1章 USB基础及协议概述 1
1.1 简介 2
1.1.1 背景 2
1.1.2 USB的特点 2
1.2 系统架构 4
1.2.1 USB总线架构 4
1.2.2 USB主机和设备 5
1.2.3 USB分层结构 6
1.2.4 USB物理连接 7
1.2.5 USB2.0电气特性 9
1.2.6 USB2.0设备速度的识别 10
1.2.7 USB2.0电源 11
1.3 USB2.0事务处理及数据传输 12
1.3.1 包 13
1.3.2 事务 15
1.4 USB2.0数据传输类型 15
1.4.1 控制传输 16
1.4.2 批量传输 19
1.4.3 中断传输 21
1.4.4 同步传输 22
1.5 USB2.0设备 24
1.5.1 USB设备状态 24
1.5.2 USB总线枚举 27
1.5.3 描述符 27
1.5.4 设备请求 35
1.5.5 枚举过程 38
1.6 USB2.0主机 40
1.6.1 USB主机结构 40
1.6.2 USB主控制器功能 42
1.6.3 客户软件 45
1.6.4 系统软件 46
1.6.5 主控制器驱动程序 48
1.6.6 总线驱动程序 49
1.6.7 嵌入式USB主机控制器 51
1.7 USB调试辅助工具 51
1.7.1 Bus Hound 52
1.7.2 Ellisys的USB Explorer系列 52
1.7.3 LeCroy的Mercury系列 54

第2章 USB硬件设计 55
2.1 USB接口简介 56
2.2 USB电气特性 58
2.2.1 低速USB驱动器电气特性 59
2.2.2 全速USB驱动器电气特性 60
2.2.3 高速USB驱动器电气特性 63
2.2.4 低速和全速接收器特性 63
2.2.5 器件速度识别 64
2.2.6 信号电平 65
2.2.7 数据编码/解码 66
2.2.8 电源分布 68
2.2.9 电压跌落要求 71
2.2.10 信号质量的评定 72
2.3 USB电路设计 72
2.3.1 设备 73
2.3.2 主机 74
2.3.3 OTG应用 74
2.3.4 USB信号的防护 75
2.3.5 信号完整性电路设计 76
2.4 硬件电路常见的问题 77
第3章 基于SDK的USB协议栈 79
3.1 简介 80
3.2 Device协议栈 81
3.2.1 协议栈架构 81
3.2.2 协议栈初始化流程 82
3.2.3 协议栈工作流程 86
3.2.4 协议栈接口 91
3.2.5 控制器驱动接口 95
3.2.6 HID类接口 97
3.2.7 MSC类接口 98
3.2.8 CDC类接口 98
3.2.9 Audio类接口 99
3.2.10 Video类接口 100
3.3 Host协议栈 101
3.3.1 协议栈架构 101
3.3.2 协议栈初始化流程 102
3.3.3 协议栈工作流程 104
3.3.4 Host驱动接口 107
3.3.5 控制器驱动接口 113
3.3.6 HID类接口 115
3.3.7 MSC类接口 116
3.3.8 CDC类接口 117
3.3.9 Audio类接口 118
第4章 USB HID类应用开发 119
4.1 简介 120
4.1.1 什么是HID 120
4.1.2 HID类 120
4.1.3 子类及编码 121
4.1.4 协议编码 121
4.1.5 接口 122
4.2 描述符及请求 123
4.2.1 基础知识 123
4.2.2 描述符 127
4.2.3 请求 133
4.3 代码实例 139
4.3.1 工程关键文件及代码介绍 139
4.3.2 运行工程查看结果 144
4.3.3 枚举过程详细解析 144
4.3.4 报告过程详细解析 150
4.4 HID类的其他应用 151
第5章 USB MSC类应用开发 152
5.1 简介 153
5.1.1 MSC设备的一般工作流程 154
5.1.2 USB MSC协议简介 155
5.2 请求及描述符 156
5.2.1 MSC设备接口描述符 156
5.2.2 MSC设备端点描述符 157
5.2.3 MSC类标准请求 157
5.2.4 Buck-Only Transport协议的数据流模型 160
5.2.5 批量数据的传输具体细节 163
5.3 代码实例 173
5.3.1 MSC设备入门例程 173
5.3.2 SD卡读卡器例程 176
第6章 USB CDC类应用开发 178
6.1 简介 179
6.1.1 USB CDC类 180
6.1.2 CDC类设备的组成 180
6.2 请求及描述符 181
6.2.1 CDC设备配置描述符 181
6.2.2 通信接口描述符 182
6.2.3 数据接口描述符 186
6.2.4 CDC类请求 187
6.3 代码实例 189
第7章 USB Audio类应用开发 192
7.1 简介 193
7.1.1 音频接口集与音频接口关联 194
7.1.2 音频接口类、子类及协议 195
7.1.3 音频功能类别 196
7.1.4 音频同步类型 196
7.1.5 声道间同步 197
7.1.6 音频功能拓扑 198
7.1.7 编码与解码 206
7.1.8 复制保护 206
7.1.9 操作模型 206
7.2 描述符、请求与中断 208
7.2.1 描述符 208
7.2.2 请求 221
7.2.3 中断 230
7.3 代码实例 232
7.3.1 SDK USB音频类应用 232
7.3.2 SDK USB音频类的实现 233

第8章 USB组合类应用开发 235
8.1 简介 236
8.2 请求及描述符 237
8.2.1 设备描述符的修改 238
8.2.2 使用IAD时的用户编程模型 238
8.2.3 接口联合描述符 239
8.2.4 其他 240
8.3 代码实例 241
8.3.1 SDK中composite类例程 241
8.3.2 U盘+虚拟串口例程 241
第9章 USB Hub应用开发 244
9.1 简介 245
9.2 请求与描述符 246
9.2.1 标准描述符 246
9.2.2 Hub描述符 246
9.2.3 Hub请求 247
9.3 SDK的实现 249
9.3.1 主机识别Hub 249
9.3.2 主机识别Hub上设备连接 251
9.3.3 主机识别Hub上设备断开 252
9.3.4 Hub转发传输 253
第10章 USB兼容性测试 261
10.1 简介 262
10.2 测试要求 262
10.2.1 测试设备 263
10.2.2 测试软件 265
10.3 电气测试流程 266
10.3.1 低/全速USB测试 266
10.3.2 高速USB测试 272
10.3.3 主机高速信号测试 278
10.4 常见问题和解决办法 283
10.4.1 主设备信号质量测试 283
10.4.2 USB信号布线 284
10.4.3 ESD器件的影响 285
10.4.4 USB收发器电气特性 285
10.4.5 设备(全速)反向电压测试 286
10.4.6 设备(全速)浪涌电流测试 286
10.4.7 主机电压跌落测试 287
参考文献 289