半导体行业观察 6小时前
一文读懂USB
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_keji1.html

 

从个人电脑和智能手机到外部存储设备和各种外围设备,USB 是连接现代数字设备最常用且用途最广泛的接口。它在嵌入式系统领域依然保持着便捷性,支持多种应用,包括与数据记录器和工业控制器通信、医疗设备和物联网设备的固件更新,以及嵌入式 Linux 系统中外围设备的连接。

如今,掌握 USB 技术已成为嵌入式系统设计必不可少的基础技能。本文将从 USB 的发展历程到嵌入式开发的基础知识,全面介绍 USB 技术。

USB 出现的背景

USB(通用串行总线)如今广泛用于个人电脑与各种电子设备之间的充电、数据通信和视频传输。1996 年以前,将外围设备连接到个人电脑需要使用各种专用通信接口(PS/2、RS-232C、IEEE1284、SCSI、IEEE1394/FireWire 等)。每个连接的设备都需要单独的专用线缆,而且设置过程十分繁琐。

鉴于这种情况,人们强烈希望简化个人电脑与外围设备之间的连接,英特尔和微软等公司率先成立了标准组织(USB-IF:USB 实施者论坛公司),该组织于 1996 年制定了 USB 1.0 标准。

USB 的最初理念是提供一个统一的标准,使各种设备能够连接到同一个接口,实现即插即用功能(即插即用),让设备在通电状态下可以随时插拔并立即使用,并允许从 PC 供电(总线供电功能)。随后,USB 1.1 规范的改进和 Windows 对 USB 的支持进一步提升了其便利性,并开始迅速普及。

USB 广泛应用的另一个重要因素是其免许可的特性以及为确保通信质量而建立的测试和认证体系。随后,为了满足日益增长的需求,支持高速通信的 USB 2.0(USB 高速版)应运而生,而 Windows 2000 和 Windows XP 的支持进一步加速了其普及。

使用 USB 连接电脑和外围设备的配置示意图。

USB 标准的演变

如前所述,USB 标准自诞生以来不断发展演进,以满足更快的数据传输速度和更高的供电能力的需求。最早的 USB 标准数据传输速度分别为 1.5 Mbps(LS:低速)和 12 Mbps(FS:全速),但随着 USB 2.0 的推出,速度提升至 480 Mbps(HS:高速),随后又随着 USB 3.0、3.1 和 3.2 的推出,速度进一步提升至 5-20 Gbps(SS:超高速)。

最新的 USB4 采用 Gen 3x2 通道,传输速度可达 40Gbps。2022 年,USB 推广组织宣布推出下一代 USB 标准 "USB4 Version 2.0",旨在将传输速度翻倍至 80Gbps。

*USB Promoter Group 是一个独立的 USB 推广组织,主要由 Intel 和 Apple 组成,与 USB 标准组织 ( USB-IF ) 不同。

另一方面,智能手机快速充电和外围设备间大功率供电的需求日益增长,促使采用 USB Type-C 接口的 USB PD(Power Delivery)标准应运而生。随后,欧盟强制要求使用 USB Type-C 充电接口,旨在减少电子垃圾。

此外,由英特尔和苹果公司联合开发的 Thunderbolt 3 标准及后续版本(作为 FireWire 的继任者)也采用了 USB Type-C。

USB 标准、传输速度和供电能力

* 除 USB PD 兼容设备外,如果连接的设备支持 USB PD 的 SPR(标准功率范围),则可提供最大 100W(20V/5A)的功率;如果支持 USB PD 的 EPR(扩展功率范围),则可提供最大 240W (48V/5A)的功率。此外,在 USB PD 出现之前,USB 电池充电规范 1.2 也于 2010 年发布,其最大供电电流为 1.5A。

USB 线缆和连接器的类型以及如何正确使用它们

USB 接口的形状由 USB 标准定义,单个 USB 端口可以同时进行数据传输和为外围设备供电。USB 向下兼容,这意味着只要接口形状匹配,设备就可以连接。数据传输速度也受限于较低端的标准。

连接器形状分为 A 系列、B 系列和 C 型。B 系列有标准尺寸、迷你尺寸和微型尺寸(A 系列也有迷你尺寸和微型尺寸,以及用于 OTG 兼容性的迷你 AB 和微型 AB,但这些尺寸已被 C 型取代,因此省略)。

USB 线缆和连接器形状

OTG(On-The-Go)是 USB 2.0 及更高版本新增的一项规范,它允许电子设备无需电脑即可相互连接。OTG 主要用于智能手机、平板电脑和数码相机,但嵌入式设备对其的需求也日益增长。

