USB 嵌入式主机堆栈
出处:维库电子市场网 发布于:2023-10-07 17:06:46
在USB标准下,USB设备之间不能直接通信。它们只能与控制一个或多个设备通信的的 USB 主机通信。常见的 USB 主机是 PC。本应用笔记讨论了 USB 嵌入式主机,它可以使嵌入式应用程序在各种 USB 设备中使用。它介绍了 Microship 带有 USB On-The-Go (OTG) 模块的。
USB概述
有许多关于 USB 的参考资料,包括 USB 2.0 规范本身,提供了有关 USB 操作的详细信息。本节仅旨在提供本应用笔记中引用的术语或理解堆栈操作所需的术语的简要定义。
USB 主机和外围设备
典型的 USB 系统由一台主机和一个或多个外围设备(通常简称为“设备”)组成。每个设备只能与主机通信;设备之间可能无法直接通信。主机发起总线上的所有通信。仅当主机请求时,设备才可以向主机发送数据,并且它必须能够接收主机发送的数据。设备通常使用 B 型插座或具有固定。
大多数 USB 外围设备都分为几类,称为类。每个类别对其通信格式都有特殊要求。主机必须能够识别设备的类别并满足该类别的要求,否则主机无法与设备通信。两个示例类是 HID(人机接口设备)(例如在鼠标上)和大容量存储(例如在闪存驱动器上)。客户端驱动程序为类提供应用程序级支持。某些 USB 外围设备是特定于供应商的,不属于预定义的类别之一。客户端驱动程序必须专门为这些设备编写。
可以通过使用集线器来扩展可以连接到主机的设备数量。USB是一个分层的星形网络。通常,集线器允许四个或七个设备连接到单个端口。多可以将五个集线器链接在一起,多可创建五层。总线上多可连接 127 个设备(包括集线器)。
完整的 USB 主机使用 A 型插座,并且必须能够与任何设备通信。这种支持可以通过在连接设备之前必须安装在主机上的特殊驱动程序来提供。必须支持集线器,并且每个端口必须能够提供至少 100 mA 的电流。
主机与嵌入式主机
USB 嵌入式主机与 USB 主机在几个小但重要的方面有所不同。USB嵌入式主机:
仅支持特定的外围设备和/或设备类别。
仅支持受支持设备所需的传输类型。
集线器支持是可选的。
放宽了要求。
这些限制允许嵌入式主机在具有固定、有限内存的设备上实现。
主机模式操作
在USB系统中,主机控制总线上的所有流量。设备只能响应来自主机的请求;它可能不会启动数据传输。USB OTG 模块可用于主机或设备模式。两种模式的具体操作方法有所不同。
USB 传输可以包含多个事务,而事务可以包含多个数据包。此外,单次传输可以包含多个数据阶段事务。图 1 显示了单个 USB 传输的通用格式。
控制权转移通常需要所有三个事务。读取 8 个数据字节的控制传输的结构如图 2 所示。
批量、中断和同步传输不使用 SETUP 令牌或状态事务。对于批量传输,在单个数据阶段事务中多可以传输 64 个字节。写入 128 个数据字节的批量传输需要两个数据级事务,其结构如图 3 所示。
USB 嵌入式主机堆栈在数据包级别的主机模式下与 USB OTG 模块连接,但 ACK 数据包由模块自动处理。当嵌入式主机发出图 3 所示的批量传输时,它必须明确发出命令来传输两个 OUT 和两个 DATA0/1 数据包。当嵌入式主机发出图 2 所示的控制传输时,它必须明确发出命令来传输所有 SETUP、DATA0/1、IN 和 OUT 数据包,总共 6 个数据包。
版权与免责声明
凡本网注明“出处:维库电子市场网”的所有作品,版权均属于维库电子市场网,转载请必须注明维库电子市场网,//domainnameq.cn,违反者本网将追究相关法律责任。
本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。
如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。
- 揭秘嵌入式 MCU:浮点数据处理难点及应对策略2025/6/20 15:19:07
- 嵌入式通信 UART 大揭秘:经典面试题深度剖析2025/6/12 16:35:20
- 深度解析:STM32 ADC 自身误差来源大揭秘2025/6/6 16:08:32
- 嵌入式数模电中 MOS 管经典知识2025/5/26 16:26:08
- EMMC和NAND闪存的区别2025/4/30 16:52:00