Dispositivo USB con 2 porte - come proteggersi da entrambe le connessioni dell'utente


11

Ho un dispositivo USB a piena velocità per il quale voglio fornire 2 porte - una per ciascuna alle estremità opposte della custodia. In questo modo il cavo può essere collegato ovunque sia più conveniente. Il mio MCU (atmega32u4) ha solo un'interfaccia, quindi le porte fisiche saranno condivise, ma solo una dovrebbe essere collegata alla volta.

Naturalmente agli utenti non ci si può fidare di non collegare entrambi i lati contemporaneamente. Come proteggersi da questo?

Idee che mi sono venute in mente:

  • Basta collegarli "così come sono" e sperare che l'host possa gestire pin D + / D uniti
  • Porta NAND con pin separati da 5 V come input, output verso un MOSFET che disconnette Vcc quando entrambi sono collegati.

La seconda opzione sembra ragionevole o è necessaria una soluzione più complessa?


Come proponete di cablare le due porte per collegare D + e D- insieme? Dovresti aggiungere un diagramma che spieghi il layout che proponi.
Solar Mike,

@SolarMike Condiviso tra i due - nello scenario "corretto", con un solo cavo collegato, D + / D dell'altro connettore verrà lasciato penzolare.
monty,

7
Dovresti anche considerare di progettare la custodia con una cover mobile in modo che sia esposta una sola porta USB alla volta. In questo modo si comunica chiaramente all'utente che è consentito collegarsi a una delle porte contemporaneamente anziché confonderle quando collegano due host e uno non funziona.
Nonny Moose,

4
non dimenticare l'utente che riesce a trovare un cavo USB maschio-maschio e collega il dispositivo a se stesso !!!
RozzA

Risposte:


23

Come sottolineato, non puoi connettere direttamente due host a un dispositivo, quindi se li collegassi e qualcuno lo collegasse ad entrambe le estremità, avresti un problema.

Tuttavia, hai anche un problema se è collegata solo un'estremità. USB, in particolare la modalità ad alta velocità (480 Mbps) è l'impedenza controllata. Se si collegano entrambe le linee dati dei connettori, si finisce con quello che è noto come uno stub nel design ad alta frequenza. Il cavo che va al connettore inutilizzato peggiorerà le prestazioni del connettore attivo.

Per farlo correttamente, vuoi un IC multiplexer. È possibile acquistare multiplexer USB 2.0 dedicati progettati appositamente per questo tipo di applicazione, come TS3USB30 . Ciò consentirebbe di connettere le linee dati da entrambe le porte agli ingressi mux e di collegare l'output al dispositivo internamente. Il mux disconnetterà il connettore non utilizzato che disconnetterà gli stub della linea di trasmissione.

Per l'alimentazione probabilmente userei un multiplexer di potenza come un circuito OR-diodo. La linea VBUS da una delle porte (prima del multiplexer di potenza) può quindi essere utilizzata come input per il multiplexer di dati.

La messa a terra sarebbe comune (connessa) tra le due porte USB e il dispositivo.


1
Non ho considerato gli stub: quel multiplexer (combinato con il multiplex di potenza) sembra l'ideale!
monty,

3
I mozziconi non dovrebbero essere un problema a tutta velocità, che è tutto ciò che ti è stato chiesto nella tua domanda.
Dave Tweed

1
@DaveTweed Ho aggiunto il chiarimento Full Speed ​​dopo aver realizzato che questa risposta riguardava High Speed. Sapere che posso "cavarmela" fa bene a questo progetto, ma apprezzo sicuramente la conoscenza delle implicazioni a velocità più elevate.
monty,

Ora sono sinceramente interessato a come supportare atmega32u4 a 480 Mbps :)
Dmitry Grigoryev,

9

Il multiplexer come suggerito da Tom Carpenter è una buona soluzione.

Ma per USB a piena velocità (12 Mbps), gli stub nei segnali non sono particolarmente importanti. Se la distanza tra le estremità dello stub rimane al di sotto di 1/10 della lunghezza d'onda, cioè al di sotto di ~ 2 metri, i riflessi non distorcono molto la forma d'onda.

Inoltre, i livelli di tensione sui pin D + e D rimarranno entro l'intervallo accettabile, quindi non c'è molto rischio di danni elettronici a nessuno degli host.

Il problema principale che rimane è se si collegano insieme i pin + 5V di entrambi gli host, potrebbero esserci grandi correnti coinvolte. È possibile utilizzare un diodo dal pin + 5V di ciascun connettore USB per consentire solo l'ingresso di corrente, mai in uscita.


4

Il pigro modo di progettare elettronicamente sarebbe semplicemente quello di utilizzare un interruttore multi-connettore fisico per scegliere tra quale viene utilizzato.

Si noti che ciò avrebbe l'ulteriore vantaggio di poterli lasciare entrambi collegati e utilizzare l'interruttore per selezionare quale ingresso deve essere utilizzato.


2

Non esiste un modo conforme USB per farlo. USB non è progettato per essere condiviso tra due host e tentare di farlo porterà a situazioni potenzialmente disastrose.

Nella migliore delle ipotesi, è possibile utilizzare un multiplexer USB o un interruttore IC, con GPIO per determinare quale connettore è collegato. Dovrai decidere quale connessione USB ha la precedenza, poiché entrambi non possono essere collegati alla tua interfaccia USB contemporaneamente.

O guarda le alternative. Chiedi a un computer di comunicare all'altro. Oppure usa il Bluetooth o usa il Wi-Fi o un altro tipo di connessione.


Ho aggiunto chiarimenti alla domanda: sarà mai usata una sola porta alla volta e (si spera) il gate NAND può risolvere il problema della precedenza semplicemente negando lo scenario "entrambi collegati".
monty,

Che tipo di situazioni disastrose pensi che possa portare a?
jpa,

1
@jpa supponiamo che i due sistemi abbiano potenziali "a terra" diversi di 50 V, ad esempio. Collegarli entrambi a D- potrebbe essere "interessante". Anche se i potenziali differiscono di soli 50 mV, è possibile che sia stato creato un "loop di massa" che genera rumore.
alephzero,

1
@alephzero Certo, ma nemmeno un tipico multiplexer o switch IC non lo farebbe. La messa a terra che si collega per prima nel connettore USB, tuttavia, elimina principalmente questo problema.
jpa,

2

Ho un tablet Wacom con questa funzione. Gestiscono il problema che stai descrivendo utilizzando un interblocco meccanico.

C'è un cursore di plastica che blocca una porta o l'altra, a seconda della sua posizione.

inserisci qui la descrizione dell'immagine


1

Forse sarebbe più facile lasciare il connettore USB su un lato della custodia e duplicare e / o riposizionare simmetricamente tutti gli altri elementi rivolti verso l'utente. Quindi è possibile ruotare la custodia in modo che la porta USB sia rivolta verso il connettore, mentre tutti gli altri elementi sono ancora comodamente accessibili.

Un'altra opzione è quella di individuare entrambe le porte su un lato del contenitore (alle estremità opposte) e aggiungere uno stub scorrevole all'interno del contenitore che l'utente può spostare per aprire una porta o l'altra. L'USB a 12 MHz ha buone probabilità di funzionare con una porta disconnessa aggiuntiva collegata ad essa.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.