USB-Gerät mit 2 Anschlüssen - Schutz vor dem Anschließen beider Geräte durch den Benutzer

11

Ich habe ein USB-Gerät mit voller Geschwindigkeit, für das ich zwei Anschlüsse bereitstellen möchte - jeweils einen an den gegenüberliegenden Enden des Gehäuses. Auf diese Weise kann das Kabel überall dort angeschlossen werden, wo es am bequemsten ist. Meine MCU (atmega32u4) verfügt nur über eine Schnittstelle, sodass die physischen Ports gemeinsam genutzt werden. Es sollte jedoch immer nur eine angeschlossen sein.

Natürlich kann man den Benutzern nicht trauen, nicht beide Seiten gleichzeitig anzuschließen. Wie kann man sich dagegen schützen?

Ideen, die ich mir ausgedacht habe:

  • Verdrahten Sie sie einfach "wie sie sind" und hoffen Sie, dass der Host mit verbundenen D + / D- Pins umgehen kann
  • NAND-Gatter mit separaten 5-V-Pins als Eingang, Ausgang an einen MOSFET, der Vcc trennt, wenn beide eingesteckt sind.

Klingt die zweite Option sinnvoll oder ist eine komplexere Lösung erforderlich?

monty
quelle
Wie schlagen Sie vor, die beiden Ports zu verdrahten, um D + und D- miteinander zu verbinden? Sie sollten ein Diagramm hinzufügen, in dem das von Ihnen vorgeschlagene Layout erläutert wird.
Solar Mike
@SolarMike Wird zwischen den beiden geteilt - im "richtigen" Szenario, wenn nur ein Kabel angeschlossen ist, bleibt das D + / D- des anderen Steckers hängen.
Montag,
7
Sie sollten auch in Betracht ziehen, das Gehäuse mit einer beweglichen Abdeckung so zu gestalten, dass nur ein USB-Anschluss gleichzeitig freigelegt wird. Auf diese Weise teilen Sie dem Benutzer klar mit, dass er nur gleichzeitig an einen der Ports angeschlossen werden darf, anstatt sie zu verwirren, wenn er zwei Hosts anschließt und einer nicht funktioniert.
Nonny Moose
4
Vergessen Sie nicht den Benutzer, der es schafft, ein USB-Kabel zu finden und das Gerät in sich selbst zu stecken !!!
RozzA

Antworten:

23

Wie bereits erwähnt, können Sie zwei Hosts nicht direkt an ein Gerät anschließen. Wenn Sie sie also nur miteinander verkabelt haben und jemand sie an beiden Enden angeschlossen hat, liegt ein Problem vor.

Sie haben jedoch auch ein Problem, wenn nur ein Ende angeschlossen ist. USB, insbesondere der Hochgeschwindigkeitsmodus (480 Mbit / s), wird über die Impedanz gesteuert. Wenn Sie die Datenleitungen beider Anschlüsse miteinander verbinden, erhalten Sie einen sogenannten Stub im Hochfrequenzdesign. Das Kabel zum nicht verwendeten Anschluss beeinträchtigt die Leistung des aktiven Anschlusses.

Um dies richtig zu machen, benötigen Sie einen Multiplexer-IC. Sie können dedizierte USB2.0-Multiplexer kaufen, die speziell für diese Art von Anwendung entwickelt wurden - so etwas wie der TS3USB30 . Auf diese Weise können Sie die Datenleitungen von beiden Ports mit den Mux-Eingängen verbinden und den Ausgang intern mit Ihrem Gerät verbinden. Der Mux trennt den nicht verwendeten Stecker, wodurch die Übertragungsleitungs-Stichleitungen getrennt werden.

Für die Stromversorgung würde ich wahrscheinlich einen Leistungsmultiplexer wie eine Dioden-ODER-Schaltung verwenden. Die VBUS-Leitung von einem der Ports (vor dem Leistungsmultiplexer) kann dann als Eingang für den Datenmultiplexer verwendet werden.

Die Erdung ist zwischen den beiden USB-Anschlüssen und Ihrem Gerät gleich (verbunden).

Tom Carpenter
quelle
1
Ich habe die Stichleitungen nicht berücksichtigt - dieser Multiplexer (kombiniert mit Leistungsmultiplex) sieht ideal aus!
Montag,
3
Stubs sollten bei Full Speed ​​kein Problem sein, worüber Sie in Ihrer Frage nur gefragt haben.
Dave Tweed
1
@ DaveTweed Ich habe die Klarstellung zur vollen Geschwindigkeit hinzugefügt, nachdem mir klar wurde, dass diese Antwort Hochgeschwindigkeit abdeckt. Zu wissen, dass ich damit durchkommen kann, ist gut für dieses Design, aber ich schätze es auf jeden Fall, die Auswirkungen bei höheren Geschwindigkeiten zu kennen.
Montag,
Jetzt bin ich wirklich interessiert, wie atmega32u4 480 Mbit / s unterstützt :)
Dmitry Grigoryev
9

