Protezione di un laptop da dispositivi USB collegati


11

Negli ultimi due mesi sono riuscito a distruggere 2 laptop perfettamente funzionanti programmando l'elettronica di sviluppo tramite USB. Mi chiedevo cosa si potesse fare per impedirlo. Un paio di idee che ho avuto (non sono sicuro di quanto pratico):

  1. Connettore / hub USB con diodi zener 5V di bloccaggio su linee di alimentazione e dati
  2. Connettore / hub USB con optoisolatori su linee dati
  3. fornire alla connessione USB una fonte di alimentazione esterna più l'idea menzionata in precedenza

In combinazione con queste idee, forse i resistori su entrambe le linee 5v D + e D- per limitare la corrente a dire 200mA (abbastanza per la maggior parte dei dispositivi che uso).

Mi chiedevo solo cosa pensassero alcuni ingegneri più esperti di me su queste idee e sulle loro implicazioni pratiche?


1
Vendono adattatori USB optoisolati appositamente per questo scopo.
Ignacio Vazquez-Abrams,

3
Come ci sei riuscito esattamente? Il tuo laptop è collegato a terra e sei collegato a un dispositivo con tensione a terra? Hai alimentato la corrente sulla linea a 5 V?
Transistor,

1
@KingDuken: uno schema non è abbastanza. L'USB richiede anche il routing corretto per non trasformare il protocollo in un mucchio di goop.
Ignacio Vazquez-Abrams,

1
Lavoro principalmente con elettronica di sviluppo basata su Arduino e PIC per il controllo di lavatrici e distributori automatici (non è stato lo stesso dispositivo che ha distrutto entrambi i laptop). Dato che è principalmente solo il rischio di alta tensione, l'uso dei diodi zener sarebbe una semplice soluzione economica o farebbe confusione con il lato dei dati?
awsem_ita

1
No, non lo farebbe: questi diodi dovrebbero resistere alla piena potenza che può fornire la tua sorgente ad alta tensione, altrimenti bruceranno e quindi i diodi di protezione del laptop bruceranno successivamente. Tutto ciò accadrà in milli-, se non in microsecondi, supponendo che il cambio delle lavatrici richieda una fornitura piuttosto robusta per guidare i relè in modo affidabile.
Marcus Müller,

Risposte:


10

Il vero problema non è la porta USB non protetta, il vero problema è che il tuo dispositivo mette te e i tuoi dispositivi a rischio di essere collegati a fonti ad alta tensione e relativamente alta corrente.

Puoi risolvere la sovratensione transitoria con diodi di serraggio, ma questi non aiuteranno se l'alimentazione è abbastanza forte - falliranno e poi ti troverai nella stessa situazione di prima, solo millisecondi e l'odore dei semiconduttori bruciati più lontano.

Il tuo problema è grave, per molte ragioni, e il tuo laptop è il meno:

L'USB è pensato per essere gestito manualmente (che è una formulazione ridondante), quindi se questo errore uccide il tuo laptop, non ho la massima sicurezza che sia intrinsecamente salvata per l'interazione umana.

Esistono, per una buona ragione, criteri di progettazione per i circuiti che prevedono la commutazione di tensioni più elevate con tensioni più basse.

In generale: è necessario l'isolamento galvanico tra tutto ciò che un essere umano (anche un tecnico dell'assistenza) potrebbe toccare durante il funzionamento e le tensioni pericolose.

Quindi: separa rigorosamente il controller USB e le cose che cambia. È pratica comune guidare carichi induttivi o ad alta tensione utilizzando accoppiatori ottici, il cui lato secondario è guidato da un alimentatore separato.

Il layout della scheda deve separare le regioni ad alta tensione dall'ambiente 5V / MCU. Solo accoppiatori ottici, nuclei di trasformatori e relè possono attraversare quel confine. Nessun compromesso.

Un problema tipico è che la massa dell'alimentatore del tuo dispositivo ha un potenziale completamente diverso rispetto alla massa USB, anche se questo non dovrebbe essere un problema per un laptop, che a sua volta dovrebbe essere galvanicamente separato da qualsiasi altra cosa, ci sono molti casi in cui ti imbatti problemi con questo (ad es. la messa a terra del laptop finisce su una terra ethernet, una terra audio, una terra RS-232 ...). La rigorosa separazione (isolamento) tra controller e controllati rende intrinseco un non-problema.