USB A 系列

A 系列(标准 A 型)是 PC 端(主机端)连接器,自 USB 标准创立以来一直沿用至今,常用于连接鼠标、键盘、音频设备、存储设备和打印机等外围设备。连接器内部的塑料部件通常采用白色或黑色进行颜色编码。

USB 3.0 标准制定时,增加了一条 SS(超高速)信号线以支持超高速传输。它主要用于需要高速通信的存储设备(例如 U 盘、固态硬盘 ( SSD ) 和机械硬盘 ( HDD ) )的数据传输。连接器内部结构有所改变,但外形保持不变,以确保向下兼容。连接器内部的树脂部分改为蓝色,以便与旧产品区分开来。USB 3.0 有时也被称为 USB 3.1 Gen1 或 USB 3.2 Gen1。

USB B 系列

B 系列接口指的是 PC 外围设备侧的接口,通常用于音频设备、存储设备和打印机。B 系列接口包括标准 B 型接口(主要用于打印机和台式机硬盘)、迷你 B 型接口(主要用于游戏控制器和小型外围设备)以及微型 B 型接口(主要用于智能手机和平板电脑)。

标准 B 型接口顶部采用了改良的连接机制和形状,以支持 USB 3.0。Micro-B 型接口侧面加长(加长部分与非标准部分之间有凹槽),也支持 USB 3.0。另外,Mini-B 型接口不支持 USB 3.0。

USB Type-C

Type-C 是最新的标准,采用对称设计,可双向插入。它既可用于主机端,也可用于外围设备端,目前已被广泛应用于各种产品,包括最新的智能手机(iPhone 15 及更新机型,Android 12 及更新机型)、平板电脑、笔记本电脑和显示器。其小巧的尺寸和无需担心线缆方向即可连接的便捷性显著提升了易用性。

然而,即使连接器形状相同,根据应用的不同,电缆类型也多种多样,从兼容 USB 2.0 HS 的电缆到兼容 USB 3.2/4 的高速数据传输电缆,从不兼容 USB PD 的电缆到兼容 USB PD SPR ( 60W/100W ) /EPR 的电缆,再到支持通过 DisplayPort 替代模式输出视频的电缆,以及兼容 Thunderbolt 的电缆。

顺便一提,USB Type-C 数据线有两种类型:一种是两端都是 Type-C 接口,另一种是一端是 Standard-A 接口。如果一端是 Standard-A 接口,则通信标准仅限于 USB 3.2 Gen 2x1 ( 10Gbps ) ,无法使用 USB PD 功能。

两端均为 Type-C 接口且支持 SS 信号的 USB Type-C 数据线被称为 " 全功能 " 数据线,市面上有多种兼容标准的线缆可供选择。用户需要根据实际用途选择合适的线缆。需要注意的是,由于 USB Type-C 与 USB 3.1 同时发布,因此目前并没有严格意义上的 USB 3.0 Type-C 数据线定义。

此外,USB 3.2 增加了两条通道,并以 "Gen 2x2" 的标准命名,传输速度为 20Gbps。因此,USB 3.1 标准的名称也随之更改。Thunderbolt 3 及更高版本也采用 USB Type-C 接口,并借助主动式支持(内置信号放大和校正功能),可以连接长度超过 0.8 米的线缆;而 Thunderbolt 4 则支持长达 2 米的连接距离。

另一方面,在使用 USB PD 时,有三种符合 USB PD 标准的线缆:3A 兼容线缆(采用 SPR 时最大功率为 3A x 20V = 60W)、5A 兼容线缆(采用 SPR 时最大功率为 5A x 20V = 100W,采用 EPR 时最大功率为 5A x 48V = 240W)。为了确保可靠性和安全性,5A 兼容线缆需要通过 eMarker 认证。

并非所有功能齐全的 USB Type-C 数据线都支持 5A 电流;有些是仅支持充电的线缆,没有 USB 信号线(但有 CC 信号线),另一些是仅支持充电但支持 USB 2.0 数据传输的线缆。此外,不支持 USB PD 的 USB Type-C 数据线通常最大电流仅为 3A。

各标准下 USB Type-C 线缆的最大传输速度和线缆长度

嵌入式系统 USB 基础知识

本文档概述了嵌入式系统开发人员进行 USB 开发所需的基本知识。篇幅较长,但请放心阅读,它将帮助您基本了解 USB 设备内部的工作原理。

USB 系统配置

