具有2个端口的USB设备-如何防止用户同时插入两个端口


11

我有一个全速USB设备,我想为其提供2个端口-机箱的相对两端各一个。这样一来,就可以在最方便的地方连接电缆。我的MCU(atmega32u4)只有一个接口,因此可以共享物理端口,但一次只能插入一个。

当然,不能信任用户不立即插入双方。如何防止这种情况发生?

我提出的想法:

  • 只需按原样将它们连接起来,并希望主机可以处理连接的D + / D-引脚
  • NAND门具有单独的5V引脚作为输入,输出到MOSFET,当两者均插入时,MOSFET断开Vcc。

第二种选择听起来合理吗,还是需要更复杂的解决方案?


您如何建议对两个端口进行接线以将D +和D-连接在一起?您应该添加一个图表,说明您建议的布局。
太阳迈克

@SolarMike两者共享-在“正确”的情况下,仅连接一根电缆,另一连接器的D + / D-将悬空。
monty

7
您还应该考虑使用活动盖设计外壳,以便一次仅暴露一个USB端口。这样,您就可以清楚地向用户传达,仅允许它们一次插入一个端口,而不会在它们插入两个主机而一个不起作用时造成混淆。
诺妮·驼鹿18/09/16

4
别忘了设法找到usb电缆的用户,并将设备插入自身!
RozzA

Answers:


23

如前所述,您不能将两台主机直接连接到设备-因此,如果仅将它们连接在一起,并且有人将其两端都插入,则可能会出现问题。

但是,如果仅插入一端,也会遇到问题。USB(尤其是高速(480Mbps)模式)是受控阻抗。如果将两条连接器的数据线连接在一起,则最终会导致高频设计中的短截线。连接到未使用的连接器的电缆会降低活动连接器的性能。

为了正确执行此操作,您需要一个多路复用器IC。您可以购买专门为此类应用设计的专用USB2.0多路复用器,例如TS3USB30。这样一来,您就可以将两个端口的数据线连接到多路复用器输入,并在内部将输出连接到设备。多路复用器将断开未使用的连接器,该连接器将断开传输线插头。

对于电源,我可能会使用电源多路复用器,例如二极管“或”电路。来自端口之一(电源多路复用器之前)的VBUS线路然后可用作数据多路复用器的输入。

两个USB端口与您的设备之间的接地是公共的(连接的)。


1
我没有考虑存根-多路复用器(结合功率多路复用器)看起来很理想!
monty

3
存根不应该是全速问题,这是您所提出的所有问题。
Dave Tweed18年

1
@DaveTweed在我意识到此答案涵盖了“高速”之后,我添加了“全速”说明。知道我可以“摆脱它”对于这种设计是有好处的,但是我一定很高兴知道以更高的速度产生的影响。
monty

现在,我真的很感兴趣如何使atmega32u4支持480Mbps :)
Dmitry Grigoryev

9

Tom Carpenter建议的多路复用器是一个很好的解决方案。

但是对于全速USB(12 Mbps),信号中的短截线并不是特别重要。如果短截线末端之间的距离保持在波长的1/10以下,即在〜2米以下,则反射不会使波形失真太多。

另外,D +和D-引脚上的电压电平将保持在可接受的范围内,因此对任一主机都没有太大的电子损坏风险。

剩下的主要问题是,如果将两个主机的+ 5V引脚连接在一起,则可能涉及大电流。您可以使用每个USB连接器的+ 5V引脚上的二极管仅使电流流入,而永不流出。


4

懒惰的电子设计方式只是使用一个物理多连接器开关来选择使用哪个。

请注意,这样做还有一个好处,就是可以将它们都插入并使用开关选择要使用的输入。


2

没有兼容USB的方法。USB并非设计为在两个主机之间共享,否则尝试将导致潜在的灾难性情况。

充其量,您可以使用带有GPIO的USB多路复用器或开关IC来确定连接了哪个连接器。您必须确定哪个USB连接具有优先权,因为两者不能同时连接到您的USB接口。

或看看替代方案。让一台计算机与另一台计算机通信。或使用蓝牙或使用Wi-Fi或其他连接类型。


我已经对这个问题进行了澄清-一次只能使用一个端口,并且(希望)“与非”门可以通过简单地拒绝“两个插入”场景来解决优先级问题。
monty

您认为这可能会导致什么灾难性的情况?
jpa

1
@jpa假设这两个系统的“地”电位相差50V。将它们都连接到D-可能是“有趣的”。即使电位仅相差50mV,也可能创建了产生噪声的“接地环路”。
alephzero

1
@alephzero当然可以,但是即使是典型的多路复用器或开关IC也无法解决。但是,首先将USB连接器接地是可以消除该问题的。
jpa

2

我有一台具有此功能的Wacom平板电脑。它们通过使用机械互锁来解决您正在描述的问题。

有一个塑料滑块可根据其位置阻塞一个或另一个端口。

在此处输入图片说明


1

也许将USB连接器留在外壳的一侧并对称地复制和/或重新放置所有其他面向用户的元素会更容易。然后可以旋转外壳,使USB端口面向连接器,同时仍然可以方便地访问所有其他元素。

另一种选择是将两个端口都定位在机柜的一侧(相对端),并在外壳内添加一个滑动端头,用户可以移动该滑动端头以打开一个端口或另一个端口。12 MHz USB很有可能与连接的额外断开端口一起工作。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.