Der von Tom Carpenter vorgeschlagene Multiplexer ist eine gute Lösung.

Bei USB mit voller Geschwindigkeit (12 Mbit / s) sind die Stichleitungen in den Signalen jedoch nicht besonders wichtig. Wenn der Abstand zwischen den Stichleitungen unter 1/10 der Wellenlänge bleibt, dh unter ~ 2 Metern, verzerren die Reflexionen die Wellenform nicht wesentlich.

Außerdem bleiben die Spannungspegel an D + und D- Pins im akzeptablen Bereich, sodass für beide Hosts kein großes Risiko einer elektronischen Beschädigung besteht.

Das Hauptproblem bleibt, wenn Sie die + 5V-Pins von beiden Hosts miteinander verbinden, können große Ströme auftreten. Sie können eine Diode vom + 5V-Pin jedes USB-Anschlusses verwenden, um nur Strom hereinzulassen, niemals heraus.

jpa
quelle
4

Der träge elektronische Entwurfsweg wäre nur die Verwendung eines physischen Mehrfachverbindungsschalters, um zu wählen, welcher verwendet wird.

Beachten Sie, dass dies den zusätzlichen Vorteil hätte, dass beide angeschlossen bleiben und mit dem Schalter auswählen können, welcher Eingang verwendet werden soll.

Lassi Kinnunen
quelle
2

Es gibt keine USB-kompatible Möglichkeit, dies zu tun. USB ist nicht für die gemeinsame Nutzung zwischen zwei Hosts ausgelegt. Wenn Sie dies versuchen, führt dies zu potenziell katastrophalen Situationen.

Im besten Fall können Sie einen USB-Multiplexer oder einen Switch-IC mit GPIO verwenden, um festzustellen, welcher Anschluss angeschlossen ist. Sie müssen entscheiden, welche USB-Verbindung Vorrang hat, da nicht beide gleichzeitig an Ihre USB-Schnittstelle angeschlossen werden können.

Oder schauen Sie sich Alternativen an. Lassen Sie einen Computer mit dem anderen kommunizieren. Oder verwenden Sie Bluetooth oder Wi-Fi oder einen anderen Verbindungstyp.

Passant
quelle
Ich habe der Frage eine Klarstellung hinzugefügt - es wird immer nur ein Port gleichzeitig verwendet, und (hoffentlich) kann das NAND-Gatter das Vorrangproblem lösen, indem es einfach das Szenario "beide angeschlossen" ablehnt.
Montag,
Zu welchen katastrophalen Situationen könnte dies Ihrer Meinung nach führen?
jpa
1
@jpa Angenommen, die beiden Systeme haben "Erdungs" -Potentiale, die sich beispielsweise um 50 V unterscheiden. Beide mit D- zu verbinden könnte "interessant" sein. Selbst wenn die Potentiale nur 50 mV unterschiedlich sind, haben Sie möglicherweise eine rauscherzeugende "Erdschleife" erstellt.
Alephzero
1
@alephzero Sicher, aber selbst ein typischer Multiplexer oder Switch-IC würde das nicht bewältigen. Die erste Erdung im USB-Anschluss beseitigt dieses Problem jedoch größtenteils.
jpa
2

Ich habe ein Wacom-Tablet mit dieser Funktion. Sie behandeln das von Ihnen beschriebene Problem mithilfe einer mechanischen Verriegelung.

Es gibt einen Plastikschieber, der je nach Position den einen oder den anderen Anschluss blockiert.

Geben Sie hier die Bildbeschreibung ein

Drew
quelle
1

Möglicherweise ist es einfacher, den USB-Anschluss an einer Seite des Gehäuses zu belassen und alle anderen benutzerbezogenen Elemente symmetrisch zu duplizieren und / oder zu verschieben. Anschließend kann das Gehäuse so gedreht werden, dass der USB-Anschluss zum Anschluss zeigt, während alle anderen Elemente weiterhin bequem zugänglich sind.

Eine andere Möglichkeit besteht darin, beide Anschlüsse auf einer Seite des Gehäuses (an den gegenüberliegenden Enden) anzuordnen und einen Gleitstummel innerhalb des Gehäuses hinzuzufügen, den der Benutzer bewegen kann, um den einen oder anderen Anschluss zu öffnen. 12-MHz-USB hat gute Chancen, mit einem zusätzlichen, nicht angeschlossenen Anschluss zu arbeiten.

Dmitry Grigoryev
quelle