USB 始终区分设备可以运行的“主机”和“外围设备”角色:只有一个“主机”(例如 PC)管理总线,并且可以有许多连接的“外围设备”与主机通信。您不能将主机连接到主机,也不能将外围设备连接到外围设备。这种区别历来由连接器强制执行:主机有 A 型插座,外围设备有 A 型插头或 B 型插座。
然而,USB-C 对主机和外围设备使用相同的连接器。这让我想知道是什么决定了哪一个将成为主机。USB-C 电缆是否有“主机端”和“外围设备端”,即使它们看起来一样,也可以通过电气方式区分它们?设备是否会协商哪个将成为主机?如果是这样,它们使用什么标准?
与此相关,USB 主机历来为外围设备提供电源,既让它们运行(例如 USB 鼠标和闪存驱动器),也为它们的电池充电(例如手机)。使用 A 型和 B 型连接时,总是很清楚哪个设备将为哪个设备充电。使用 C 型连接时,就不那么清楚了。
我的手机 (Nexus 5X) 和平板电脑 (Pixel C) 都有 USB-C 端口,我发现如果我用 USB-C 电缆将它们连接在一起,平板电脑总是默认为手机充电,无论我以何种方式连接电缆。但如果我用 USB-C OTG 适配器和 A-to-C 电缆将它们连接在一起,则连接到适配器的设备始终是提供电源的设备,这会导致手机为平板电脑充电。因此,当涉及 USB-A 端口时,似乎有一个强制性的充电方向,但使用原生 USB-C 连接时,设备可以以某种方式找出电流流动的“正确”方向。它们如何确定呢?如果我将两部相同的手机或两台带有 USB-C 端口的笔记本电脑连接在一起,会发生什么?
由于上面有很多小问题,这里是一个最重要的问题:USB 连接的一些元素必须是定向的(主机与外围设备,以及充电方向),那么 USB-C 连接如何确定哪个是哪个?
答案1
由于这个问题还没有解决,所以我将在这里回答。
在 USB C 中,设备可以扮演的角色是数据和电源方面的独立角色。这些都是通过在配置通道上发送数据包来进行协商的 - USB C 有一条单独的 CC 线,这是传统 A/B 连接器所没有的。这一切都在 USB 电源传输标准中规定。(虽然 USB Type-C 标准使用 USB PD 协议,但 USB PD 理论上可以在其他地方使用。)
权力角色可以
- 提供者也叫来源
- 消费者也叫下沉。
- 双重角色力量(DRP)端口。
对于数据
- 没有数据
- 下游面向端口(DFP)——这意味着它发送数据。
- 上游朝向港口(UFP)这意味着设备接收数据。例如显示器或鼠标。
- 双重角色数据端口(DRD)。端口在连接时的电源角色决定了其初始角色。源端口承担 DFP 的数据角色,而接收端口承担 UFP 的数据角色。如果端口同时是 DRP 和 DRD,则将它们连接在一起将随机将一个锁定为源和 DFP,将另一个锁定为接收和 UFP。完成此初始连接后,可以根据需要协商角色交换。
众所周知,USB C 非常灵活(说得更直白些:它非常混乱),上面的列表中很难给出很好的例子。例如,便携式显示器上的 USB C 端口可能是:
- 没有数据角色的电源接收器 - 这可能用于通过 USB C 充电器为显示器供电,同时通过 HDMI 提供视频,或者甚至通过另一个无法提供足够瓦数的 USB C 端口上的笔记本电脑提供视频。
- 用于视频和潜在数据的 UFP。这很可能是一个电源接收器。
- 如果它有内置电池,那么它可能是一个 UFP 和一个电源,用于为视频设备充电。也可能有一个菜单选项可以在源和接收器角色之间切换,这样笔记本电脑可以为显示器充电,或者显示器可以为笔记本电脑充电。
- 同样,如果里面有电池,它也可能充当扩展坞,因此它可以提供 DFP 和电源端口。
- 它可能不配备显示器内部的电池,而是配备一个与扩展坞交叉的电池组,为此它可能提供一个作为电源接收器的 DFP。
至于问题中的例子,如果您有一个提供 USB A 插座的适配器,并且符合标准,那么它的另一端将配备 USB C 公连接器。将 USB C 端插入设备将强制设备承担 DFP 角色,并且它还将为连接的传统 USB 设备提供 5V。这既不是源也不是接收器,而是一种传统模式。它不是良好的协商,而是通过一些电阻器强制的。顺便说一句,没有“USB C OTG”这样的东西,那是营销术语。
答案2
无法将主机连接到主机
实际上可以,这是 2010 年发布的 USB 3.0 规范的一部分。如果使用 USB-A 转 USB-A,则需要特殊的电缆,但如果一个或两个主机都有 USB-C,那么像用于连接硬盘或智能手机的普通电缆就可以工作。根据智能手机的不同,它实际上可能在用户不知情的情况下使用主机到主机的通信。
大多数配备 USB-C 的系统都支持通过 USB 将 Windows 或 Linux 主机相互连接,但设置起来并不容易,而且即使这样,除非有人为这种通信编写更多软件,否则实用性非常有限。Apple 硬件也支持 USB 3.x 主机到主机通信,但大多数人会发现使用 Thunderbolt 更容易,它速度更快,操作系统支持此功能,并且在 USB-C 的情况下,它使用与 USB 3.x 相同的端口。Thunderbolt 对主机到主机通信的电缆要求更严格,有些 USB 3.x 电缆适用于 Thunderbolt,有些则不适用。
我确实希望有人能为新手用户提供 USB 主机到主机通信功能,因为很多人都要求这样做。这是一个软件问题,所有硬件都已存在,但在早期实施 USB-C 时可能会有一些例外。
这种区别历来由连接器强制执行:主机有 A 型插座,外围设备有 A 型插头或 B 型插座。
然而,USB-C 对主机和外围设备使用相同的连接器。
USB-C 不会失去“A 型”和“B 型”端口,只是不再通过物理连接器强制执行。强制执行是通过电子方式完成的。
这让我想知道是什么决定了哪一个将成为主机。USB-C 电缆是否有“主机端”和“外围设备端”,即使它们看起来一样,也可以通过电气方式区分它们?设备会协商哪个将成为主机吗?如果是这样,它们使用什么标准?
两端均带有 USB-C 连接器的 USB 电缆不会有主机(或 A 型)和外围设备(B 型)端。虽然连接器的工作方式允许有人构建这样的电缆,但这会违反 USB 关于如何连接此类电缆的规范。我以前见过不符合标准的 USB-C 电缆,如果精心构建并有针对性,它们会非常有用,问题是电缆必须以某种方式标记以指出其独特用途,以避免混淆和投诉。让用户清楚地了解这一区别可能微不足道,甚至几乎不可能,这就是为什么 USB 背后的人不允许此类电缆带有他们的商标或声称获得认证的原因。
当通过 USB-C 连接两台主机时,根据计算机的功能,可能会发生许多事情。如果两台计算机都支持双角色端口,那么每台计算机所扮演的角色都是随机的,这可能会导致手机给笔记本电脑充电之类的事情,尽管这并不是用户想要的。主机对自己所扮演的角色记忆不深,因此可以通过拔下并重新连接来反转角色。有些人会错误地认为电缆具有某种内置方向性,从而将电缆翻转过来,而角色反转又强化了这种认识。可以通过断开并重新连接而不翻转电缆来证明这种说法是错误的。
并非所有 USB 主机都具有双角色端口,因此如果一个仅是主机而另一个是双角色,那么双角色主机将承担外围设备角色。正如您所发现的,如果两个外围设备通过 USB-C 电缆连接,则不会发生任何有趣的事情。
通过 USB-C 连接两台主机计算机将允许主机到主机通信,但前提是在操作系统中进行了正确的设置。根据端口的配置方式,可能会有一种“主”和“从”角色扮演,但这是在 USB-C 和 USB 3.x 之外的软件层上。它们也可能在此层上扮演对等/对等角色。
这忽略了 USB-C 上的替代模式,例如 Thunderbolt、DisplayPort 等。Thunderbolt 的工作方式是同侪/同侪关系,如果需要,可以协商电源或接收器的角色。USB-C 上的视频模式(例如 DP、HDMI 和 MHL)的角色协商要简单得多,因为视频、声音、设备控制和其他一些位的数据只能单向传输。当有少量数据以另一种方式传输时,例如音频或以太网通道,那么这些数据将保存在一组为此目的而专门设计的线路上。
因此,当涉及 USB-A 端口时,似乎有一个强制性的充电方向,但使用原生 USB-C 连接时,设备可以以某种方式找出电流流动的“正确”方向。它们如何确定呢?如果我将两部相同的手机连接在一起,或者将两台带有 USB-C 端口的笔记本电脑连接在一起,会发生什么?
有一种用于处理电源的协议,称为 USB-PD。USB-PD 是一种独立于音频、视频和其他数据流的双向协议,该协议很大程度上基于旧版 USB-BCS(电池充电系统)标准。它基于可追溯到 USB 1.0 和 1.1 的最低 USB 电源水平。从此发展出了 USB-BCS,后来又发展出了 USB-PD,其他协议都是以这些标准为基础发展起来的。Apple 扩展了其中的一些内容以创建 AppleID 协议,当 USB-BCS 出现故障且 USB-PDS 速度慢、价格昂贵且费力时,该协议可以很好地发挥作用。
由于上面有很多小问题,这里是一个最重要的问题:USB 连接的一些元素必须是定向的(主机与外围设备,以及充电方向),那么 USB-C 连接如何确定哪个是哪个?
USB-C 是一种可以承载多个独立数据路径的端口,每个路径都可以协商哪个路径去往何处。电源协商相对简单,只需确定电压和方向即可。电源流的方向可以由主机的能力决定,并且可以根据需要随时更改。电源主机和从机与数据流的方向无关。该流在四个超高速通道上独立协商。协议也可以是唯一的。USB 通道将有一个匹配的 USB 通道。MHL 可能有一个匹配的通道、三个这样的通道,或者没有匹配的通道并允许它。
USB4 允许 USB、Thunderbolt 和 DisplayPort 共享通道。这些超高速通道中的每一个都可以向任何方向流动。这与 USB 2.0 无关。功率流也是独立的。
USB、Thunderbolt 和 DP 可以共享数据通道,但 MHL 或 HDMI 则不行。HDMI 需要所有超高速通道。MHL 需要自己的通道,任何未使用的通道只能由 USB 占用。