USB 使用单个主机管理整个总线系统。多个外围设备连接到该主机下。主机为系统内的外围设备分配唯一地址,管理所有通信,并向外围设备发出命令。端口扩展通过集线器实现,从而可以连接大量外围设备。集线器可以级联,最多可连接 5 个集线器。包括集线器在内,可连接的目标设备数量最多为 127 个。

在嵌入式系统中,PC 通常充当主机,而嵌入式设备充当外围设备。嵌入式设备根据主机的指令执行诸如发送和接收数据等任务。由于该设备无需进行复杂的总线管理,因此电路更简单,成本也更低。

USB 通信始终由主机发起,采用 " 主从 " 架构,这意味着外围设备之间无法直接通信(OTG 除外)。值得一提的是,最新的 USB4 架构基于传统的 USB 分层星型拓扑结构,但也支持菊花链连接,从而提供了更灵活的架构。

USB 连接结构:规范摘录(左)及说明(右)(来源:通用串行总线规范 2.0 版)

USB 传输方式

USB 是一种串行通信协议。数据以数据包的形式交换,最小的通信单元是比特序列块。由多个数据包组成的数据交换称为一次事务。所有 USB 设备都具有用于控制目的的控制传输,并且可以根据需要具有中断传输、批量传输和同步传输端点。

1. 控制传输:用于设置设备和交换控制信息。这是所有 USB 设备必须使用的传输模式它用于初始设备设置(USB 枚举)以及主机获取设备信息;

2. 中断传输:用于立即、周期性地传输少量数据。主要用于人机接口设备(HID),例如键盘和鼠标。数据以主机对设备周期性轮询(查询)的响应形式传输。

3. 批量传输:用于可靠地传输大量数据。适用于数据丢失不可接受的应用场景。主要用于打印机、扫描仪和 U 盘等存储设备。虽然由于需要占用所有可用时间进行其他传输方式,批量传输可能会出现延迟,但它能保证数据传输的完成。在嵌入式系统中,批量传输通常用于对时间要求不严格的数据传输场景。

4. 同步传输:用于连续传输需要实时性能的流数据(音频、视频等)但能保证在设定的时间内传输一定量的数据。它常用于摄像机和音频设备低速模式。

什么是 USB 端点?

端点是位于 USB 设备内部的一个缓冲寄存器。主机和 USB 设备之间只有一对双绞线。从逻辑上讲,主机通过称为 " 管道 " 的多条通信路径与端点进行数据收发。

根据用途不同,端点有多种名称,例如控制端点和设备端点。从主机接收数据到设备(设备入站)的端点称为 OUT 端点,从设备向主机发送数据(设备出站)的端点称为 IN 端点。特别地,用于初始设置和控制的端点 0(默认管道)是双向的,而其他数据传输端点是单向的(中断、批量、同步),每个端点都具有类似 FIFO(先进先出)或 RAM 的结构,并且根据应用程序的不同而有不同的用途。

USB 通信路径与端点之间的关系(基于通用串行总线规范 2.0 版)

USB 设备类

要实现 USB 通信,需要主机软件(驱动程序)和设备软件(固件)。设备类是一组规范,根据外围设备的功能进行分组。符合某一类的设备可以使用称为类驱动程序的通用驱动程序进行操作。如果设备的固件支持这些类,则会调用主机上安装的标准类驱动程序,从而使设备能够正常工作。

例如,如果您将兼容 USB 音频类设备类别的 USB 扬声器插入主机,则无需安装驱动程序即可使用该 USB 扬声器。USB 标准的典型类别如下所示。请注意,要控制具有厂商特定功能(在 " 厂商特定 " 类别中定义)的 USB 设备,您还需要为主机开发 USB 驱动程序。

USB 设备类和应用示例

USB 枚举

USB 支持热插拔和即插即用。当 USB 设备连接到主机时,USB 枚举是指主机用来识别设备并实现通信的一系列自动交互和过程。

为了实现自动识别,所有 USB 设备都拥有一个设备描述符表。这些描述符包含了安装设备属性和驱动程序所需的所有信息。当 USB 插头连接时,主机能够识别该设备并加载相应的驱动程序,从而使 USB 设备可以正常工作。

1. 主机向地址 0 发送 Get Descriptor 设备请求。所有 USB 设备在连接后立即的地址均为 "0"。 主机从 USB 设备的响应中了解该设备可以发送的数据包大小及其支持的端点编号。

2. 主机发送地址设置请求,并将地址分配给设备。

3. 主机发送获取描述符请求,以获取有关设备的更多信息。这使得主机能够获取与设备通信所需的所有信息。