3
"Ad es. la messa a terra del laptop finisce su una rete ethernet" Ethernet (dovrebbe essere) trasformatore accoppiato. Ai tempi di 10-base-2 avevano questi jack BNC con manicotto di plastica che sporgevano dallo slot del backplane, in particolare non toccando la terra del telaio.
Chris Stratton,

@ChrisStratton Sì, la segnalazione è adeguatamente separata dai trasformatori, e se c'è PoE, ciò avviene attraverso i tocchi centrali dei lati primari di quelli, in effetti. Ma: ho una scheda NIC RTL8139 estremamente comune di fronte a me. Il jack RJ45 ha una custodia in metallo, che fa contatto con il connettore RJ45 e quindi lo schermo del cavo. Sul lato della scheda, che è direttamente collegato alla terra del telaio. Quindi, um ... posso controllare il mio ricetrasmettitore Gigabit-Ethernet-SFP per la schermatura dei cavi - se lo si desidera, anche la connettività dello chassis. La mia ipotesi è che lo stesso vale per i dongle Ethernet USB e le schede di rete di bordo del laptop.
Marcus Müller,

Potrebbe essere più chiaro affermare esplicitamente che esistono schede USB optoisolanti. Un esempio è qui adafruit.com/product/2107 - nessuna affiliazione, primo link da Google.
circa

Anche se sono d'accordo con il fatto che esistano queste schede, lo ribadisco: avere una scheda del genere risolve il problema sbagliato .
Marcus Müller,

1
@ MarcusMüller Che è, come ho detto, un caso limite. Si personalmente potrebbero interagire principalmente con STP, ma UTP è ancora di gran lunga la scelta più comune nel complesso, per quanto ne so. In ogni caso, STP è in genere basato solo su un'estremità , quindi anche questo non è un problema.
Bob,

6

Lavoro principalmente con elettronica di sviluppo basata su Arduino e PIC per il controllo di lavatrici e distributori automatici (non è stato lo stesso dispositivo che ha distrutto entrambi i laptop). Dato che è principalmente solo il rischio di alta tensione, l'uso dei diodi zener sarebbe una semplice soluzione economica o farebbe confusione con il lato dei dati?

Buona. Dato che menzioni "l'uso di diodi zener" per proteggersi da una "alta tensione" mal definita, ora abbiamo un punto dati affidabile: non hai idea di cosa stai facendo.

Pertanto, è necessario un isolatore USB per proteggere la porta del laptop da se stessi. Mi dispiace per quel laptop, a proposito.

Voglio dire, i laptop sono isolati da terra a causa del fatto che i loro alimentatori non sono collegati a terra. Quindi, soffiare sulla porta USB di un laptop è come ... difficile ... Come sei riuscito esattamente a farlo? Hai inviato la tensione di rete alla porta USB o qualcosa del genere?


2
+1 per "non ho idea di", e vorrei dare un altro +1 per "soffiare sulla porta USB di un laptop è come ... difficile ..."
Ale..chenski,

Bene, se il micro che si sta programmando è alimentato da un contagocce del condensatore in tensione dalla rete o da un qualche tipo di alimentazione non isolata ... Non sono nemmeno sicuro che la porta USB soffi, la terra interna del laptop sarebbe semplicemente alla rete tensione (ed estremamente pericolosa!) Ora, se il micro viene utilizzato per controllare le lavatrici (cioè un grande carico induttivo), allora, anche altre cose possono andare storto!
peufeu,

"i laptop sono isolati da terra a causa della mancanza di messa a terra dei loro alimentatori". Non vero (almeno in un esempio aneddotico). Durante l'utilizzo di un laptop di un importante fornitore e di un rispettabile adattatore sostitutivo (il primo è morto), la mia terra USB è stata collegata a terra. L'ho scoperto solo quando ho provato a sondare il circuito in prova con un ambito anch'esso collegato a terra, ma con la clip di terra erroneamente su un nodo diverso rispetto alla terra USB. La disconnessione dell'alimentazione del laptop e lo scaricamento delle batterie ha risolto tutto questo.
nanofarad,

6
-1 per l'80% del messaggio che è ad-hominem e sarcasmo. So che è un meme nella discussione sull'elettronica, ma per favore.
AnoE,

1
@AliChen Non è così. Ho fatto saltare un fusibile nel mio circuito poco prima che un monitor di corrente che faceva parte del circuito (e nel circuito di terra) registrasse un transitorio molto elevato. Questo sicuramente non era nella gamma dei milliampere.
nanofarad,

2

