Urządzenie USB z 2 portami - jak zabezpieczyć się przed podłączeniem obu przez użytkownika

11

Mam urządzenie USB o pełnej prędkości, dla którego chcę zapewnić 2 porty - po jednym na przeciwległych końcach obudowy. Dzięki temu kabel można podłączyć wszędzie tam, gdzie jest to najwygodniejsze. Mój MCU (atmega32u4) ma tylko jeden interfejs, więc porty fizyczne będą współdzielone, ale tylko jeden powinien być podłączony jednocześnie.

Oczywiście nie można ufać użytkownikom, że nie podłączą obu stron jednocześnie. Jak się przed tym zabezpieczyć?

Pomysły, które wpadłem na:

  • Po prostu podłącz je „tak jak są” i miej nadzieję, że host poradzi sobie z połączonymi pinami D + / D-
  • Bramka NAND z osobnymi pinami 5 V jako wejściem, wyjściem do MOSFET-a, który rozłącza Vcc, gdy oba są podłączone.

Czy druga opcja brzmi rozsądnie, czy jest wymagane bardziej złożone rozwiązanie?

monty
źródło
Jak proponujesz okablowanie dwóch portów, aby połączyć D + i D- razem? Powinieneś dodać diagram wyjaśniający proponowany układ.
Solar Mike,
@SolarMike Dzielone między nimi - w scenariuszu „poprawnym”, z podłączonym tylko jednym kablem, D + / D- drugiego złącza pozostaną zwisające.
poniedziałek
7
Powinieneś również rozważyć zaprojektowanie obudowy z ruchomą pokrywą, aby naraz był widoczny tylko jeden port USB. W ten sposób wyraźnie komunikujesz użytkownikowi, że może on podłączyć się tylko do jednego z portów naraz, zamiast mylić je, gdy podłączają dwa hosty, a jeden nie działa.
Nonny Moose
4
nie zapomnij o użytkowniku, któremu udało się znaleźć męski-męski kabel USB i podłączyć urządzenie do siebie !!!
RozzA

Odpowiedzi:

23

Jak wspomniano, nie można bezpośrednio połączyć dwóch hostów z urządzeniem - więc jeśli po prostu je połączysz i ktoś podłączy je z obu stron, będziesz miał problem.

Jednak masz również problem, jeśli tylko jeden koniec jest podłączony. USB, szczególnie tryb wysokiej prędkości (480 Mb / s), kontroluje impedancję. Po połączeniu ze sobą obu linii danych łączników powstaje tak zwany odgałęzienie w konstrukcji wysokiej częstotliwości. Kabel prowadzący do nieużywanego złącza obniży wydajność aktywnego złącza.

Aby to zrobić poprawnie, potrzebujesz multipleksera. Możesz kupić dedykowane multipleksery USB 2.0 zaprojektowane specjalnie do tego rodzaju aplikacji - coś w rodzaju TS3USB30 . Umożliwiłoby to połączenie linii danych z obu portów z wejściami multipleksera i podłączenie wyjścia do urządzenia wewnętrznie. Multiplekser odłączy nieużywane złącze, które odłączy odcinki linii przesyłowej.

Do zasilania prawdopodobnie użyłbym multipleksera mocy, takiego jak obwód diody OR. Linię VBUS z jednego z portów (przed multiplekserem mocy) można następnie wykorzystać jako wejście do multipleksera danych.

Uziemienie byłoby wspólne (podłączone) między dwoma portami USB a urządzeniem.

Tom Carpenter
źródło
1
Nie brałem pod uwagę kodów pośredniczących - ten multiplekser (w połączeniu z multiplekserem mocy) wygląda idealnie!
poniedziałek
3
Stuby nie powinny stanowić problemu przy pełnej prędkości, o co pytasz w swoim pytaniu.
Dave Tweed,
1
@DaveTweed Dodałem wyjaśnienie dotyczące pełnej prędkości po tym, jak zorientowałem się, że ta odpowiedź obejmuje High Speed. Wiedza, że ​​mogę „uciec”, jest dobra dla tego projektu, ale zdecydowanie doceniam znajomość implikacji przy wyższych prędkościach.
poniedziałek
Teraz jestem naprawdę zainteresowany, jak sprawić, by atmega32u4 obsługiwał 480 Mb / s :)
Dmitry Grigoryev
9