4. 主机分析描述符信息,选择并加载适用于该设备的驱动程序。完成以上所有步骤后,设备将处于 " 已配置 " 状态,即可使用。

USB 状态转换

USB 设备连接后,其状态立即变为 " 已连接 ",并在枚举过程中依次经历四种状态:已供电、默认、已寻址和已配置。如果在这些状态中均未发生状态变化,则状态变为 " 已挂起 "。每种状态下的操作如上所述。

1. 连接的 USB 设备已连接到主机。

2. 带电源的 USB 设备连接到主机,并且 Vbus 电源正在向设备供电。

3. 已执行默认总线复位,现在可以进行通信。

4. 地址: USB 设备已被分配一个地址。

5.USB 设备已配置:配置完成,设备已准备就绪。

6. 如果挂起的总线上 3 毫秒或更长时间内没有状态变化,则限制功率的模式。

USB 状态转换图(基于通用串行总线规范 2.0 版创建)

USB OTG

随着智能手机、平板电脑和相机等设备广泛采用 USB 接口,无需电脑即可直接从这些设备打印的需求日益增长。为了满足这一需求,USB OTG 作为 USB 2.0 的附加规范被标准化。为了实现 USB 设备之间的互操作性,设备需要同时具备主机和设备功能。同时具备主机和设备功能的 USB OTG 兼容设备被称为双角色设备 ( DRD ) 。

PictBridge 标准大约在 2002 年左右制定,早于 OTG 标准,它允许相机无需电脑即可直接连接到打印机。该标准除了 USB 接口外,还允许使用红外通信。目前,Wi-Fi 打印和云打印等新技术已成为主流,因此 PictBridge 的普及率有所下降。

USB OTG 的一个关键特性是设备可以根据需要切换主机和设备角色。因此,USB OTG 增加了一个 ID 信号端子,用于判断设备当前是作为主机还是设备,从而实现相应的角色切换。当 ID 信号端子为低电平时,设备作为主机运行;当 ID 信号端子未连接或为高电平时,设备作为设备运行。

该 ID 信号终端最初采用 Mini-AB 接口和 A/B 双用途接口,后者可同时兼容 Mini-A 和 Mini-B 插头。目前,它已被 USB Type-C 接口取代,CC(配置通道)终端则取代了 ID 信号终端的位置,并利用了 USB Type-C 的 DRP(双角色端口)功能。

DRP 需要能够在 CC 端子上动态切换上拉电阻 ( Rp ) 和下拉电阻 ( Rd ) 。如果连接的设备是 UFP(上行端口),DRP 会将 CC 端子上拉 Rp,使其成为 DFP(下行端口,即主机侧)。如果连接的设备是 DFP,DRP 会将 CC 端子下拉 Rd,使其成为 UFP,从而建立连接。一旦 DFP/UFP 状态建立,电源就会从 DFP 流向 UFP。

USB OTG 使用 HNP(主机协商协议)在连接后动态切换主机和设备角色。例如,当智能手机连接到 U 盘时,智能手机充当主机,为 U 盘供电并执行读写操作。电池供电设备可以使用 SRP(会话请求协议)根据需要停止或请求供电。双角色设备必须同时支持这两种协议。

下图展示了从 USB Type-C 规范中提取的 DRP 功能模型。可以看出,CC1/CC2 内置开关,用于在 Rp 处进行上拉电阻切换,在 Rd 处进行下拉电阻切换。

CC1 和 CC2 的 DRP 功能模型(出自:通用串行总线 Type-C 电缆和连接器规范 2.4 版)

总结

USB 发展历史悠久,新旧标准并存。由于标准基于连接器形状和供电能力等因素,因此选择合适的标准常常令人困惑。在选择线缆和其他配件时,务必仔细考虑支持的 USB 标准和预期用途。同样,在将 USB 集成到嵌入式设备时,选择合适的标准、设备类别和连接器时,也必须考虑 USB 应用、线缆可用性以及其他因素。

虽然 USB 有许多令人困惑的地方,但它使用方便——只需插入电缆——使其成为一种标准,现在已被广泛应用于各种设备中,并且对用户来说不可或缺。

宙世代

宙世代

ZAKER旗下Web3.0元宇宙平台

一起剪

一起剪

ZAKER旗下免费视频剪辑工具

相关标签

windows 英特尔 智能手机 技能 医疗
相关文章
评论
没有更多评论了
取消

登录后才可以发布评论哦

打开小程序可以发布评论哦

12 我来说两句…
打开 ZAKER 参与讨论