Dato che stai usando Arduino come base, la soluzione è semplice .... usa un processore usa e getta per la programmazione e il debug. L'ambiente di sviluppo Arduino si adatta perfettamente a un Raspberry Pi che puoi alimentare dal tuo ambiente incorporato e parlare via wireless dai tuoi laptop rimanenti o forse da un desktop.

Questo non ti impedirà di friggere un Raspberry Pi, ma ridurrà il costo di un guasto del circuito a circa $ 35.


2
Penso che fino a quando non verrà stabilita la causa principale dell'esplosione delle porte del laptop, qualsiasi consiglio sarebbe prematuro. Non sappiamo quanto folle possa essere il collegamento della lavatrice, i fili in bianco e nero possono essere scambiati e la terra è libera. Quindi potrebbe friggere qualsiasi cosa, Pi o no. Spero che l'OP abbia una buona assicurazione sulla vita ...
Ale..chenski,

Non sono d'accordo ... qualsiasi consiglio che renda l'ambiente meno probabile da compromettere dovrebbe sicuramente essere preso in considerazione.
Jack Creasey,

2
Questa è davvero una nuova idea - essenzialmente l'argomento è che un pi (più simile a $ 5 + $ 5 card + $ 5 wifi) è probabilmente ora più economico di un isolatore USB. Né fa nulla riguardo ai possibili pericoli nel sistema che potrebbero comunque persistere oltre la fase di progettazione.
Chris Stratton,

1
@ChrisStratton Si tratta semplicemente di gestire i rischi. In un sistema in cui si potrebbero riscontrare fallimenti dello sviluppo catastrofici, si isolerebbero sia l'attrezzatura che l'uomo da qualsiasi potenziale rischio di fallimento. È possibile acquistare attrezzature professionali o rotolare in proprio ... Ho semplicemente suggerito un rotolo praticabile la propria soluzione. Le critiche di Ali Chen non sono valide per l'IMO, poiché per più guasti durante lo sviluppo la causa principale potrebbe essere diversa. È troppo tardi una volta che l'incendio è iniziato.
Jack Creasey,

Il mio punto è che se il cablaggio di alimentazione non è isolato dalla norma in questo caso particolare, nessuna quantità di Pis davanti a un laptop sarà sicura per le porte e gli utenti. Questo è tutto ciò che intendevo.
Ale..chenski,

0

Ok, dopo una moltitudine di chiarimenti e vari casi presentati, lasciami offrire una soluzione al problema su come proteggere un laptop dalle fritture nell'ambiente di assistenza sul campo:

  1. Collegare sempre prima le apparecchiature di test / diagnostica all'oggetto di servizio e accendere il dispositivo.

  2. Prima di collegare l'apparecchiatura al laptop, verificare eventuali tensioni sospette tra gli schermi USB utilizzando un DMM a bassa impedenza (standard 10-20k), tra la porta DUT e la porta del laptop, sia in modalità CC che CA.

  3. Se viene rilevata una tensione significativa (5 - 10 - 50 V), utilizzare un vero trasformatore di isolamento su una delle estremità.


0

L'uso di un Pi / Beaglebone / Tinkerbox su WiFi sarebbe economico e facile. CHIP sembra buono, vedi https://getchip.com/pages/chip . 5-9 $ per dispositivo. Puoi uccidere 7 CHIP al prezzo di 1 Pi3. Ovviamente devi ancora affrontare il problema che le tensioni di scarica raggiungono le porte USB, ma almeno la tua workstation sarà al sicuro. Non collegarlo alla tua LAN con Ethernet, però.

Il trasferimento dei file è semplicemente una questione di utilizzo dell'accesso ssh senza password basato su chiave ai file scp sul Pi / altro e su una shell remota per il caricamento. Per arduino, esiste il pacchetto arduino-mk e esistono strumenti simili per PIC. Non c'è dubbio che puoi anche salvare i tuoi file su una condivisione SMB / CIFS esportata e usare la shell remota per crearli e caricarli sulle tue schede.

Se si verifica nuovamente una tensione di interruzione, perderai solo 30-35 $.

Non ho ancora scoperto come queste tensioni riescano mai a attraversare i tuoi MCU ed entrare nella porta USB. È breve? Da dove proviene? Ho distrutto molti cloni di Arduino e sono sinceramente curioso.

Inoltre, le porte USB sono generalmente polifuse contro tensioni moderate. In realtà è necessario inserire una tensione negativa sul pin 5V per uccidere la porta (o positiva al pin GND), il controller e forse la scheda madre. Come gestisci l'omicidio di due laptop? Potrebbe essere la magia dell'alternanza di corrente al lavoro?

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.