Multiplekser, jak sugeruje Tom Carpenter, jest dobrym rozwiązaniem.

Ale dla pełnej prędkości USB (12 Mb / s) odcinki sygnałów nie są szczególnie ważne. Jeśli odległość między końcami króćca pozostanie poniżej 1/10 długości fali, tj. Poniżej ~ 2 metrów, odbicia nie zniekształcą kształtu fali.

Ponadto poziomy napięcia na pinach D + i D- pozostaną w dopuszczalnym zakresie, więc nie ma dużego ryzyka uszkodzenia elektroniki na żadnym z hostów.

Głównym problemem, który pozostaje, jest to, że jeśli połączysz piny + 5V z obu hostów, mogą występować duże prądy. Możesz użyć diody z każdego styku + 5 V złącza USB, aby przepuszczać tylko prąd.

jpa
źródło
4

Leniwy sposób projektowania elektronicznego polegałby na użyciu fizycznego przełącznika wielozłączowego do wyboru, który z nich zostanie użyty.

Zauważ, że miałoby to dodatkową zaletę polegającą na pozostawieniu ich obu podłączonych do sieci i użyciu przełącznika, aby wybrać, które wejście ma zostać użyte.

Lassi Kinnunen
źródło
2

Nie ma na to sposobu zgodnego z USB. Port USB nie jest przeznaczony do współdzielenia przez dwa hosty, a próba takiego działania może doprowadzić do potencjalnie katastrofalnych sytuacji.

W najlepszym wypadku można użyć multipleksera USB lub przełącznika IC z GPIO w celu ustalenia, które złącze jest podłączone. Musisz zdecydować, które połączenie USB ma pierwszeństwo, ponieważ oba nie mogą być podłączone do interfejsu USB w tym samym czasie.

Lub spójrz na alternatywy. Niech jeden komputer komunikuje się z drugim. Lub użyj Bluetooth lub Wi-Fi lub innego rodzaju połączenia.

Przechodzień
źródło
Dodałem wyjaśnienie do pytania - tylko jeden port będzie kiedykolwiek używany jednocześnie (i mam nadzieję, że brama NAND może rozwiązać problem pierwszeństwa, po prostu odrzucając scenariusz „oba podłączone”.
poniedziałek
Jak myślisz, do jakich katastrofalnych sytuacji może to doprowadzić?
jpa
1
@ jpa przypuśćmy, że oba systemy mają na przykład potencjały „uziemienia”, które różnią się o 50 V. Podłączenie ich obu do D- może być „interesujące”. Nawet jeśli potencjały różnią się tylko 50 mV, być może utworzono generującą szum „pętlę masy”.
alephzero
1
@alephzero Pewnie, ale nawet typowy multiplekser lub przełącznik IC nie poradziłby sobie z tym. Jednak uziemienie łączące się najpierw w złączu USB w większości eliminuje ten problem.
jpa
2

Mam tablet Wacom z tą funkcją. Zajmują się opisanym przez Ciebie problemem za pomocą blokady mechanicznej.

Istnieje plastikowy suwak, który blokuje jeden lub drugi port, w zależności od jego pozycji.

wprowadź opis zdjęcia tutaj

Rysował
źródło
1

Być może łatwiej byłoby zostawić złącze USB po jednej stronie obudowy i symetrycznie powielić i / lub przenieść wszystkie inne elementy skierowane do użytkownika. Następnie obudowę można obrócić, tak aby port USB był skierowany w stronę złącza, podczas gdy wszystkie pozostałe elementy są nadal łatwo dostępne.

Inną opcją jest zlokalizowanie obu portów po jednej stronie obudowy (na przeciwnych końcach) i dodanie suwaka w obudowie, który użytkownik może przesunąć, aby otworzyć jeden lub drugi port. USB 12 MHz ma duże szanse na pracę z podłączonym do niego dodatkowym odłączonym portem.

Dmitrij Grigoriew
źródło